ალგორითმი: განსხვავება გადახედვებს შორის

[შეუმოწმებელი ვერსია][შეუმოწმებელი ვერსია]
შიგთავსი ამოიშალა შიგთავსი დაემატა
No edit summary
No edit summary
ხაზი 8:
ამჟამად, ტერმინი ალგორითმი სხვადასხვა სახის ცალკეული წესების სახოგადო სახელია და იგი შემდეგნაირად არის განმარტებული: ალგორითმი გარკვეულ მითითებათა სასრული მიმდევრობაა, რომლის შესრულება საშუალებას გვაძლევს მივიღოთ მოცემული ამოცანის ამონახსნი. ალგორითმი არის გამოსახულებამ რომელიც შედგება მოქმედების თანმიმდევრობისაგან, რომელიც გამოთვლებით ამოცანის ამოხსნის საშუალებას იძლევა.
თუ ეს ოპერაციები ხორციელდება ნაწილ-ნაწილ ასეთ ალგორითმს ეძახიან წყვეტილ ალგორითმს. თუ ოპერაციები ხორციელდება პარალელურად სხვადასხვა პროცესორზე ალგორითმს პარალელურ ალგორითმს ეძახიან. თუ ოპერაციები სრულდება ერთ ქსელზე ალგორითმს ეწოდება.
==ისტორია==
 
ალგორითმები, რომელთა შესახებ ამომწურავი განმარტებები არის აღმოჩენილი, გამოყენებულია ჯერ ჯიდევ უძველესი([[ბაბილონი|ბაბილონის]]) პერიოდიდან ვაჭრობასა თუ ბეგარასთან დაკავშირებულ გამოთვლებში.
ყველაწე ცნობილი ალგორითმი ეს არის [[ევკლიდეს]] მე-7 წიგნში "ელემენტები". ის საშუალებას გვაძლევს ვიპოვოთ ორი რიცხვის ყველაზე დიდი საერთო გამყოფი. აღსანიშნავიამ რომ ის შეიცავს იტერაციას და 1 და 2 გამონათქვამი აჩვენებს კრებადობას.
===სისტემატური შესწავლა===
ალგორითმმა სისტემატური სახე მიიღო სპარსი მათემატიკოსის ალ-ხორეზმის მიერ (დაიბადა 780წ, გარდაიცვალა 850წ.). ის იყო ავტორი წიგნისა "ალგებრა და ბალანსირება", რომელიც აღწერს ალგებრული გაოთვლების მეთოდებს.
არაბი მეცნიერი [[ავეროესი]] (1126-1198) მსჯელობის შედეგად ხვეწავს თეზას ალგორითმის მიმდინარეობის პარალელურად.
Line 73 ⟶ 74:
პროცესორის სიჩქარე, მონაცემებთან წვდომის სიჩქარე, ალგორითმის შესრულება(რომელსაც შეუძლია გაუთვალისწინებლობის შემოტანა) ან მისი მეზსიერების ორგანიზებულობა, მისი შესრულების დრო და მეხსიერების რაოდენობა არ იქნება უცვლელი.
სტატიაში სირთულის ტეორიაზე ვნახავთ სირთულის სხვა შეფასებებს, რომლებიც ზემოთ ჩამოთვლილ საკითხებზე უფრო შორს მიდიან და რომლებიც ყოფენ ამოცანებს (და არა ალგორითმებს) სირთულის კლასებად.
 
==რამდენიმე მინიშნება ალგორითმის შედეგიანობაზე==
 
ხშირად, ალგორითმის შედეგიანობა განისაზღვრება მხოლოდ ასიმპტომატიური ხერხით ე.ი. n-პარამეტრის დიდი მნიშვნელობით. როცა ეს პარამეტრი საკმარისად პატარაა, რეალურად მაღალი სირთულის ალგორითმი შეიძლება იყოს უფრო შედეგიანი. ამგვარად, 30 ხაზიანი ცხრილის დასახარისხებლად (ეს პატარა ზომის პარამეტრია) არ არის საჭირო ისეთი ალგორითმის გამოყენება, როგორიცაა სწრაფი დახარისხება (დახარისხების ერთ-ერთი შედეგიანი ალგორითმი), ყველაზე მარტივი დალაგების ალგორიტმიც საკმარისად შედეგიანი იქნება.
აღსანიშნავია აგრეთვე : ორ ალგორითმს შორის, რომელთა სირთულეც თანაბარია, სჯობს იმის გამოყენება რომლის მეხსიერების ტევადობაც უფრო ნაკლებია. ალგორითმული სირთულის ანალიზი შეიძლება გამოყენებული იყოს ალგორითმის მეხსიერების ტევადობის შესაფასებლად. დაბოლოს, ერთი არჩევანი ალგორითმის მიერ უნდა განხორციელდეს იმ მონაცემების მიხედვით, რომელიც უნდა გადავცეთ. ასე რომ, Quicksort (ანუ სწრაფი დახარისხება), როცა საწყისად ვირჩევთ პირველ ელემენტს მოქმედებს კატასტროფულად. თუ მას გამოვიყენებთ უკვე დახარისხებული მნიშვნელობებისას ე.ი მისი გამოყენება არ არის საჭირო თუ ვხვდებით, რომ პროგრამა შესვლისას მიიღებს უკვე დახარისხებულ სიებს.
სხვა გასათვალისწინებელი პარამეტრია ალგორითმის ადგილმდებარეობა. მაგალითად, ვირტუალური მეხსიერების სისტემისათვის, რომელსაც ცოტა მეხსიერება აქვს (შედარებით მონაცემთა რაოდენობასთან) სწრაფი დახარისხების მეთოდით იქნება უფრო შედეგიანი, ერთიანი დახარისხებით, რადგან პირველი გაივლის მხოლოდ ერთხელ მეხსიერების თითოეულ ელემენტზე, მაშინ როცა მეორე აღწევს მეხსიერებას ყვეტილ რეჟიმში (ეს კი ზრდის "swapping"-ის რისკს).
დაბოლოს, არსებობს ზოგი ალგორითმი, რომელტა სირთულე ე.წ შეჩერებულია, რაც იმას ნიშნავს, რომ ზოგიერთი ალგორითმის შესრულებისას ალგორითმის სირთულე იქნება უფრო მაღალი, ვიდრე საშუალო შემთხვევებში. რა თქმა უნდა ამოწურული სირთულის ცნება გამოიყენება იმ შემთხვევაში, როცა ეს რეაქცია ძალიან მარგინალურია.
 
== Heuristique ==
 
ზოგიერთი ამოცანისთვის ალგორითმები რეალურ დროში შედეგის მისაღებად ბევრად უფრო დიდ სირთულეს ხვდებიან, თუნდაც ფენომენალური შესაძლებლობების გამოთვლების გამოყენებისას. ასე თანმიმდევრული მცდელობებით მივდივართ გამოსავლის პოვნისაკენ, რომელიც ძალიან ახლოსაა ოპტიმქლურ გამოსავალთან. ვინაიდან ყველა კომბინაციის გამოყენაბა შეუძლებელია, მხოლოდ ზოგიერთი სტრატეგიული არჩევანი უნდა გაკეთდეს. ეს არჩევანი, რომელიც ზოგადად დამოკიდებულია ამოსახსნელ ამოცანაზე, იმას რასაც ვეძახით heuristique. ასე, რომ heuristique-ის მიზანი არ არის ყველა შესაძლო კომბინაციის გამოცდა, სანამ არ მოიძებნება ის, რომელიც ამოცანის ამოხსნას პასუხობს, რათა მოძებნილ იქნას მიახლოებული ამოხსნა(რომელიც ზოგ შემთხვევაში) რეალურ დროში. ამგვარად, ჭადრაკის თამაშისას სვლებს (ყველა რომ არ ჩამოთვალო) საერთო აქვს heuristique-თან, რაც განისაზღვრება მოთამაშის გამოცდილებით. ზოგი antivirus პროგრამაც ეყრდნობა ასევე heuristique-ს რათა ამოიცნოს ის ინფორმაციული ვირუსი, რომელიც არ არის ცალკე კონკრეტულად გამოტოფილი მის ბაზაში.
 
==გამოყენება==
 
* [[კრიპტოლოგია]] და [[მონაცემთა შეკუმშვა]]
* [[მონაცემთა სტრუქტურა]], [[დახარისხება|დახარისხების ალგორითმი]] და [[კვლევა]]
ხმოვანი ინფორმატიკა
* [[მეხსიერების ტევადობა]]
ინფორმატიკაში გენეტიკური ალგორითმი
* [[ხმოვანი ინფორმატიკა]]
* [[ინფორმატიკაში გენეტიკური ალგორითმი]]
 
==იხილეთ აგრეთვე==
მოძიებულია „https://ka.wikipedia.org/wiki/ალგორითმი“-დან