Professional Documents
Culture Documents
2024 02 20 - 15 57 53 - 0kcixrFBaYD0vY7f4Xdqztq2pB49B6OhdcM7fqI0
2024 02 20 - 15 57 53 - 0kcixrFBaYD0vY7f4Xdqztq2pB49B6OhdcM7fqI0
ალგორითმის სირთულე.
ასიმპტოტური ნოტაცია.
ალგორითმის განსაზღვრება
ალგორითმს უწოდებენ ზუსტად განსაზღვრული წესებისა და
ინსტრუქციების ერთობლიობას, რომელთა თანმიმდევრულ
შესრულებას მივყავართ კონკრეტული ამოცანის
ამოხსნამდე.
ალგორითმის თვისებები:
• დისკრეტულობა: შედგება ცალკეული ბიჯებისაგან.
• სიცხადე: შეიცავს მხოლოდ პროცესორისათვის საჭირო
ბრძანებებს.
• განსაზღვრულობა: ყოველთვის ერთი და იგივე შედეგი
გამოაქვს ერთი და იგივე შემავალი მონაცემისათვის
• სასრულობა: მთავრდება ბიჯების სასრულ რაოდენობაში.
• ზოგადობა: შეიძლება მისი მრავალჯერადი გამოყენება
სხვადასხვა შემავალი მონაცემისათვის.
• კორექტულობა: იძლევა სწორ პასუხს ნებისმიერ დასაშვები
შემავალი მონაცემისათვის.
ალგორითმის სირთულე
ალგორითმის სირთულის ანალიზი აუცილებელია
მოცემული ამოცანის ამოხსნისათვის ოპტიმალური
ალგორითმის საპოვნელად. ალგორითმის
სირთულის კრიტერიუმად იყენებენ ელემენტარული
ოპერაციების რაოდენობას, რომელიც საჭიროა
მოცემული ალგორითმის საშუალებით ამოცანის
ამოხსნისათვის. სირთულის ფუნქცია წარმოადგენს
დამოკიდებულებას შემოსატან მონაცემებსა და
ელემენტარული ოპერაციების რაოდენობას შორის.
ალგორითმის სირთულე სხვადასხვაგვარად არის
დამოკიდებული შემოსატან მონაცემებზე. ზოგი
ალგორითმი დამოკიდებულია შესატანი
მონაცემების მოცულობაზე, ზოგი - მონაცემების
მნიშვნელობაზე, ზოგჯერ კი ალგორითმზე შესატანი
მონაცემების თანმიმდევრობა ახდენს გავლენას.
ასიმპტოტური ანალიზი
პრაქტიკაში ყველაზე მეტად გავრცელებულია
ალგორითმების ასიმპტოტური ანალიზი. მისი მიზანია დროისა
და მეხსიერების ხარჯვის შეფასება შესატანი მონაცემების
მოცულობის მიხედვით. ამისათვის გამოიყენება ე.წ.
ასიმპტოტური ფუნქციები, რომელთა კლასიფიკაციისათვის
შემოღებულია სპეციალური აღნიშვნები.
Q, O, W, o, w
განისაზღვრებიან როგორც ფუნქციები
მთელი დადებითი რიცხვებისათვის.
პრაქტიკულად წარმოადგენენ
ფუნქციათა კრებულს, რომლებიც
ახდენენ ორი ფუნქციის ზრდის ტემპის
შედარებას;
მაგალითად: ფუნქცია f(n) = Q(n2) აღწერს, თუ
როგორ იზრდება f(n) n2-თან შედარებით.
-ნოტაცია
(g(n)) = { f(n) :
დადებითი მუდმივები
c1, c2, და n0, ისეთი რომ n
n0,
O(g(n)) = {f(n) :
დადებითი მუდმივა c
და n0, ისეთი, რომ n
n0,
გვაქვს 0 f(n) cg(n) }
n = (lg n).
Q, O, W ფუნქციების ურთიერთკავშირი
თეორემა:
თეორემა: ნებისმიერი ორიg(n)
ნებისმიერიორი და f(n)
g(n)და f(n)
ფუნქციისათვის,
ფუნქციისათვის,
f(n)==(g(n)),
f(n) (g(n)),მაშინ
მაშინდა
დამხოლოდ
მხოლოდმაშინმაშინ,,როცა
როცა
f(n)
f(n)==O(g(n)) f(n)==(g(n)).
დაf(n)
O(g(n))და (g(n)).
ე.ი., (g(n)) = O(g(n)) Ç W(g(n))
მუშაობის (შესრულების) დრო
• “მუშაობის დროა O(f(n))” Þ უარეს შემთხვევაში O(f(n))
• O(f(n)) შემოსაზღვრულია უარესი შემთხვევის მუშაობის დროით
O(f(n)) შემოსაზღვრულია თითოეული შემოსატანი მონაცემისათვის
• Q(f(n)) შემოსაზღვრულია უარესი შემთხვევის მუშაობის დროით
Q(f(n)) შემოსაზღვრულია თითოეული შემოსატანი მონაცემისათვის.
• “მუშაობის დროა W(f(n))” Þ საუკეთესო შემთხვევა W(f(n))
მაგალითები:
• Insertion sort უარეს შემთხვევაში ალაგებს Q(n2) დროში, ე.ი.
სორტირება მუშაობს O(n2)-ში.
• სორტირების ნებისმიერი მეთოდი თითოეულ ელემენტს ერთხელ
მაინც იხილავს, ე.ი. სორტირების დრო ყოველთვის არის W(n).
• სორტირება შერწყმით (merge sort), ალაგებს მასივს Q(n lg n)
დროში უარეს შემთხვევაში.
o- და w - ნოტაცია