You are on page 1of 122

ივანე ჯავახიშვილის სახელობის

თბილისის სახელმწიფო უნივერსიტეტი

ზუსტ და საბუნებისმეტყველო მეცნიერებათა ფაკულტეტი

კომპიუტერულ მეცნიერებათა დეპარტამენტი

ინტელექტუალური სისტემები

ავტორები:
ზურაბ ქოჩლაძე
გელა ბესიაშვილი

2022-23
სასწავლო წელი
სასწავლოკურსისსილაბუსი
სასწავლო კურსის ინტელექტუალური სისტემები
სახელწოდება
ავტორები ზურაბ ქოჩლაძე, ასოცირებული პროფესორი
ტელ: 599 40 15 34 ელ-ფოსტა: zurab.kochladze@tsu.ge
გელა ბესიაშვილი, ასისტენტ - პროფესორი
ტელ: 555 27 21 56 ელ-ფოსტა: gels.besiaShvili@tsu.ge
ლექტორები ზურაბ ქოჩლაძე, ასოცირებული პროფესორი, ტელ: 599 40 15 34
ელ-ფოსტა: zurab.kochladze@tsu.ge
კონსულტაციის საათები: კვირაში 2სთ (განრიგი იგეგმება
სემესტრულად).
გელა ბესიაშვილი, ასისტენტ - პროფესორი, ტელ: 555 27 21 56
ელ-ფოსტა: gels.besiaShvili@tsu.ge
კონსულტაციის საათები: კვირაში 2სთ (განრიგი იგეგმება
სემესტრულად).
სასწავლო კურსის კოდი CS 403
სასწავლოკურსისსტატუსი ზუსტ და საბუნებისმეტყველო მეცნიერებათა ფაკულტეტი -
საბაკალავრო პროგრამა “კომპიუტერული მეცნიერება“ -
სავალდებულო.
სასწავლო კურსის მიზნები შეასწავლოს სტუდენტებს:
 ხელოვნური ინტელექტუალური სისტემების
ფუნდამენტური ცნებები და ძირითადი პრობლემები;
 თანამედროვე, ინტელექტუალური აგენტების იდეაზე
დაფუძნებული მიდგომა;
 პრობლემების წარმოდგენა მდგომარეობათა და
ქვეამოცანათა სივრცეებში.
 ძებნის არაინფორმირებული ალგორითმები.
 ევრისტიკული ძებნის მეთოდები.
 ძებნის ემერჯენტული (გენეტიკური) ალგორითმები.
კრედიტების რაოდენობა და 5 კრედიტი (125 საათი)
საათების განაწილება საკონტაქტო - სემესტრში45 სთ. (15სთ. ლექცია, 15 სთ.
სტუდენტის დატვირთვის სემინარი, 15 სთ ლაბორატორიული მუშაობა);
შესაბამისად (ECTS) შუალედური გამოცდა - 2სთ;
დასკვნითი გამოცდა - 3სთ;
დამოუკიდებელი მუშაობა - სემესტრში80 სთ.
დაშვების წინაპირობები 1. CS201 ალგორითმები და სირთულე
2. CS104 ობიექტზე ორიენტირებული დაპროგრამება 1
სწავლის შედეგები ცოდნა და გაცნობიერება:
იცის:
 ინტელექტუალური სისტემების აგების ძირითადი
მიდგომები და კონცეფციები;
 ძებნის არაინფორმირებული და ინფორმირებული
ალგორითმები;
 ძებნის მეთოდები ამოცანებში შეზღუდვთა
დაკმაყოფილებზე;
 ძებნის ალგორითმები წინააღმდეგობის შემთხვევაში;
 გენეტიკური ალგორითმები.
ცოდნის პრაქტიკაში გამოყენების უნარი
შეუძლია:
 ძებნის არაინფორმირებული და ინფორმირებული,
მეთოდების და ალგორითმების გამოყენება ნებისმიერი
ამოცანისთვის;
 აშდ ამოცანების ამოხსნა;
 გენეტიკური ალგორითმების აგება კონკრეტული
ამოცანისთვის.
 დააპროექტოს მარტივი ინტელექტუალური სისტემა;
დასკვნის უნარი:
შეუძლია:
 მოცემული კონკრეტული ამოცანის გამოკვლევის
საფუძველზე სწორად შეარჩიოს მეთოდები და
ალგორითმები ამ ამოცანის გადასჭრელად;
 შეაფასოს კონკრეტული ამოცანის გადაჭრის სხვადასხვა
მიდგომები და მიიღოს ოპტიმალური გადაწყვეტილება;
 მარტივი ინტელექტუალური სისტემების ანალიზი;
კომუნიკაციისუნარი:
შეუძლია:
 ინტელექტუალური სისტემების სფეროში მოახდინოს
კომუნიკაცია კოლეგებთან, გაიგოს სხვისი პრობლემები
და შესთავაზოს გადაჭრის გზები;
 ამოცანისგადაწყვეტისპროცესშიგანხორციელებულისამ
უშაოსდამიღებულიშედეგებისპროფესიულ ენაზე
გადმოცემა (ზეპირადდაწერილობით);
სწავლის უნარი
კურსის გავლის შემდეგ
შეუძლია:
 სწავლის პროცესის შეფასება მიღებული თეორიული
ცოდნის და მისი პრაქტიკაში გამოყენების
თვალსაზრისით;შემდგომისწავლისსაჭიროებებისდადგენა;
 საკუთარი ცოდნის გაღრმავების აუცილებლობის შეფასება
შემდგომი სწავლის გაგრძელების მიმართულების
განსაზღვრისათვის.
ღირებულებები
შეუძლია:
 ინტელექტუალური სისტემების სფეროში პროფესიული
ეთიკის ნორმების მნიშვნელობის გააზრება და დაცვა;
 გააზრებული აქვს აუცილებელი კავშირი თეორიასა და
პრაქტიკას შორის.
სასწავლო კურსის შინაარსი თეორიული კურსი მოიცავს: ხელოვნური ინტელექტის
ძირითად ცნებებს, ინტელექტუალური სისტემების აგების
მეთოდიკას, ძებნის ინფორმირებულ მეთოდებსა და
ალგორითმებს, ძებნას წინააღმდეგობის შემთხვევაში,
ნეინორული ქსელებისა და გენეტიკური ალგორითმების
გამოყენებას ოპტიმიზაციისა და ძებნისთვის. (იხ.დანართი 1);
ჯგუფში მცადინეობების კურსი მოიცავს: ლექციაზე
მიწოდებული მასალის გარჩევას კონკრეტული მაგალითების
და სავარჯიშოების თანხლებით.
ლაბორატორიული სამუშაო მოიცავს დავალებებს. იხ.
დანართი 2).
სწავლება-სწავლის  ვერბალური, ანუ ზეპირსიტყვიერი მეთოდი;
მეთოდები  წიგნზე მუშაობის მეთოდი;
-3-
 წერითი მეთოდი;
 ახსნა-განმარტების მეთოდი;
 ლაბორატორიული მეთოდი;
 პრაქტიკული მეთოდები.
შეფასების შუალედური შეფასება მოიცავს:
ფორმები/კომპონენტები/ წერითი გამოკითხვა - 2 X 10 ქულა = 20 ქულა.
მეთოდები/კრიტერიუმები შეფასების მეთოდი - მრავალარჩევნიანი ტესტი.ტესტი
შედგება 10 მარტივი კითხვისგან. თითოეულ კითხვაზე
მითითებულია ოთხი პასუხი. სტუდენტმა უნდა
შეარჩიოს სწორი პასუხი. სწორი პასუხი ფასდება 1
ქულით. (ტესტის ხანგრძლივობაა 30 წუთი. ჩატარდება
მეექვსე და მეთერთმეტე კვირას).
შუალედური წერითი გამოცდა ფასდება 20 ქულით. აფასებს 1–
6 კვირებში განვლილ მასალას.
შუალედურ წერით გამოცდაზე სტუდენტს მიეცემა
ხუთი საკითხი. თითოეული ფასდება ოთხი ქულით.
4 ქულა - საკითხზე პასუხი სრულია და ამომწურავი.
სტუდენტს გააზრებული აქვს საკითხი და სწორად
ხმარობს ტერმინოლოგიას.
3 ქულა - პასუხი სწორია, მაგრამ დაშვებულია მცირეოდენი
შეცდომები ან/და არ იცის ტერმინოლოგია.
2 ქულა - პასუხი არაა სრული და დაშვებულია შეცდომები.
1 ქულა - პასუხი არაა სწორი. დაშვებულია უხეში
შეცდომები.
0 ქულა -სტუდენტმა არ იცის პასუხი დასმულ კითხვაზე.
ლაბორატორიული სამუშაო ითვალისწინებს, შერჩეული
ამოცანის ამოხსნის ალგორითმის იმპლემენტაციას
პროგრამულ კოდში. შეფასების კრიტერიუმებია:
სამუშაო ფასდება 10 ქულით.
ალგორითმი ფასდება - 5 ქულით;
პროგრამული კოდი ფასდება - 5 ქულით;
ქულების განაწილება ხდება შემდეგნაირად:
10 ქულა - შედეგი მიღებულია და ოპტიმალურია.
დაცულია პროგრამირების სტილი; ვიზუალურად
ადვილად კითხვადია, სტრიქონებს აქვს კომენტარები.
9ქულა - არ არის სრული სტრიქონებზე კომენტარები, ან
დარღვეულია ნაწილობრივ ვიზუალური მხარე.
8ქულა - დარღვეულია, არ სრულდება პროგრამირების
სტილის რეკომენდაციები.
7ქულა - პროგრამულიკოდი არ არის ოპტიმალური.
6ქულა - პროგრამული კოდი არ არის( ბოლომდე)
დასრულებული.
5ქულა-ამოცანისათვის შედგენილია ფსევდოკოდი.
4ქულა-ფსევდო კოდში აღინიშნება უზუსტობები.
3ქულა-ამოცანის ამოხსნის ალგორითმი სრულად არის
აღწერილი.
2ქულა-აგორითმის მუშაობა არ არის სრულად აღწერილი.
1ქულა-ალგორითმის მუშაობის აღწერაში დაშვებულია
უხეში შეცდომები.
0ქულა - არ იცის ალგორითმი.

-4-
სემესტრის განმავლობაში ჩატარდება 2 ლაბორატორიული
შეფასება (მერვე და მეთორმეტე კვირას).
დასკვნითი შეფასება მოიცავს:
წერითი გამოცდა - 40 ქულა
შეფასების მეთოდი. სტუდენტს მიეცემა რვა საკითხი.
თითოეული ფასდება 5 ქულით.
5 ქულა - პასუხი სრულია და ამომწურავი. სტუდენტს
გააზრებული აქვს საკითხი და სწორად ხმარობს
ტერმინოლოგიას.
4 ქულა - პასუხი სწორია, მაგრამ დაშვებულია მცირეოდენი
შეცდომები ან/და არ იცის ტერმინოლოგია.
3 ქულა - პასუხი არაა სრული ან დაშვებულია უხეში
შეცდომა.
2 ქულა - პასუხი არაა სწორი. დაშვებულია უხეში
შეცდომები. სტუდენტმა არ იცის ტერმინოლოგია.
1 ქულა -სტუდენტის პასუხი არაა სრული და სწორი, მაგრამ
ჩანს, რომ გაუგია მის შესახებ რაღაც ინფორმაცია.
0 ქულა - არ იცის პასუხი დასმულ კითხვაზე.

შუალედური შეფასება - 60%


დასკვნითი შეფასება - 40%
შეფასების სისტემა უშვებს:
ა) ხუთი სახის დადებით შეფასებას:
(A) ფრიადი - მაქსიმალური შეფასების 91% და მეტი;
(B) ძალიან კარგი - მაქსიმალური შეფასების 81-90%;
(C) კარგი - მაქსიმალური შეფასების 71-80%;
(D) დამაკმაყოფილებელი - მაქსიმალური შეფასების 61-70%;
(E) საკმარისი - მაქსიმალური შეფასების 51-60%;
ბ) ორი სახის უარყოფით შეფასებას:
(FX) ვერ ჩააბარა - მაქსიმალური შეფასების 41-50%, რაც
ნიშნავს, რომ სტუდენტს ჩასაბარებლად მეტი მუშაობა
სჭირდება და ეძლევა დამოუკიდებელი მუშაობით
დამატებით გამოცდაზე ერთხელ გასვლის უფლება;
(F) ჩაიჭრა - მაქსიმალური შეფასების 40% და ნაკლები, რაც
ნიშნავს, რომ სტუდენტის მიერ ჩატარებული სამუშაო არ არის
საკმარისი და მას საგანი ახლიდან აქვს შესასწავლი.
სტუდენტს დამატებით გამოცდაზე გასვლის უფლება აქვს
იმავე სემესტრში, თუ მან მიიღო FX (41-50 – ვერ ჩააბარა)
შეფასება; საგანში დასკვნით და დამატებით გამოცდას შორის
შუალედი უნდა იყოს არა ნაკლებ 10 კალენდარული დღისა.
დასკვნით გამოცდაზე გასვლის უფლება ეძლევა სტუდენტს,
რომელსაც შუალედურ შეფასებებში ჯამურად უგროვდება
მინიმუმ 20 ქულა.
დასკვნითი გამოცდა ჩაბარებულად ჩაითვლება, თუ სტუდენტი
მიიღებს მაქსიმალური - 40 ქულიდან 21 ქულას მაინც.
ძირითადი ლიტერატურა 1. ინტელექტუალური სისტემები ლექციათა კურსი, ზ.
ქოჩლაძე განთავსებულია e-lerning tsu)
2. S. J. Russel and P. Norvig Artificial Intelligence. Prentice Hall
2003.
3. G. F. Luger Artificial Intelligence. Addison Wesley 2002

-5-
დამხმარე ლიტერატურა და 1. N. Nilsson Principles of Artificial Intelligence. Tioga Publishing.
სხვა სასწავლო მასალა Palo Alto 1980.
2. Jean-Louis Lauriere Artificielle Intelligence. Paris. 1987.
3. N. Bostrom and E. Yudkowsky Ethics of AI.
CambridgeUniversityPress.

დანართი 1.
სასწავლო კურსის შინაარსი

N ლექციების (პრაქტიკულის) თემები

1 ხელოვნური ინტელექტი წარმოშობისა და განვითარების მოკლე 1. ლექცია 1.


ისტორია. ხელოვნური ინტელექტი დღეს. 2. გვ, 34-74.
2 ამოცანის (პრობლემის) წარმოდგენა ქვეამოცანათა და 1. ლექცია 2.
მდგომარეობათა სივრცეებში, მათი გადაჭრა ძებნის საშუალებით. 2. გვ. 110-139.
ძებნის არაინფორმირებული ალგორითმები.
3 ევრისტიკული ფუნქცია. ძებნის ევრისტიკული ალგორითმები. 1. ლექცია 3.
„ხარბი“ ალგორითმები. 2. გვ. 155-197.
A ტიპის ალგორითმები. g (n) ფუნქციის როლი. A ალგორითმის
4 1. ლექცია 4.
სისრულე, ოპტიმალურობა და ინფორმირებულობა.
3. გვ. 149-169.
5 ამოცანები შეზღუდვათა დაკმაყოფილებაზე (აშდ).აშდ ამოცანების 1. ლექცია 5.
ამოხსნა ალგორითმით „ძებნა უკან დაბრუნებებით“. 2. გვ.209-226.
6 ამოცანის ხისებური სტრუქტურა და ამოხსნის ალგორითმი. 1. ლექცია 6.
რთული სტრუქტურის ხისებურზე დაყვანის მეთოდები. 2. გვ.228-233.
7 ძებნა წინააღმდეგობის შემთხვევაში. თამაშები სრული და 1. ლექცია 7.
არასრული ინფორმაციით. მინიმაქსისა და ალფა-ბეტა 2. გვ,240-251.
პროცედურები. 3. გვ.169-184.
8 კომპიუტერულ სისტემაში ცოდნის წარმოდგენის მეთოდები. 1. ლექცია 8.
სემანტიკური ქსელები, ფრეიმები, 3. გვ.225-240.
9 ცოდნის წარმოდგენა კონცეპტუალური გრაფებისა და ალბათურ - 1. ლექცია 9.
ლოგიკური კონცეპტების საშუალებით. 3.გვ. 241-253.
10 მანქანური სწავლების მეთოდები. კანდიდატთა გამორიცხვის 1. ლექცია10.
ალგორითმი. 3.გვ. 369-380; 392-398.
11 ხელოვნური ნეირონი. ერთშრიანი ნეირონული ქსელები. 1. ლექცია 11.
3.გვ. 435-438.
12 პერცეპტრონის გამოყენება ობიექტთა კლასიფიკაციის 1. ლექცია 12.
ამოცანებისთვის. 3. გვ. 442-448.
13 მრავალშრიანი ნეირონული ქსელები. 1. ლექცია 13.
2. გვ. 985-991
3. გვ. 448-454.
14 გენეტიკური ალგორითმები. მათი გამოყენება ოპტიმიზაციისა და 1. ლექცია 14.
ძებნის ამოცანებში. 3.გვ.485-500.
15 ხელოვნური ინტელექტის ეთიკა. 1. ლექცია 15.

დანართი 2.

N ლაბორატორიული სამუშაოს თემები სასწავლო

-6-
მასალა
1 სტუდენტები გაეცნობიან პირველ ინტელექტუალური ქცევის 1. ლექცია 1.
სისტემას LG-ს.
2 მოხდება ინტერნეტში არსებული ”გონიერი” აგენტების 1. ლექცია 2.
მაგალითების განხილვა.
3 სტუდენტებმა უნდა წარმოადგინონ კონკრეტული 1. ლექცია 3.
ამოცანებიმდგომარეობათა სივრცეში.
4 სტუდენტებმა უნდა ამოხსნან „რვიანის“ (ან სხვა) თამაში სრული 1. ლექცია 4.
გადარჩევის ალგორითმით.
5 სტუდენტებმა უნდა ამოხსნან „რვიანის“ (ან სხვა) თამაში 1. ლექცია 5.
სიღრმეში ძებნის ალგორითმით.
6 სტუდენტება უნდა შეაფასონ სრული გადარჩევის და სიღრმეში 1. ლექცია 6.
ძებნის ალგორითმების მუშაობის მახასიათებლები.
7 სტუდენტებმა უნდა ააგონ A* ალგორითმი და შეადგინონ 1. ლექცია 7.
სხვადასხვა შემფასებელი ფუნქციები კონკრეტული თამაშისთვის.
8 სტუდენტებმა კონკრეტული თამაშის ამოსახსნელად უნდა 1. ლექცია 8.
გამოიყენენ A* ალგორითმი სხვადასხვა შემფასებელი
ფუნქციით.
9 სტუდენტებმა უნდა შეადარონ ერთმანეთს ძებნის 1. ლექცია 9.
არაინფორმირებული და ინფორმირებული ალგორითმები
არსებული კრიტერიუმების საშუალებით.
10 სტუდენტებმა უნდა ააგონ ალგორითმი „ძებნა უკან დაბრუნებით“ 1. ლექცია10.
და გამოიყენონ ის რომელიმე კონკრეტული აშდამოცანისათვის.
11 სტუდენტებმა კონკრეტული თამაშისთვის პრაქტიკულად უნდა 1. ლექცია 11.
გამოიყენონ მინიმაქსის და შემოკლებული მინიმაქსის
პროცედურები.
12 იგივე თამაშისთვის გამოიყენონ ალფა-ბეტა პროცედურა. 1. ლექცია 12.
13 შეადარონ შემოკლებული მინიმაქსისა და ალფა-ბეტა 1. ლექცია 13.
პროცედურების ქცევა ერთმანეთს.
14 გენეტიკური ალგორითმების გამოყენებანორმალური 1. ლექცია 14.
დიზუნქციური ფორმის მინიმიზაციისათვის.
15 გენეტიკური ალგორითმების გამოყენება ძებნის ამოცანებში. 1. ლექცია 15.

-7-
ლექცია 1.
ხელოვნური ინტელექტი წარმოშობისა და განვითარების მოკლე ისტორია.

1.1. რა არის ხელოვნური ინტელექტი.ინტელექტი, ხელოვნური ინტელექტი, ხელოვნური


ინტელექტუალური სისტემები, ინტელექტუალური გამოთვლები, ინტელექტუალური
აგენტები, რობოტები. ეს ტერმინები ხშირად გვესმის უკვე რამდენიმე ათეული წელია,
მაგრამ ჯერ კიდევ ხშირად გაურკვეველია თუ ხელოვნური სისტემების რა ქმედებები
შეიძლება ჩაითვალოს ინტელექტუალურ ქცევად.
ტერმინი “ინტელექტი” გამოიყენება მეცნიერებაში ადამიანის აზროვნების შესახებ და
შეისწავლის აზროვნების უნარს გამოიტანოს სწორი დასკვნები იმის შესახებ თუ რა არის
ჭეშმარიტი და რეალური და გადაწყვიტოს პრობლემები. ისტორიულად ეს ტერმინი
გამომდინარეობს ძველი ბერძნული ფილოსოფიური ტერმინიდან „nous”, რომელიც
ლათინურად ითარგმნა როგორც „intellectus”, ხოლო შემდეგ ძალიან ბევრ ენაზე მიიღო ფორმა
„ინტელექტი“. ამ სიტყვიდან წარმოიშვა შემდეგ ტერმინები „ინტელიგენტი“ და
„ინტელექტუალური“. პირველი აღნიშნავს ობიექტს, რომელსაც გააჩნია ინტელექტი და
მეორე კი ქცევას, ქმედებას, რომელიც სრულდება ინტელექტის გამოყენებით.
თავისთავად ცხადია, რომ საუკუნეების განმავლობაში (გასული საუკუნის
ორმოცდაათიან წლებამდე ადამინი იყო ერთადერთი ობიექტი, რომელსაც შეიძლებოდა
ჰქონოდა ინტელექტი (თუმცა ცხადია, რომ აზროვნების უფრო დაბალი ფორმები და
მარტივი პრობლემების გადაჭრის უნარი გააჩნიათ განვითარების უფრო დაბალ დონეზე
მდგომ ცოცხალ არსებებსაც).
1.2.. ხელოვნური ინტელექტისწარმოშობა. წინაპირობები. კაცობრიობის ისტორიაში
დაწყებული ძველი ბერძნული მითოლოგიიდან, უამრავი მითი თუ ლეგენდა არსებობს იმის
შესახებ, რომ არსებობენ ცნობიერებით დაჯილდოებული ხელოვნური არსებები. იქნებოდა
ეს ბრინჯაოსაგან გამოკვეთილი გიგანტი ტალოსი, რომელიც მფარველობდა კუნძულ
კრეტას, თუ ლეგენდარული მეფე და მოქანდაკე პიგმალიონი, რომელსაც შეუყვარდა თავისი
ქანდაკება და სიყვარულის ქალღმერთ ვენერას სთხოვა გაეცოცხლებინა ის, და ვენერამაც
აასრულა მისი თხოვნა.
უამრავი ასეთი მაგალთების მოყვანა შეიძლება არა მარტო ძველი, არამედ შუა
საუკუნეების თუ დღევანდელი ლიტარატურიდანაც. ყოველივე ეს მიუთითებს, რომ
ადამიანს ყოველთვის სურდა შეექმნა არტეფაქტი, რომელსაც ექნებოდა ისეთივე ინტელექტი,
როგორიც გააჩნია ადამიანს, მაგრამ მხოლოდ მეოცე საუკუნის 50-იან წლებში შეძლოდაეწყო
თავისი ოცნების განხორციელება. ეს არ ყოფილა შემთხვევითი მოვლენა, მას წინ უძღოდა
რამდენიმე მნიშვნელოვანი წინაპირობა, რონლებიც გაჩნდა მხოლოდ მეოცე საუკუნეში.
ყველაზე ადრეული კვლევები მოაზროვნე მანქანებზე შთაგონებული იყო იმ იდეების
შერწყმით,რომლებაც დაიწყო გავრცელება 30-ანი წლების ბოლოს, გაგრძელდა 40-იან წლებში
და დამთავრდა 50-იანში პირველი ინტელექტუალი სისტემის შექმნით, რომლის ქმედებაც
ძალიან წააგავდა ადამიანის ქმედებებს.
ნეირომეცნიერების კვლევებმა აჩვენა, რომ ადამიანის ტვინი არის ნეირონების
ელექტრული ქსელი, რომელიც მოქმედებს „ყველაფერი ან არაფერი“ტიპის იმპულსებით.
ნორბეტ ვინერის კიბერნეტიკამ აღწერა მართვა და სტაბილურობა ელექტროქსელებში.
კლოდ შენონის ინფორმაციის თეორია აღწერს ციფრულ სიგნალებს (ე.ი. სიგნალებს „ყველა ან
არცერთი“). ალან ტიურინგის გსმოთვლების თეორიამ აჩვენა, რომ გამოთვლების ნებოსმიერი
ფორმა შეიძლება აღიწეროს ციფრული სახით. ამ იდეებს შორის მჭიდრო კავშირი
მრტყველებს იმაზე, რომშესაძლებელია ელექტრონული ტვინის აგება. ამ მიმართულებით
მუშაობის მაგალითებია ვოლტერის „კუ“ და ჰოპკინსის „მხეცი“.

-8-
როგორც ცნობილია, მეორე მსოფლიო ომის დროს დიდ ბრიტანეთსა და აშშ შეიქმნა
თანამედროვე კომპიუტერების პირველი წარმომადგენლები, პირველი კომპიუტერები (Z3,
ENIAK COLOSSUS),გერმანული დამშიფრავი სისტემის ENIGMA-სგასატეხად. ამ
კომპიუტერებს შეეძლოთ ინფორმაციის მიღება, გადამუშავება, შენახვა და გამოტანა. ყველა
ის თვისება, რაც გააჩნია ადამიანს. ამმანქანებიდან ბოლო ორი მათგანი ემყარებოდა ა.
ტურინგის მიერ ჩამოყალიბებულ თეორიულ საფუძვლებს და შემუშავებული იქნა ჯონ ფონ
ნეიმანის მიერ.
1943 წელს უ. პიტსმა და უ. მაკ-კალოკმა გაანალიზეს რა იმდროინდელი ცოდნა
ბიოლოგიური ნეირონის და ნეირონული ქსელების შესახებ აჩვენეს, თუ როგორ შეიძლება
მათი მოდელირება. ნეირონის ხელოვნური ანალოგის შექმნა და მათი საშუალებით
ხელოვნური ნეირონული ქსელების აგება და შემდეგ უკვე ასეთი ქსელებით ნებისმიერი
ლოგიკური ფუნქციების მოდელირება.
1.3.ხელოვნური ინტელექტის დაბადება. 1955წელს კოგნიტიური ფსიქოლოგიის
სპეციალისტმა და კომპიუტერულმა მეცნიერემა ალენ ნიუელმა, სოციოლოგმა ჰერბერტ
სიმონმა და სისტემურმა პროგრამისტმა ჯონ შოუმ შეიმუშავეს პირველი პროგრამა
„ლოგიკოს თეორეტიკოსი“, რომელიც ეკუთვნის დღეს უკვე ყველგან აღიარებულ
ხელოვნური ინტელექტის თემატიკას, და რომელმაც დაამტკიცა ა. უაითჰედისა და ბერტნარ
რასელის წიგნიში, "მათემატიკის პრინციპები", წსრმოდგენილი 52 თეორემიდან 38 თეორემა.
შეგვიძლია ვთქვთ, რომ ხელოვნური ინტელექტი დაიბადა 1955 წელს. მათი მიზანი იყო
ეჩვენებინათ, რომ კომპიუტერს შეუძლია უცნობ გარემოში იმოქმედოს ისევე, როგორც
მოქმედებს ადამიანი.
ამ მიზნით მათ შეარჩიეს სტუდენტები, რომლებსაც არ ჰქონდათ შესაბამისი
მომზადება ისეთ დარგში, როგორიცაა მათემატიკური ლოგიკა (მათ აინტერესებდათ
ადამიანის ქცევა უცხო გარემოს შემთხვევაში) და დაუსვეს მათ ამოცანა:
სტუდენტების მიზანი იყო დაემტკიცებინათ, წარმოადგენდა თუ არა მოცემული
გამოსახულება თეორემას. აშკარაა, რომ გამოსახულებები შეიძლება იყოს ძალიან ბევრი და
ისინი შეიძლება ადგენდნენ მიმდევრობათა ჯაჭვებს, როდესაც ერთი გამოსახულებიდან
გამოდის მეორე და ასე შემდეგ. თეორემის დამტკიცება მოცემული გამოსახულებისათვის
დაიყვანება იმ მიმდევრობის პოვნაზე, რომელიც გამომდინარეობს აქსიომებიდან (ან უკვე
დამტკიცებული თეორემებიდან) და მთავრდება დასამტკიცებელი გამოსახულებით. ამიტომ,
ალგორითმი, რომელიც სრული გარანტიით მოგვცემს საშუალებას ვიპოვოთ თეორემის
დამტკიცება თუკი ეს დამტკიცება არსებობს, მუშაობს შემდეგი პრინციპით: საწყისი
აქსიომებიდან და უკვე დამტკიცებული თეორემებიდან ააგებს ყველა შესაძლო
მიმდევრობებს სამი წესის გამიყენებით. ყოველ ნაბიჯზე შეამოწმებს, ხომ არ მიიღო უკვე
დასამტკიცებელი გამოსახულება. ასევე ყოველ ნაბიჯზე მოიშორებს დუბლიკატებს, ანუ
ისეთ გამოსახულებებს, რომლებიც უკვე აიგო ამ ან რომელიმე სხვა მიმდევრობაში. ადრე თუ
გვიან თეორიულად ალგორითმი აუცილებლად იპოვის სასურველი თეორემის დამტკიცებას,
რა თქმა უნდა, თუკი ის არსებობს. ალგორითმი იძლევა დამტკიცების პოვნის სრულ
გარანტიას, მაგრამ მისი ეფექტიანობა სერიოზულ ეჭვს იწვევს დროისა და მეხსიერების
თვალსაზრისით (ასეთი ალგორითმი ცნობილია ბრიტანეთის მუზეუმის ალგორითმის
სახელით).
( p  q )  p
LG –თვის გარდა ხუთი აქსიომისა ცნობილია აგრეთვე ორი თეორემა:
A  ( A B ) (1)
( A  B )  ( A  B ) (2)

-9-
იმისთვის რომ LG დაამტკიცოს, რომ მოცემული გამოსახულება თეორემაა იქცევა ასე:
პირველ თეორემაში A –ს მაგივრად ჩასვავს p -ს, ხოლო B –ს მაგივრად q -ს. მიიღებს
გამოსახულებას p  ( p  q ) (3)
შემდეგ (2)–ში ჩასვავს A –ს მაგივრად p -ს და B –ს მაგივრად ( p  q ) –ს. მიიღებს
გამოსახულებას [ p  ( p  q )]  [ ( p  q )  q ]
გამოიყენებს რა გამოყოფის წესს, მიიღებს, რომ გამოსახულება
( p  q )  q თეორემაა.
მარტო ეს მეთოდები არ იქნებოდა საკმარისი LG–ს წარმატებული მუშაობისათვის, მას
რომ არ გააჩნდეს მსგავსებაზე შედარებისა და გამოცდის პროცედურები. მსგავსებაზე
შედარების პროცედურის მიზანია აღმოაჩინოს ის თეორემები თუ აქსიომები, რომლებიც
ყველაზე ეფექტურად შეიძლება გამოვიყენოთ მოცემული თეორემის დასამტკიცებლად. ეს
პროცედურა მდგომარეობს შემდეგში:
თუ მოცემულია გამოსახულება p  ( q  p ) , LG ადარებს მას p  ( q  p ) აქსიომას
და სწრაფად აღმოაჩენს, რომ აქსიომაში უნდა შეიცვალოს კავშირი  კავშირზე  . მოახდენს
რა ამ შეცვლას, მიიღებს p  ( q  p ) შემდეგ შეცვლის q -ს q -თი და მიიღებს
გამოსახულებას p  ( q  p ) .
შედარების პროცედურა ძალიან ეფექტურია და საშუალებას გვაძლევს შევამციროთ
ქვეამოცანების ძებნის პროცესი. ამ პროცედურის ეფექტურობა აიხსნება იმით, რომ შედარება
ხდება კომპონენტების მიხედვით და უკუკავშირის საშუალებით შედეგები შეიძლება
გამოყენებული იქნას შემდეგი ბიჯის სამართავად. შედარების პროცედურა გამოიყენება
ყველა მეთოდში, მაგრამ მისი ეფექტურობისთვის საჭიროა ჯერ ვიპოვოთ სწორი თეორემა ან
აქსიომა, რომელსაც შევადარებთ გამოსახულებას. ამ მიზნისთვის LG–ს გააჩნია მსგავსებაზე
გამოცდის პროცედურა, რომლის თანახმადაც, LG ორ ლოგიკურ გამოსახულებას თვლის
მსგავსად, თუ მარცხენა და მარჯვენა ნაწილებში თანაბარია:
1. დონეთა მაქსიმალური რაოდენობა მთავარი კავშირიდან ნებისმიერ ცვლადამდე;
2. განსხვავებულ ცვლადთა რაოდენობა;
3. ცვლადების საერთო რაოდენობა გამოსახულებაში.
LG-ს ყველა ოთხივე მეთოდის სამართავად გააჩნია მმართველი პროგრამა, რომელიც
თავისი არსით არის ალგორითმული, და მდგომარეობს შემდეგში. მეთოდების გამოყენება
ხდება მკაცრად განსაზღვრული მიმდევრობით. პირველად გამოიყენება ჩასმის მეთოდი,
შემდეგ გამოყოფის მეთოდი, მერე პირდაპირი ჯაჭვწარმოქმნის მეთოდი და ბოლოს
უკუჯაჭვწარმოქმნის მეთოდი. ამ გზით LG ცდილობს გამოიმუშაოს ახალი ქვეამოცანა,
რომელსაც დაამტკიცებს ჩასმის მეთოდით. თუ ეს შეუძლებელია, ქვეამოცანა შეიტანება
ქვეამოცანათა სიაში. თუ დამტკიცდება თუნდაც ერთი ქვეამოცანა ჩასმის მეთოდით, ცხადია
ამით დამტკიცებული იქნება საწყისი თეორემაც. თუ ვერ მოხერხდა საწყისი თეორემის
დამტკიცება ვერცერთი მეთოდის გამოყენებით, მაშინ ამოირჩევა ახალი ქვეამოცანა
ქვეამოცანათა სიიდან და მისთვის ყველაფერი მეორდება ახლიდან.
პროცესი დამთავრდება თუ ნაპონი იქნება დამტკიცება, ან როდესაც კომპიუტერს აღარ
ეყოფა მეხსიერება. პროცესი შეიძლება შეწყდეს მაშინაც, როდესაც ამოიწურება დრო,
რომელიც ამ თეორემის დასამტკიცებლად იყო გამოყოფილი.
ამგვარად, თეორემის დამტკიცებისას LG წარმოქმნის ქვეამოცანათა გარკვეულ ხეს,
რომლის საშუალებითაც ის ცდილობს დასამტკიცებელი გამოსახულებიდან მიაღწიოს
აქსიომებს და უკვე დამტკიცებულ თეორემებს. მიუხედავად იმისა, რომ იმ ქვეამოცანათა
სიმრავლე, რომელსაც გამოიმუშავებს LG გაცილებით მცირეა, ვიდრე ის სიმრავლე,
რომელსაც ააგებდა ბრიტანეთის მუზეუმის ალგორითმი, არსებობს ამოცანები, რომელთა
გადაწყვეტა არ შეუძლია არც LG. ავტორთა აზრით, ეს იმიტომ ხდება, რომ მმართველი
პროგრამა არის ალგორითმული სახის, რაც იძლევა იმის გარანტიას, რომ თუკი რაიმე
- 10 -
ქვეამოცანა შეიძლება მიღებული იქნას გამოყოფის და ჯაჭვწარმოქმნის მეთოდებით, ის
აუცილებლად იქნება აგებული (თუნდაც არ არსებობდეს მისი საჭიროება. გარდა ამისა,
ყველა ეს ქვეამოცანა განიხილება იმ თანმიმდევრობით, რომლითაც ისინი წარმოიშვნენ, რაც
აგრეთვე დიდ გავლენას ახდენს დამტკიცების პროცესსზე. ასეთი მმართველი პროგრამის
გამო და იმის გამო რომ მეთოდები დიდი რაოდენობით გამოიმუშავებენ ქვეამოცანებს,
ყოველ ბიჯზე ქვეამოცანათა ხე იზრდება ექსპონენციალურად. ეს კი იწვევს იმას, რომ თუ
დამტკიცება შეიცავს რამდენიმე ბიჯს (სამზე მეტს) LG ეფექტიანობა ძალიან მცირეა.
მაგალითად, მან შეძლო დაემტკიცებინა მხოლოდ ერთი ოთხბიჯიანი თეორემა.
სინამდვილეში მთავარი მიზეზი, რატომაც არ შეუძლია LG-ს რთული ამოცანების ამოხსნა
სხვაა და ჩვენ მას შემდეგ განვიხილავთ. პროგრამა გამოქვეყნდა 1956 წელს და გამოიწვია
დიდი დაინტერესება. ეს იყო პირველი პროგრამა, რომელიც მიეკუთვნებოდა მეცნიერების
ახალ დარგს - ხელივნურ ინტელექტუალურ სისტემებს. ის ახდენდა ადამიანის აზროვნების
მოდელირებას ინფორმაციული პროცესების დონეზე. აღსანიშნავია ისიც, რომ ეს იყო ასევე
პირველი პროგრამა, რომელსაც შეეძლო ოპერირება არა მარტო რიცხვებზე, არამდ
სიმბოლოებზე.
1.4 ხელოვნური ინტელექტუალური სისტემების განვითარება.ძალიან მალე გაჩნდა კიდევ
სხვა პროგრამები, რომლებიც ცდილობდნენ ამოეხსნათ სხვადასხვა ტიპის ამოცანები
ანალოგიური მიდგომით. კერძოდ, შეიქმნა პროგრამა, რომელიც ხსნიდა გეომეტრიულ
ამოცანებს სასკოლო კურსიდან; პროგრამა, რომელიც სიმბოლურ დონეზე ხსნიდა
ინტეგრალურ განტოლებებს; პროგრამა, რომელიც ახდენდა ამწყობი კონვეირის მუშაობის
ბალანსირებას და სხვა. ყველა ამ ტიპის პროგრამისთვის დამახასიათებელი იყო ისეთი
პროცედურების გამოყენება, რომლებსაც უწოდებნენ ევრისტიკებს (ამ ცნების ზუსტ
განმარტებას ჩვენ შემდეგ ვნახავთ) და რომლებიც გამომდინარეობენ არა ამოცანის
პირობებიდან, არამედ ეფუძნებიან ბუნებრივი ინტელექტის ზოგად მოსაზრებებს ან/და
გამოცდილებას ასეთი ამოცანების ამოხსნის დროს. ამიტომ ხელოვნური ინტელექტის ამ
მიმართულებას ეწოდა ევრისტიკული პროგრამირება.
ინტელექტუალური სიტემები არ შემოიფარგლება მხოლოდ ევრისტიკული
პროგრამირებით. როგორც აღვნიშნეთ, Nჯერ კიდევ ორმოციან წლებში, უ. მაკ–კალოკმა და უ.
პიტსმა გამოაქვეყნეს სტატია, რომელშიც მათ შემოგვთავაზეს ადამიანის ნეირონული
სისტემის ძირითადი ელემენტის – ნეირონის მოდელი. იმ ინფორმაციისსაფუძველზე, რაც
მეცნიერებას გააჩნია ნეირონის აგებულებისა და ფუნქციონირების შესახებ, მათ დაასკვნეს,
რომ ნეირონი ეს არის ელემენტი მრავალი შესასვლელითა და ერთი გამოსასვლელით.
შესასვლელები შეიძლება იყოს ორმდგომარეობაში, აღგზნებული ან მოსვენებული. იმის და
მიხედვით რამდენი შესასვლელია აგზნებული და როგორია ნეირონის აგზნების ზღურბლი,
ნეირონის გამოსასვლელზე ან გვექნება სიგნალი (ნეირონი აღიგზნება) ან სიგნალი არ
გვექნება (ნეირონი არ აღიგზნება).უ. მაკ-კალოკმა და უ. პიტსმა შექმნეს ასეთი ელემენტის
ტექნიკური მოდელი, რომელსაც უწოდეს ხელოვნური ნეირონი და დაამტკიცეს, რომ ასეთი
ხელოვნური ნეირონებისაგან შეიძლება შეიქმნას ქსელი, რომელშიც ნეირონები იმყოფებიან
“ჩართულ” ან “გამორთულ” მდგომარეობაში. გადასვლა “ჩართულ” მდგომარეობაში ხდება
მეზობელი ნეირონების სტიმულაციის შედეგად. ასეთი ნეირონული ქსელების საშუალებით
შეიძლება გამოვთვალოთ ნებისმიერი გამოთვლადი ფუნქცია და ამასთანავე მარტივი
ნეირონული ქსელებით მოვახდინოთ ნებისმიერი ლოგიკური კავშირის (“არა”, “ან”, “და” და
ასე შემდეგ) რეალიზაცია. გარდა ამისა, მათ გამოთქვეს მოსაზრება, რომ ასეთ ლოგიკურ
ქსელებს უნდა გააჩნდეთ დასწავლის უნარი.
ეს მოსაზრება 1957 წელს დაადასტურა ფ. როზენბლატმა, რომელმაც გამოაქვეყნა
ასეთი ხელოვნური ნეირონების საშუალებით შექმნილი ქსელის-პერცეპტრონის (აღმქმელი
მოწყობილობა) აღწერა, რომელსაც შეუძლია შეასრულოს უფრო მეტი, ვიდრე ესაა

- 11 -
ლოგიკური გამოთვლები, კერძოდ პერცეპტრონს შეუძლია მაგალითად დაისწავლოს და
შემდეგ ამ დასწავლის საფუძველზე გაარჩიოს ერთმანეთისგან ორგანზომილებიანი
ფიგურები, რომლებიც მიეკუთვნებიან ობიექტთა სხვადასხვა კლასებს.
ფ. როზენბლატის უმარტივესი სამშრიანი (დღევანდელი შეხედულებების თანახმად
ერთშრიანი) პერცეპტრონი შედგება გამოსახულების აღმქმელი ნეირონების პირველი (S)
შრისაგან, რომელზეც ხდება გამოსახულების პროეცირება. თუ ნეირონზე მოხვდება
გამოსახულების რაიმე ნაწილი, ნეირონი აღიგზნება და გამოსასვლეზე გვექნება სიგნალი (1),
თუ არა (ნეირონი მოსვენებულ მდგომარეობაშია) და გამოსასვლელზე სიგნალი არა გვაქვს
(0). გამოსახულების აღმქმელი შრე დაკავშირებულია ასოციაციური ნეირონების (A) შრესთან
ნებისმიერად (მაგალითად, ყველა ყველასთან). ამ შრის ნეირონებს გააჩნიათ გარკვეული
ზღურბლი და თუ შემოსული სიგნალების ჯამი გადააჭარბებს ამ ზღურბლს,
გამოსასვლელზე გვექნება სიგნალი, რომელიც (r) რეგულატორების საშუალებით შეიძლება
გავაძლიეროთ ან შევასუსტოთ. მესამე შრე შედგება ერთი ნეირონისაგან, რომელიც
წარმოადგენს სუმატორს გარკვეული ზღურბლით და ერთი გამოსასვლელით, რომელზედაც
შეიძლება გვქონდეს სიგნალი (1), ან არ გვქონდეს სიგნალი (0).

A r

სურ.1.2.როზენბლატისსამშრიანიპერცეპტრონი.

ასეთ პერცეპტრონს შეუძლია განასხვაოს ერთმანეთისაგან ობიექტების ორი კლასი.


ჩვენ უნდა მივაღწიოთ იმას, რომ ერთი კლასის ობიექტების პროეცირებისას პერცეპტრონის
გამოსასვლელზე ვღებულობდეთ ერთ სიგნალს (მაგალითად 1) და მეორე კლასის
ობიექტებზე მეორე სიგნალს (0), ანუ უნდა დავასწავლოთ პერცეპტრონს ობიექტების
ერთმანეთისაგან გარჩევა. ამ მიზანის მიიღწევა შეიძლება (r) რეგულატორების საშუალებით.
ფაქტობრივად, პერცეპტრონის თავდაპირველი სტოქასტური სქემა დასწავლის პროცესში
ღებულობს გარკვეულ სტრუქტურას, რომელიც შეესაბამება იმ ობიექტებს, რომელთა
პროეცირებაც ხდება პერცეპტრონის შესასვლელზე. ფ. როზენბლატმა დაამტკიცა თეორემა
ასეთი პერცეპტრონის კრებადობის შესახებ, რაც იმას ნიშნავს, რომ პერცეპტრონს შეუძლია
დაისწვალოს იმ ობიექტთა კლასები რომლებიც შეიძლება წარმოვადგინოთ პერცეპტრონში.

- 12 -
ხელოვნური ინტელექტის განვითარებაში გხვდება როგორც აღმავლობის, ასევე
დაცემის პერიოდები. პირველი ასეთი პერიოდი დაიწყო გასული საუკუნის 70 წლებში,
რომლის მიზეზიც იყო 1969 წელს მ. მინსკისა და ს. პაიპერტის გამოაქვეყნებული წიგნი,
რომელშიც ავტორება აჩვენეს, რომ პერცეპტრონს, რომელიც წარმოადგენს ნეირონული
ქსელის უმარტივეს ად შეუძლია დაისწავლოს ყველაფერი, რაც შეიძლება წარმოდგენილი
იქნას პერცეპტრონში, მაგრამ პრობლემა მდგომარეობს სწორედ იმაში, რომ ძალიან ბევრი,
საინტერესო სტრუქტურების წარმოდგენა პერცეპტრონში შეუძლებელია. მაგალითად,
ერთშრიანი პერცეპტრონი ვერასოდეს შეძლებს „გამომრიცხავი ან“ ოპერაციის დასწავლას.
ამის შედეგად ერთ ხანს შეწყდა სამუშაოები ამ მიმართულებით, მხოლოდ ოთხმოციან
წლებში ჰოპფილდისა და დ. რუმელჰარტის შრომების შემდეგ დაიწყო ნეირონული
ქსელების ხელახალი განვითარება და მიღებული იქნა ახალი შედეგები. რომლებიც უკვე
დიდი ხანია გამოიყენება პრაქტიკაში.
ასეთი პერიოდები ხშირი იყო ხელოვნური ინტელექტის განვითარებაში,
განსაკუთრებით დიდი პრობლემებია ბუნებრივი ენის სემანტიკის გაგებაში ხელოვნური
ინტელექტუალუი სისტემის მიერ და აქედან გამომდინარე, ხელოვნური ინტელექტუალური
სისტემის მიერ ერთი ენიდან მეორეზე თარგმანის შესრულებაში.
1.5. განვითარების რა დონეს შეიძლება მიაღწიოს ხლოვნურმა ინტელექტმა? ჩვენ ძალიან
მოკლედ განვიხილეთ ხელოვნური ინტელექტუალური სისტემის ორი მიმართულება,
მაგრამ ინტელექტუალური სისტემების თეორიაში არსებობს კიდევ სხვა მიმართულებები,
რომელთა განვითარებაც ასევე აუცილებელია მთლიანად ინტელექტუალური სისტემების
განვითარებისთვის. ყველა ამ მიმართულებების განხილვას ჩვენ ვერ მოვასწრებთ არა თუ ამ
ლექციაში, არამედ ლექციათა მთელ კურსშიც. ამიტომ ლექციის დასასრულს მოკლედ
განვიხილავთ ერთ პრობლემას, რომელიც აწუხებს ყველას, ვინც კარგადაა გარკვეული
როგორ ვითარდება ხელოვნური ინტელექტუალური სისტემები და მათაც, ვინც არ იცნობს
მეცნიერების ამ დარგს. ესაა მარტივი კითხვა: განვითარების რა დონეს შეიძლება მიაღწიოს
ხელოვნურმა ინტელექტუალურმა სისტემამ? შეიძლება თუ არა, რომ ხელოვნური
ინტელექტუალურისისტემის ინტლექტმა გადააჭარბოს ადამიანისას? კითხვა მარტივია,
მაგრამ პასუხი ძალიან ძნელია. დღეისთვის პასუხი ამ კითხებზე ფაქტობრივად არ არსებობს.
მოვიყვანოთ მხოლოდ ორი შესაძლო პასუხი. ერთი მათგანი დადებითად პასუხობს ამ
კითხვას, მეორე კი უარყოფითად. რომელი იქნება თქვენთვის უფრო მისაღები, ეს
დამოკიდებულია თქვენზე.
ყველა იმ თვისებების და პარამეტრის ჩამოთვლა, რომლებსაც უნდა აკმაყოფილებდეს
ხელოვნური ინტელექტუალური სისტემა, რათა მისი ქცევა შეფასდეს როგორც აზროვნება,
ალბათ ძალიან ძნელია. 1948 წელს ინგლისელმა მეცნიერმა ა. ტიურინგმა, რომელიც როგორც
უკვე აღვნიშნეთ, თვითონ იდგა კომპიუტერების შექმნის სათავეებთან, სტატიაში
“ინტელექტუალური მანქანები”, შემოგვთავაზა “მარტივი” ტესტი კომპიუტერის
ინტელექტუალურობის დასადგენად. ტესტი მდგომარეობს შემდეგში: მოვათავსოთ ერთ
ოთახში ადამიანი, მეორეში მანქანა და მესამეში გამომცდელი. მათ შორის ვიზუალური
კავშირი არ არსებობს და გამომცდელმა არ იცის, რომელ ოთახში ზის ადამიანი და რომელ
ოთახში დგას მანქანა. ისინი დაკავშირებულნი არიან ერთმანეთთან ისე, რომ გამომცდელს
შეუძლია გაცვალოს ინფორმაცია ადამიანთან და მანქანასთან მხოლოდ წერილობით. თუ
გამომცდელი თავის მიერ დასმულ შეკითხვებზე მიღებული პასუხების მიხედვით ვერ
შეძლებს გაარჩიოს რომელ ოთახში ზის ადამიანი, ხოლო რომელში დგას მანქანა, მაშინ
მანქანა შეიძლება ჩაითვალოს ინტელექტუალურ სისტემად, წინააღმდეგ შემთხვევაში კი არა.
ა. ტიურინგმა ამავე სტატიაში ჩამოთვალა თუ რა შეასძლებლობები უნდა გააჩნდეს
ინტელექტუალურ სისტემას, რომ ადამიანის თანაბრად შეძლოს ამ კონკურსში მონაწილეობა:

- 13 -
 შეეძლოს ტექსტების დამუშავება ბუნებრივ ენაზე, რაც მისცემს მას საშუალებას
ესაუბროს გამომცდელს რომელიმე ბუნებრივ ენაზე;
 გააჩნდეს ცოდნის წარმოდგენის საშუალებები, რათა შეძლოს გაიგოს რას ეკითხება
გამომცდელი;
 ჰქონდეს ლოგიკური დასკვნების გამოტანის უნარი, რათა შეძლოს მეხსიერებაში
შენახული ცოდნის და მიღებული ინფორმაციის საფუძველზე გამოიტანოს დასკვნები
და უპასუხოს დასმულ შეკითხვას;
 ფლობდეს მანქანური დასწავლის საშუალებებს, რომ შეეძლოს აღმოაჩინოს უკვე
ნაცნობი სიტუაციები და აგრეთვე გაერკვეს ახალ სიტუაციებში და მოახდინოს მათზე
რეაგირება.
ესაა ტიურინგის არასრული ტესტი. სრული ტესტის შემთხვევაში გამომცდელს გააჩნია
აგრეთვე ვიდეოკავშირი, რომლის საშუალებითაც მას შეუძლია შეამოწმოს ობიექტის მიერ (ისე,
რომ ვერ ხედავდეს თვით ობიექტს) გარე სამყაროს აღქმისა და მასში მოქმედების უნარი. ასეთ
შემთხვევაში მანქანას დამატებით უნდა შეეძლოს:
 ობიექტების აღქმა, ანუ უნდა ჰქონდეს გრძნობის სხვადასხვა ორგანოები (შეძლება
ადამიანზე მეტიც), რათა შეძლოს გარემოდან მიიღოს მისთვის საჭირო ინფორმაცია.
 გააჩნდეს ისეთი ტექნიკური საშუალებები, რომ შეძლოს სივრცეში გადაადგილება და
გარემოზე ზემოქმედება.
ესაა არგუმენტი იმათვის ვისაც სჯერა, რომ ხელოვნურმა ინტელექტმა შეიძლება
მიაღწიოს ბუნებრივი (ადამიანური) ინტელექტის დონეს, ან გადააჭარბოს კიდეც მას. ეხლა
მოვისმინოთ მოწინააღმდეგეთა არგუმენტიც.
1980 წელს ჯონ სერლიმ გამოაქვეყნა ეგრეთ წოდებული „ჩინური ოთახის“
ექსპერიმენტი. წარმოვიდგინოთ იზოლირებული ოთახი, რომელშიც იმყოფება ჯ. სერლი,
რომელმაც არ იცის არცერთი ჩინური იეროგლიფი, მაგრამ მას აქვს ზუსტი ინსტრუქცია იმის
შესახებ თუ როგორ უნდა იმოქმედოს კონკრეტულ სიტუაციაში. მაგალითად, მითითებულია
თუ რომელი კალათიდან რომელი იეროგლიფი უნდა ამოიღოს და როგორ განათავსოს
საჭირო ადგილას, თუმცა მას არ ესმის იეროგლიფების მნიშვნელობა. ოთახის გარეთ
იმყოფება დამკვირვებელი, რომელიც ფლობს ჩინურს და პატარა ნახვრეტიდან აწვდის
იეროგლიფებს იმ მიმდევრობით, რომ ჩინური დამწერლობის მცოდნე გაიგებს შეკითხვას,
მაგალითად, „რომელია თქვენი საყვარელი ფერი?“ ინსტრუქცია, რომელიც გააჩნია სერლის
და რომელსაც ის ასრულებს, შედგენილია როგორც კომპიუტერის პროგრამა. ის შეარჩევს
პასუხს, მაგალითად „წითელი“ და მიუთითებს სერლის, თუ როგორ უნდა იმოქმედოს.
ცხადია, რომ ოთახის გარეთ მყოფი დამკვირვებელი ვერაფერს მიხვდება და ის ჩათვლის,
რომ პასუხი ეკუთვნის სერლის და რომ სერლი ფლობს ჩინურ ენას.
ჯ. სერლის ამ ექსპერიმენტის შედეგი გადააქვს სწორედ ხელოვნურ ინტელექტზე იმის
დასამტკიცებლად, რომ რაც არ უნდა რაციონალურად და ზუსტად მოქმედებდეს
ხელოვნური ინტელექტუალური სისტემა ის ვერასდროს შეძლებს იაზროვნოს ისევე,
როგორც აზროვნებს ადამიანი.
ცხადია, რომ არც ეს ექსპერიმენტი არაა აბსოლუტური ჭეშმარიტება. მასაც
გამოუჩნდნენ მოწინააღმდეგები და ასაბუთებენ, რომ ჯ. სერლი ცდება. ჩემი აზრით კი ეს
ექსპერიმენტები ასაბუთებენ, რომ ჯერ ადრეა ვამტკიცოთ, თუ რა შედეგებს მოგვიტანს
ხელოვნური ინტელექტის განვითარება.

სავარჯიშოები:

- 14 -
1.ჩამოაყალიბეთ რა წარმოადგენს ხელოვნური ინტელექტის შეისწავლის საგანს.
2.განმარტეთ, როგორაა დაკავშირებული ხელოვნური ინტელექტის წარმოშობა
კომპიუტერული ტექნიკის განვითარებასთან.
3.ჩამოთვალეთ რა ძირითად მიმართულებებს შეიცავს ხელოვნური ინტელექტი და
თქვენი აზრით, რომელია ყველაზე რთული და რატომ.
4. ხელოვნური ინტელექტის რომელ მიმართულებას ეკუთვნის პროგრამა LG და რით
განსხვავდება ისმანამდეარსებულიპროგრამებისაგან?
5. ჩამოაყალიბეთ რა შეისწავლეს უ. პიტსმა და უ. მაკ-კალოკმა და როგორ შეძლეს
ბიოლოგიური ნეირონის მოდელირება.
6. აღწერეთ, რაპრინციპიუდევსსაფუძვლად ფ.როზენბლატის მიერშექმნილ პერცეპტრონს.
7. რატომვერხერხდებაევრისტიკული პროგრამირების მეთოდებით რთული
ამოცანებისამოხსნა?
8.რას წარმოადგენს ხელოვნური ნეირონი და რა ფუნქციები
შეიძლებააღიწეროსმათისაშუალებით?
9.ადამიანური ინტელექტის რაკომპონენტი არარისგათვალისწინებული ევრისტიკულ
პროგრამირებაში?
10. როგორც ცნობილია, არსებობენ პრობლემები, რომელთა გადაჭრა კომპიუტერებს
ძალიან უჭირთ პრობლემები, რომელთა გადაჭრაც დღეს შეუძლებელია. ნიშნავს ეს იმას,
რომხელოვნური ინტელექტის შექმნა შეუძლებელია?
11. როგორც ვნახეთ, ლ. სერლი ამტკიცებს, რომ კომპიუტერს არ შეიძლება ჰქონდეს
ინტელქტი, რადგანაც ყველაფერი, რასაც ის აკეთებს, გათვალისწინებულია მის
პროგრამაში და ის ასრულებს ამ მითითებს. ჩნდება კითხვა, ყველაფერი, რასაც ასრულებს
ადამიანი გათვალისწინებულია ფიზიკისა და ბიოლოგიის კანონებით, რასაც ემორჩილება
ადამიანის სხეული, რომელიც შედგება ატომებისა და მოლეკულებისაგან. მაშინ გამოდის,
რომ არც ადამიანს არ შეიძლება ჰქონდეს ინტელექტი?
12. თქვენი აზრით, რა ქმედებების შეესრულება არ შეუძლია დღეს ხელოვნურ
ინტლექტუალურ სისტემას:
ა) მანქანის ტარება თბილისის ქუჩებში;
ბ) სუპერმარკეტში ერთი კვირის სამყოფი პროდუქტის შეძენა;
გ) რეალურ დროში სტატიის თარგმნა ქართულიდან ინგლისურ ენაზე;
დ) ახალი თეორემების დამტკიცება მათემატიკაში;
ე) სრული და კვალიფიციური იურიდიული კონსულტაციის გაწევა,
იმ ამოცანებისთვის, რომელთა შესრულება ხელოვნურ ინტელექტუალურ სისტემას დღეს
არ შეუძლია, ახსენით რა არ იცის ჯერ სისტემამ? რა უშლის ხელს?

- 15 -
ლექცია 2.
პრობლემის (ამოცანის) წარმოდგენა ქვეამოცანათა და მდგომარეობათა
სივრცეებში. ძებნის არაინფორმირებული ალგორითმები.

2.1. ინტელექტუალური აგენტის ცნება.აგენტის ცნება მოდის ლათინური სტყვიდან agere, რაც
ნიშნავს იმიქმედე. ანუ ყველაფერი რაც მოქმედებს შეიძლება იყოს აგენტი, მაგრამ
იგულისხმება, რომ ხელოვნური ინტელექტის მქონე აგენტები განსხვავებით ჩვეულებრივი
“პროგრამებისაგან” ფლობენ კიდევ რაღაც განსხვავებულ თვისებებს. კერძოდ, მათ შეუძლიათ
ფუნქციონირება ავტონომიურად, აქვთ გარემოს აღქმის უნარი, არსებობენ ხანგრძლივი
დროის განმავლობაში, ადაპტურები არიან გარემოს ცვლილებების მიმართ და რაც ყველაზე
უფრო მთავარია, შეუძლიათ თავის თავზე აიღონ სხვების მიერ დასმული მიზნების მიღწევა.
ვუწოდოთ ჩვენს აგენტს რაციონალური, თუ მას შეუძლია მიაღწიოს საუკეთესო შედეგებს
დეტერმინირებულ გარემოში, ან თუ გარემო არაა დეტერმინირებული – საუკეთესო
მოსალოდნელ შედეგებს. რაციონალურობის კონცეფცია თავისუფლად შეგვიძლია
გამოვიყენოთ ნებისმიერი აგენტის მიმართ, რომელიც მოქმედებს რაიმე გარემოში, რომლის
წარმოდგენაც კი ჩვენ შეგვიძლია.
2.2.ამოცანათ ტიპები.ცნება ამოცანა ხშირად გამოიყენება პრობლემის სინონიმად, თუმცა მათ
შორის არის გარკვეული განსხვავებაც. უფრო ხშირად, როდესაც ვხმარობთ სიტყვას
პრობლემა, წარმოგვიდგენია რაღაც სიტუაცია, რომელიც მოითხოვს ქმედებებს მის
შესაცვლელად, მაგრამ ჩვენ არ ვიცით თუ რა უნდა მოვიმოქმედოთ, რათა ეს პრობლემა
გადავჭრათ. პირიქითაა საქმე, როცა ვიყენებთ ტერმინს ამოცანა. “დღეს ბევრი ამოცანა მომცეს
სახლში დავალებად”. ჩვენ აქ ვიცით როგორაა ჩამოყალიბებული ამოცანა და ვიცით თუ
როგორი მეთოდებით უნდა ამოვხსნათ ის. თვით ამ სიტყვებშიც იგულისხმება გარკვეული
სხვაობა. ამოცანა უნდა ამოვხსნათ, პრობლემა კი უნდა გადავჭრათ.
2.3. ამოცანის წარმოდგენა ქვეამოცანათა სივრცეში.სინამდვილეში კი ეს ყოველთვის ასე არაა,
რადგანაც არსებობენ ამოცანები, რომელთა გადაჭრა ამოხსნის არსებული მეთოდებით
რეალურ დროში ყოველთვის არაა შესაძლებელი ან მოსახერხებელი. ამის მაგალითი ჩვენ
ვნახეთ პირველ ლექციაზე, როდესაც განვიხილეთ თეორემების დამტკიცების ბრიტანული
მუზეუმის ალგორითმი.
ზოგადად, როდესაცუცნობია ამოცანის ამოხსნის (ან პრობლემის გადაჭრის) ზუსტი
ალგორითმი, როგორც ეს იყო ლოგიკური თეორემების დამტკიცების შემთხვევაში, ჩვენ
შეგვიძლია დავაპროგრამოთ აგენტი ძებნაზე ისეთნაირად, რომ მან იპოვოს ამოხსნა შესაძლო
ამონახსნთა გადარჩევის გზით. ამისათვის აგენტმა უნდა იცოდეს მინიმუმ სამი რამე:
1. რას ეძებს (გააჩნდეს მიზანი, რომლის მიღწევაც ნიშნავს ამოცანის ამოხსნას):
2. სად ეძებს (გარემო, რომელშიც აგენტს უხდება მოქმედებათა შესრულება);
3. როგორ ეძებს (რა ქმედებების შესრულება შეუძლია მიზნის მისაღწევად).
ამ პირობების აღწერას ეწოდება ამოცანის წარმოდგენა. ამოცანის წარმოდგენა
შესაძლებელია ორი სხვადასხვა სახით:
1. ძირითადი ამოცანა დავყოთ უფრო პატარა ქვეამოცანებად, რომელთა ამოხსნაც
უფრო ადვილი იქნება, ვიდრე საწყისი ამოცანის ამოხსნა. ასეთ შემთხვევაში
ამოცანის ამოხსნა მიიღწევა ყველა იმ ქვეამოცანების ამოხსნის შემდეგად,
რომლებადაც დაიყოფა ამოცანა. ამ წარმოდგენას უწოდებენ ამოცანის წარმოდგენას
ქვეამოცანათა სივრცეში.
2. წარმოვადგინოთ ამოცანა მდგომარეობათა სივრცეში. ანუ განვიხილოთ ყველა
შესაძლო მდგომარეობები, რომლებიც კი შეიძლება შეგვექმნას ამოცანაში და
ვიმოძრაოთ ამ მდგომარეობებში ამოცანის დასაწყისიდან მის ამოხსნამდე.
16
განვიხილოთ თითოეული აღწერა უფრო დაწვრილებით. დავიწყოთ ამოცანის
წარმოდგენით ქვეამოცანათა სივრცში. აღვნიშნოთ საწყისი ამოცანა აღვნიშნოთ P ასოთი.
დავყოთ ეს ამოცანა რამდენიმე ერთმანეთისგან დამოუკიდებელ ქვეამოცანებად
p1 , p2 , ... pn . (ეს დაყოფა არაა აუცილებელი იყოს ერთადერთი).
განვიხილოთ თითოეული ქვეამოცანა ცალცალკე. თუ რომელიმე ამოცანის ამოხსნა
ვიცით, ან ის იხსნება ერთი ქმედებით, აღვნიშნოთ ის როგორც ამოხსნადი. თუ ის ის არ
ახსნება ერთი მოქმედებით, მაშინ დავშალოთის კიდევ უფრო პატარა ქვეამოცანებად და
თუ ის არ იშლება უფრო პატარა ქვეამოცანებად აღვნიშნოთ ის როგორც ამოუხსნადი
ამოცანა (იხ. სურ.2.1). სურათზე განხილულია „და“ ტიპის მარტივი გრაფი, რომელიც არ
შეესაბამება ამოცანის სრულ დაშლას. ამოცანა იქნება სრულად დაშლილი, როდესაც ყველა
დამამთავრებელი წვერო შეესაბამება მარტივ ამოცანას, რომელიც იხსნება ერთი ქმედებით
ან წვეროს, რომელიც შეესაბამება ამოუხსნად ამოცანას. საწყისი ამოცანა ჩვენ შეგვეძლო
დაგვეშალა სულ სხვა ქვეამოცანებადაც, რაც მოგვცემდა სხვა გრაფს. ამგვარად, გამოდის
რომ, სინამდვილეში ამოცანის გრაფი წარმოადგენს „და/ან“ ტიპის გრაფს. ამოცანის
ამონახსნი კი იქნება და ტიპის ქვეგრაფი, რომლის ყველა დამამთავრებელი წვეროები
შეესაბამება ერთი ქმედებით ამოხსნად

სურ.2.1. ძირითადი ამოცანის დაშლა ქვეამოცანებად.


წითელი წვეროთი აღნიშნულია ქვეამოცანები, რომლებსაც ამოხსნა არა აქვს.

განვიხილოთ კონკრეტული მაგალითი. ავიღოთ თავსატხი, რომელსაც უწოდებენ


„ხუთმეტს“. ესაა დაფა 4  4(იხ.სურ.2.2), რომელზეც განლაგებულია ხუთმეტი ფიშკა.
დასაწყისში ეს ფიშკები შეიძლება განლაგებული იყოს ნებისმიერად. თამაშის მიზანს კი
წარმოადგენს ამ ფიშკების განლაგება წინასწარ მოცემული გარკვეული თანმიმდევრობით,
ამასთან არ შეიძლება ფიშკის ამოღება და გადასმა სხვა უჯრაშიე. შესაძლებელია მხოლოდ
ფიშკის გადაადგილება ცარიელ უჯრაზე.

5 3 4 12 1 2 3 4
1 6 10 13 5 6 7 8

9 11 14 15 9 10 11 12

2 7 8 13 14 15

ა) საწყისი მდგომარეობა ბ) მიზნის მდგომარეობა


სურ.2.2. ამოცანის წარმოდგენა მდგომარეობათა სივრცეში.
17
ჩვენ ეს ამოცანა შეგვიძლია დავყოთ სხვადასხვა უფრო პატარა ამოცანებად.
პირველშემთხვევაშიამოცანაუნდაგავყოთრამდენიმეუფრო„პატარა“, დამოუკიდებელ
ამოცანად. ასეთ შემთხვევაში საწყისი ამოცანის
ამოხსნამიიღებაყველაამოცანისამოხსნით.აქსიტყვა„პატარის“ქვეშიგულისხმება,რომმიღე
ბულიამოცანებისამოხსნაუფროადვილია,ვიდრესაწყისი ამოცანის. დამოუკიდებელი კი
ნიშნავს, რომ ერთი ამოცანის
ამონახსნისპოვნაარაადამოკიდებულიმეორეამოცანისამონახსნზე.მაგალითად, ჯერ
პირველ სტრიქონში მოვათავსოთ ფიშკები ერთი, ორი, სამი და შემდეგ განვალაგოთ
დანარჩენი ფიშკები, ან პირიქით, ჯერ მოვაწესრიგოთ პირველი სვეტი და შემდეგ
დანარჩენი სვეტები (იხ.სურ. 2.3.).
ამ სურათიდანაშკარადჩანს,რომმეორეამოცანისამოხსნაელემენტარულია,რაც
შეეხებაპირველამოცანას,თუსაწყისამოცანსაქვსერთადერთიამონახსნი,
რომელიცაუცილებლადგადისმოცემულპოზიციაზე,მაშინმისიამოხსნაც უფრო
ადვილი იქნება ვიდრე საწყისი ამოცანისამოხსნა.

5 3 4 12 1 2 3 4
1 6 10 13 5 6 7 8

9 11 14 15 9 10 11 12

2 7 8 13 14 15

ა) პირველიქვეამოცანა

1 2 3 4 1 2 3 4
5 6 7 8 5 6 7 8
9 10 11 12 9 10 11 12
13 14 15 13 14 15

ბ) მეორექვეამოცანა

სურ.2.3. ამოცანის ქვეამოცანებად დაშყოლის მაგალითი

ჩვენ შეგვეძლო გაგვეყო საწყისი ამოცანა არა ორ, არამედ სამ, ან უფრო მეტ პატარა
ამოცანად.თუ დავუკვირდებით, ამოცანის ასეთი აღწერის
შემთხვევაშიამოცანისამოხსნისძებნამოგვიწევსდა/ანტიპისგრაფზე,რაც
მოითხოვსშემოწმდესთითოეულიწვეროსამოხსნადობა.
ამოცანის წარმოდგენას ქვეამოცანათა სივრცეში აქვს თავისი უპირატესობები,
რომელთაგან ერთერთი ყველაზე მნიშვნელოვანია ის რომ გრაფი, რომელზედაც გვიხდება
ძებნა არაა დიდი. მაგრამ თუ ქვეამოცანა არ იხსნება ერთი ქმედებით, ან არ არსებობს მისი
ამოხსნის მარტივი გზა, საჭიროა გამოვიყენოთ ქმედებათა დაგეგმვის ალგორითმები,
რომლებიც საშუალებას მოგვცემენ გავექცეთ ისეთ შემთხვევებს, როდესაც ამოცანის
დაყოფა მიგვიყვანს ისეთ ჩიხში, და როდესაც რომელიმე ქვეამოცანას არ ექნება ამოხსნა.
18
ამისათვის აუცილებელია, რომ მოვახდინოთ ქვეამოცანათა რანჟირება სირთულის
მიხედვით, რათა არ მოვხვდეთ ისეთ სიტუაციაში, როდესაც ქვეამოცანის სირთულე უფრო
მეტი იქნება, ვიდრე იმ ამოცანის, რომელიც დავყავით ქვეამოცანებად. რთული ამოცანების
შემთხვევაში კი ეს წარმოადგენს ძალიან დიდ პრობლემას.
2.3. ამოცანის წარმოდგენა მდგომარეობათა სივრცეში.როგორ შეიძლება წარმოვადგინოთ
ზემოთმოყვანილი ამოცანა მდგომარეობათა სივრცეში?პირველ რიგში უნდა მოვახდინოთ
ყველა შესაძლო მდგომარეობების აღწერა (რომელთა რაოდენობაც ზოგჯერ პატარა
ამოცანებისთვისაც კი იმდენად დიდია, რომ არაეფექტური იქნებოდა მათი შეტანა
კომპიუტერში ჩამოთვლის გზით). მდგომარეობათა აღწერამ უნდა განსაზღვროს
თითოეული ფიშკის და ცარიელი ადგილის მდგომარეობა მოცემულ თექვსმეტ კვადრატზე.
ეს ძალიან ადვილი მისაღწევია 4  4 მატრიცის საშუალებით, სადაც თითოეული ელემენტი
ღებულობს მნიშვნელობებს ნულიდან ხუთმეტის ჩათვლით, იმ პირობით, რომ ყველა
ელემენტი ღებულობს განსხვავებულ მნიშვნელობებს,

a1 ,1 a1 ,2 a1 ,3 a1 ,4
a 2 ,1 a 2 ,2 a 2 ,3 a 2 ,4
a 3 ,1 a 3 ,2 a 3 ,3 a 3 ,4
a 4 ,1 a4 ,2 a4 ,3 a4 ,4

ამ მატრიცაში 0  aij  15 , ნებისმიერი i  k და j  l სრულდება პირობა aij  akl .


ამ სიმრავლეს უწოდებენ მდგომარეობათა სიმრავლეს და აღნიშნავენ S -ით. როგორც
ვნახეთ, ჩვენი ამოცანის შემთხვევაში მისი აღწერა ძალიან მარტივია, მაგრამ არსებობენ
ამოცანები, რომლებისთვისაც ეს უკვე ასე აღარ არის.
ამის შემდეგ გამოვყოთ საწყისი So  S მდგომარეობა, ანუ მდგომარეობარომლიდანაც
აგენტი დაიწყებს ამოცანის ამოხსნას. თავისთავად ცხადია, რომ „ხუთმეტის“ შემთხვევაში
ნებისმიერი მდგომარეობა, გარდა მიზნის მდგომარეობისა შეიძლება იყოს საწყისი
მდგომარეობა, მაგრამ აგენტს აუცილებლად უნდა დავუზუსტოთ საიდან დაიწყოს ამოცანის
ამოხსნა.
იმისათვის, რომ ამოცანის ამოსახსნელად გამოვიყენოთ ძებნის რომელიმე
ალგორითმი, საჭიროა აგენტმა იცოდეს, თუ რა ქმედებების განხორციელება შეუძლია მას.
უფრო ზუსტად კი, თუ როგორ შეიძლება მიიღოს ერთი მდგომარეობიდან მეორე
მდგომარეობა. ამ სიმრავლეს აღნიშნავენ F ასოთი. სხვანაირად ამ სიმრავლეს უწოდებენ
შვილობილ წვეროთა განმსაზღვრელ ფუნქციათა სიმრავლეს (ზოგჯერ ოპერატორების
სიმრავლეს), რომელთა საშუალებითაც ერთი მდგომარეობიდან შეიძლება მივიღოთ მეორე
მდგომარეობა f i  F . ყოველი ასეთი f i ( S k )  S l ფუნქციისთვის როგორც განსაზღვრის
არე, ასევე მნიშვნელობათა სიმრავლე წარმოადგენს S სიმრავლის რაიმე ქვესიმრავლეს,
ამიტომ აგნეტს უნდა შეეძლოს გამოიკვლიოს რომელ მდგომარეობაში შეუძლია მოცემული
ფუნქციის გამოყენება.
თუ დავუბრუნდებით ჩვენს ამოცანას, მისი ფუნქციათა F სიმრავლე შედგება ოთხი
ფუნქციისგან: f 1 - ფიშკის გადაწევა მარცხნივ; f 2 - ფიშკის გადაწევა მარჯვნივ; f 3 - ფიშკის
აწევა ზევით და f 4 - ფიშკის ჩაწევა ქვევით.ფუნქციის გამოყენება შეიძლება მაშინ, როდესაც
უჯრა რომელშიც გვინდა ფიშკის გადწევა, ცარიელია.
შემდეგი პარამეტრი, რომელიც აუცილებელია იმისათვის, რომ აგენტმა შეძლოს
დაიწყოს ამოცანის ამონახსნის ძებნა, ესაა მიზნის მდგომარეობა, ანუ მდგომარეობა, რომლის
19
მიღწევის შემთხვევაში ამოცანის ამოხსნის პროცესი დასრულებულია. ავღნიშნოთ ეს
მდგომარეობა S t -თი. ზოგიერთ ამოცანაში (მაგალითად, „ხუთმეტის“ შემთხვევაში) ასეთი
მდგომარეობა ერთადერთია. მაგრამ ზოგჯერ ძალიან ბევრია (ჭადრაკის შემთხვევაში),
ამიტომ ზოგიერთი თამაშის აღწერისას შეგვიძლია მივუთითოთ ეს მდგომარეობა, ზოგჯერ
კი აშკარად უმჯობესია აღვწეროთ ასეთ მდგომარეობათა ქვესიმრავლე.
ამოცანის აღწერა გრაფიკულად წარმოადგენს გრაფს, რომლის წვეროები აღნიშნავენ
მდგომარეობებს, ხოლო რკალები შეესაბამებიან იმ ქმედებებს, რომელთა საშუალებითაც
შესაძლებელია გადასვლა ერთი მდგომარებიდან მეორეში. ეს გადასვლა აუცილებლად
მოითხოვს რაიმე ქმედებას, რომლის შესრულებაც თავის მხრივ მოითხოვს გარკვეულ
დანახარჯებს. ეს შეიძლება იყოს ფიზიკური ენერგია რომელიც საჭიროა ქმედების
შესასრულებლად, გამოთვლები, რომელიც სჭირდება ამ ქმედების შესრულებას და სხვა. ეს
დანახარჯი ყოველთვის შეიძლება შეფასდეს რაიმე, თუნდაც ძალიან მცირე, დადებითი
რიცხვით. ზოგიერთ ამოცანებში ნებისმიერი მდგომარეობიდან გადასვლა ნებისმიერ
მეზობელ მდგომარეობაში მოითხოვს ერთნაირ დანახარჯებს, როგორც ეს შეიძლება
ჩავთვალოთ მაგალითად რვიანის თამაშის შემთხვევაში. ზოგიერთ ამოცანებში კი შეიძლება
იყოს სხვადასხვა. იმისათვის რომ შევაფასოთ რამდენად ოპტიმალურად მოქმედებს აგენტი
შემოგვაქვს გზის ფასის ცნება და ფუნქცია w( t ) , რომელიც წარმოადგენს ყველა გადასვლების
ჯამს საწყისი მდგომარეობიდან მიზნის მდგომარეობამდე. ამგვარად ძებნის ამოცანა
შეიძლება განვსაზღვროთ შემდეგი ხუთი პარამეტრის საშუალებით: { S , S0 , S t , F , w( t )} .

2.4. ერთი და იგივე ამოცანის წარმოდგენა სხვადასხვა მდგომარეობათა


სივრცეში.განვიხილოთ კიდევ ერთი მაგალითი, რვა ლაზიერის ამოცანია. ამ თავსატეხის
მიზანია განვალაგოთ ჭადრაკის დაფაზე რვა ლაზიერი ისე, რომ არც ერთი მათგანი არ
ესხმოდეს თავს არცერთ სხვა ლაზიერს. მიუხედავად იმისა, რომ არსებობენ
სპეციალიზირებული ალგორითმები, რომლებიც ზოგადად ხსნიან ამ ამოცანს n ცალი
ლაზიერისათვის, ის მაინც საინტერესოა ძებნის ალგორითმებისთვის.
შესაძლებელია ამ ამოცანის ორი ძირითადი ფორმულირება. ინკრემენტალური,
რომლის დროსაც გამოიყენება ისეთი ოპერატორები, რომლებიც იწყებენ რა ცარიელი
დაფიდან, თანდათანობით ამატებენ ლაზიერებს დაფაზე, ამასთან, არ ითვალისწინებენ,
ემუქრება თუ არა რომელიმე ლაზიერი სხვა ლაზიერს. სრული მდგომარეობის
ფორმულირება იწყება დაფაზე რვავე ლაზიერის დასმის შემდეგ და ითვალისწინებს მათ
შემდგომ გადაადგილებებს. ასეთი ფორმულირების შემთხვევაში ამოცანის აღწერას აქვს
შემდეგი სახე:
1. მდგომარეობები. მდგომარეობას წარმოადგენს დაფაზე ლაზიერების ნებისმიერი
განლაგება ნულიდან რვამდე.
2. საწყისი მდგომარეობა. დაფაზე არ დგას არც ერთი ლაზიერი.
3. შვილობილი წვეროს განმსაზღვრელი ფუნქცია (ოპერატორი). ლაზიერის დასმა დაფაზე.
4.მიზნის მდგომარეობა. დაფაზეა რვა ლაზიერი და არცერთი მათგანი არ ემუქრება სხვა
რომელიმეს.
5. გზის ფასი. სვლების რაოდენობა საწყისი მდგომარეობიდან მიზნის მდგომარეობამდე.
ამ შემთხვევაში საჭიროა შემოწმდეს 64  63  62  ...  57  3  10
14
შესაძლო
მიმდევრობა, ანუ ასწთი ზომისაა მდგომარეობათა სიმრავლე.
თუ ჩვენ გვინდა გავაუმჯობესოთ ამოცანის ფორმულირება, რაც გულისხმობს
მდგომარეობათა სიმრავლის შემცირებას, უნდა ავკრძალოთ ლაზიერის დასმა იმ უჯრებზე,
რომლებიც იმყოფებიან შეტევის ქვეშ, მაშინ მივიღებთ ამოცანის ახალ ფორმულირებას.
1. მდგომარეობები. მდგომარეობას წარმოადგენს ლაზიერების განლაგება ( 0  n  8 )
დაფაზე, ამასთან ერთი ლაზიერი დგას მარცხნიდან დაწყებული თითო ვერტიკალზე ისე,
20
რომ არცერთი ლაზიერი არ ესხმის თავს სხვას.
2. საწყისი მდგომარეობა. დაფაზე არ დგას არც ერთი ლაზიერი.
3. შვილობილის განმსაზღვრელი ფუნქცია. ლაზიერის დასმა მარცხნიდან პირველ
თავისუფალ ვერტიკალზე ისე, რომ არ მოხდეს მასზე თავდასხმა.
4. მიზნის შემოწმება. დაფაზეა რვა ლაზიერი და არცერთი მათგანი არ ემუქრება სხვა
რომელიმეს.
5. გზის ფასი. სვლების რაოდენობა საწყისი მდგომარეობიდან მიზნის მდგომარეობამდე.
ასეთი ფორმულირების დროს შესაძლებელი ხდება შევამციროთ მდგომარეობათა
სიმრავლე 2057-მდე, და ამით ამოცანა სერიოზულად გაიოლდება. მაგრამ, თუ ჩვენ
განვიხილავთ დავუშვათ 100 ლაზიერის ამოცანას, პირველი ფორმულირების შემთხვევაში
400 52
მდგომარეობათა სიმრავლე იქნება 10 , ხოლო მეორე შემთხვევაში – 10 . ეს რა თქმა უნდა
კოლოსალურად დიდი შემცირებაა, მაგრამ დარჩენილი სივრცე მაინც ძალიან დიდია
იმისათვის, რომ ჩვენმა ალგორითმებმა შეძლონ რეალურ დროში ასეთი ამოცანის ამოხსნა.
რეალური ამოცანებიდან აღვნიშნოთ მარშრუტის ძებნის ამოცანა, ცნობილი
კომივოიაჟერის ამოცანა, ინტეგრალურ სქემებში ელემენტების განლაგების ამოცანა,
რობოტის გადაადგილების მართვის ამოცანა, კონვეირის მართვის ამოცანა და სხვა.
ამოცანის ასეთი წარმოდგენის შემდეგ ადვილი მისახვედრია, რომ ამოცანის
ამოხსნაიქნება იმ ქმედებათა მიმდევრობა, რომელთა საშუალებითაც შესაძლებელი იქნება
საწყისი მდგომარეობიდან მივაღწიოთ მიზნის მდგომარეობას. მიუხედავად იმისა, თუ
ძებნის როგორ ალგორითმებს გამოვიყენებთ, ძებნის პროცესი ყველაზე მოსახერხებელია
წარმოვადგინოთ გრაფის საშუალებით, სადაც გრაფის წვეროები (შემდეგში ჩვენ მათ
ვუწოდებთ კვანძებს) შეესაბამებიან მდგომარეობებს, ხოლო რკალები კი - ქმედებებს,
რომელთა საშუალებითაც ერთი მდგომარეობიდან გადავდივართ მეორე მდგომარეობაში.
2.6. ძებნის ალგორითმების შეფასება.მას შემდეგ, რაც მოვახდენთ ამოცანის ფორმალიზებას,
საჭიროა ვიპოვოთ ამოხსნა. ჩვენ განვიხილავთ მეთოდებს, რომლებიც ამოცანას ხსნიან
მდგომარეობათა სივრცეში ძებნის საშუალებით. ამოცანათა ამოხსნის ყველა ალგორითმს,
რომელიც ეძებს ამონახსნს ძებნის საშუალებით, ჩვენ შევაფასებთ ოთხი კრიტერიუმის
საშუალებით:
1. სისრულე - იძლევა თუ არა ალგორითმი ამონახსნის პოვნის გარანტიას, როდესაც ეს
ამოხსნა არსებობს? იგულისხმება, რომ ალგორითმს შემოუსაზღვრაივი შესაძლებლობებით
შეუძლია ამონახსნის პოვნა. მაგრამ რადგანაც ასეთი ალგორითმები პრაქტიკულად არ
არსებობენ, ალგორითმმა შეიძლება ვერ იპოვოს ამონახსნი.
2. ოპტიმალურობა - უზრუნველყოფს თუ არა ალგორითმი ოპტიმალური ამონახსნის
პოვნას?
3. დროითი სირთულე - შეუძლია თუ არა ალგორითმს ამონახსნის პოვნა რეალურ დროში.
4. სივრცითი სირთულე - რა მოცულობის მეხსიერება სჭირდება ალგორითმს ამონახსნის
საპოვნელად?
დროითი და სივრცითი სირთულეები ყოველთვის იანგარიშება ამოცანის სირთულის
გათვალისწინებით. სირთულე აღიწერება სამი კოეფიციენტის საშუალებით:
1. განშტოების კოეფიციენტი, ანუ ნებისმიერი კვანძის შვილობილ კვანძთა მაქსიმალური
რაოდენობა.
2. ყველაზე ზემოთ მყოფი მიზნის კვანძის სიღრმე და
3. მდგომარეობათა სივრცეში ნებისმიერ გზათა შორის მაქსიმალური სიგრძე. დროითი
სირთულე ხშირად იზომება დროის ერთეულში გამომუშავებულ კვანძთა
რაოდენობით, ხოლო სივრცითი სირთულე – იმ კვანძების მაქსიმალური
რაოდენობით, რომლებიც უნდა დაიმახსოვროს ალგორითმმა.

21
2..7. ძებნა გრაფზე.წინა ლექციაზე ჩვენ განვიხილეთ, თუ როგორ შეიძლება წარმოვადგონოთ
ამოცანა მდგომარეობათა სივრცეში ხუთი პარამეტრის საშუალებით და აღვნიშნეთ, რომ
ძებნის პროცესის წარმოსადგენად ყველაზე მოსახერხებელი ფორმაა გრაფი, რომელზეც
კვანძი (node) შეესაბამება მდგომარეობას, ხოლო რკალი კი ქმედებას. მაგალითისთვის კვლავ
განვიხილოთ „ხუთმეტის“ თამაში. თუ ჩვენ ამოცანის ამოხსნას დავიწყებთ საწყისი
მდგომარეობიდან, მაშინ შესაძლებელია სამი სვლის გაკეთება და შესაბამისად მივიღებთ სამ
ახალ კვანძს (იხ.სურ. 3.1). ეს პროცესი შესაძლებელია აღვწეროთ გრაფის საშუალებით
(როგორც ეს ნაჩვენებია სურ. 3.1). თუ გავაგრძელებთ ყველა შესაძლო სვლების შესრულებას
მოცემული მდგომარეობებიდან მივიღებთ თამაშის სრულ გრაფს მოცემული საწყისი
მდგომარეობისათვის.

5 3 4 12
1 6 10 13

9 11 14 15

2 7 8

5 3 4 12 5 3 4 12

1 6 10 13 1 6 10 13

9 11 14 15 9 11 14

2 7 8 2 7 8 15

სურ.2.4. შესაძლო სვლები საწყისი მდგომარეობიდან და მათი წარმოდგენა გრაფის


საშუალებით.

იმისათვის, რომ უფრო მოსახერხებელი იყოს ძებნის ალგორითმების გამოყენება


გრაფებზე, გრაფის კვანძებში (node) განათავსოთა შემდეგი სახის ინფორმაცია:
 მდგომარეობა (State). მდგომარეობათა სიმრავლის S i კონკრეტული ელემენტი,
რომელსაც შეესაბამება მოცემული კვანძი;
 მშობელი კვანძი (Parent node). ინფორმაცია კვანძებზე, რომლებიდანაც არის
მიღებულია კვანძი;
 ქმედება (Action). ქმედება, პროცედურა, რომლის საშუალებითაც მშობელი
კვანძებიდან მიიღეს კვანძი;
 გზის ფასი (Path-Cost). მთელი გზის ფასი საწყისი მდგომარეობიდან მოცემულ S i
მდგომარეობამდე (აღინიშნება g( n ) ფუნქციით;
 )სიღრმე (Depth). გადასვლების რაოდენობა საწყისი მდგომარეობიდან S i , მოცემულ
მდგომარეობამდე.

22
ეს ინფორმაცია აადვილებს როგორც ძებნის პროცესს, ასევე ამონახსნის გამოტანას.
ამგვარად გავრჩიოთ ერთმანეთისგან მდგომარეობა, რომელიც აღიწერება ამოცანის
პირობიდან გამომდინარე და გრაფის კვანძი (node), რომელიც შეესაბამება ამ მდგომარეობას
და დამატებით შეიცავს ზემოთღწერილ ინფორმაციას.
2.8. გრაფის ხედ გადაქცევის პროცედურა.გრაფების ერთერთ ზოგად თვისებას, რომელიც
არსებითად ართულებს ძებნის პროცესს, მდგომარეობს იმაში, რომ გრაფზე კვანძს შეიძლება
ჰყავდეს რამდენიმე მშობელი კვანძი, ანუ მოცემულ მდგომარეობაში შეიძლება გადავიდეთ
სხვადასხვა გზებით. ასეთ შემთხვევაში საჭირო ხდება ოპტიმალური გზის ამორჩევა. მაგრამ
ეს არაა მთავარი სირთულე, სხვადასხვა გზებმა შეიძლება წარმოშვან მარყუჟები და
ციკლები. ასეთ დროს ალგორითმი შეიძლება ჩაიციკლოს და ვერ იპოვოს ამონახსნი მაშინაც
კი, როდესაც მდგომაროებათა სივრცე სასრულია. ამ პრობლემის თავიდან ასაცილებლად
ძებნის ალგორითმებში, გათვალისწინებულია სპეციალური პროცედურა, რომელიც ძებნის
გრაფს გადააქცევს ხედ, ანუ გრაფად, რომელშიც ყველა კვანძს შეიძლება ჰყავდეს მხოლოდ
ერთი მშობელი კვანძი.
იმისათვის, რომ გრაფი გადააქციოს ხედ, აგენტი იმახსოვრებს ყველა კვანძს რომელიც
წარმოიშვება ძებნის პროცესში. ამასთან კვანძებს, რომელთა შვილობილი კვანძები ჯერ არ
აუგია, ანუ კვანძი ჯერ არ გაუხსნია, იმახსოვრებს ცალკე სიაში, რომელსაც უწოდებენ სიას
“ღიაა” (“list open”), ხოლო იმ კვანძებს რომელთა შვილობილი კვანძებიც უკვე ააგო, მეორე
სიაში, რომელსაც უწოდებენ “დახურულია” (“list closed”). მუშაობის პროცესში, ყოველი ახალი
კვანძის აგების შემდეგ, ალგორითმი ადარებს ამ კვანძს იმ კვანძებთან, რომლებიც
მოთავსებულია ორივე სიაში. თუ ასეთი კვანძი არ არის არც ერთ სიაში, ალგორითმი მას
შეიტანს სიაში ღიაა. თუ ალგორითმი აღმოაჩენს კვანძს რომელიმე სიაში, მისი შემდეგი
ქმედება დამოკიდებულია ალგორითმის მოქმედების სტრატეგიაზე და აუცილებლად
წინასწარ უნდა იყოს განსაზღვრული ალგორითმში. ყველა შემთხვევაში შედეგი იქნება ის,
რომ ჩვენ მივიღებთ ძებნის ხეს და არა გრაფს.
ასეთი სიების შემოტანა ფაქტობრივად იძლევა იმის საშუალებას, რომ ძებნის
ალგორითმმა იმუშაოს კვანძებისგან შედგენილ სიებთან, ანუ კვანძების რიგთან. ოპერაციები,
რომლებიც შეიძლება დასჭირდეს ალგორითმს კვანძების რიგებთან სამუშაოდ შემდეგია:
Make-Queue (element,…) – რიგის შექმნა მოცემული ელემენტებით;
Empty? (queue) – გამოიტანს მნიშვნელობას „ჭეშმარიტია“, მხოლოდ მაშინ, როდესაც რიგში
აღარ არის ელემენტები;
First (queue) – გამოიტანს რიგის პირველ ელემენტს;
Remove – First (queue) – ამოიღებს ელემენტ First-ს რიგიდან და გამოიტანს;
Insert (element, queue) – ჩასვავს ელემენტს რიგში და გამოაქვს მიღებული რიგი;
Insert All (elements, queue) - ჩასვავს ყველა ელემენტს რიგში და გამოაქვს მიღებული რიგი;
Goal-Test procedure - პროცედურა, რომელიც ადარებს მოცემულ კვანძს მიზნის კვანძთან ან
მიზნის აღწერასთან.
2.10. განივი, ანუ სრული გადარჩევის ალგორითმი.ძებნის ალგორითმების განხილვას
დავიწყებთ ალგორითმებიდან, რომლებიც მიზნის მოსაძებნად იყენებენ მხოლოდ იმ
ინფორმაციას რომელიც შედის ამოცანის ფორმალურ აღწერაში და არ გააჩნიათ არავითარი
დამატებითი ინფორმაცია მდგომარეობების შესახებ. ასეთ ალგორითმებს უწოდებენ ძებნის
არაინფორმირებულ (ზოგჯერ ბრმად ძებნის) ალგორითმებს. ძებნის ამოცანების
მნიშვნელოვანი პარამეტრებია საწყისი მდგომარეობიდან მიზნის მდგომარეობამდე გზის
ფასი, რომელიც წარმოადგენს ამოცანის ამოხსნის გზაზე მდგომი ყველა მეზობელ წვეროებს
შორის გადასვლათა ფასების ჯამს და ამონახსნის სიღრმე, საწყისი მდგომარეობიდან მიზნის
მდგომარეობამდე სიღრმეში გადასვლათა რიცხვი.

23
დავიწყოთ ყველაზე მარტივი, განივი ანუ სრული გადარჩევის ალგორითმით.
ნებისმიერი ამოცანისთვის, თუ ჩვენ ვიცით შესაძლო ამონახსნთა სიმრავლე, თეორიულად
ყოველთვის შეგვიძლია გამოვიყენოთ ალგორითმი, რომელიც გადაარჩევს ყველა შესაძლო
ამონახსნებს და იპოვის სწორ პასუხს. ამ ალგორითმს უწოდებენ სრული გადარჩევის (ან
ზოგჯერ განივი გადარჩევის) ალგორითმს. მოვიყვანოთ ამ ალგორითმის აღწერა (იხ. სურ.
2.5):
იმისთვის რომ ალგორითმმა მიიღოს სრულყოფილი სახე და აგენტმა შეძლოს მისი
გამოყენება, საჭიროა მასში შევიტანოთ ზემოთაღწერილი ოპერაციები, რომლებიც
საშუალებას იძლევიან ვიმოქმედოთ კვანძებთან. ახლა კი ვნახოთ როგორ მუშაობს ეს
ალგორითმი. განვიხილოთ მისი მუშაობა წინა ლექციაზე აღწერილი რვიანის თამაშის
მაგალითზე. პირველ ნაბიჯზე, საწყისი მდგომარეობა (კვანძი) შევა სიაში “list open”. Goal-Test
ოპერაციის გამოყენება არ მოგვცემს შედეგს, რადგანაც საწყისი მდგომარეობა არ ემთხვევა
მიზნის მდგომარეობას, ამიტომ ალგორითმი გადაიტანს საწყის კვანძს სიაში “list closed” და
გამოიყენებს რა სამ დასაშვებ ოპერატორს მიიღებს სამ შვილობილ კვანძს (სურ. 2.1).

სრული გადარჩევის ალგორითმი:


ბიჯი 1: S0  სიაში „ღიაა“.
ბიჯი 2: თუ „ღიაა“ = ცარიელია, მაშინ დასასრული  ამოხსნა არაა.
ბიჯი 3: თუ თუ „ღიაა“  ცარიელი, მაშინ
ბიჯი 4: გახსენი S1 პირველი კვანძი სიიდან „ღიაა“
ბიჯი 5: ააგე S1 -ის შვილობილი კვანძები S11 ,...S1k
ბიჯი 6: შეადარე S11 ,...S1k მიზნის კვანძს St , თუ S1l  St ( l  1,2,...k ) მაშინ
ბიჯი 7, თუ არა - ბიჯი 8
ბიჯი 7: გამოტანე S1l , დასასრული, თუ არა
ბიჯი 8: შეიტანე S11 ,...S1k კვანძები სია „ღიაას“ ბოლოში, გადადი მეორე ბიჯზე.

სურ. 2.5. ალგორითმის აღწერა.

თუ ახლადაგებული კვანძებიდან არცერთი არ ემთხვევა სიაში “list closed”


მოთავსებულ საწყის კვანძს (სია “list open” ცარიელია), ამიტომ სამივე ახლადაგებული
კვანძები შევა სიაში “list open” იმ მიმდევრობით, რა მიმდევრობითაც ისინი იყო აგებული.
ვინაიდან ამ ალგორითმისთვის ყველა გადასვლას ერთი მეზობელი წვეროდან მეორეში
აქვს ერთი და იგივე, ერთის ტოლი ფასი, თითოეული წვეროს ფასი
w( S1 )  w( S2 )  w( S3 )  1
ციკლის მეორედ გამეორებისას სიიდან “list open” აიღება პირველი S1 წვერო და
აიგება მისი შვილობილი კვანძები (იხ. სურ. 5.3). ალგორითმი კვლავ გამოიყენებს Goal-Test
პროცედურას, მაგრამ კვლავ უშედეგოდ, ამიტომ გადავა funcion ( ) პროცედურაზე,
აღმოაჩენს, რომ S5 კვანძი ემთხვევა S0 კვანძს და აღარ შეიტანს მას სიაში list open. S 4 კვანძს
კი შეიტანს “list open” სიის ბოლოში, ამიტომ შემდეგ ეტაპზე ის გასახსნელად აიღებს S 2
კვანძს. ასე გააგრძელებს მუშაობას ალგორითმი მანამდის, სანამ ერთ-ერთ ეტაპზე ან სია “list
open” არ გახდება ცარიელი, რაც იმას ნიშნავს, რომ ალგორითმმა გადასინჯა ყველა შესაძლო
მდგომარეობები და ამოცანას ამოხსნა არა აქვს, ან რომელიმე ახლადაგებული კვანძი არ
დაემთხვევა მიზნის კვანძს, რაც იმას ნიშნავს, რომ ალგორითმმა იპოვა ამოხსნა.
როგორც ვხედავთ, ეს ალგორითმი თანმიმდევრულად აგებს ყველა შესაძლო გზებს
საწყისი მდგომარეობიდან ისე, რომ არ გამოტოვებს არც ერთ შესაძლო გზას. ამასთან

24
მისთვის ყველა მდგომარეობა ინფორმაციულად ერთნაირია, ანუ აგენტი ვერ არჩევს,
რომელი მდგომარეობა უფრო ახლოსაა მიზნის მდგომარეობასთან. სწორედ ამიტომაც
უწოდებენ მას სრული, ანუ ბრმა გადარჩევის ალგორითმს. ჩვენს მაგალითიში ის ჩავა მეექვსე
დონეზე და გახსნის 46 მდგომარეობას, სანამ მიაღწევს მიზნის მდგომარეობას.
შევაფასოთ ალგორითმი წინა ლექციაში მოყვანილი კრიტერიუმებით. ცხადია, რომ ეს
ალგორითმი არის სრული. მართლაც, თუკი არსებობს ამოცანის ამოხსნა, ის მას ადრე თუ
გვიან აუცილებლად იპოვნის (თეორიულად მაინც). თუ ყველაზე ზევით მდგომი მიზნის
კვანძის სიღრმეა d , ალგორითმი მას იპოვნის d  1 დონის ყველა კვანძის გახსნის შემდეგ.
რადგანაც ამ ალგორითმისთვის ყველა გადასვლას ერთი ფასი აქვს, ნაპოვნი ამოხსნა
ავტომატურად იქნება ოპტიმალურიც.
ამ ორი პარამეტრით ეს ალგორითმი შესანიშნავია, მაგრამ ის კატასტროფულად
სუსტია დანარჩენი ორი პარამეტრის მიხედვით. დავუშვათ, თითოეული კვანძიდან
(მდგომარეობიდან) შესაძლებელია მაქსიმუმ b ცალი შვილობილი წვეროს აგება. მაშინ
ალგორითმი პირველ დონეზე საწყისი მდგომარეობიდან ააგებს b ახალ მდგომარეობას,
მეორე ეტაპზე b 2 მდგომარეობას, მესამეზე b 3 და ასე შემდეგ. დავუშვათ ახლა, რომ მიზნის
მდგომარეობა მდებარეობს b დონეზე და ის აიგება ამ დონის წვეროებიდან ყველაზე
ბოლოს, მაშინ მდგომარეობების რაოდენობა, რომლებიც უნდა ააგოს ალგორითმმა, რათა
იპოვოს ამოხსნა ტოლია
b  b 2  b 3  ...  b d .
რაც გვაძლევს შეფასებას  ( b d ) . ეს, ნიშნავს, რომ ალგორითმი, რომელსაც ჩვენი
აგენტი იყენებს ექსპონენციალურია და ამოცანის ზომების ექსპონენციალურად იზრდება
აგებულ კვანძთა რაოდენობაც. აქედან გამომდინარე, როდესაც იზრდება ამოცანის ზომა
გადააჭარბებს გარკვეულ სიდიდეს (დამოკიდებულია კონკრეტულ მოცანაზე),
პრაქტიკულად შეუძლებელი ხდება ამოცანის ამოხსნა რეალურ დროში.
2.11. ძებნა სიღრმეში იტერაციული ჩაღრმავებით.განსხვავებით განივი ძებნისგან, სიღრმეში
ძებნის დროს თუ არ შევზღუდეთ ხის სიღრმე, შეიძლება ისე მოხდეს, რომ ალგორითმმა
ვეღარ დაამთავროს მუშაობა (ჩაიციკლოს), ამიტომ წინასწარ შემოგვაქვს სიღრმის დონის
შეზღუდვა, ანუ რომელიმე მითითებულ დონეზე აგენტი ყველა კვსნძს აღიქვამს
დამამთავრებელ კვანძად და აღარ ხსნის ამ დონის კვანძებს. ასეთ მიდგომას უწოდებენ ძებნას
შეზღუდული სიღრმით. ასეთი შეზღუდვა თავისთავად განსაზღვრავს, რომ ზოგიერთ
შემთხვევებში აგენტი ვერ იპოვის ამოხსნას მაშინაც კი, როდესაც ეს ამოხსნა არსებობს და
ალგორითმს გააჩნია საკმარისი რესურსები ამოცანის ამოსახსნელად. გასაგებია, რომ ეს
მოხდება მაშინ, როდესაც შეზღუდვის დონე არაა სწორადაა შერჩეული და ყველაზე
უახლოესი ამონახსნის სიღრმე აღემატება შეზღუდვის დონეს.
იმისათვის,რომ განივი ძებნის ალგორითმიდან მივიღოთ ძებნის ალგორითმი
სიღრმის შეზღუდვით, საკმარისია განივი ძებნის ალგორითმში შევიტანოთ ორი ცვლილება.
პირველი, შემოვიტანოთ შეზღუდვის პარამეტრი და მეორე, ახლად აგებული კვანძები
შევიტანოთ სია “list open”-ის არა ბოლოში, არამედ თავში.
რითი სჯობია ეს ალგორითმი განივი გადარჩევის ალგორითმს? ასეთი ძებნის დროს
ალგორითმს სჭირდება მეხსიერების ძალინ მცირე მოცულობა, რადგანაც ის იმახსოვრებს
მხოლოდ ერთ გზას საწყისი კვანძიდან დამამთავრებელ კვანძამდე და იმ მეზობელ
კვანძებთან ერთად, რომლებიც ჯერ არ გაუხსნია ალგორითმს. მას შემდეგ, რაც გაიხსნება
კვანძი, ის შეიძლება წაშლილი იქნას მეხსიერებიდან. თუ ერთი კვანძიდან შეიძლება
მაქსიმუმ b კვანძის მიღება და ძებნის სიღრმეა d , ალგრითმი იმახსოვრებს მხოლოდ b  d  1
წვეროს, ამიტომაც თუკი ამონახსენი მდებარეობს d  12 სიღრმეზე, მას სჭირდება მხოლოდ
118 კილობაიტი მეხსიერება განსხვავებით განივი გადარჩევის ალგორითმისაგან, რომელსაც
იგივე შემთხვევაში სჭირდება 10 პეტაბაიტი მეხსიერება.
25
განვიხილოთ ამ ალგორითმის მუშაობა ისევ ზემოთმოყვანილ მაგალითზე. სიღრმეში
ძებნის ალგორითმისა და სრული გადარჩევის ალგორითმის მუშაობა პირველ და მეორე
ეტაპზე ფაქტობრივად ერთნაირია მცირე გამონაკლისის გარდა, რომელიც მდგომარეობს
შემდეგში: მეორე ეტაპზე მიღებული ერთადერთი კვანძი (მეორე კვანძი უკვე გვხვდება სიაში
“დახურულია” და ამიტომ მას არც ერთი ალგორითმი აღარ განიხილავს), სრული
გადარჩევის ალგორითმში შევა სია “list open”-ის ბოლოში, მაშინ როდესაც სიღრმეში ძებნის
ალგორითმში კვანძი ამ სიაში იქნება პირველ ადგილზე, ამიტომ მესამე ეტაპიდან ამ
ალგორითმების მუშაობა იქნება განსხვავებული. კერძოდ, სიღრმეში ძებნის
ალგორითმისათვის მესამე ეტაპი გამოიყურება შემდეგნაირად (იხ. სურ. 5.4). სიღრმეში
ძებნის ალგორითმს გააჩნია თავისი ნაკლოვანებები. როგორც აღვნიშნეთ, ის უკვე აღარ არის
სრული, მაგრამ ამავე დროს იგივე მიზეზით ის არ იძლევა ოპტიმალურ ამონახსნსაც.
2.12. ძებნა გზის ფასის კრიტერიუმით.განივი გადარჩევის ალგორითმი იყო ოპტიმალური,
თუ ყველა შვილობილი წვეროს აგების ფასი იყო ტოლი. მაგრამ ეს ყოველთვის ასე არ
არის. დავუშვათ, ჩვენს ამოცანაში ფიშკის მარჯვნივ გადაწევაზე იხარჯება უფრო მეტი
ენერგია, ვიდრე ქვევით ჩამოწევაზე, მაშინ გადასვლის ფასი ერთი წვეროდან მეორეში იქნება
სხვადასხვა. მარტივი გარდაქმნით სრული (განივი) გადარჩევის ალგორითმიდან შეიძლება
მივიღოთ ახალი ალგორითმი, რომელიც გაითვალისწინებს ასეთ პრობლემას. ალგორითმს,
რომელიც ახორციელებს ძებნას ამ მომენტის გათვალისწინებით, ეწოდება ალგორითმი გზის
ფასის კრიტერიუმით. ჩვენ შეგვიძლია მივიღოთ ასეთი ალგორითმი განივი ძებნის
ალგორითმიდან. ამ მიზნით შევიტანოთ სამი ცვლილება ალგორითმში.
1. შემოვიტანოთ g( n ) ფუნქცია რომლითაც გავზომავთ გზის ფასს ამოცანის საწყისი
მდგომარეობიდან მოცემულ მდგომარეობამდე. ის ტოლი იქნება ყველა იმ გადასვლების
ჯამის, რომლებიც შესრულდა, სანამ ჩვენ მოვიდოდით მოცემულ n კვანძამდე.
2. სია “list open” მოვაწესრიგოთ ისე, რომ პირველ ადგილზე მოხვდეს კვანძი, რომელსაც აქვს
ყველაზე პატარა გზის ფასი.
3. მესამე შესწორება ეხება გრაფის ხედ გადაქცევის პროცედურას. განივი ძებნის
ალგორითმისგან განსხვავებით, თუ რომელიმე ახლად აგებული კვანძი დაემთხვევა კვანძს
სიაში “list open” (რაც ნიშნავს რომ არსებობს ორი განსხვავებული გზას საწყისი კვანძიდან ამ
კვანძამდე), ალგორითმი დატოვებს არა პირველად აგებულ გზას, როგორც ეს ხდებოდა
სრული გადარჩევის ალგორითმში, არამედ გზას მინიმალური შეფასებით. თუ ახლად
აგებული კვანძი დაემთხვევა რომელიმე კვანძს სიაში “listclosed”, ჩატარდება იგივე
პროცედურა და თუ ახლად აგებული გზის ფასი ნაკლებია არსებულ გზის ფასზე, კვანძი
დაბრუნებული იქნება სიაში “list open”.
თუ გადასვლის ფასი კვანძიდან მეზობელ კვანძში w( si , s j )   , სადაც  არის რაიმე
ნულისგან განსხვავებული დადებითი რიცხვი, მაშინ ალგორითმი იქნება სრული. ეს პირობა
საკმარისია იმისთვისაც, რომ ალგორითმი იყოს ოპტიმალური.
ამ ალგორითმში ძებნა ხდება არა დონეების მიხედვით, არამედ გადასვლების ფასის
მიხედვით, ამიტომ მისი სირთულე ადვილად ვერ განისაზღვრება b და d ტერმინებში.
შემოვიღოთ პარამეტრები C - ამოხსნის ოპტიმალური ფასი და  ერთი მეზობელი
წვეროდან მეორეში გადასვლის მინიმალური ფასი. მაშინ გზის ფასით ძებნის ალგორითმის
დროითი და სივრცითი სირთულე ყველაზე ცუდ შემთხვევაში ტოლია  ( b1C  ) , ანუ
შეიძლება იყოს მეტი ვიდრე  ( bd ) .
2.13. ორმხრივი ძებნა.საინტერესოა ორმხრივი ძებნის იდეა. წარმოვიდგინოთ ორი ერთნაირი
ალგორითმი (დავუშვათ სიგანეში გადარჩევის), რომლებიც ხსნიან ერთსა და იმავე ამოცანას,
ოღონდ ერთის საწყისი მდგომარეობა მეორესთვის წარმოადგენს მიზნის
მდგომარეობასდაპირიქით. ეს ალგორითმები დაკავშირებულნი არიან ერთმანეთთან და

26
ყოველი კვანძის გახსნის წინ ამოწმებენ დაემთხვა თუ არა ერთმანეთს მათ მიერ მიღებული
კვანძებიდან რომელიმე მათგანი. დამთხვევის შემთხვევაში ამოცანის ამოსახსნელად უნდა
გადავაბათ მათი გზები ამ საერთო კვანძში, რაც მოგვცემს ამოცანის ამოხსნას. ასეთი
d
ალგორითმის დროითი და სივრცითი სირთულე იქნება  ( b 2 ) . ამავე დროს ის იქნება
სრული და ოპტიმალური, რა თქმა უნდა თუ ალგორითმი თვითონ არის სრული და
ოპტიმალური. პრობლემა მდგომარეობს იმაში, რომ ყველა ამოცანისათვის ადვილი არ არის
მოვახერხოთ ძებნა მიზნის მდგომარეობიდან საწყისი მდგომარეობისაკენ, რადგანაც როგორც
ვიცით, რეალურ ამოცანებში ხშირად ჩვენთვის ცნობილია მიზნის მდგომარეობათა
სიმრავლის აღწერა, მაგრამ უცნობია ამ სიმრავლის კონკრეტული ელემენტები (მაგალითად
ჭადრაკის თამაშისათვის ეს ასეა და შესაბამისად შეუძლებელია ორმხრივი ძებნის
გამოყენება).

სავარჯიშოები:

1. რამიზანსისახავსამოცანისფორმალიზება ქვეამოცანათა, ან მდგომარეობათა


სივრცეების სახით?
2. როგორ წარმოიდგინება ამოცანა ქვეამოცანათა სივრცეში? რა პრობლემა გვაქვს ასეთი
წარმოდგენის დროს და რაში გამოიხატებაასეთიწარმოდგენისუპირატესობა?
3. რაკომპონენტებითაღიწერებაამოცანა მდფომარეობათა სივრცეში?
4. მოიყვანეთ ერთი და იგივე ამოცანის სხვადასხვა მდგომარეობათა სივრცეებში
აღწერის მაგალითები.
5. რასეწოდებაამოცანისამონახსნიმდგომარეობათასივრცეში?
6. აღწერეთ რვიანის თამაში მდგომარეობათა და ქვეამოცანათა სივრცეებში.
7. მოცემულია ამოცანა: მაიმუნი, რომლის სიმაღლეა 3 მეტრი, იმყოფება ოთახში, სადაც
ჭერში რვა მეტრის სიმაღლეზე ჩამოკიდულია ბანანები. მაიმუნს უნდა ეს ბანანები, მაგრამ
ვერ სწვდება მათ. ოთახში არის ორი ყუთი, რომელთა სიმაღლეა ორი მეტრი. შესაძლებლია
ამ ყუთების ნებისმიერ წერტილში გადატანა და ერთმანეთზე დაწყობა. ოთახის კუთხეში
გდია ჯოხი, სიგრძით ერთი მეტრი. აღწერეთ ამოცანის საწყისი მდგომარეობა, მიზნის
შემოწმება, შვილობილი კვანძების წარმომქმნელი ფუნქციები, გზის ფასის ფუნქცია ისე
ზუსტად, რომ ადვილი იყოს მისი რეალიზაცია.
8. აჩვენეთ, რომ რვიანის თამაშში მდგომარეობათა ვარიანტები იყოფა ორ თანაუკვეთ
სიმრავლედისე, რომ შეუძლებელია ერთი სომრავლის მდგომარეობიდან მოხვდეთ მეორე
სიმრავლის მდგომარეობაშ რამდენი სვლაც არ უნდა გააკეთოთ. როგორ შეიძლება გაიგოთ
რომელ სიმრავლეს ეკუთვნის მოცემული მსგომარეობა და რაში გვჭირდება ეს?
9.ააგეთ რვიანის თამაშის შვილობილი კვანძების წარმოქმნის ორი ვარიანტი: პირველში
გამოძახებული პროცედურა აგებს მოცემული კვანძის ყველა შვილობილ კვანძს და ახდენს
სტრუქტურის რედაქტირებას. მეორე პროცედურა გამოძახებისას აგებს მხოლოდ ერთ
შვილობილ კვანძს. გამოიყენეთ ეს პროცედურები სიღრმეში ძებნის ალგორთმში ნახეთ,
რომელიაუფრო უკეთესი ამ ალგორითმისთვის.

27
28
ლექცია 3.
ევრისტიკული ფუნქცია. ძებნის ევრისტიკული ალგორითმები. “ხარბი“
ალგორითმები.

3.1.ინფორმაციული (ევრისტიკული) ძებნის სტრატეგიები.ჩვენ წინა ლექციაზე განვიხილეთ


აგენტები, რომლებიც ამოცანის ამოსახსნელად იყენებენ ე.წ. ძებნის არაინფორმირებულ
ალგორითმებს. შევნიშნოთ, რომ ასეთი სახელი ალბათ მთლად სწორი არაა, რადგანაც ამ
ალგორითმებს გააჩნიათ ინფორმაცია რომელიც მოცემულია ამოცანის აღწერის დროს.
მაგალითად, „ხუთმეტის“ მოთამაშე აგენტმა იცის, როგორ შეიძლება მიიღოს მოცემული
მდგომარეობიდან ახალი მდგომარეობები და როგორ შეამოწმოს მიაღწია თუ არა მიზნის
მდგომარეობას და ა.შ. მაგრამ ასეთი ინფორმაცია ყოველთვის არაა საკმარისი იმისთვის, რომ
ამოცანა ამოვხსნათ. პირველ ლექციაზე განხილულ LG პროგრამის განხილვისას ვნახეთ, რომ
ადამიანები (ბუნებრივი ინტელექტი) ახერხებს მოძებნოს უფრო მარტივი გზები ამოცანის
ამოსახსნელად.
არცერთ ალგორითმს, რომელთა გამოყენებაც შეუძლია აგენტს (ლაპარაკია ზემოთ
განხილულ ალგორითმებზე), არ შეუძლია „დაინახოს“, რომ სურ. 3.1 მოყვანილი ორი
მდგომარეობიდან პირველიდან მიზანის მიიღწევა უფრო ძნელი, ვიდრე მეორე
მდგომარეობიდან. ამიტომ თუ სიაში “listopen” პირველი მდგომარეობა უფრო წინაა ვიდრე
მეორე (ჩვენ ვიცით როგორ სორტირდება ეს სია), აგენტი გახსნის პირველ მდგომარეობას და
არავითარ შემთხვევაში მეორეს. ანუ აგენტს არ შეუძლია შეფასოს ეს მდგომარეობები და
აღმოაჩინოს რომელია მათგან უფრო პერსპექტიული ეს არცაა გასაკვირი, რადგანაც ასეთი
ინფორმაცია ამოცანის აღწერაში არ შედის.

1 9 3 4 1 2 3 4
5 6 7 8 5 6 7 8
2 10 11 9 10 11
13 14 15 12 13 14 15 12

1) 2)

სურ.3.1. ორი მდგომარეობა,რომელთა გარჩევაც არ შეუძლია აგენტს.

სამაგიეროდ ამას კარგად ასრულებს ბუნებრივი ინტელექტი. მაგალითად, ჩვენთვის


ცნობილია, რომ ჭადრაკის თამაშის დროს პირველ სვლას a 2  a 4 არავინ აკეთებს, თუმცა
თამაშის წესებით ეს სვლა არაა აკრძალული და ჯერჯერობით არც არავის დაუმტკიცებია
რომ ამ სვლას მივყავართ დამარცხებამდე. რადგანაც აგენტს, რომელიც იყენებს ძებნის
არაინფორმირებულ ალგორითმებს ეს ცოდნა არ გააჩნია, არ შეუძლია მდგომარეობათა
დიფერენცირება, მისთვის ჭადრაკის ოცივე საწყისი სვლა აბსოლუტურად ერთნაირია, მაშინ,
როდესაც იმისთვის, ვინც კარგად თამაშობს ჭადრაკს და შესწავლილი აქვს ჭადრაკის თამაშის
თეორია, ეს ასე არ არის. ეს ნიშნავს, რომ ბუნებრივი ინტელექტი იყენებს ლოგიკურ
მსჯელობას, გამოცდილებას და ცოდნას, რომელიც უგროვდება მას ამ ტიპის ამოცანების
ამოხსნის დროს. თუ გვინდა, რომ ჩვენი აგენტი ცოტათი მაინც მიუახლოვდეს ბუნებრივი
ინტელექტის დონეს, მას უნდა ჰქონდეს საშუალება შეაფასოს ამოცანის ამოხსნის დროს
შექმნილი ყველა მდგომარეობა და ამოარჩიოს მისი შეფასებით მათ შორის საუკეთესო. ასეთი
29
შეფასება შეიძლება იყოს მრავალნაირი სახის, მაგრამ აქ ჩვენ შევჩერდებით ყველაზე
მარტივზე, ე.წ. შემფასებელ ფუნქციაზე f ( s ) . თავისთავად ცხადია, რომ ამ ფუნქციის
განსაზღვრის არეს წარმოადგენს მდგომარეობათა სიმრავლე S . მნიშვნელობათა სიმრავლე კი
ზოგადად შესაძლებელია იყოს გაზომვის სხადასხვა საშუალებები ნატურალური
რიცხვებიდან დაწყებული დამთავრებული არამკაფიო სიმრავლეებით.
3.2. ევრისტიკა, ევრისტიკული ფუნქცია.  (ევრისტიკა) ფართო გაგებით ესაა
მეცნიერება, რომელიც იკვლევს ადამიანის შემოქმედებით საქმიანობას. ჩვენთვის კი ეს არის
რთული ინტელექტუალური ამოცანების ამოსახსნელად შერჩევითი ძებნის თეორია და
პრაქტიკა. პირველ ლექციაზე ჩვენ უკვე აღვნიშნეთ, რომ სწორედ ამ საკითხების შესწავლით
დაიწყო ხელოვნური ინტელექტის განვითარება გასულ საუკუნეში. ევრისტიკული ძებნის
პრინციპი ერთი შეხედვით ძალიან მარტივია.
ძალიან ბევრი ამოვანებისთვის შეიძლება ჩამოვაყალიბოთ ემპირიული წესები,
რომლებიც მნიშვნელოვნად ამცირებენ გადარჩევას. სწორედ მათი საშუალებით ახერხებს
ბუნებრივი ინტელექტი გადარჩევის შემცირებას. ჩვენ უნდა შევეცადოთ ეს მეთოდები და
ხერხები ჩამოვაყალიბოთ ისე, რომ ჩვენმა აგენტმა შეძლოს მისი გაგება და გამოყენება იმავე
კლასის ამოცანების ამოხსნის დროს.
შევნიშნოთ, რომ გადარჩევის ეს მეთოდები და ხერხები, რომელსაც იყენებს ბუნებრივი
ინტელექტი არ არის აბსოლუტური ჭეშმარიტება (ამიტომაც ეწოდება მათ ემპირიული
წესები), მაგრამ მოცემული ერთი კლასის ამოცანების ამოხსნისას დიდი ალბათობით
იძლევიან კარგ შედეგებს, ანუ არსებითად ამცირებენ ძებნის პროცესს. პრაქტიკულად ყველა
ამ მეთოდის მიზანია მოახდინოს სია “list-open”-ის ორგანიზება ისე, რომ მაქსიმალურად
შევამციროთ ამოცანის ამოხსნისათვის საჭირო დრო და მეხსიერების მოცულობა.
თუ ჩვენ არ ვაგებთ დასწავლად აგენტს, რომელსაც ექნება საშუალება საკუთარი
გამოცდილების ხარჯზე მივიდეს ამ წესებამდე, მაშინ ცხადია რომ ეს ინფორმაცია უნდა ჩვენ
თვითონ შევიტანოთ აგენტის სტრუქტურაში. იმისათვის რომ ამოცანათა ამომხსნელმა
აგენტმა შეძლოს ასეთი ინფორმაციის პრაქტიკულად გამოყენება, მას უნდა მივცეთ ეს
ინფორმაცია რაიმე ფორმალური სტრუქტურის სახით. რადგანაც აგენტს გაუჭირდება
ინფორმაციის სემანტიკური შინაარსის გაგება (ესაა ხელოვნური ინტელექტის ყველაზე
უფრო რთული პრობლემა), ამიტომ ყველაზე უფრო მოსახერხებელია ინფორმაციის
ჩამოყალიბება ფუნქციის სახით, რომლის მნიშვნელობების გამოთვლა შესაძლებელი იქნება
ნებისმიერი კვანძისათვის (ამასთან, სასურველია, რომ ამ ფუნქციის მნიშვნელობების
სიმრავლე იყოს რაციონალურ რიცხვთა სიმრავლე. ასეთ ფუნქციას უწოდებენ ევრისტიკულ
ფუნქციას და აღნიშნავენ h( s i ) -ით.
3.3. “ხარბი” ალგორითმები.პირველ რიგშიდავიმახსოვროთ, რომ შემფასებელი და
ევრისტიკული ფუნქციები განსხვავდებიან ერთმანეთისგან, მიუხედავად იმისა, რომ ორივე
ფუნქცია გამოიყენება ამოცანის მდგომარეობების შესაფასებლად.
თუ ალგორითმი შემფასებელ ფუნქციად გამოიყენებს მხოლოდ ევრისტიკულ
ფუნქციას, ანუ f ( s )  h( s ) ასეთ ალგორითმს უწოდებენ „ხარბ“ ალგორითმს. ასეთია
მაგალითად, ე.წ. ალგორითმი „პირველი სუკეთესოთი“. ეს ალგორითმი ძალიან წააგავს
სიღრმეში ძებნის ალგორითმის. ის კვანძის გახსნის შემდეგ შვილობილ კვანძებს შეიტანს
სიაში “list open”, გამოთვლის ევრისტიკული ფუნქციის მნიშვნელობებს და ამ შეფასებებით
ახდენს სია “list open”-ის სორტირებას. შემდეგ ამოარჩევს კვანძს საუკეთესო შეფასებით და
მასზე ატარებს პროცედურებს, ამავე დროს იმახსოვრებს მხოლოდ მეზობელ კვანძს, ამიტომ
თუ ყველა შვილობილი კვანძების შეფასები მეტი იქნება მშობელ კვანძებზე, დაბრუნდება
უკან და გადავა რომელიმე მეზობელ კვანძზე.

30
განვიხილოთ მარტივი მაგალითი. დავუშვათ ჩვენი აგენტი, იმყოფება A პუნქტში და
უნდა ჩავიდეს I პუნქტში ისე, რომ გაიაროს მინიმალური მანძილი (იხ. სურ. 4.2). მანძილი AB
ტოლია 51კმ;AC – 70კმ;AD – 49კმ; DE – 25კმ; DF – 17კმ; BG – 20კმ;BH –26კმ; HI – 35კმ და CI –
15კმ.
აგენტი გზის ასარჩევად იყენებს ხარბ ალგორითმს “პირველი საუკეთესო“, ამიტომ ის
პირველად აირჩევს D პუნქტს, შემდეგ ჩავა F პუნქტში. ეს ჩიხია, ამიტომ ამობრუნდება უკან
და ჩავა E პუნქტში. ესეც ჩიხია, ამიტომ ამობრუნდება A პუქტში და ამოარჩევს B პუნქტს,
შემდეგ გადავა G პუნქტი. ესეც ჩიხია, ამიტომ დაბრუნდება უკან, ამოარჩევს H პუნქტს და
იქიდან გადავა I პუნქტში. ალგორითმმა დიდი წვალებით იპოვნა გზა A პუნქტიდან I
პუნქტამდე, მაგრამ ეს გზა სულაც არაა ოპტიმალური. ალგორითმმა ვერ იპოვა ოპტიმალური
გზა მხოლოდ იმიტომ, რომ ის თვლის, რომ გადასვლა AC არის ყველაზე ცუდი გადასვლაა.
განხილული მაგალითი გვიჩვენებს, რომ ევრისტიკული ძებნის ალგორითმი
„პირველი საუკეთესოთი“ ძალიან წააგავს სიღრმეში ძებნის ალგორითმს იტერაციული
ჩაღრმავებით. მართლაც, ამ ამოცანის ამოხსნის დროს ეს ალგორითმიც ზუსტად ასევე
ამოხსნიდა ამოცანას. ეს მიუთითებს, რომ ჩვენი ევრისტიკული ფუნქცია არაა ძლიერი და მან
ვერ შეძლო შეემცირებინა გადარჩევა, ამიტომ მნიშვნელოვანია, როგორ შევარჩევთ
ევრისტიკულ ფუნქციას. ამ ალგორითმს გააჩნია თავისი უპირატესობა, რაც მდგომარეობს
იმაში, რომ მას არ სჭირდება დიდი მეხსიერება.

D
C
B

F G
E I

სურ. 3.2. პუნქტების განლაგება.

3.4.ევრისტიკული ფუნქციის აგება.განვიხილოთ ევრისტიკული ფუნქციის აგება


„ხუთმეტის“ თამაშის მაგალითზე. პირველი, რაც შეიძლება გამოვიყენოთ ესაა ფიშკების
განლაგება დაფაზე. h( s i ) იყოს იმ ფიშკების რაოდენობა, რომლებიც არ დგანან თავის
ადგილზე, ანუ იმ ადგილებზე, რომლებიც მითითებულია მიზნის მდგომარეობაში.
ბუნებრივია ჩავთვალოთ, რომ რაც უფრო ნაკლები ფიშკა არ დგას თავის ადგილზე, მით
უფრო მოცემული მდგომარეობა ახლოსაა მიზნის მდგომარეობასთან. თამაშის
დამთავრების მომენტში h( s i ) ფუნქციამ უნდა მიაღწიოს თავის მინიმუმს h( si )  0.
ზოგადად, ამ ფუნქციის მაქსიმუმი იქნება h( si )  15 , როდესაც არცერთი ფიშკა არ დგას

31
თავის ადგილზე. ჩვენს მაგალითში (იხ. სურ. 3.3) მხოლოდ ოთხი ფიშკა არ დგას თავის
ადგილზე, ე. h( si )  4.

1 2 3 4 1 2 3 4
5 6 7 8 5 6 7 8
10 11 9 11 10 9 12

13 14 15 12 13 14 15

ა) საწყისი მდგომარეობა ბ) მიზნის მდგომარეობა

სურ. 3.3. „ხუთმეტის “ თამაში.

თუ დავუკვირდებით რვიანის თამაშის ამოხსნის პროცესს, შევამჩნევთ, რომ ზოგიერთ


შემთხვევაში ჩვენ გვიხდება ისეთი კომბინაციების ჩატარება, რომლის დროსაც დაიძვრება
ფიშკა, რომელიც თავის ადგლზე დგას. ეს გამოწვევს რა თქმა უნდა ევრისტიკული ფუნქციის
მნიშვნელობის გაზრდას, რაც ალბათ უარყოფითად იმოქმედებს ამოცანის ამოხსნის
პროცესსზე, მაგრამ ეს უნდა იყოს დროებითი გაზრდა. ამოხსნის სტრატეგია კი ისეთი უნდა
იყოს, რომ h( si )  0.
ამ თამაშისთვის ჩვენ შეგვიძლია გამოვიყენოთ სხვა ევრისტიკული ფუნქციაც. ესაა
ფუნქცია, რომელიც ზომავს იმ უმოკლესი მანძილების ჯამს, რა მანძილითაც ყველა ფიშკა
დაშორებულია თავისი ადგილიდან, ანუ იმ სვლების რაოდენობათა ჯამს, რომლებიც
საჭიროა იმისთვის, რომ მოცემული ფიშკა თავის ადგილზე მივიყვანოთ, როდესაც ეს ფიშკა
ერთადერთია დაფაზე.
ასეთი შეფასებები არ გამომდინარეობს თამაშის წესებიდან და რაც მთავარია, არ არის
აბსოლუტური ჭეშმარიტება. უფრო მეტიც, გამომდინარე იქიდან, რომ ამ თამაშში არსებობენ
პოზიციები, რომლებიდანაც მიზნის მდგომარეობა მიუღწევადია, აშკარაა, რომ ასეთმა
შემფასებელმა ფუნქციამ შეიძლება ვერც გვაპოვნინოს ამოხსნა, მაგრამ თუ მისი
მრავალჯერადი გამოყენებისას გაიზრდება სწორი ამონახსნის რეალურ დროში პოვნის
ალბათობა, რითაც ჩვენი მიზანი მიღწეული იქნება.
ჩვენს მიერ შემოთავაზებულ ევრისტიკული ფუნქცია ნოლის ტოლი გახდება მაშინ,
როდესაც აგენტი ამოხსნის ამოცანას. ესაა ნებისმიერი ევრისტიკული ფუნქციის ძირითადი
თვისება (შესაძლებელია ისეთი შემთხვევაც, როდესაც ვეძებთ არა h( s i ) ფუნქციის მინიმუმს,
არამედ მაქსიმუმს).
ჩამოვაყალიბოთ h( s i ) ფუნქციის თვისებები. ფუნქციის განსაზღვრის არეს
წარმოადგენს ამოცანის მდგომარეობათა სიმრავლე, ანუ ის განსაზღვრულია ყველა კვანძზე.
ფუნქცია მნიშვნელობებს ღებულობს ძირითადად ნატურალურ რიცხვთა სიმრავლიდან.
ფუნქცია არაა არც კლებადი და არც ზრდადი, მისი მნიშვნელობები შეიძლება ხან
იზრდებოდეს, ხან კი მცირდებოდეს, მაგრამ მიზნის მდგომარეობაში ის უნდა ხდებოდეს
ნულის ტოლი. შესაძლებელია ფუნქცია წარმოადგენდეს რამდენიმე ფუნქციის
კომბინაციასაც. მაგალითად, ჩვენ რვიანის თამაშისთვის განვსაზღვრეთ ორი ფუნქცია, h1 ( si )
- რამდენი ფიშკა არ დგას თავის ადგილზე და h2 ( si ) - ფიშკების თავის ადგილზე
გადასასვლელი სვლების ჯამი. შესაძლებელია გამოვიყენოთ ერთდროულად ამ ფუნქციათა
წრიფვი კომბინაცია a  h1 ( si )  b  h2 ( si ) .

32
მნიშვნელოვანია აღვნიშნოთ, რომ ყოველი კონკრეტული ამოცანისთვის ჩვენ
დაგვჭირდება ახალი ევრისტიკული ფუნქცია.
3.5. „პიკისკენ აღმავალი“ ხარბი ალგორითმი.არსებობს აგრეთვე ე.წ. პიკისაკენ აღმავალი
ალგორითმი, რომელიც მსგავსად ზემოთ განხილული ალგორითმისა „პირველი საუკეთესო“,
შემფასებელ ფუნქციად იყენებს მხოლოდ ევრისტიკულ ფუნქციას. განსხვავებით
ალგორითმისგან „პირველი საუკეთესო“, ეს ალგორითმი საერთოდ არ იმახსოვრებს
გაუხსნელ მეზობელ კვანძებს, ამიტომ თუ შვილობილი კვანძების შეფასებამ გადააჭარბა
მშობელი კვანძის შეფასებას, ალგორითმი ჩერდება და ვეღარ აგრძელებს ამოხსნას. ამიტომ
ასეთი ალგორითმის გამოყენება არ შეიძლება, თუ ევრისტიკულ ფუნქციას გააჩნია
ლოკლური ექსტრემუმის წერტილები (იხ.სურ. 3.4).

სურ.3.4. პიკისაკენ აღმავალი „ხარბი“ ალგორითმის ფუნქცია.

ჩვენს მიერ ზემოთ განხილულ მაგალითში აგენტის A პუნქტიდან I პუნქტში


გადასვლის შესახებ პიკისაკენ აღმავალი ალგორითმი გაჩერდებოდა უკვე F პუნქტში. ერთი
შეხედვით, ასეთი ალგორითმების გამოყენებას აზრი არა აქვს. მაგრამ ეს ასე არაა. ასეთი
ალგორითმები სინამდვილეში ძალიან ხშირად გამოყენება როგორც ძებნის, განსაკუთრებით
კი ოპტიმიზაციის ამოცანებში. ამის მიზეზი მარტივია, ალგორითმი ძალიან სწრაფია,
მეხსიერება, რომელიც მას სჭირდება პატარაა (ხშირად წინასწარ ფიქსირებულიც კი). რაც
შეეხება ლოკალური ექსტრემუმის წერტილებში გაჩერებას, აქ არსებობს ორი გზა:
1. ალგორითმის ხელახალი გაშვება ექსტრემუმის მახლობელი წერტილიდან და
2. შესაძლებელია აგრეთვე დამატებითი საშუალებების გამოყენებით თავიდან ავიცილოთ
ალგორითმის გაჩერება ლოკალურ ექსტრემუმებში. ხშირად ასეთ ალგორითმებს
უწოდებენ ლოკალური ძებნის ალგორითმებს.განვიხილოთ ერთერთი მათგანი.
3.6.ლოკალური ძებნა ოპერატიულ რეჟიმში.სინამდვილეში პიკისაკენ აღმავალი
ალგორითმის ქმედებები ძალიანწააგავს სიღრმეში ძებნის ალგორითმს.ისევე როგორც
სიღრმეში ძებნის ალგორითმი,ესეც ლოკალიზებულიაერთ რომელიმე კვანძზე. ამიტომ
აგენტს უჭირს ამ ალგორითმის გამოყენება.უფრომეტიც, ალგორითმი არ უშვებსთავისი
სტრუქტურის გამოალგორითმის ხელახალდაწყებას,რადგანაც არააქვს მექანიზმი,
რომლის საშუალებითაც ის გადავამდგომარეობათასივრცისრომელიმე სხვაკვანძზე.
განვიხილოთ ალგორითმი, რომელიც საშუალებას გვაძლევს გადავლახოთ ეს სირთულე. ამ
მიდგომის ძირითადი იდეა მდგომარეობს იმაში, რომ მეხსიერებაში ინახება „მიმდინარე
საუკეთესო შეფასება“ H ( s ) . ესაა საუკეთესო ფასი მიზნის მიღწევისა ყველა იმ
მდგომარეობებიდან, რომლებშიც იმყოფებოდა ალგორითმი.
სურ.3.5. მოცემულია მარტივი მაგალითი ერთგანზომილებიანი მდგომარეობათა სიმრავლის.
სურ. 3.3.ანაჩვენებია, რომ აგენტი მოხვდა ლოკალურ მინიმუმში ( ფერადი წრე). იმის მაგივრად, რომ
აგენტი დარჩეს ამ მინიმუმში, აგენტი უნდა გაჰყვეს იმ გზას, რომელიც შეიძლება განხილული იქნას,
როგორც საუკეთესო მიმდინარე მეზობელი მდგომარეობების შეფასებების თანახმად.

33
1 1 1 1 1 1
ა) 8 9 2 4 3
9
1 1 1 21 21 1 1
ბ)
8 9 32 2 3
4
21
1 1 1 1 1 1
გ) 8 9 3 4 4 3
3 4
1 1 1 1 1 1 1
4
დ)
8 9 5 4 4 3
4
1 1 1 1 1 1 1
ე)
8 9 5 5 4 3
5
4
5
სურ. 3.5.

მიზნის მიღწევის შეფასება მეზობელი s / კვანძის გამოყენებით იქნება c( s , s / )  H ( s / ) .


მოცემული მდგომარეობიდან არის ორი გზა, ერთის ფასია 1 2 და მეორესი - 1 9 . აგენტი
ამოირჩევს მინიმუმს და გადადგილდება მარჯვნივ. ამის შემდეგ ნათელი ხდება, რომ შეფასება ამ
ადგილისთვის იყო ძალიან ოპტიმისტური. რადგანაც საუკეთესო სვლის ფასი ტოლია 1 , და მას
მივყავართ მდგომარეობამდე, რომელიც დაშორებულია მიზნიდან მინიმუმ 2 ნაბიჯით, H
შეფასება უნდა გაიზარდოს შესაბამისად, როგორც ეს ნაჩვენებია სურ. 3.5.ბ. თუ აგენტი გააგრძელებს
ამ პროცესს ის, კიდევ ორჯერ გაიმეორებს ამ პროცესს და გამოვა ამ მდგომარეობიდან. ალგორითმს,
რომელსაც იყენებს აგენტი, ეწოდება A ძებნის ალგორითმი რეალურ დროში და დასწავლით (

Learning Real-Time A - LRTA ).

Function LRTA  ------ აგენტი ( s / )


შეიტანე: s / ,აღქმა, რომელიცაიდენტიფიცირებს მიმდინარე მდგომარეობას
Persistent: შედეგი, ცხრილი, არეგიsტრირებს ქმედებებს და მდგომარეობებს, თავიდან
ცარიელია,
H,ღირებულებათა აღრიცხვის ცხრილი მდგომრებათა მიხედვით,
თავიდან ცარიელია
s,aწინა მდგომარეობა და ქმედება, საწყის მდგომარეობაში
ცარიელია
/
თუ Goal-Test ( s ) მაშინ დააბრუნე stop
თუ s / ახალი მდგომარეობაა (არაH -ში) მაშინ H [ s / ]  h( s / )
თუ s  o შედეგია [ s , a ]  s /
H [ s ]  min LRTA   Cost ( s , b , result [ s , b ] H )
b  actions(  )
a  actionbinACTIONS( s / )that min imizesLRTA   Cost ( s / , bresult [ s / b ] H )
s  s/
დააბრუნე a

სურ. 3.4. ალგორითმის აღწერა

34
მდგომარეობების შეფასებების თანახმად. მიზნის მიღწევის შეფასება მეზობელი s/
კვანძის გამოყენებით იქნება c( s , s/)H ( s/) . მოცემული მდგომარეობიდან არის ორი გზა,
ერთის ფასია 12 და მეორესი - 19 . აგენტი ამოირჩევს მინიმუმს და გადადგილდება
მარჯვნივ. ამის შემდეგ ნათელი ხდება, რომ შეფასება ამ ადგილისთვის იყო ძალიან
ოპტიმისტური. რადგანაც საუკეთესო სვლის ფასი ტოლია 1 , და მას მივყავართ
მდგომარეობამდე, რომელიც დაშორებულია მიზნიდან მინიმუმ 2 ნაბიჯით,შეფასება უნდა
გაიზარდოს შესაბამისად, როგორც ეს ნაჩვენებია სურ. 6.3.ბ). თუ აგენტი გააგრძელებს ამ
პროცესს ის, კიდევ ორჯერ გაიმეორებს ამ პროცესს და გამოვა ამ მდგომარეობიდან.
ალგორითმს, რომელსაც იყენებს აგენტი, ეწოდება A ძებნისალგორითმი რეალურ დროში
და დასწავლით ( Learning Real-TimeA - LRTA).

სავარჯიშოები:

1. რა სახის ინფორმაცია შეიძლება იყოს გამოყენებული ძებნის


გასაუმჯობესებლადდასაიდანუნდამოვიპოვითესინფორმაცია?
2. რა პრინციპით მუშაობს ხარბი ძებნის ალგორითმი პირველი სუკეთესოთი.
3. რაპრინციპითმუშაობსპიკისაკენაღმავალიძებნისალგორითმი?
4. რანაკლიგააჩნიაპიკისაკენაღმავალიძებნისალგორითმს?
5. როგორალგორითმებსუწოდებენ“ხარბ”ალგორითმებს?
6. შეამოწმეთ რამდენი კვანძის გახსნადასჭირდება ხარბიძებნის
ალგორითმსპირველისუკეთესოთი რვიანისთამაშისლექციაში
განხილულიმაგალითისთვის.
7. დაამტკიცეთ, რომ განივი ძებნის ალგორითმი წარმოადგენს გზის ფასის ძებნი
აკგორითმის კერძო შემთხვევას.
8. დაამტკიცეთ, განივი ძებნის, სიღრმეში ძებნის და გზის ფასით ძებნის წარმოადგენენ
ალგორითმები პირველი საუკეთესოთი ძებნის ალგორითმის სპეციალურ
შემთხვევებს.

35
ლექცია 4.
A ტიპის ალგორითმები. g( s ) ფუნქციის როლი. A ალგორითმის სისრულე,
ოპტიმალურობა და ინფორმირებულობა.

4.1. A ტიპის (მოწესრიგებული) ძებნის ალგორითმი.განვიხილოთ ეხლა ე.წ. A ტიპის


ალგორითმი, რომელიც ამოხსნის ძებნის პროცესში დავუშვათ იყენებს იგივე ევრისტიკულ
ფუნქციას,რომელსაც „ხარბი“ ალგორითმი იყენებდა, მაგრამ შემფასებელი ფუნქცია აქვს
განსხვავებული. დავუშვათ, ჩვენ რომელიმე ალგორითმის (მაგალითად განივი გადარჩევის)
საშუალებით უკვე ამოვხსენით ამოცანა და ვიპოვეთ ოპტიმალური ამონახსნი f  ( s ) . ეს
ამონახსნი. რომელიც გადის კონკრეტულ s / კვანძზე, შეგვიძლია გავყოთ ორ ნაწილად:
f  ( s / )  g  ( s / )  h ( s / ). სადაც g  ( s / ) არის ოპტიმალური გზის ფასი საწყისი კვანძიდან
s / კვანძამდე, ხოლო h ( s / ) არის ასევე ოპტიმალური გზის ფასი s / კვანძიდან მიზნის
კვანძამდე. ცხადია, ეს ფუნქცია განსაზღვრული იქნება მხოლოდ ისეთი კვანძებისთვის,
რომლებიც მდებარეობენ ამოხსნის ოპტიმალურ გზაზე და ამიტომ შეუძლებელია
გამოვიყენოთ ყველა იმ კვანძების შესაფასებლად, რომლებსაც ალგორითმი წარმოქმნის
ამოცანის ამოხსნის პროცესში (მით უმეტეს, რომ სანამ ამოცანას არ ამოგვიხსნია და h ( s / )
მნიშვნელობა ჩვენთვის უცნობია). ამიტომ A ტიპის ალგორითმებში გამოიყენება
შემფასებელი ფუნქცია f ( s )  g( s )  h( s ), რომელსაც გააჩნია ზუსტად იგივე სტრუქტურა,
მაგრამ აბსოლუტურად განსხვავებული შინაარსი. აქ g( s ) კვლავაც გზის ფასია (მაგრამ უკვე
არა აუცილებლად ოპტიმალური) საწყისი კვანძიდან s კვანძამდე, ხოლო h( s )
ევრისტიკული ფუნქციაა, რომელიც გამოიყენება გზის ფასის შესაფასებლად მოცემული s
კვანძიდან მიზნის t კვანძამდე.
განივი გადარჩევის ალგორითმიდან A ტიპის ალგორითმის მისაღებად (ხშირად მას
უწოდებენ მოწესრიგებული ძებნის ალგორითმსაც), საკმარისია სრული გადარჩევის
ალგორითმში შევიტანოთ მცირეოდენი ცვლილებები. კერძოდ, პირველ რიგში, როგორ
მოვძებნოთ g  ( n ) ოპტიმალური გზის ფასი რომელიმე კონკრეტული n კვანძისთვის. თუ
რომელიმე კვანძის გახსნის შემდეგ კვლავ შეგვხვდება კვანძი n , რომელიც უკვე არის სიაში
“list open” ან “list closed”, საჭიროა ხელახლა გამოვთვალოთ g( n ) ფუნქციის მნიშვნელობა და
შევადაროთ ის უკვე არსებულს და თუ ფუნქციის ახლადმიღებული მნიშვნელობა უფრო
პატარაა, შევცვალოთ არსებული კვანძი ახალი კვანძით, ამასთან, თუ კვანძი იყო სიაში “list
closed”, გადმოვიტანოთ ის სიაში “list open”. მეორე ცვლილება ეხება სიას “List open”-ს.
ყოველი ციკლის ბოლოს უნდა მოვახდინოთ სია “list open”-ს სორტირება შემფასებელი
ფუნქციის მიხედვით.
განვიხილოთ ალგორითმის მუშაობა ხუთმეტის თამაშისთვის ჩვენს მიერ აგებული
ფუნქციის გამოყენებით (იხ.სურ. 4.3). ის დაიწყებს მუშაობას იმით, რომ მოათავსებს საწყის
კვანძს სიაში “list open”. შემდეგ აიღებს პირველ კვანძს ამ სიიდან (ეს იქნება S 0 კვანძი) და
გახსნის რა მას, მიიღებს სამ ახალ კვანძს. შემოწმების შემდეგ აღმოჩნდება, რომ არცერთი
კვანძი არ ემთხვევა მიზნის კვანძს, ამიტომ ალგორითმი დაიწყებს შემფასებელი ფუნქციის
მნიშვნელობების გამოთვლას ამ წვეროებისათვის. მიიღება: f ( s1 )  1  5  6 ,
f ( s 2 )  1  3  4 , f ( s 3 )  1  5  6. სიაში “list open” ეს კვანძები განლაგდება შემდეგი
თანმიმდევრობით: s 2 , s1 , s 3. აქედან გამომდინარე, მეორე ეტაპზე ალგორითმი აიღებსs2
კვანძს და გახსნის მას. მიიღება სამი ახალი კვანძი (მეოთხე ემთხვევა სიაში list closed
არსებულ საწყის sმდგომარეობას და მისი შეფასება g( n ) -ის გამო უფრო დიდია, ამიტომ
აგენტი არ შეიტანს მას სიაში “list open”, აქაც არცერთი კვანძი ემთხვევა მიზნის კვანძს,

36
ამიტომ აგენტი კვლავ გამოთვლის. მათ შეფასებებს: f ( s4 )  2  3  5 , f ( s5 )  2  5  7 და
f ( s6 )  2  4  6 . აგენტი ამოირჩევს კვანძს s4 . ამ კვანძიდან არის სვლების სამი ვარიანტი
s 2 , s7 , s8 . კვანძი s2 სიაში “listopen” უკვე არსებობს და მისი პირველი შეფასება უფრო პატარაა
ამიტომ აგენტი არ შეიტანს მას სიაში “list open”. მათი შეფასებებია: f ( s7 )  3  1  4 , და
f ( s8 )  3  3  6 . ცხადია აგენტი ირჩევს s7 კვანძსდა შემდეგი სვლებით მიაღწევს მიზნის
კვანძს.
S0

1 2 3 4
5 6 7 8

11 9 12

10 13 14 15

1 2 3 4 1 2 3 4
5 6 7 8 5 6 7 8
11 9 12 10 11 9 12

10 13 14 12 13 14 15

სურ. 4.1. ამოცანის ამოხსნა A ტიპის ალგორითმით.

მოწესრიგებული ძებნის ალგორითმს დასჭირდება სულ რაღაც 12 კვანძის გახსნა


ამოცანის ამოსახსნელად, მაშინ როდესაც სრული (განივი) ძებნის ალგორითმს ამისათვის
დასჭირდა 46 კვანძის გახსნა.ასე მარტივად ვერ ამოხსნიდა ამ ამოცანას ვერცერთი „ხარბი“
ალგორითმიც. არა და განსხვავება ამ ორი ალგორითმის შემფასებელ ფუნქციებში არის
მხოლოდ ის, რომ მოწესრიგებული ძებნის ალგორითმში შემოდის გავლილი გზის ფასის
ფუნქცია g( n ) . განვიხილოთ როგორია ეს ფუნქცია. შეგვიძლია დავამტკიცოთ, რომ g( n )
არის მკაცრად ზრდადი ფუნქცია. მართლაც, ჩვენ დავუშვით, რომ ნებისმიერ გადასვლაზე
ერთი მდგომარეობიდან მეორე მეზობელ მდგომარეობაში იხარჯება გარკვეული ენერგია,
რომელიც შეიძლება გამოვიყენოთ ამ გადასვლის შესაფასებლად. ეს ფასი არის რაგინდ მცირე,
მაგრამ ყოველითვის დადებითი რიცხვი. შესაბამისად გამოდის, რომ g( n ) ფუნქცია არის
მკაცრად ზრდადი ფუნქცია.
როდესაც ვიხილავდით „პიკისაკენ აღმავალ“ ალგორითმს, ჩვენ აღვნიშნეთ, რომ ამ
ალგორითმებს ხშირად იყენებენ დამატებითი საშუალებების გამოყენებით, რომლებიც
საშუალებას გვაძლევენ თავიდან ავიცილოთ ალგორითმის გაჩერება ლოკალური
ექსტრემუმის შემთხვვებში. შეიძლება ითქვას, რომ g( n ) ფუნქციაც ასრულებს ამ როლს,
მაგრამ უფრო სწორი იქნება თუ ვიტყვით, რომ g( n ) ფუნქცია ახდენს ძებნის სწორ
ორგანიზებას და ხდის ალგორითმს მოწესრიგებული ძებნის ალგორითმად. მთელი ეს
ორგანიზებული ძებნა კი მიიღწევა სია “list-open”-ში კვანძების მოწესრიგებით. თუმცა
გარეგნულად რომ შევხედოთ ალგორითმის მუშაობა უფრო წააგავს მოუწესრიგებელ ძებნას.
ალგორითმს შეუძლია მოულოდნელდ შეწყვიტოს ძებნა მოცემულ ტოტზე და გადავიდეს
სხვა ტოტზე, შემდეგ მიატოვოს ის ტოტი და დაუბრუნდეს ძველ ტოტს და ასე შემდეგ.
შევაფასოთ A ტიპის ალგორითმი იმ პარამეტრებით, რომლებითაც ვამოწმებდით სხვა
ალგორითმებს.
37
სისრულე. ზოგადად ალგორითმის სისრულე მთლიანადაა დამოკიდებული იმაზე, თუ
როგორია მისი შეფასებელი ფუნქცია. დავუშვათ, ალგორითმს ვიყენებთ რაიმე ამოცანის
ამოსახსნელად, რომლის ამონახსნიც მდებარეობეს d  12 დონეზე. შემფასებელ ფუნქციას
კი დავადეთ შეზღუდვა, რომ მისი სიდიდე არ უნდა გახდეს ათზე მეტი. თავისთავად ცხადია,
რომ ალგორითმი ვერასოდეს ვერ იპოვნის ამოხსნას და ვერ იქნება სრული. მაგრამ თუ
მოვხსნით ამ შეზღუდვას, ალგორითმმა შეიძლება იპოვს ამოხსნა.
ოპტიმალურობა. იგივე შეიძლება მოხდეს ოპტიმალურობის შემთხვევაშიც. თუ
ალგორითმის შემფასებელი ფუნქცია ისეთია, რომ მისი მნიშვნელობა ოპტიმალურ გზაზე
იზრდება მნიშვნელოვნად, ალგორითმი მიატოვებს ამ გზას.
დროითი და სივრცითი სირთულე.ასევეა დროისა და მეხსიერების შემთხვევაშიც. რა
დრო დასჭირდება ამოცანის ამოხსნას და რა გამოთვლითი საშუალებები ისევ
დამოკიდებულია შემფასებელ ფუნქციაზე, თუმცა უნდა აღვნიშნოთ, რომ ჩვენთვის
საინტერესო ამოცანების შემთხვევაში, ძალიან ხშირად მარტო კარგი (ან ძალიან კარგი)
ევრისტიკებიც არაა საკმარისი. აგენტს უნდა შეეძლოს (ისე, როგორც ეს შეუძლია ბუნებრივ
ინტელექტს) მოცემული კლასის ამოცანების ამოხსნისას დააგროვოს სპეციფიკური ცოდნა და
გამოიყენოს ის ახალი ამოცანების ამოსახსნელად.
4.2. A  ალგორითმის სისრულე.ჩვენ განვიხილეთ A ტიპის ალგორითმი და აღვნიშნეთ,რომ
ამ ალგორთმის როგორც სისრულე, ასევე ოპტმალურობა, სივრცითი და დროითი
სირთულეები მთლიანადაა დამოკიდებული იმაზე, თუ როგორი იქნება მისი შემფასებელი
ფუნქცია. A კლასის ალგორთმებიდან გამოყოფენ ე.წ. A  ალგორითმებს,
რომლებშიცშემფასებელი ფუნქცია სპეციალურად ისეა შერჩეული, რომ ალგორითმს გააჩნია
რამდენიმე განსაკუთრებული თვისება (სისრულე, ოპტიმალურა და ა.შ.), რაც
მნიშვნელოვნად ამცირებს ძებნის პროცესს. ამ თვისებები განსახილველად პირველ რიგში
დავამტკიცოთ ერთი ძალიან მნიშვნელოვანი ლემა.
ლემა: თუ ნებისმიერი s კვანძისთვის სრულდება პირობა, რომ
h( s )  h ( s ) (1),

სადაც h( s ) არის ევრისტიკული ფუნქციის მნიშვნელობა s კვანძში, ხოლო h ( s ) კი


ოპტიმალური გზის ფასი s კვანძიდან მიზნის კვანძამდე, მაშინ ნებისმიერ მომენტში, სანამ
A  ალგორითმი დაამთავრეს მუშაობას, ამოხსნის ოპტიმალურ გზაზე საწყისი კვანძიდან
/
მიზნის კვანძამდე არსებობს ისეთი გაუხსნელი s კვანძი (მოთავსებულია სიაში “list-open”,
რომ f ( s / )  f ( s ) . სადაც f ( s ) არის ოპტიმალური გზის ფასი s0 კვანძიდან მიზნის
კვანძამდე.
დამტკიცება: დავუშვათ, ( s0 , s1 ,..., nk ) იყოს კვანძების მოწესრიგებული მიმდევრობა,
/
რომელიც წარმოადგენს ოპტიმალურ გზას და s არის პირველი გაუხსნელი კვანძი ამ
გზაზე. ასეთი კვანძი უნდა არსებობდეს, რადგანაც, თუ A  ალგორითმმა უკვე გახსნა sk
კვანძი, მაშინ მას დაუმთავრებია მუშაობა. თუ გავიხსენებთ შემფასებელი ფუნქციის
განმარტებას, გვექნება რომ f ( s / )  g( s / )  h( s / ) .
ჩვენ ვიცით, რომ ალგორითმმა უკვე იპოვნა ოპტიმალური გზა g  ( s / ) . რადგანაც s
/

მდებარეობს ოპტიმალურ გზაზე, ხოლო ყველა მისი წინაპარი კვანძი უკვე მდებარეობს სიაში
„lict-closed”, ამიტომცხადია, რომ g( s / )  g ( s / ) .

თუ გავითვალისწინებთ (1) პირობას. მივიღებთ, რომ


f ( s / )  g( s / )  h( s / )  g ( s / )  h ( s / )  f ( s )
ანუ
38
f ( s / )  f ( s ) რ.დ.გ.
ეს ლემა, საშუალებას გვაძლევს დავამტკიცოთ A  ალგორითმის სისრულე.
თეორემა 1. თუ სრულდება პირობა, რომამოცანის ნებისმიერ კვანძში f ( s / )  f ( s ) და თუ
ყველა გადასვლა კვანძიდან მეზობელ კვანძში აღემატება რაიმე მცირე დადებით  რიცხვს,
მაშინ A  ალგორითმი სრულია, ანუ ყოველთვის იპოვნის ამოხსნას, თუ ეს ამოხსნა არსებობს.
გაითვალისწინეთ, იგულისხმება რომ აგენტს გააჩნია შეუზღუდავი დრო და გამოთვლითი
საშუალებები.
დამტკიცება. დავამტკიცოთ ეს დებულება საწინააღმდეგოს დაშვებით. განვიხილოთ ორი
შესაძლო შემთხვევა: ალგორითმმა დაამთავრა მუშაობა და ვერ იპოვა ამონახსნი, და მეორე,
ალგორითმი ვერ პოუობს ამოხსნას და არ ამთავრებს მუშაობას.
პირველი შემთხვევა შეუძლებელია. მართლაც, ალგორითმის სტრუქტურიდან
გამომდინარე, ალგორითმი მუშაობას ამთავრებს ორ შემთხვევაში:
1. წარმატებით, ალგორითმმა იპოვნა ამონახსნი.
2. წარუმატებლად, ალგორითმმა ვერ იპოვა ამონახსნი, ე.ი. სია list open ცარიელია.
მაგრამ ჩვენს მიერ დამტკიცებული ლემის თანახმად, სანამ A ალგორითმი დაამთავრებს
/
მუშაობას, სიაში “ღიაა” არსებობს ისეთი გაუხსნელი s კვანძი, რომელიც მდებარეობს
ამოხსნის ოპტიმალურ გზაზე და მისი შეფასება ნაკლებია ოპტიმალური ამოხსნის ფასზე,
ამიტომ, სანამ ალგორითმი დაამთავრებს მუშაობას მან აუცილებლად უნდა გახსნას ეს კვანძი
და აქედან გამომდინარე, ავტომატურად იპოვოს ამონახსნიც.
განვიხილოთ მეორე შემთხვევა, ამოხსნა არსებობს, ალგორითმი ვერ პოულობს მას
და არც ამთავრებს მუშაობას. დავუშვათ, s t არის რომელიმე მიზნის კვანძი, რომელიც
საწყისი კვანძიდან მიიღწევა რაიმე სასრული ბიჯის შემდეგ და მისი მინიმალური ფასია
f ( s ) . რადგან ნებისმიერი გადასვლის ფასი ერთი კვანძიდან მეორეში აღემატება  -ს,
ნებისმიერი კვანძისთვის, რომელიც M  f ( s )  ბიჯზე უფრო შორს მდებარეობს s0 -დან,
ეგვექნება რომ f ( s )  g( s )  g  ( s )  M    f ( s ) .
აქედან გამოდის, რომ არასოდეს არ იქნება გახსნილი კვანძი, რომელიც მდებარეობს
M ბიჯზე შორს საწყისი s0 კვანძიდან (ზემოთ დამტკიცებული ლემის თანახმად) და თუ
ალგორითმი არ ამთავრებს მუშაობას, ეს იმას ნიშნავს, რომ ის ხელახლა ხსნის ერთსა და იმავე
კვანძებს, რომლებიც საწყისი კვანძიდან დაშორებულები არიან არა უმეტეს M ბიჯით.
დავუშვათ,  ( M ) არის სიმრავლე ყველა იმ კვანძებისა, რომლებიც მიიღწევა s0 კვანძიდან
M ბიჯით, ხოლო  ( M ) კი კვანძების რაოდენობა ( M ) -ში. რადგანაც არსებობს მხოლოდ
სასრული რაოდენობის გზები s0 -დან s კვანძამდე. გამოვა, რომ თითოეული კვანძი  ( M ) -
დან შეიძლება ხელახლა გაიხსნას დავუშვათ ყველაზე დიდი  ( s , M ) -ჯერ.
დავუშვათ
 ( M )  max  ( s ,M )
s  ( M )
 ( M ) არის მაქსიმალური რიცხვი, რამდენჯერაც შეიძლება ხელახლა გაიხსნას
ნებისმიერი კვანძი. მაშინ მაქსიმუმ  ( M )   ( M ) -ჯერ გახსნის შემდეგ ყველა კვანძი ( M ) -
ში იქნება მოთავსებული სიაშიlist closed და ალგორითმმა უნდა დაამთავროს მუშაობა. ასეთ
შემთხვევაში ძალაში შედის დამტკიცების პირველი ვარიანტი. ამით თეორემა

დამტკიცებულია, ანუ A ალგორითმი სასრულია.

4.3. A  ალგორითმის ოპტიმალურობა. ვაჩვენოთ, რომ A  ალგორითმი ოპტიმალურია, იმ


გაგებით, რომ ალგორითმის მიერ ნაპოვნი ამოხსნა იქნება მინიმალური გზა საწყისი
კვანძიდან მიზნის კვანძამდე.

39
დავუშვათ კვლავ საწინააღმდეგო, ანუ ალგორითმმა იპოვნა ამოხსნა, რომელიც
მთავრდება რაიმე s t მიზნის მდგომარეობაზე, მაგრამ ის არ არის მინიმალური გზა, ანუ
f ( st )  f ( s ) . მაგრამ ლემის თანახმად სიაში “list open” არსებობს ისეთი გაუხსნელი s/
კვანძი, რომლისთვისაც სრულფება პირობა f ( s / )  f ( s )  f ( st ). ამიტომ st კვანძის
/
მაგივრად ალგორითმი გახსნიდა s კვანძს და იპოვიდა ოპტიმალურ ამოხსნას.
4.4. ალგორითმის ინფორმირებულობა.ალგორითმის ინფორმირებულობის ქვეშ ჩვენ გვესმის
შემდეგი: დავუშვათ, გვაქვს ორი ევრისტიკული ფუნქცია, ისეთი, რომ ნებისმიერი
კვანძისთვის კმაყოფილდება უტოლობა
h1 ( si )  h2 ( si ).

მაშინ შეგვიძლია დავამტკიცოთ, რომ ალგორითმი, რომელიც თავის შემფასებელ ფუნქციაში


იყენებს ვრისტიკულ h2 ( si ) ფუნქციას, ამოცანის ამოხსნის პროცესში არ გახსნის უფრო მეტ
კვანძებს, ვიდრე ალგორითმი, რომელიც თავის შემფასებელ ფუნქციაში იყენებს h1 ( si )
ევრისტიკულ ფუნქციას. სხვანაირად რომ ვთქვათ, რაც უფრო მეტად მივუახლოვდებით
h ( n ) ფუნქციას ქვევიდან, მით უფრო უკეთესად იმუშავებს ჩვენი ალგორითმი.
დავამტკიცოთ ეს დებულებაც საწინააღმდეგოს დაშვებით. დავუშვათ, ალგორითმმა,
რომელიც იყენებდა h2 ( si ) ევრისტიკულ ფუნქციას, იპოვნა ამოხსნა, მაგრამ გახსნა რაიმე
კვანძიs / , რომელიც არ გაუხსნია ალგორითმის, რომელიც იყენებდა h1 ( si ) ევრისტიკულ
ფუნქციას. ეს იმას ნიშნავს, რომ h2 ( si ) ევრისტიკული ფუნქცის მქონე ალგორითმისათვის ამ
კვანძის შეფასებაა f ( si/ )  g( si/ )  h2 ( si/ )  f ( s ).
ხოლო h1 ( si ) ევრისტიკული ფუნქციის მქონე ალგორითმისათვის კი
f ( s / )  g( s / )  h1 ( s / )  f ( s ).
საიდანაც გამოვა, რომ h1 ( s / )  h2 ( s / ) , რაც ეწინააღმდეგება ჩვენს დაშვებას.
4.5.შეზღუდვა მონიტორულობაზე.როგორც ამ ალგორითმის აღწერიდან ჩანს, ყოველი ახალი
კვანძის გახსნისას, ალგორითმი დაკავებულია დამხმარე გამოთვლებით. კერძოდ, მან უნდა
დაადგინოს, ახლად გახსნილი კვანძებიდან რომელიმე ხომ არ გვხვდება უკვე სიაში “list
open”, an ან სიაში “list closed”, და გარდა ამისა დადგინოს ოპტიმალური გზა ახლადაგებულ
კვანძამდე.
ყველა ამ პროცედურას მიაქვს საკმაოდ დიდი დრო, რაც ზრდის ალგორითმის
დროით დანახარჯებს.. აღმოჩნდა, რომ თუ ჩვენ შემოვიტანთ კიდევ ერთ ძალიან მცირე
შეზღუდვას ალგორითმში გამოყენებულ ევრისტიკულ ფუნქციაზე, შესაძლებელი გახდება
თავიდან ავიცილოთ ეს ზედმეტი დანახარჯები. ამ შეზღუდვას უწოდებენ შეზღუდვას
მონოტორულობაზე. ამბობენ, რომ h ევრისტიკული ფუნქცია აკმაყოფილებს „შეზღუდვას
მონოტორულობაზე , თუ ყველა s i და s j კვანძებისთვის, ისეთებისთვის რომ s i არის s j -ის
წინაპარი, სრულდება პირობა h( s j )  h( s j )  c( si , s j ) , ამასთან h( t )  0. გადავწეროთ ეს
უტოლობა შემდეგი სახით: h( s j )  h( s j )  c( si , s j ) . ასეთ ფორმაში აშკარად ჩანს მისი
მსგავსება სამკუთხედის უტოლობასთან.
ეხლა ვაჩვენოთ რომ თუ A  ალგორითმი აკმაყოფილებს „შეზღუდვას
მონოტირულობაზე“, მაშინ კვანძის გახსნის დროდ ის მაშინვე პოულობს ოპტიმალურ გზას ამ
კვანძამდე. დავუშვათ s არის ნებისმიერი კვანძი, რომელიც ალგორითმმა აირჩია
გასახსნელად. თუ s  t , მაშინ ოპტიმალური გზის პოვნა ტრივიალურია, ამიტომ,
ჩავთვალოთ, რომ s  t . დავუშვათ, რომ გვაქვს კვანძების მიმდევრობა
s  s0 , s1 ,..., si , sk
40
si არის ბოლო კვანძი, რომელიც იმყოფება სიაში“listclosed“, ხოლო sk კვანძიიმყოფება სიაში
“list open”. გამოვიყენოთ მონოტორულობის შეზღუდვა გვექნება
g  ( si )  h( si )  g  ( si )  c( si , sk )  h( sk )

სავარჯიშოები:

სურათზე 4.2. მოცემულია აბირინთი, რომელშიც უნდა იმოძრაოს


1.
აგენტმა და Sმდგომარეობიდან მიაღწიოსGმდგომარეობას.მაგრამ მან არაფერი არ
იცის ლაბირინთის გარემოზე. მან იცის მხოლოდ, რომ იმყოფება უჯრაში (1,1) და
უნდამივიდეს უჯრაში (3,3). მას აქვს ოთხი ქმედება: ზევით, ქვევით, მარცხნივ, მარჯვნივ. მან
არ იცის სადარის ლაბირინთის შიდა კედლები. ნებისმიერ კონკრეტულ მდგომარეობაში ის
აღიქვამს რა ქმედებების შესრულება შეუძლია, ის ასევე აღიქვამს იყო თუ არა ის უკვე ამ
მდგომარეობაში.
ა) მოძრაობის რამდენი გეგმაა შესაძლებელი საწყისი მდგომარეობიდან?
ბ) ააგეთ აგენტის ერთისრული გეგმა მაინც.
2. დაამტკიცეთ A  ალგორითმის ინფორმირებულობა.
3. დაამტკიცეთ A  ალგორითმის ოპტიმალურობა.
4. რასუზრუნველყოფს მოწესრიგებულალგორითმშიg(n)ფუნქციისარსებობა?
5. შეამოწმეთ რამდენი კვანძის გახსნადასჭირდება ხარბიძებნის
ალგორითმსპირველისუკეთესოთიცუთმეტისთამაშის ლექციაში
განხილულიმაგალითისთვის.

41
ლექცია 5.
ამოცანები შეზღუდვათა დაკმაყოფილებაზე (აშდ).აშდ ამოცანების ამოხსნა
ალგორითმით „ძებნა უკან დაბრუნებებით“.

5.1. ამოცანები შეზღუდვათა დაკმაყოფილებაზე.აქამდე ჩვენ ვიხილავდით ალგორითმებს,


რომლებიც ამოცანის ამოხსნას ეძებენ მდგომარეობათა სივრცეში. ამ სივრცეში ამოცანის
ამოსახსნელად აუცილებელია მდგომარეობათა შეფასება ევრისტიკული ფუნქციების
გამოყენება, რომლებიც მჭიდროდ არიან დაკავშირებული იმ პრობლემურ გარემოსთან,
რომელსაც მიეკუთვნება მოცემული ამოცანა. ამასთან, ყოველ ნაბიჯზე აუცილებელია
შევამოწმოთ, მივაღწიეთ თუ არა მიზნის მდგომარეობას. ამავე დროს ეს მდგომარეობები
წარმოადგენენ რაღაც “შავ ყუთს”, ერთნაირი შინაგანი სტრუქტურით. ეს სტრუქტურა
მოცემულია მონაცემებით, რომლებთანაც წვდომა შეიძლება განხორციელდეს მხოლოდ იმ
პროცედურების საშუალებით, რომლებიც მიეკუთვნება მოცემულ პრობლემურ გარემოს. ამის
გარდა, ყველა ეს ამოცანა ისეთია, რომ ამოცანის ამოხსნა წარმოადგენს გზას საწყისი
მდგომარეობიდან მიზნის მდგომარეობამდე.
ეხლა უნდა განვიხილოთ ამოცანები ეგრეთ წოდებულ შეზღუდვათა დაკმაყოფილებაზე,
რომლებშიც მდგომარეობათა აღწერა და მიზნის შემოწმება შეესაბამება სტანდარტულ,
სტრუქტურირებულ და ძალიან მარტივ წარმოდგენას. ამასთან ამ ამოცანებში ამოხსნას
წარმოადგენს მხოლოდ მიზნის მდგომარეობა და არა გზა საწყისი მდგომარეობიდან მიზნის
მდგომარეობამდე. მიზნის ასეთნაირი განსაზღვრა საშუალებას იძლევა ჩამოვაყალიბოთ
ძებნის უფრო მოხერხებული ალგორითმები, რომლებსაც შეეძლებათ ისარგებლონ
მდგომარეობის ასეთი ზოგადი სახით წარმოდგენის უპირატესობით და ძებნისთვის
გამოიყენონ ზოგადი დანიშნულების ევრისტიკული ფუნქციები. აგრეთვე არსებითია ისიც,
რომ ის სტანდარტული წარმოდგენა მიზნის შემოწმებისა, რომელიც გამოიყენება ამ
ალგორითმებში ხსნის თვით ამოცანის სტრუქტურას, და საშუალებას გვაძლევს შევქმნათ
ამოცანის დეკომპოზიციის მეთოდები და დავადგინოთ შინაგანი კავშირი ამოცანის
სტრუქტურასა და ამოხსნის სირთულეს შორის.

სურ. 5.1. ამოცანა რუკის გაფერადებაზე.

5.2. ცვლადები და შეზღუდვები.ფორმალურად, ნებისმიერი ამოცანა შეზღუდვათა


დაკმაყოფილებაზე (აშდ), განსაზღვრულია X 1 , X 2 ,...,X n ცვლადებითა და C1 ,C2 ,...,Cm
შეზღუდვების სიმრავლეებით. თითოეულ X i ცვლადს გააჩნია Di მნიშვნელობათა შესაძლო
არაცარიელი განსაზღვრის არე. თითოეული C j შეზღუდვა შეიცავს ცვლადების რაიმე
ქვესიმრავლეს და განსაზღვრავს ამ ქვესიმრავლისათვის დასაშვებ კომბინაციებს.

42
ამოცანის მდგომარეობა განისაზღვრება ცვლადისათვის მნიშვნელობათა მინიჭების გზით.
მხოლოდ ეს ერთი უნივერსალური ოპერატორია საკმარისი აშდ-ში, განსხვავებით წინა
ლექციაში განხილული ამოცანებისგან, სადაც თითოეულ ამოცანას სჭირდება საკუთარი
ოპერატორები ახალი მდგომარეობების მისაღებად. მინიჭებას, რომელიც არღვევს არცერთ
შეზღუდვას, ეწოდება დასაშვები (ან თავსებადი) მინიჭება. სრული ეწოდება ისეთ მინიჭებას,
რომელშიც მონაწილეობს ყველა ცვლადი, ხოლო ამოცანის ამონახსნი ეწოდება ისეთ სრულ
მინიჭებას, რომელიც აკმაყოფილებს ყველა შეზღუდვას. გარდა ამისა, ზოგიერთ ამოცანებში
საჭიროა ისეთი ამონახსნის პოვნა, რომელიც ახდენს მიზნის ფუნქციის ოპტიმიზაციას.
5.3. ამოცანის წარმოდგენა ცვლადებისა და შეზღუდვების საშუალებით.დავუშვათ,
მოცემული გვაქვს რუკა, რომელიც შედგება შვიდი რეგიონისაგან და ჩვენი ამოცანაა
გავაფერადოთ ეს რუკა სამი ფერის (წითელი, მწვანე, ცისფერი) საშუალებით ისე, რომ
მეზობელ რეგიონებს არ ჰქონდეთ ერთი და იგივე ფერი (იხ. სურ. 5.1).
ჩამოვაყალიბოთ ეს ამოცანა აშდ–ს ენაზე. ამისათვის აღვნიშნოთ რეგიონები
ცვლადებით: X 1 , X 2 , X 3 , X 4 , X 5 , X 6 , X 7 . ყველა ცვლადის დასაშვებ მნიშვნელობათა
სიმრავლე შიცავს სამ ფერის {წითელი – 1, მწვანე - 2, ცის ფერი - 3}.შეზღუდვები მოითხოვენ,
რომ ყველა წყვილი გაფერადებულიიყოს სხვადასხვა ფერით. მაშინ მაგალითად, X 1 და X 2
ცვლადებისათვის დასაშვებია ფერთა შემდეგი კომბინაციები:
{( 1,2 ); ( 1.3 ); ( 2.1 ); ( 2.3 ); ( 3 ,1 ); ( 3 ,2 )} .
შესაძლებელია ამ შეზღუდვების უფრო მარტივი სახით ჩაწერაც, იმ პირობით, რომ
ალგორითმში არსებობს ისეთი პროცედურა, რომელიც შეძლებს მის წაკითხვას. ზოგადად
ასეთი ამოცანები შეზღუდვებზე შესაძლებელია წარმოვადგინოთ გრაფის სახით. აქ კვანძები
შეესაბამებიან ცვლადებს, ხოლო რკალები შეზღუდვებს (იხ. სურ. 5.2). ამოცანის აშდ-ს სახით
წარმოდგენა საშუალებას გვაძლევს, მივაღწიოთ მნიშვნელოვან უპირატესობას ამოცანის
მდგომარეობათა სივრცეში წარმოდგენასთან შედარებით:
1. მდგომარეობის წარმოდგენა ხდება სტანდარტული შაბლონით (ცვლადები, მათი
მნიშვნელობები და შეზღუდვები), ამიტომ შვილობილი კვანძის განმსაზღვრელი ფუნქცია
(ოპერატორი) და მიზნის შემოწმება შეიძლება ჩავწეროთ უნივერსალური ფორმით,
ერთნაირად ყველა ამოცანისათვის.
2. შეიძლება დამუშავდეს ეფექტური, სტანდარტული ევრისტიკული ფუნქციები, რომელთა
შესაქმნელად საჭირო აღარ იქნება დამატებითი ცოდნა კონკრეტული ამოცანის შესახებ.
3. ამოცანის ამოხსნის პროცესის გასამარტივებლად შეიძლება გამოვიყენოთ შეზღუდვათა
გრაფის სტრუქტურა, რაც საშუალებას მოგვცემს ექსპონენციალურად შევამციროთ სირთულე.
ადვილი საჩვენებელია, რომ აშდ კლასის ყველა ამოცანა შეიძლება აღწერილი იქნას ისევე,
როგორც ამოცანები მიზნის ძებნაზე. ჩვენ აღვწერდით ამოცანას ხუთი კომპონენტის
საშუალებით: მდგომარეობათა სიმრავლე; საწყისი მდგომარეობა; შვილობილი წვეროს
განმსაზღვრელი ფუნქციათა (ოპერატორების) სიმრავლე; მიზნის მდგომარეობა და გზის
ფასი. ამ შემთხვევაში საწყისი მდგომარეობა იქნება ცარიელი მინიჭება, რომლის დროსაც
არცერთ ცვლადს არ მიენიჭება მნიშვნელობა. შვილობილი წვეროს განმსაზღვრელი ფუნქცია
– რომელიმე ცვლადისათვის დასაშვები მნიშვნელობის მინიჭება. მიზნის შემოწმების
პროცედურა ტოლფასია შევამოწმოთ, მიმდინარე მინიჭება სრულია თუ არა. გზისფასი
მუდმივი სიდიდე იქნება ყველა გადასვლისათვის (ყველა ცვლადისათვის რაიმე
მნიშვნელობის მინიჭებისათვის).
ამ ამოცანებში ყველა ამოხსნა უნდა წარმოადგენდეს სრულ მინიჭებას და ამიტომ უნდა
იმყოფებოდეს n დონეზე, სადაც n არის ცვლადების რაოდენობა. აქედან გამომდინარე, ხის
სიღრმეც აუცილებლად იქნება აგრეთვე n ტოლი, ამიტომ აშდ ამოცანების ამოხსნის დროს
ფართოდ გამოიყენება სიღრმეში ძებნის ალგორითმები. როგორც უკვე აღვნიშნეთ, ამ

43
ამოცანებისათვის არავითარ ინტერესს არ წარმოადგენს ის გზა, რომლითაც მიიღწევა ამოხსნა
(საიდანაც გნებათ, იქიდან დაიწყეთ რუკის გაფერადება და რა მიმდევრობითაც გნებავთ, ისე
გააფერადეთ), ამიტომაც შეიძლება მოვახდინოთ ამოცანის ამონახსნის ფორმულირება სრულ
მდგომარეობათა ენაზე, რომელშიც ყველა მდგომარეობა წარმოადგენს სრულ მინიჭებას,
რომლებიც ან აკმაყოფილებენ შეზღუდვებს ან არა.

სურ. 5.2. ამოცანის წარმოდგენა გრაფის სახით.

მარტივი ამოცანებისათვის დამახასიათებელია დისკრეტული ცვლადები, რომელთაც


აქვთ სასრული განსაზღვრის არეები. ასეთია ჩვენს მიერ განხილული მაგალითიც. ასეთივეა
რვა ლაზიერის ამოცანა, რომელშიც Q1 ,Q2 ,Q3 ,Q4 ,Q5 ,Q6 ,Q7 ,Q8 ცვლადებით შეგვიძლია
აღვნიშნოთ თითოეული ლაზიერის პოზიცია 1,2,3,4 ,5,6 ,7 ,8 ვერტიკალებზე. თითოეული
ცვლადის მნიშვნელობათა სიმრავლეა – { 1,2,3,4 ,5,6 ,7 ,8 } . თუ ნებისმიერი ცვლადისთვის
განსაზღვრის არის მაქსიმალური ზომა არის d , მაშინ ყველა შესაძლო სრულ მინიჭებათა
რაოდენობა იზომება სიდიდით O( d n ) . მიუხედავად იმისა, რომ ამ შემთხვევაშიც შეფასება
ექპონენციალურია, ალგორითმები, რომლებიც გამოიყენება აშდ ამოცანების ამოსახსნელად
უმეტეს შემთხვევაში საშუალებას გვაძლევენ ამოვხსნათ რამდენიმე რიგით უფრო რთული
ამოცანები.
დისკრეტულ ცვლადებსაც შეიძლება ჰქონდეთ უსასრულო განსაზღვრის არე. ასეთ
შემთხვევაში უკვე შეუძლებელი ხდება შეზღუდვათა აღწერა ცვლადების მნიშვნელობათა
კომბინაციების ჩამოთვლით. ამ შემთხვევაში საჭიროა გამოვიყენოთ შეზღუდვათა აღწერის
ენა. ყველაზე ხშირად ამმიზნით გამოიყენება ალგებრული აღწერა. მაგალითად, თუ ორი
ცვლადიდან x და y , ერთერთის მნიშვნელობები არ შეიძლება იყოს ნაკლები რაიმე მუდმივი
სიდიდით მეორეზე, გვექნება შეზღუდვა x  a  y . ამ დროს უკვე აღარ შეიძლება ასეთი
ამოცანების ამოხსნა უბრალოდ ყველა შესაძლო მინიჭებათა ჩამოთვლის გზით, რადგანაც
ასეთ მინიჭებათა რაოდენობა იქნება უსასრულო სიმრავლე. აშდ ამოცანებში ჩვენ არ
განვიხილავთ ამოცანებს მთელმნიშვნელიანი ცვლადებითა და წრფივი შეზღუდვებით და
ამოცანებს ცვლადთა უწყვეტი განსაზღვრის არეებით. პირველი ტიპის ამოცანები
შეისწავლება წრფივ პროგრამირებაში, ხოლო მეორე სახის – ოპერაციათა გამოკვლევაში.

44
სურ. 5.3. შეზღუდვის ყველა განსხვ ( ) ჰიპერგრაფი.
აქ რგოლებით აღნიშნულია შეზღუდვები, რომლებიც დაკავშირებულები არიან მათ მიერ
შეზღუდულ ცვლადებთან

5.4. შეზღუდვათა ტიპები.გარდა ცვლადების ტიპების დახასიათებისა, სასარგებლოა


განვიხილოთ თუ რა ტიპების შეზღუდვები მოქმედებენ აშდ-ში. შეზღუდვები შეიძლება იყოს
უნარული, ანუ ეხებოდეს მხოლოდ ერთ ცვლადს. მაგალითად, დავუშვათ, რუკაზე X 1
რეგიონი არ შეიძლება შეიღებოს წითლად, რადგანაც ამ რეგიონის მოსახლეობას არ უყვარს
წითელი ფერი. უნარული შეზღუდვა გადაიჭრება მარტივად, განსაზღვრის არიდან
ამოვაგდებთ შესაბამის მნიშვნელობას. ბინარული შეზღუდვები უფრო რთულია, რადგანაც
ისინი ერთდროულად მოქმედებენ ორ ცვლადზე, ეს კი მოითხოვს, რომ გამოითვალოს ამ
ცვლადების მნიშვნელობების დასაშვები (ან დაუშვებელი) კომბინაციები. მაგალითად,
A1  A2 . კიდევ უფრო მაღალი რიგის შეზღუდვებში მონაწილეობს სამი და მეტი ცვლადი.
ასეთი ამოცანების კარგი მაგალითია ე.წ. რიცხვითი რებუსები, რომლებშიც რიცხვები
შეცვლილია ასოებით. მაგალითად, TWO  TWO  FOUR .
ამ მაგალითში მოთხოვება, რომ გამოსახულებაში ექვსივე ცვლადი ( F ,T ,Y ,W ,O )
ღებულობდეს სხვადასხვა მნიშვნელობებს. ასეთი შეზღუდვა შეიძლება ჩაწერილი იქნას,
როგორც შეზღუდვა ექვსი ცვლადით - ყველა განსხვ ( F ,T ,Y ,W ,O ) , ან სხვანაირად,
ბინარული შეზღუდვების სიმრავლით ( F  T ). შეზღუდვები შეკრებაზე სვეტებში ასევე
შეიცავს დამატებით ცვლადებს:
O  O  R  10  x 1
x 1  W  W  U  10  x 2
x 2  T  T  O  10  x 3
F  x3

სადაც x 1 , x 2 , x 3 დამატებითი ცვლადებია, მნიშვნელობებით 0 ან 1 , რომელიც გადაიტანება


შემდეგ თანრიგში. მაღალი რიგის შეზღუდვები შეიძლება წარმოვადგინოთ შეზღუდვის
ჰიპერგრაფის საშუალებით ისე, როგორც ეს მოყვანილია სურ.9.3. ამ მაგალითიდანაც ჩანს,
რომ მაღალი რიგის შეზღუდვები შეიძლება დავშალოთ ბინარულ შეზღუდვებად
დამატებითი ცვლადების შემოტანის საშუალებით, ამიტომ შემდგომში განვიხილავთ
მხოლოდ ბინარულ შეზღუდვებს.
5.5. კომუტატორულობა. ჩვენ ვნახეთ, რომ აშდ ამოცანები შეიძლება წარმოვადგინოთ
როგორც ძებნის ამოცანები და შესაბამისად შეიძლება მათ ამოსახსნელად გამოვიყენოთ

45
ძებნის ნებისმიერი ალგორითმი. ვნახოთ რა მოხდება თუკი გამოვიყენებთ განივი ძებნის
ალგორითმს, როდესაც ცვლადების რაოდენობაა n და თითოეულ მათგანს შეუძლია მიიღოს
d მნიშვნელობა. პირველ ეტაპზე გვექნება n  d შესაძლო ვარიანტი, რადგანაც ნებისმიერ
ცვლადს სეიზლება მოვანიჭთო ნებისმიერი მნიშვნელობა.მეორე ეტაპზე უკვე გვექნება
( n  1 ) ცვლადი, ამიტომ ვარიანტები რაოდენობა იქნება ( n  1 )  d ვარიანტი და საბოლოოდ,
მივიღებთ ხეს n!d n კვანძებით, მაშინ როდესაც სინამდილეში არსებობს მხოლოდ d n
შესაძლო სრული მინიჭება. ამის მიზეზია ის რომ არ იქნა გათვალისწინებული ყველა აშდ
ამოცანებისთვის დამახასიათებელი თვისება - კომუტატურულობა. ამოცანას ეწოდება
კომუტატორული, თუ ამოხსნის პროცესში გამოყენებული ნებისმიერ კონკრეტულ
ქმედებათა რიგს არა აქვს მნიშვნელობა.სწორედ ეს თვისება ახასიათებს აშდ ამოცანებს,
რადგანაც რა რიგითაც არ უნდა მივაკუთვნოთ ცვლადებს მნიშვნელობები, ჩვენ ყოველთვის
ვღებულობთ ერთსა და იმავე ნაწილობრივ (ან სრულ) მინიჭებას. აქედან გამომდინარე ყველა
ალგორითმში, რომელიც გამოიყენება აშდ ამოცანების ამოსახსნელად, შვილობილი კვანძები
წარმოიქმნება იმის გათვალისწინებოთ, რომ ხის თითოეულ კვანძში ხდება ერთი
მნიშვნელობის მინიჭება მხოლოდ ერთი ცვლადისათვის. მაგალითად, თუ განვიხილავთ ისევ
რუკის გაფერადების ამოცანას, საწყის მდგომარეობაში უნდა ამოვირჩიოთ X 1  1, X 1  2 ,
X 1  3 , ვარიანტებიდან ერთერთი და არა X 1  1, X 2  3 ვარიანტებიდან რომელიმე.
მხოლოდ ამ პირობის დაცვით შეგვიძლია შევამციროთ გადარჩევა d n -მდე.
5.6. ალგორითმი „ძებნა უკან დაბრუნებით“.ისევე როგორც ძებნის სხვა ალგორითმები,
ალგორითმები, რომლებიც ხსნიან აშდ ამოცანებს, მუშაობენ სიებთან, მაგრამ განსხვავებით
წინა ლექციებში განხილული ალგორითმებისგან, ესაა ცვლადების და მათ მნიშვნელობათა
სიები. ალგორითმს, რომელიც ახორციელებს სიღრმეში ძებნას, რომლის დროსაც ყოველ
ჯერზე ამოირჩევა მნიშვნელობა ერთი ცვლადისთვის და ბრუნდება უკან, როდესაც აღარ
რჩება დასაშვები მნიშვნელობები, ეწოდება ძებნის მარტივი ალგორითმი უკან დაბრუნებით.
ალგორითმი ყოველ ბიჯზე ამოირჩევს ცვლადს ცვლადების სიიდან და მიანიჭებს მას ყველა
დასაშვებ მნიშვნელობას. როდესაც აღარ დარჩება დასაშვები მნიშვნელობები მოცემული
ცვლადისთვის, ის უკან დაბრუნება. საწყის მდგომარეობაში (არცერთ ცვლადს არა აქვს
მინიჭებული რაიმე მნიშვნელობა) აიღებს პირველ ცვლადს და მიანიჭებს მას ყველა დასაშვებ
მნიშვნელობას. მეორე ეტაპზე აიღებს მეორე ცვლადს, მიანიჭებს ყველა დასაშვებ
მნიშვნელობას. თუ მიაღწევს სასრულ მდგომარეობას (ყველა ცვლადს მინიჭებული აქვს
დასაშვები მნიშვნელობები), ამოცანა ამოხსნილია, თუ არა – დაბრუნდება ერთი ნაბიჯით
უკან და განიხილავს სხვა ცვლადს. ცხადია ეს ალგორითმიც, ისევე როგორც ძებნის სხვა
ალგორითმები, მუშაობს სიებთან, მაგრამ ამ შემთხვევაში გვაქვს არა კვანძების სიები, არამედ
ცვლადების და მათი მნიშვნელობების სიები. აქედან გამომდინარე, ალგორითმის
ეფექტიანობა დამოკიდებულია იმაზე, თუ რა პრინციპების საფუძველზე ხდება ამ სიების
ორგანიზება. მაგრამ ცვლადების სია (ისევე, როგორც მნიშვნელობათა სია), უკვე აღარ
გამოხატავს კავშირს ამოცანის შინაარსთან. ამიტომ ნებისმიერი ამოცანა, რომელიც
წარმოიდგინება აშდ-ში, იხსნება ერთნაირად. ცხადია, განხილული ალგორითმი ეკუთვნის
არაინფორმირებულ ალგორითმების კლასს, რადგანაც ის იყენებს წინასწარ ფორმირებულ
ცვლადებისა და მათი მნიშვნელობების სიებს. აქაც გვჭირდება ევრისტიკული ინფორმაცია
იმისათვის, რომ მოვახდინოთ ამ სიების სორტირება ყოველი მინიჭების წინ, როგორც ეს
ხდება ინფორმირებული ალგორითმების მუშაობის დროს, მაგრამ ზემოთმოყვანილი
მსჯელობიდან გამოდის, რომ აღარც ევრისტიკული ინფორმაცია აღარ იქნება კავშირში
ამოცანის შინაარსთან, რაც იმას ნიშნავს, რომ ეს ევრისტიკები საერთო იქნება ნებისმიერი
ამოცანისთვის აშდ- დან.

46
Funcion Backtrackig-Search (აშდ) returns ამონახსნს result ან წარუმატებლობის
მაჩვენებელს failure
Return Recursive-Backtracking ({ }, აშდ)

Function Recursive-Backtracking (assignment, აშდ) then returns ამონახსნს result ან


წარუმატებლობის მაჩვენებელს failure
if მინიჭება assignment სრულია, then returnმიანიჭე assigment
var  Select-Unassigntd-Variable (Variables [შდა], assignment, აშდ)
for each value in Order-Domain-Values (var, assignment, აშდ)
for each value in Order-Dpmain-Values (var, assignment, csp) do
if value მნიშვნელობა თავსებადია მინიჭებასთან assignment შეზღუდვების თანახმად
Constraints [csp] then დაუმატე {var=value} მინიჭებას assignment
Result  Recursive-Backtracking {assignment, csp}
If result  failure then return result
ამოიღე {var=value} მინიჭება assignment
returnfailure

სურ.5.4. ალგორითმის პროგრამა

5.7. დასაშვებ მნიშვნელობათა მინიმუმის ევრისტიკა.თუგვინდა რომ ჩვენი ალგორითმი


გავხადოთ ინფორმირებული,დავუკვირეთ მის მუშაობას ჩვენს მაგალითზე და ვცადოთ
აღმოვაჩინოთ ის ევრისტიკები, რომლებიც შეიძლება გამოვიყენოთ ძებნის შესამცირებლად.
საწყის მდგომარეობაში არცერთ ცვლადს ჯერ არა აქვს მინიჭებული რაიმე მნიშვნელობა,
ამიტომ ალგორითმი აიღებს რა პირველ ცვლადს, მიანიჭებს მას ყველა (ანუ სამივე) დასაშვებ
მნიშვნელობას X 1  1, X 1  2, X 1  3 . ამოცანის გრაფიდან ჩანს, რომ პირველი ცვლადი
დაკვშირებულია მეორე და მეოთხე ცვლადებთან, ამიტომ მათ დაედოთ გარკვეული
შეზღუდვა, მათ არ შეუძლიათ მიიღონ იგივე მნიშვნელობები, რომელიც უკვე აქვს პირველ
ცვლადს. რაც შეეხება ცვლადის ამორჩევას, ალგორითმი ცხადია ამოირჩევს მეორე ცვლადს.
რაც შეეხება მნიშვნელობას, ამოირჩევს ისეთს, ის თავსებადი იყოს პირველი ცვლადის
მნიშვნელობასთან (იხ. სურ.5.5.).
როგორც ამ სურათიდან ჩანს, ალგორითმს პრობლემა დაუდგება მაშინ, როდესაც პირველ სამ
ცვლადს მიანიჭებს მნიშვნელობებს. თუ ისე გაანაწილებს ფერებს, რომ პირველ სამ ცვლადს
ექნებათ სხვადასხვა მნიშვნელობები, მაშინ მას აღარ დარჩება ფერი მეოთხე
ცვლადისთვის,ამიტომ ლოგიკურად უფრო სწორი იქნება, თუ მეორე ეტაპზე ალგორითმი
X 3 ცვლადს მაგივრად აიღებს X 4 ცლადს. ამ ეტაპზე მას დარჩენილი აქვს ერთადერთი
მნიშვნელობა. მართლაც, თუ აგენტი გახსნის ჯერ X 4 ცვლადს და შემდეგ, ყველა დანარჩენ
ცვლადებს, გარდა X 7 ცვლადისა, რომელიც არაა დაკავშირებული სხვა ცვლადებთან,
დარჩებათ ერთადერთი დასაშვებიმნიშვნელობები თითოეული ცვლადებისთვის და ამოცანა
სწრაფად ამოიხსნება.
დასკვნა, რომ ყოველ ეტაპზე უმჯობესია ამოვარჩიოთ ცვლადი დასაშვები
მნიშვნელობების მინიმალური რაოდენობებით, შეგვიძლია ჩამოვაყალიბოთ როგორც
პირველი ევრისტიკა. მას უწოდებენ დარჩენილ მნიშვნელობათა მინიმუმის
(დმმ)ევრისტიკას.სხვანაირად, ცვლადი ყველაზე მეტი შეზღუდვებით. ასეთი ევრისტიკის
გამოყენება იძლევა კიდევ იმ უპირატესობასაც, რომ თუ რომელიმე ცვლადის დასაშვებ

47
მნიშვნელობათა სიმრავლე გახდება ნოლის ტოლი, ალგორითმი პირველ რიგში ამოირჩევს ამ
ცვლადს, მივა წარუმატებლობამდე და მოკვეთავს ამ ტოტს. დავარქვათ ამ ალგორითმს ძებნა
უკან დაბრუნებით დმმ–ის გამოყენებით. ამ ალგორითმის ეფექტურობა წინა ალგორითმთან
შედარებით შეიძლება გაიზარდოს 3-დან 3000 ჯერ ამოცანის მიხედვით.

X1  1 X1  2 X1  3

X2  2 X2  1 X2  3 X2  2
X2  3 X2  1

X3  1 X3  1
X3  3 X3  2 X3  1 X3  2

X3  1 X3  2 X3  1 X3  3
X3  3 X3  2

არა
თავსებადია

სურ. 5.5. ალგორითმის მუშაობის სამი ეტაპი.

5.8. ხარისხოვანი ევრისტიკა.სამწუხაროდ, ეს ევრისტიკა არაფერს გვეუბნება პირველი


ცვლადის ამორჩევაზე, რადგანაც ხშირ შემთხვევაში (ისევე როგორც ჩვენს მაგალითშიც),
საწყის მდგომარეობაში ყველა ცვლადს გააჩნია ერთი და იგივე დასაშვებ მნიშვნელობათა
სიმრავლე. ამ შემთხვევაში მოსახერხებელია ე.წ. ხარისხოვანი ევრისტიკისგამოყენება. ეს
ევრისტიკა ცდილობს შეამციროს ხის დატოტვის კოეფიციენტი იმის ხარჯზე, რომ პირველად
ამოირჩევს ცვლადს, რომელიც მონაწილეობს ყველაზე მეტ შეზღუდვებში იმ ცვლადებთან,
რომლებსაც ჯერ არა აქვთ მინიჭებული მნიშვნელობები. ჩვენს მაგალითში ასეთ ცვლადს
წარმოადგენს X 4 ცვლადი. ეს ევრისტიკა დმმ ევრისტიკასთან შედარებით ნაკლებად
ამცირებს გადარჩევას, მაგრამ ძალიან სასარგებლოა გაურკვეველ სიტუაციებში.
მას შემდეგ, რაც ამოვირჩევთ რომელიმე ცვლადს, საჭიროა დავადგინოთ მისი
მნიშვნელობების მინიჭების რიგი. ამისათვის შეიძლება გამოვიყენოთ კიდევ ერთი
ეფექტური ევრისტიკა - მინიმალურად შემზღუდავი მნიშვნელობის ამორჩევის ევრისტიკა.ეს
ევრისტიკა უპირატესობას ანიჭებს ცვლადის იმ მნიშვნელობას, რომელიც მინიმალურად
ზღუდავს დანარჩენი ცვლადებისთვის მნიშვნელობათა მინიჭების ვარიანტებს. იმავე
მაგალითში თუ პირველ ცვლადს მინიჭებული აქვს მნიშვნელობა ერთი, მეორე ცვლადს კი
მნიშვნელობა – ორი და ვიხილავთ მესამე ცვლადს, დასაშვები ორი ვარიანტიდან ეს
ევრისტიკა ამოირჩევს მნიშვნელობას ერთი, რადგან სამის მინიჭება მეოთხე ცვლადს აღარ
უტოვებს დასაშვებ მნიშვნელობას. თუ ჩვენ ვეძებთ ამოცანის ყველა ამოხსნას, ან ამოცანას არ
გააჩნია ამონახსენი, მაშინ ამ ევრისტიკის გამოყენებას აზრი არა აქვს, ყველა დანარჩენ
შემთხვევაში კი ეს ევრისტიკაც ამცირებს გადარჩევას.
ვნახოთ, როგორ იმუშავებს ასეთი ევრისტიკებით აღჭურვილი ალგორითმი ჩვენი მაგალითის
შემთხვევაში. ხარისხოვანი ევრისტიკის გამოყენებით ის პირველ ცვლადად ამოირჩევს X 4
ცვლადს, რადგანაც ის დაკავშირებულია ხუთ ცვლადთან. მინიმალურად შემზღუდავი
48
მნიშვნელობის ამორჩევის ევრისტიკა აქ ვერ იმუშავებსმ იმიტომ, რომ ყველა დანარჩენი
ცვლადების (გარდა X 7 -სა, რომლის მნიშვნელობათა სიმრავლე არ იზღუდება) დასაშვებ
მნიშვნელობათა სიმრავლე იზღუდება ერთნაირად.
5.9. წინასწარი შემოწმება.აქამდე განხილულ ალგორითმში შეზღუდვა, რომელიც
ვრცელდებოდა რომელიმე ცვლადზე, მხედველობაში მიიღებოდა მხოლოდ მაშინ, როდესაც
ხდებოდა ამ ცვლადისათვის მნიშვნელობის მინიჭება. მაგრამ თუ ზოგიერთ შეზღუდვას
განვიხილავთ უფრო ადრეულ ეტაპებზე, ან საერთოდ ძებნის დაწყებამდე, შესაძლებელია
მკვეთრად შევამციროთ ძებნის სივრცე.
ერთერთ საშუალებას ძებნის დროს შეზღუდვების უკეთ გამოყენებისა წარმოადგენს
წინასწარი შემოწმების მეთოდი, რომელიც მდგომარეობს შემდეგში: ცვლადისთვის რაიმე
მნიშვნელობის მინიჭებისას ხდება ყველა იმ ცვლადის შემოწმება, რომლებსაც ჯერ არა აქვთ
მინიჭებული მნიშვნელობა და რომლებიც რაიმე შეზღუდვით დაკავშირებულნი არიან იმ
ცვლადთან, რომელსაც ვანიჭებთ რაიმე მნიშვნელობას და მათი განსაზღვრის არედან
ამოიშლება მნიშვნელობები, რომლებიც შეუთავსებელნი არიან ცვლადისთვის მინიჭებულ
მნიშვნელობასთან. სურ. 9.6 მოცემულია წინასწარი შემოწმების მეთოდის გამოყენება ჩვენს
მიერ ზემოთ განხილული მაგალითისთვის. პირველ სტრიქონში მოცემულია საწყისი
განსაზღვრის არეები ძებნის დაწყებამდე. მეორე სტრიქონში განსაზღვრის არეები მას შემდეგ,
რაც პირველ ცვლადს მივანიჭეთ მნიშვნელობა 1. მესამე სტრიქონში – პირველ ცვლადს
მიენიჭა მნიშვნელობა ერთი და მესამე ცვლადს – 2. მეოთხე სტრიქონში პირველს –1, მესამეს –
2, მეხუთს – 3. როგორც ამ მაგალითიდან ჩანს, მას შემდეგ, რაც პირველ ცვლადს მივანიჭეთ
მნიშვნელობა 1 და მესამეს მნიშვნელობა –2, მეორე და მეოთხე ცვლადებს დარჩათ
ერთადერთი დასაშვები მნიშვნელობა. ეს რა თქმა უნდა ამცირებს ძებნის ხის დატოტვას,
რასაც აუცილებლად გამოიყენებს დმმ ევრისტიკა. მეორე, რაც ასევე ძალიან მნიშვნელოვანია,
არის ის, რომ მეხუთე ცვლადისათვის მნიშვნელობა 3-ის მინიჭების შემდეგ მეოთხე ცვლადის
დასაშვებ მნიშვნელობათა სიმრავლე აღმოჩნდა ცარიელი, რაც იმას ნიშნავს, რომ ეს
კომბინაცია შეუთავსებელია შეზღუდვებთან, ამიტომ ალგორითმი აღარ გააგრძელებს მის
განიხილვას და დაბრუნდება უკან.

X1 X2 X3 X4 X5 X6 X7
123 123 123 123 123 123 123
1 23 123 123 123 23 123
1 3 2 1 3 123 3 123
1 3 2 1 3 123

სურ.5.6. წინასწარი შემოწმების ცხრილი

მიუხედავად იმისა, რომ წინასწარი შემოწმების მეთოდი კარგ საშუალებას გვაძლევს


აღმოვაჩინოთ ბევრი შეუსაბამობა, მას მაინც არ შეუძლია ყველაფრის დანახვა. მაგალითად,
მესამე სტრიქონში, პირველი ცვლადისათვის 1 მინიჭებისა და მესამე ცვლადისთვის 2
მინჭების შემდეგ მეორე და მეოთხე ცვლადებს რჩებათ მხოლოდ მნიშვნელობა 3. ეს
რეგიონები კი ერთმანეთის მეზობლები არიან და არ შეუძლიათ მიიღონ ერთი და იგივე
მნიშვნელობები.

სავარჯიშოები:

49
1. მოცემულიასამმაგი შეზღუდვა: AB C. დამხმარე ცვლადების გამოყენებით
დაშალეთის სამ ბინარულშეზღუდვად.დახმარება: შეგიძლიათ შემოიტანოთ
შეზღუდვები ცვლადების განსაზღვრის არეებზე).
2. ახსენით, აშდ ამოცანებისთვის რატომააყველახე კარგი ევრისტიკა ისეთი ცვლადის
ამორჩევა, რომელიც ყველაზე მეტადაა შეზღუდული და ამავე დროს ისეთი
მნიშვნელობის ამორჩევა, რომელიც ყველასე ნაკლებად ზღუდავს სხვა ცვალდებს?
3. თუ შეგიძლიათ აღწერეთ როგორ შეიძლება გამოვიყენოთ აშდ კროსვორდების შექმნი
ამოცანასთან (შექმნის, და არა ამოხსნის)?
4. რისთვის გამოიყენება წინასწარი შემოწმების მეთოდი და რაში მდგომარეობს მისი
სუსტი მხარე?
5. რამდენი ამონახსნი აქვს ლექცაში განხილულ რუკების გაფერადების ამოცანას?
6. ამოხსენით ლექციაში მოყვანილი კრიპტიარითმეტიკული ამოცანა ალგორითმ „ძებნა
უკან დაბრუნებით“ გამოყენებით კომპიუტერის გარეშე.
7. ამოხსენით ამოცანა:
ხუთსახლში,რომლებიცშეღებილიახუთისხვადასხვაფერით,ცხოვრობისხუთი
სხვადასხვაეროვნების ადამიანი,რომლებიც
ეწევიანხუთსხვადასხვახარისხისსიგარეტს, სვავენსხვადასხვასასმელებს დაჰყავთ
სახლში სხვადასხვაცხოველები. მოცემულია:
ინგლისელი ცხოვრობს წითელსახლში
ესპანელს ჰყავსძაღლი
ნოვეგიელი ცხოვრობსმარცხნიდანპირველსახლში
სიგარეტ„მალბოროს“ეწევიანყვითელსახლში
ადამიანი, რომელიცეწევა„ჩესტერფილდს“ცხოვრობსიმადამიანის გვერდით,
რომელსაც სახლში ჰყავს მელია
ადამიანს, რომელიც ეწევა„ვინსტონს“ჰყავსლოკოკინა
ადამიანი, რომელიცეწევა„ლაკი სტრაიკს“,სვავსაპელსინის წვენს
უკრაინელი სვავსჩაის
იაპონელი ეწევა„პარლამენტს“
სიგარეტ „მალბოროს’ეწევიანსახლში, რომელიც მდებარეობსიმსახლის
გვერდით, რომელშიცჰყავთ ცხენი
ყავას სვავენმწვანე სახლში
მწვანე სახლი მდებარეობსსპილოსძვლისფერი სახლის მარჯვნივ(იმ
ადამიანისთვის, ვინც ხსნისამამოცანას
რძეს სვავენშუათანასახლში.
ამოცანაგვეკითხებარომელსახლში სვავენწყალს დარომელსახლში ჰყავთზებრა.
8. შეადარეთ ერთმანეთს ამ ამოცანის წარმოდგენები მდგომარეობათა სივრცეში და აშდ-
ში.

50
ლექცია 6.
ამოცანის დეკომპოზიცია.ამოცანის ხისებური სტრუქტურა და ამოხსნის
ალგორითმი. რთული სტრუქტურის ხისებურზე დაყვანის მეთოდები.

6.1. შეზღუდვათა გავრცელება.წინა ლექციაზე განხილული წინასწარი შემოწმების მეთოდი


საშუალებას გვაძლევს ცოტათი მოვაწესრიგოთ ცვლადების და მათი მნიშვნელობების სიები,
რათა უფრო გავზარდოთ ალგორითმის ეფექტურობა, მაგრამ როგორც ვნახეთ, ამ მეთოდს არ
შეუძლია ყველა შემთხვევის გათვალისწინება. მაგალითად, განვიხილოთ წინასწარი
შემოწმების ცხრილში მესამე სტრიქონი, რომელიც გვიჩვენებს, რომ თუ X 1 ცვლადს
მივანიჭებთ მნიშვნელობას 1, X 3 კი - 2, მაშინ მეორე და მეოთხე ცვლადებს უნდა მივანიჭოთ
მნიშბნელობა 3. მაგრამ ეს რეგიონები ერთმანეთის მეზობლები არიან და ამიტომ არ შეიძლება
გქონდეთ ერთი და იგივე მნიშვნელობა. წინასწარი შემოწმების მეთოდი არ გვაძლევს
საშუალებას აღმოვაჩინოთ ეს ფაქტი, რადგანაც არ აკეთებს ასეთ შორეულ გავთვლებს. უფრო
დიდი და რთული ამოცანების შემთხვევაში, ვიდრე ჩვენს მიერ განხილული მაგალითია, ეს
ართულებს ალგორითმის მუშაობას. არსებობენ კიდევ სხვა მეთოდები ცვლადებისა და
მნიშვნელობათა სიების მოწესრიგების, გაერთიანებული ერთი სახელით შეზღუდვათა
გავრცელება.ესაა ზოგადი სახელი მეთოდების რომლებიც იკვლევენ თუ როგორ შეიძლება
იმოქმედოს სხვა ცვლადებზე შეზღუდვამ, რომელიც გამოიყენეს ერთერთ ცვალდზე. ჩვენს
შემთხვევაში უნდა გავავრცელოთ შეზღუდვა, რომელიც გამოვიყენეთ პირველი და მესამე
ცვლადიდან, მეორე და მეოთხე ცვლადებზე (როგორც ეს გაკეთდა წინასწარი შემოწმების
მეთოდით), შემდეგ გავავრცელოთ ეს შეზღუდვა მეორე და მეოთხე ცვლადებზე, რათა
აღმოვაჩინოთ შეუსაბამობა, ამასთან საჭიროა, რომ ეს მოხდეს სწრაფად, რათა ყველა წინასწარ
გამოთვლებზე არ იხარჯებოდეს უფრო მეტი დრო, ვიდრე უშუალოდ ამონახსნის ძებნაზე.
ყველაზე სწრაფი ასეთ მეთოდებს შორის არის რკალების თავსებადობის შემოწმება,
რომელიც გაცილებით ძლიერია ვიდრე წინასწარი შემოწმების მეთოდი. ამ შემთხვევაში
რკალის ქვეშ გვესმის ორიენტირებული წიბო შეზღუდვათა გრაფზე, ისეთი, როგორიცაა
მაგალითად რკალი მეოთხე ცვლადიდან მეხუთეზე. თუ განვიხილავთ ამ ცვლადების
განსაზღვრის მიმდინარე არეებს, რკალი მეოთხე ცვლადიდან მეხუთეზე ცვლადზე
თავსებადია, რადგანაც განსაზღვრის თანახმად, რკალი ერთი ცვლადიდან მეორეზე
თავსებადია, თუ პირველი ცვლადის ყოველი მნიშვნელობისათვის არსებობს მეორე ცვლადის
რომელიმე მნიშვნელობა, რომელიც დასაშვებია (თავსებადია) პირველი ცვლადის
მნიშვნელობასთან. ჩვენი მაგალითისათვის, როგორც ეს წინასწარი შემოწმების ცხრილის
მესამე სტრიქონიდან ჩანს, მეოთხე და მეხუთე ცვლადების მიმდინარე მნიშვნელობებია
შესაბამისად 3 და (1,3). თუ მეოთხე ცვლადს მივანიჭებთ მნიშვნელობას 3, მაშინ მეხუთეს
შეიძლება მივანიჭოთ 1. ამიტომ რკალი მეექვსე ცვლადიდან მეოთხე ცვლადზე თავსებადია,
მაგრამ შებრუნებული რკალი აღარ იქნება თავსებადი, რადგანაც, თუ მეხუთე ცვლადს
მივანიჭეთ მნიშვნელობა 3, მეოთხე ცვლადს აღარ დარჩება მნიშვნელობა. ეს რკალი გახდება
თავსებადი, თუ მეხუთე ცვლადის მნიშვნელობათა არედან ამოვაგდებთ მნიშვნელობს 3.
ამონახსნის ძებნის იმავე ეტაპზე რკალების თავსებადობის შემოწმება შეიძლება გამოვიყენოთ
რკალისთვის მეოთხე ცვლადიდან მეორეზე. როგორც ვხედავ, ორივე ცვლადს გააჩნია
ერთადერთი მნიშვნელობა 3. შედეგად მიიღება, რომ მნიშვნელობა 3 უნდა ამოვაგდოთ
მეოთხე ცვლადის მნიშვნელობათა სიმრავლიდან. მაშინ ეს არე დარჩება ცარიელი. ამგვარადმ
რკალების შემოწმების მეთოდმა ადრეულ ეტაპზე აღმოაჩინა შეუთავსებლობა, რომელიც ვერ
შეამჩნია წინასწარი შემოწმების მეთოდმა.
რკალების თავსებადობის შემოწმების პროცედურა შეიძლება გამოვიყენოთ როგორც
წინასწარი ეტაპი სანამ დავიწყებთ ამოცანის ამონახსნის ძებნას, ან როგორც შეზღუდვათა
გავრცელების ეტაპი (წინასწარი შემოწმების მეთოდის ანალოგიურად) ძებნის პროცესში
51
ყოველი მინიჭების შემდეგ. ამ ბოლო ვარიანტს უწოდებენ ალგორითმს თმმ(თავსებადობის
მხარდამჭერი მეთოდი). ინგლისურად MAC – Maintaining Arc Concictency.
ორივე ვარიანტში პროცედურა უნდა გამოვიყენოთ სანამ არ არ გაქრება ყველა
შეუთავსებლობები.
6.2.ლოკალური ძებნის ალგორითმი.როგორცაღმოჩნდა, რომ ლოკალური ძებნის
ალგორითმების გამოყენება ზოგიერთი აშდ ამოცანების ამოსახსნელად ძალიან ეფექტურია.
განვიხილოთ ერთი ასეთი ალგორითმი Min–Conflicts, რომელიც ცდილობს ამოარჩიოს
ცვლადის მნიშვნელობა ისე, რომ რაც შეიძლება მინიმალური კონფლიქტები შეიქმნას სხვა
ცვლადებთან. საწყისი მდგომარეობა ამოირჩევა შემთხვევითად, ან ხარბი ალგორითმების
მსგავსად ყველა ცვლადიდან ამოირჩევა ცვლადი, რომლის მნიშვნელობასაც აქვს
მინიმალური კონფლიქტი სხვა ცვლადებთან. თვით ალგორითმი კი ასეთია:

Function Min-Conflicts(აშდ, max_steps) returns ამონახსნიcurrent ანწარუმატებლობის


ინდიკატორი failure
Inputs: შეზღუდვათა დაკმაყოფილებაზე ამოცანის განსაზღვრა, max-steps,
სვლებისრაოდენობა, რომლის შემდეგაც ალგორითმი უნდა შეჩერდეს.
Current  საწყისი სრული მინიჭება აშდ
For j  1 to max-steps do
If current  არის ამოცანის ამოხსნა აშდ ამოცანისთვის
Then return Current
Var  შემთხვევითად არჩეული კონფლიქტური ცვლადი Veriables (ცვლადებიდან)
Value  ცვლადის მნიშვნელობა, რომელიც ახდენსConflicts (var,current, cps)
მინიმიზაციას, შეიტანე მნიშვნელობა var=value ამოხსნაში current
Return failure

სურ.6.1. ლოკალური ძებნის ალგორითმი

6.3. ამოცანის დეკომპოზიცია.აშდ ამოცანების ამოსახსნელად შესაძლებელია სხვა


ალგორითმების გამოყენებაც. ჩვენ წინა ლექციაზე უკვე აღვნიშნეთ, რომ აშდ ამოცანების
ცვლადებისა და შეზღუდვებით აღწერის დროს ადვილია ამოცანის სტრუქტურის დადგენა,
რაც ზოგჯერ საშუალებას გვაძლევს დავშალოთ ამოცანა რამდენიმე უფრო პატარა
ამოცანებად, ანუ მოვახდინოთ ამოცანის დეკომპოზიცია. მაგალითად, ჩვენს ამოცანაში X 7
ცვლადით აღნიშნული რეგიონი წარმოადგენს კუნძულს, რომელსაც არა აქვს საზღვარი არც
ერთ სხვა რეგიონთან (ეს კარგად ჩანს ამოცანის გრაფზეც). ამიტომ შეგვიძლია ჩვენი ამოცანა
დავშალოთ ორ, უფრო პატარა და ერთმანეთისგან დამოუკიდებელ ამოცანად და თითოეული
მათგანი ამოვხსნათ ცალცალკე. არანაირ გავლენას არ ახდენს ( X 7 ) რეგიონზე, ანუ ეს ორი
ქვეამოცანა არიან დამოუკიდებელი ქვეამოცანები, ამას აჩვენებს ამოცანის გრაფიც, რომელზეც
მეშვიდე რეგიონი ( X 7 ) არ არის დაკავშირებული არცერთ სხვა რეგიონთან. მაშინ ჩვენი
ძირითადი ამოცანა შეიძლება გავყოთ ორ ქვეამოცანად: პირველი ექვსი რეგიონის
გაფერადება და მეშვიდე რეგიონის გაფერადება. ამ შემთხვევაში ამოცანის ამოხნის სიღრმე
შემცირდება შვიდიდან ექვსამდე. ეს რა თქმა უნდა არც თუ ისე ბევრია, მაგრამ
წარმოვიდგინოთ, რომ გვაქვს ამოცანა, რომელიც შეიცავს n ცვლადს და ეს ამოცანა იყოფა
ისეთ დამოუკიდებელ ქვეამოცანებად, სადაც თითოეული ქვეამოცანა შეიცავს c ცვლადს.
52
მაშინ, რადგანაც ქვეამოცანები დამოუკიდებელია, ერთი ქვეამოცანის ცვლადები არ შედიან
სხვა ქვეამოცანებში),ამიტომ სულ გვექნება n c ქვეამოცანა და თითოეული ქვეამოცანის
ამოხსნა მოითხოვს მაქსიმუმ d c ვარიანტის გადასინჯვას, ამიტომ მთელი ამოცანის
სირთულე იქნება O( d c  n ) , რომელიც წრივადაა დამოკიდებული n -ზე. როგორც ვხედავთ,
c
ქვეამოცანებად დაშლა მნიშვნელოვნად ამცირებს ამოცანის ამოხსნაზე დროს და
გამოყენებულ მეხსიერებას.

ა) ხისებური სტრუქტურა;ბ) ცვლადების მოწესრიგება Aფუძით.


სურ. 6.2

6.4. ამოცანის ხისებური სტრუქტურა.ამოცანის დაშლა დამოუკიდებელ ქვეამოცანებად


ძალიან კარგი და სწრაფი მეთოდია, მაგრამ სამწუხაროდ ასეთი ამოცანები გვხვდება ძალიან
იშვიათად, უმრავლეს შემთხვევებში ქვეამოცანები დამოკიდებულია ერთმანეთზე და ისინი
ქმნიან გრაფს. მაგრამ ამ შემთხვევაშიც კიდევ შესაძლებელია გარკვეული გამარტივება იმის
მიხედვით, თუ როგორი იქნება ამოცანის გრაფი. ძალიან ხშირად გვხვდება უმარტივეს
შემთხვევა, როდესაც ამ ეს გრაფს აქვს ხისებური სრუქტურა, ანუ როდესაც ნებისმიერი ორი
ქვეამოცანა მხოლოდ ერთი გზითაა დაკავშირებული (იხ. სურ. 10.1). ასეთ შემთხვევაში,
არსებობს ალგორითმი, რომლის სირთულეც წრფივადაა დამოკიდებული ცვლადების
რაოდენობაზე. ალგორითმი შედგება შემდეგი ეტაპისაგან:
1. ამოირჩიე ხის ფესვად ნებისმიერი ცვლადი და მოაწესრიგე ცვლადები ფესვიდან
ფოთლებამდე ისე, რომ თითოეული კვანძის მშობელი კვანძი ხეზე წინ უსწრებდეს ამ კვანძს
(იხ. სურ. 10.1 ბ). აღნიშნე ცვლადები ამ მიმდევრობით, როგორც X 1 , X 2 ,..., X n , მაშინ ყველა
ცვლადს გარდა ფესვისა, ეყოლება მხოლოდ ერთი მშობელი ცვლადი.
2. გამოიყენე რკალების თავსებადობის შემოწმება ( X i , X j ) რკალებისთვის, ციკლში j
იცვლება n -დან 2-მდე სადაც X i არის მშობელი X j -ური კვანძისთვის და თუ საჭიროა
ამოყარე მნიშვნელობები X i -ს განსაზღვრის არედან.
3. ციკლში j იცვლება 1 -დან n -მდე მიანიჭე X j ნებისმიერი მნიშვნელობა, რომელიც
თავსებადია X i ცვლადთან, სადაც X i არის მშობელი კვანძი.
შევნიშნოთ, რომ მეორე ეტაპის შესრულების შემდეგ ამოცანაში რკალები თავსებადია მათი
ორიენტაციის მიხედვით და ამიტომ ალგორითმის აღარ სჭირდება უკან დაბრუნება.
რადგანაც მეორე ეტაპზე რკალების თავსებადობის შემოწმება ხდება უკუმიმართულებით n -
53
დან 2 -მდე, ცვლადის მნიშვნელობათა სიმრავლიდან რომელიმე მნიშვნელობის ამოგდება
ვერ დაარღვევს უკვე არსებულ თავსებადობას. ამგვარად, აშდ ამოცანების ამოხსნის წრფივი
ალგორითმი გვაქვს. ახლა საჭიროა ვნახოთ, როგორ შეიძლება მივიყვანოთ რთული გრაფი
ხისებურ სტრუქტურამდე. არსებობს ორი გზა ამ მიზნის მისაღწევად: პირველი მოითხოვს
ზოგიერთი კვანძის მოცილებას, მეორე – კი პირიქით, კვანძების გარეთიანებას.
დავუბრუნდეთ ჩვენს მაგალითს. თუ ჩვენ შევძლებთ X 4 ცვლადის მოშორებას, მაშინ
დანარჩენი ცვლადები მოგვცემენ ხეს (იხ. სურ. 6.3.).

სურ. 6.3. ამოცანის ხისებური სტრუქტურა

ამ კვანძის მოშორება რომ შესაძლებელი გახდეს, საჭიროა ჩვენ X 4 ცვლადს დავუფიქსიროთ


რაიმე კონკრეტული მნიშვნელობა, მაგალითად სამიანი და დანარჩენი ცვლადების (გარდა
X 7 ) განსაზღვრის არეებიდან ამოვიღოთ ეს მნიშვნელობა.
უფრო რთულ შემთხვევებში შესაძლებელია ერთი ცვლადის ამოღება არ იყოს
საკმარისი ხის მისაღებად, ამიტომ ზოგადად ალგორითმს ექნება შემდეგი სახე:
ბიჯი 1. ამოვირჩიოთ ისეთი ქვესიმრავლე S ცვლადების სიმრავლიდან, რომ შეზღუდვათა
დარჩენილი გრაფი წარმოდგენდეს ხეს ( S -ს ეწოდება ციკლის გაწყვეტის სიმრავლე).
ბიჯი 2. S -ში ცვლადების ყველა შესაძლო მინიჭებებისათვის, რომლებიც აკმაყოფილებენ
შეზღუდვებს S -ში, შეასრულე შემდეგი:
ბიჯი 3. დარჩენილი ცვლადების მნიშვნელობათა სიმრავლიდან ამოიღე ყველა
მნიშვნელობები, რომლებიც არათავსებადია S -ში მინიჭებულ მნიშვნელობებთან;
ბიჯი 4. თუ დარჩენილ ამოცანას აქვს ამოხსნა, გამოიტანე ეს ამოხსნა S -ში შესრულებულ
მინიჭებებთან ერთად.
თუ ციკლის გაწყვეტის სიმძლავრეა c , მაშინ ალგორითმის სირთულე იქნება
O( d ( n  c )d 2 ).
c

იმ შემთხვევაში, როდესაც გრაფი თავისი ფორმით “ძალიან ახლოსაა“ ხესთან, c


იქნება პატარა, დროის ეკონომია კი ძებნის უკან დაბრუნების ალგორითმთან შედარებით,
ძალიან დიდი. ყველაზე ცუდ შემთხვევაში c შეიძლება იყოს ( c  2 ) -ის ტოლი. ციკლის
გაწყვეტის ამოცანა ზოგადად წარმოადგენს NP სირთულის ამოცანას, მაგრამ ცნობილია
რამდენიმე ეფექტური ალგორითმი ამ ამოცანის ამოსახსნელად.
მეორე გზა, ეფუძნება დაკავშირებულ ქვეამოცანათა სიმრავლის შექმნასა და
შეზღუდვათა გრაფის ხისებურ დეკომპოზიციას.თითოეული ქვეამოცანა გადაიჭრება
დამოუკიდებლად და შემდეგ ხდება მიღებული შედეგების კომბინაციების შემოწმება. თუ
ქვეამოცანების რაოდენობა არ იქნება ძალიან დიდი, მაშინ ალგორითმი საკმარისად
წარმატებულია. განვიხილოთ ეს მიდგომა კვლავ ჩვენი მაგალითის შემთხვევაში (იხ. სურ.
10.3.).

54
სურ.6.4. გრაფის ხისებური დეკომპოზიცია.

აქ მოხდა ხისებური სტრუქტურის მიღება სამ-სამი ცვლადის გაერთიანებით ე.წ.


დაკავშირებულ ქვეამოცანათა სიმრავლეში. თუ დეკომპოზიციის შემდეგ რომელიმე
ქვეამოცანას არა აქვს ამოხსნა, მაშინ ცხადია, მთლიან ამოცანას არ ექნება ამოხსნა. თუ
შევძელით ქვეამოცანათა ამოხსნა, მაშინ შეგვიძლია ვცადოთ ძირითადი ამოცანის ამოხსნა.
თითოეული ქვეამოცანა განიხილება როგორც “მეგაცვლადი”, რომლის განსაზღვრის არესაც
წარმოადგენს ამ ქვეამოცანათა ამონახსნები. მაგალითად, პირველი ქვეამოცანაა სამი რეგიონის
გაფერადება სამი ფერით, ისე, რომ მეზობელი რეგიონები არ იყოს გაფერადებული ერთი და
იგივე ფერით, ამიტომ ამ ქვეამოცანას აქვს ექვსი ამოხსნა. შესაბამისად, პირველი
მეგაცვლადის მნიშვნელობების სიმრავლე შეიცავს ამ ექვს ამოხსნას. ამის შემდეგ
ქვეამოცანების შეზღუდვების დასადგენად გამოიყენება ზემოთ მოყვანილი ხეების
ალგორითმი. შეზღუდვები, რომლებიც აკავშირებენ ქვეამოცანებს, მიუთითებენ, რომ
ქვეამოცანათა ამოხსნები უნდა შეთანხმებული იყოს მათი საერთო ცვლადების მიმართ.
მაგალითად, თუ ვიწყებთ პირველი ქვეამოცანის ამონახსნით X 1  1, X 2  2 , X 4  3 ,
ერთადერთი თავსებადი ამონახსნი მეორე ქვეამოცანისთვის შეიძლება იყოს
X 2  2 , X 3  1, X 4  3 .
შეზღუდვათა ნებისმიერი გრაფისათვის შესაძლებელია დიდი რაოდენობის ხისებური
დეკომპოზიცია. დეკომპოზიციის ამორჩევის დროს უნდა ვეცადოთ, რომ ქვეამოცანათა
რაოდენობა იყოს ცოტა. ხისებური დეკომპოზიციის ხის სიგანე ერთით ნაკლები უნდა იყოს
ყველაზე დიდი ქვეამოცანის ზომაზე. თვით გრაფის ხის სიგანე განისაზღვრება როგორც
მინიმალური ხის სიგანე ყველა მის ხისებურ დეკომპოზიციებს შორის. თუ გრაფის ხის სიგანე
ტოლია w და მოცემულია შესაბამისი ხისებური დეკომპოზიცია, მაშინ ამოცანის სირთულე
იქნება O( n  d w 1 ).

სავარჯიშოები:

1. რასნიშნავსამოცანისდეკომპოზიცია?
2. როგორქვეამოცანებსეწოდებადამოუკიდებელიქვეამოცანები?
3. რასნიშნავსგრაფისხისებურიდეკომპოზიცა?
55
4. რა მეთოდები არსებობს რთული გრაფის ხისებურ სტრუქტურაზე
მისაყვანად?
5. რა მეთოდები არსებობს რთული გრაფის ხისებურ სტრუქტურაზე
მისაყვანად?

56
ლექცია 7.
ძებნა წინააღმდეგობის შემთხვევაში. თამაშები სრული და არასრული
ინფორმაციით. მინიმაქსისა და ალფა-ბეტა პროცედურები.

7.1 თამაშები, როგორც კონკურენტული პრობლემური გარემო. ჩვენ წინა


ლექციაზეგანვიხილეთმულტიაგენტურიგარემო, რომელშიცაგენტს
უხდებოდამხედველობაშიმიეღოსხვააგენტებისქმედებებიდადაედგინათუ
რაგავლენაშეეძლომოეხდინაამ ქმედებებსმისსაკუთარგადაწყვეტილებებზედა
ამისმიხედითმოეხდინასაკუთარიქმედებებისკორექცია.მულტიაგენტურიგარემოთავისი
შინაარსითშეიძლებაიყოს როგორცკოოპერაციული,ასევე
კონკურენტული.პირველშემთხვევაშიაგენტებიურთიერთთანამშრომლობენ დასახული
მიზნის მისაღწევად, მეორე შემთხვევაში კი მათიმიზნებიიმდენადგანსხვავებულია,
რომერთიაგენტისმიერმიზნის მიღწევაავტომატურადიწვევსიმას,რომმეორეაგენტიან
ვერმიაღწევს მი- ზანს,ანმიაღწევსმხოლოდნაწილობრივ. ხელოვნურ ინტელექტში ძებნის
ამოცანებსისეთ კონკურენტულმულტიაგენტურგარემოში,სადაც აგენტთა
მიზნებიურთიერთსაწინააღმდეგოა, უწოდებენძებნასწინააღმდეგობისპირობებშიდა
რადგანცასეთიგარემოსყველაზე ხშირი მაგალითებია ინტელექტუალურითამაშები–
ზოგჯერთამაშებს.
თამაშებითავისისტუქტურითგანსხვავდებიან ერთმანეთისაგან. მაგალითად,
ჭადრაკის, ან შაშის თამაში არსებითად განსხვავდება პრეფენანსისთამაშისაგან
დააქსაქმემარტოიმაშიკიარარის,რომერთშემთხვევაშისაქმე გვაქვსჭადრაკის
ფიგურებთან,ხოლომეორე შემთხვევაში კარტებთან.განსხვავებაუფრო
ღრმაა.ჭადრაკისთამაშისდროსგვყავსორი მოწინააღმდეგ,რომელთამიზნები
დიამეტრალურადგანსხვავდება ერთმანეთისაგან, ანუთამაშიარისანტაგონისტური.
ერთიმოთამაშის
მოგებაავტომატურადიწვევსმეორისწაგებას,პრეფენანსისთამაშისდროსკი შესაძლებელია
რამდენიმე მოთამაშე გაერთიანდეს დანარჩენების წინააღმდეგ, ანუ
შექმნანკორპორაციადაგაუჩნდეთსაერთომიზანი.გარდაამისა,ჭად-
რაკისთამაშიმიმდინარეობსდაფაზე,და დროისნებისმიერმომენტშიმო-
თამაშეებსგააჩნიათსრულიინფორმაციათამაშისმიმდინარეობის შესახებ,
მაშინ,როდესაცპრეფენანსის თამაშისდროსმოთამაშესარ გააჩნიასრული ინფორმაცია
თამაშისშესახებ,რადგანაცმათზუსტადარიციანრაკარტები
უჭირავთდანარჩენმოთამაშეებს და რა კარტები არაა თამაშიი კონკრეტულ მომენტში
7.2. თამაშებისრულიინფორმაციით.თამაშთამათემატიკურთეორიაში
პირველიტიპისთამაშებსუწოდებენორიმოწინააღმდეგის თამაშსნულოვანიჯამითდა
სრულიინფორმაციით.
ცხადია,ასეთშემთხვევაშიძებნისზემოთგანხილულიალგორითმებივერმოგვცემენსა
სურველშედეგს,ვინაიდანყველაესალგორითმი ყოველ ნაბიჯზე აუმჯობესებს თავის
პარამეტრებს და ისე ეძებს ამონახსნს, რაც ამ შემთხვევაში შეუძლებელია. საერთოდ
თამაშებიიმითაც განსხვავდებასხვაამოცანებისაგან, რომძალიანძნელიამათი ამოხსნა.ასე
მაგალითადჭადრაკისთამაშშიგანტოტვისკოეფიციენტისაშუალოდ უდრის  35,ხოლო
თამაში ხშირად გრძელდა 50სვლამდე თითოეული მოთამაშის მხრიდან, ამიტომ ძებნის
ხე შეიცავს დაახლოებით 10 154 წვეროს, თუმცაძებნის გრაფი შეიცავს „მხოლოდ“ 10 54
განსხვავებულ წვეროს.

57
თამაშთა მათემატიკურ თეორიაში დამტკიცებულია, რომ თამაშებისთვისნულოვანი
ჯამით (თამაშიდა სრული ინფორმაციით არსებობს ერთადერთი სტრატეგია, რომელიც
ოპტიმალურია ორივე მოთამაშისათვის და ყოველთვის მიგვიყვანს მოცემულ თამაშში
ობიექტურად არსებულ საუკეთესო შედეგამდე (ნულოვანი ჯამი ნიშნავს, რომ რამდენსაც
წააგებს ერთი მოთამაშე, ზუსტად იმდენს მოიგებს მეორე მოთამაშე). თუ რომელიმე
მოწინააღმდეგე გადაუხვევს ოპტიმალურ სტრატეგიიდან, მაშინ ის წააგებს გაცილებით მეტს.
ფაქტობრივად თუ თამაშის ოპტიმალური სტრატეგია ნაპოვნია და ორივე აგენტმა იცის ის,
თამაში კარგავს აზრს.
7.3. მინიმაქსის პროცედურა. ასე, რომ პრობლემას წარმოადგენს ოპტიმალურისტრატეგიის
მოძებნა. ერთადერთი გზა, იმისთვის, რომ ვიპოვოთ ოპტიმალური სტრატრგია, საჭიროა
ავაგოთ თამაშის სრული ხე და მივიღოთ დამამთავრებელი კვანძების შეფასებები,
რომლებიც ამ შემთხვევაში გამოთვლება თამაშის წესებიდან. ამის შემდეგ ვიწყებთ
საუკეთესო სვლების მიმდევრობის, ანუ თამაშის სტრატეგიის გამოთვლას. ამ მიზნით
ვიქცევით შემდეგნაირად: დავუშვათ, დამამთავრებელ კვანძებში გადავყევართ
მოწინააღმდეგეს. ცხადია, რომ მოწინააღმდეგე ეცდება მიაღწიოს წარმატებას, რაც ნიშნავს
ჩვენს დამარცხებას, ამიტომ ყველა შესაძლო კვანძებიდან, რომლებშიც გადავყავართ
მოწინააღმდეგეს, ჩვენ უნდა ამოვარჩიოთ კვანძი მინიმალური შეფასებით და ეს შეფასება
მივაწეროთ კვანძს, რომელიც დგას ერთი საფეხურით ზევით და წარმოადგენს სერჩეული
კვანძის მშობელ კვანძს. ამ კვანძებში უკვე გადავდივართ ჩვენი სვლების შედეგად, ამიტომ
ყველა შესაძლო კვანძებს შორის (რომელთაც ერთი და იგივე მშობელი კვანძი ჰყავთ) შორის
უნდა ამოვარჩიოთ კვანძი მაქსიმალური შეფასებებით და ეს შეფასებები გადმოვიტანოთ
კიდევ ერთი საფეხურით ზევით (მივაწეროთ მშობელ კვანძს). ასე უნდა გავაგრძელოთ, სანამ
არ მივაღწევთ საწყის პოზიციას. ამორჩეული სვლების მიმდევრობა შებრუნებული
მიმდევრობით წარმოადგენს სწორედ თამაშის სტრატეგიას.

სურ.7.1. თამაშის ხე.

ამ პროცედურას ეწოდება მინიმაქსის პროცედურა და საშუალებას გვაძლევს ვიპოვოთ


ის ერთადერთი სტრატეგია, რომელიც მიუხედავათ იმისა, თუ რას ითამაშებს
მოწინააღმდეგე, ყოველთვის მიგვიყვანს სასურველ შედეგამდე.
განვიხილოთ მაგალითი. დავუშვათ, მოცემული გვაქვს თამაშის ხე (იხ.სურ.10.1),
რომლის დამათავრებელ პოზიციები თამაშის წესების თანახმადაა შეფასებული. შეფასებები
გამოთვლები ჩატარებულია S1 მოთამაშისათვის და საუკეთესო სტრატეგიის ამორჩევაც
სრულდება ამ მოთამაშისთვის. ამ სურათზე ოვალებით აღნიშნულია პოზიციები, საიდანაც
სვლას აკეთებს მოწინააღმდეგე. ასეთი პოზიციები სამია და შესაძლო სვლების რაოდენობა კი
- რვა. პირველი პოზიციიდან მოწინაარმდეგეს შეუძლია გააკეთოს სამი სვლა, რის შედეგადაც
ის ან წააგებს ხუთ ქულას, ან წააგებს ათ ქულას და ან მოიგებს ორ ქულას.

58
S1 მოთამაშე ჩათვლის, რომ მოწინააღმდეგე ცხადია გააკეთებს სვლას, რომელიც მას
მოაგებინებს ორ ქულას და ამ პოზიციას შეაფასებს მინუს ორი ქულით. პრაქტიკულად,
პირველმა მოთამაშემ გამოთვალა იმ სამი დამამთავრებელი პოზიციების შეფასებათა
მინიმუმი min( 2 ,5 ,10 )  2 , რომლებშიც შეიძლება გადაიყვანოს მოწინააღმდეგემ პირველი
ოვალური პოზიციიდან და ეს შეფასება მიაწერა ამ პოზიციას. ანალოგიურად მოიქცევა ის
დანარჩენი პოზიციების მიმართაც და მიიღებს შეფასებებს (-2,2,3). ამ პოზიციებში გადასვლა
ხდება უკვე პირველი მოთამაშის სვლის შედეგად. ამიტომ ის ცხადია, ამოირჩევს სვლას,
რომელიც მოუტანს მაქსიმალურ მოგებას. მივიღეთ, რომ თამაშში, რომლის ხეც მოცემულია
სურ.7.1. როგორც არ უნდა ითამაშოს მოწინააღმდეგემ, S1 მოთამაშეს გარანტირებული აქვს
მინიმუმ სამი ქულის მოგება (თუ მოწინააღმდეგე დაუშვებს შეცდომას, ეს მოგება შეიძლება
გაიზარდოს, მაგრამ არავითარ შემთხვევაში არ შემცირდება). ოპტიმალური სტრატეგიის
მოძებნის ამ ალგორითმს ეწოდება მინიმაქსის პროცედურა.
აღვწეროთ თითოეული კვანძისთვის მინიმუმ ან მაქსიმუმ მნიშვნელობის გამოთვლის
პროცედურა:

აქ s -ით აღნიშნულია n კვანძის შვილობილი წვეროები. ავაგოთ მინიმაქსის


პროცედურის შესაბამისი ალგორითმი (იხ. სურ. 7.2.).
7.4. შემოკლებული მინიმაქსის პროცედურა.აშკარაა, რომ თამაშის ოპტიმალური სტრატეგიის
მოძებნის ასეთი ალგორითმი შეუძლებელია გამოვიყენოთ მეტ-ნაკლებად საინტერესო
თამაშებისათვის, რადგანაც პრაქტიკულად შეუძლებელია ავაგოთ ასეთი თამაშების სრული
ხე. თუ ჩვენ უარს ვიტყვით გარანტირებულად ოპტიმალური სტრატეგიის მოძებნაზე, იგივე
პროცედურა შესაძლებელია გამოვიყენოთ მაშინაც, როდესაც ავაგებთ თამაშის არა სრულ
ხეს, არამედ მის ფრაგმენტს, დავუშვათ საწყისი პოზიციიდან რაიმე სიღრემემდე. ასე იქცევა
ალბათ ადამიანიც, როდესაც ის თამაშობს მაგალითად ჭადრაკს, შაშს ან რაიმე სხვა თამაშს.
ასეთ შემთხვევაში წარმოიშვება ორი პრობლემა. პირველი, რა დონეზე უნდა შევწყვიტოთ
ახალი პოზიციების აგება, ანუ რა დონეზე უნდა გა დავჭრათ ხე. რა თქმა უნდა ამ შემთხვევაში
უნდა გათვალისწინებული იქნას კომპიუტერის სიმძლავრეები და თამაშის ხის დატოტვის
კოეფიციენტი, მაგრამ მარტო ეს არ არის საკმარისი. წარმოვიდგინოთ, რომ ჭადრაკის
თამაშისთვის შემოვიღეთ რაიმე დონე, რომელზედაც ვჭრით ხეს. ამ დონეზე ერთერთ
პოზიციაში იწყება ლაზიერების გაცვლის კომბინაცია, მოწინააღმდეგემ უკვე აიყვანა ჩვენი
ლაზიერი და შემდეგ სვლაზე იგივეს გავაკეთებთ ჩვენც. მაგრამ ეს შემდეგი პოზიცია უკვე
აღარ შედის მინიმაქსის ალგორითმის იმ პოზიციათა სიმრავლეში, რომელშიც ის ეძებს
საუკეთესო სვლას. თავისთავად ცხადია, რომ სიტუაცია დაწუნებული იქნება, მაშინაც კი,
როდესაც ამ გზას მივყავართ საბოლოო გამარჯვებისაკენ. ასეთი შემთხვევების თავიდან
ასაცილებლად შემოიღებულია ე.წ. მკვდარი პოზიციის ცნება. პოზიციას ეწოდება მკვდარი
პოზიცია, თუ მისი შეფასება რადიკალურად არ განსხვავდება მისი შვილობილი პოზიციების
შეფასებებისაგან. მკვდარი პოზიციის ცნება საშუალებას გვაძლევს გადავჭრათ ხე სხვადასხვა
დონეზე (ანუ ხის ტოტები იყოს სხვადასხვა სიღრმის) და თავიდან ავიცილოთ შეცდომები
ოპტიმალური გზის ძებნის დროს.
მეორე პრობლემა ეხება პოზიციების შეფასებას. დამამთავრებელ პოზიციებში
შეფასება ადვილი გასაკეთებელია, რადგანაც ის გამომდინარეობს თამაშის წესებიდან მაგრამ
დაუმთავრებელი თამაშის დროს შეფასებების გასაკეთებლად კვლავ უნდა გამოვიყენოთ
ევრისტიკული შემფასებელი ფუნქცია, რომელიც აიგება ჩვენი ან სპეციალისტების

59
მოსაზრებებიდან გამომდინარე და რომელიც ნებისმიერ პოზიციას შეუსაბამებს რაიმე
რიცხვს. როგორც წესი ასეთ შემფასებელ ფუნქციას აქვს პოლინომის სახე:
f ( n )  m
i  1 ai xi

ფუნქციამინიმაქსი-გადაწყვეტილება აბრუნებს ქმედებას


შესასვლელი მონაცემები: თამაშის მიმდინარე პოზიცია

v მაქსიმალური მნიშვნელობის (მდომარეობა)


აბრუნებსქმედებას შვილობილ კვანძთა სიმრავლეშიმნიშვნელობით v

ფუნქციამაქს-მნიშვნელობა (მდგომარეობა) აბრუნებსსარგებლიანობის


მნიშვნელობას
თუ ტერმინალ-ტესტი (მდგომარეობა) მაშინ დააბრუნე
თუტერმინალ-ტესტიმაშინ დააბრუნეუტილიტი (მდგომარეობა)
v  
a,s -თვის შვილობილიკვნძებისთვის (მდგომარეობა) შეასრულე
v  max( v , min value( s ))
დააბრუნე v

სურ.7.2. მინიმაქსის ალგორითმი.

სადაც n არის პოზიცია, x i -ური არის პარამეტრი, რომლითაც ხდება ამ პოზიციის შეფასება,
ხოლო a i - კი ამ პარამეტრის ხვედრითი წონა შემფასებელ ფუნქციაში. m არის პარამეტრების
რაოდენობა, რომლებიც მონაწილეობენ პოზიციის შეფასებაში. უნდა აღინიშნოს, რომ ასეთი
ფუნქციის შედგენა არც ისე მარტივია, რადგანაც პარამეტრები, რომლებითაც ფასდება
მდგომარეობა, როგორც წესი არიან ხარისხოვანი სახის და მათთვის რიცხვითი
მნიშვნელობების შეფარდება საკმაოდ რთული პროცესია. ასევე რთულია წონითი
კოეფიციენტების შერჩევა, მით უმეტეს, რომ თამაშის სხვადასხვა ეტაპზე ისინი იცვლიან
მნიშვნელობებს. ხშირად ამ ფუნქციის შედგენა დაკავშირებულია ხანგრძლივ მანქანურ
ექსპერიმენტებთან. მას შემდეგ, რაც ჩვენ გვექნება შემფასებელი ფუნქცია, უკვე შესაძლებელი
იქნება მინიმაქსის პროცედურის გამოყენება გადაჭრილ, ანუ ქვეხეზე. განვიხილოთ ასეთი
ფუნქციის შედგენისა და გამოყენების მაგალითი ე.წ. “კრესტიკი-ნოლიკის” თამაშისთვის. ამ
თამაშში გვაქვს დაფა უჯრებით 3 3 , რომლებზეც მოწინააღმდეგენი მორიგეობით სვავენ
თავიაანთ ფიშკებს. გაიმერჯვებს ის მოთამაშე, რომელიც ნებისმიერ ვერტიკალზე, ან
ჰორიზონტალზე, ან დიაგონალზე დასვავს სამ ფიშკას. დავუშვათ, s1 იყოს მოთამაშე,
რომელიც სვავს ”  “-ებს, ხოლო s2 მოთამაშე, რომელიც სვავს “0”-ებს. ჩვენ ფუნქციას ვადგენთ
s1 მოთამაშისათვის. შემოვიტანოთ f ( n ) შემფასებელი ფუნქცია ისეთი პოზიციებისთვის,
რომლებიც არ არიან დამამთავრებელი პოზიციები შემდეგი სახით:
f ( n )  m1 ( n )  m2 ( n )
სადაც m1 ( n ) არის იმ სრული სტრიქონების, სვეტების და დიაგონალების რაოდენობა,
რომლებიც ღიაა s1 მოთამაშისათვის, ხოლო m2 ( n ) კი – იმ სრული სტრიქონების,
სვეტებისა და დიაგონალების რაოდენობა, რომლებიც ღიაა s 2 მოთამაშისთვის. თუ n არის
დამამთავრებელი პოზიცია, რომელშიც იგებს s 2 მოთამაშე, მაშინ f ( n )   და თუ n არის
დამამთავრებელი პოზიცია, რომელშიც იგებს s1 , მაშინ f ( n )  
დავუშვათ, მოცემული გვაქვს პოზიცია

60
მაშინ s1 მოთამაშისათვის ღიაა პირველი და მეორე სტრიქონები, პირველი და მესამე სვეტები
და ორივე დიაგონალი, s 2 მოთამაშისათვის ღიაა მესამე სტრიქონი, მეორე სვეტი და ერთი
დიაგონალი და f ( n )  6  3  3 . განვიხილოთ, როგორ შეიძლება შემოკლებული მინიმაქსის
ალგორითმის გამოყენება ამ თამაშისათვის. დავუშვათ თამაშს იწყებს s1 მოთამაშე და
განიხილავს თამაშს სამის ტოლ სიღრმეზე. თუ გავითვალისწინებთ სიმეტრიას, რომელიც
ახასიათებს ამ თამაშს, მაშინ არსებობს ხუთი განსხვავებული სვლა, რომელიც s1 მოთამაშეს
შეუძლია გააკეთოს საწყისი პოზიციიდან. შესაბამისად მიიღება ხუთი განსხვავებული
პოზიცია P1 , P2 , P3 , P4 , P5.

  
 
P1 P2 P3 P4 P5
განვიხილოთ რა საპასუხო სვლების გაკეთება შეუძლია მოწინააღმდეგეს და შევაფასოთ
მიღებული პოზიციები (იხ.სურ.7.3.). ეს გამოთვლები გვიჩვენებს, რომ თუ s1 მოთამაშე
გააკეთებს P1 სვლას, მისი მოგება იქნება (-1) ტოლი.

სურ.7.3

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


შემთხვევაშიც. ამის შემდეგ შემოკლებული მინიმაქსის პროცედურით შეიძლება მოიძებნოს
მოცემული კონკრეტული შემფასებელი ფუნქციის შესაბამისი ოპტიმალური სტრატეგია.
ცხადია, რომ შემოკლებული მინიმაქსის ალგორითმი, განსხვავებით სრული
მინიმაქსის პროცედურისაგან, აღარაა ოპტიმალური და შეიძლება ზოგიერთ შემთხვევაში
სრულიც. დროითი და სივრცული პარამეტრები როგორც მინიმაქსის პროცედურის, ასევე
შემოკლებული მინიმაქსის პროცედურისა, შეფასდება O( b m ) , სადაც b არის დატოტვის
კოეფიციენტი, ხოლო m - კი ხის სიღრმე.
სურ.7.4. მოცემულია პოზიცია, რომელშიც სვლა უნდა გააკეთოს s1 მოთამაშემ და ის
იწყებს შესაბამისი ხის აგებას, რომლის სიღრმე ორის ტოლია, ანუ განიხილავს მხოლოდ
თავის სვლას და მოწინააღმდეგის პასუხს. მოცემულ სიტუაციაში მას შეუძლია ხუთი
სვლის გაკეთება და თითოეულზე მოწინააღმდეგეს შეუძლია უპასუხოს ოთხი სვლით, რაც
ნიშნავს, რომ s1 მოთამაშემ უნდა ააგოს ხე, რომელიც შეიცავს ოცდაერთ კვანძს, თუ უნდა,
რომ გამოიყენოს შემოკლებული მინიმაქსის ალგორითმი. აშკარაა ეს სრულიად ზედმეტია
61
ამ პოზიციაში, რადგანაც ერთი სვლის გარდა ყველა დანარჩენი ავტომატურად იწვევს s1
მოთამაშის დამარცხებას. მაგრამ ამას ალგორითმი ვერ ხედავს, რადგანაც ის აწარმოებს
ძებნას განივი ძებნის ალგორითმის პრინციპით.

სურ.7.4.

დავუშვათ, გვაქვს ისეთი ალგორითმი, რომელიც ააგებს რა მოცემულ სიღრმეზე


დამამთავრებელ კვანძს, მაშინვე აფასებს მას და ეს შეფასება გადმოქვს ზევით და ადარებს
ამ დონეზე მიღებულ სხვა შეფასებებს. ასეთ შემთხვევაში ჩვენს მიერ განხილულ
მაგალითში ალგორითმი ააგებს პირველ კვანძს, შემდეგ ააგებს მის შვილობილ კვანძებს,
შეაფასებს მათ და მინიმალურ შეფასებას გადმოიტანს კვანძში (1). ამის შემდეგ ააგებს მეორე
(2) კვანძს, ააგებს მის შვილობილ კვანძს, მიიღებს შეფასებას (- ), გადმოიტანს მას, როგორც
(2) კვანძის შეფასებას, აღმოაჩენს, რომ ეს შეფასება უფრო ნაკლებია, ვიდრე (1) კვანძის
შეფასება და აღარ განიხილავს (2) კვანძს დანარჩენ შვილობილ კვანძებს, რადგანაც
ცხადია, რომ მოწინააღმდეგე არ გააკეთებს სხვა სვლას. ასევე მოიქცევა ეს ალგორითმი
დანარჩენი კვანძების მიმართაც, რაც მას საშუალებას აძლევს შეამციროს გადარჩევის ხე
ოცდაერთიდან თოთხმეტამდე, ეს მაშინ, როდესაც სიღრმე იყო მხოლოდ ორის ტოლი. თუ
გადარჩევის სიღრმე იქნება უფრო მეტი, ალგორითმი შეძლებს უფრო ადრე აღმოაჩინოს,
რომ არაა საჭირო ზოგიერთი კვანძის გახსნა და ამით საგრძნობლად შეამციროს
გადარჩევის ხე.

62
სურ. 7.5. ალფა-ბეტა პროცედურის პირველი ეტაპი.

არ უნდა ვიფიქროთ, რომ ეს ხდება მხოლოდ მაშინ, როდესაც ალგორითმი შეხვდება


თამაშის დამამთავრებელ კვანძს. თუ ალგორითმი ჩავიდა მოცემულ სიღრმეზე და შეაფასა
კვანძი, ის ამ შეფასებას ამოიტანს ზედა დონეზე და კვლავ გვექნება იგივე პროცედურა,
რომლის არსიც მდგომარეობს შემდეგში: თუ გვაქვს რაიმე კვანძის შეფასება და
ალგორითმმა აღმოაჩინა, რომ მისი მეზობელი კვანძის რომელიმე შვილობილის შეფასება
ამ კვანძის შეფასებაზე ნაკლებია, აზრი აღარ აქვს დანარჩენი შვილობილი წვეროების აგებას,
რადგანც კვანძის შეფასება ვეღარ გახდება ამ შეფასებაზე მეტი. ძებნის ასეთ პროცედურას
ეწოდება ალფა-ბეტა პროცედურა.
განვიხილოთ მეორე მაგალითი. იმისათვის, რომ ალფა-ბეტა პროცედურამ მოგვცეს
შედეგი, ხის სიღრმე არ უნდა იყოს სამზე ნაკლები (ნუ შეგეშლებათ, ნუ ჩათვლით, რომ
შვილობილი კვანძების როდენობა უნდა იყოს აუცილებლად სამი. ეს შეცდომა ხშირად
მოსდით სტუდენტებს).
s1 მოთამაშემ საწყისი პიზიციიდან ააგო პირველი სვლა, ამის შემდეგ
მოწინააღმდეგის პირველი სვლა და შემდეგ ყველა შესაძლო საკუთარი პასუხი. აქ
დამთავრდა ხის სიღრმე, ამიტომ s1 მოთამაშემ შეაფასა მიღებული კვანძები და ეს შეფასება
ამოიტანა ორი დონით ზევით (რადგანაც ბოლო პოზიციებში გადადის საკუთარი სვლით,
ამოარჩია მაქსიმალური შეფასება). ეს მომენტი ანალოგიურია მინიმაქსის პროცედურის.
შემდეგი ბიჯიდან კი იწყება განსხვავება (იხ. სურ. 10.5).
ამის შემდეგ s1 მოთამაშე განიხილავს მეორე სვლას საწყისი პოზიციიდან. ჩაყვება მას
ბოლომდე და განსხვავებით პირველი ნაწილისგან, როგორც კი გახსნის პირველკვანძს, მის
შეფასებას მაშინვე ამოიტანს ორი პოზიციით ზევით, შეადარებს შეფასებას, რომელიც
ჰქონდა პირველნაწილში. ჩვენს მაგალითში ეს შეფასება მეტია პირველი კვანძის
შეფასებაზე, ამიტომ ის აღარ განიხილავს დანარჩენ ბოლო დონის წვეროებს (სურათზე
აღნიშნულია პუნქტირით). ამგვარად, ალფა-ბეტა პროცედურამ შეამცირა გადარჩევა. ასეთ
მოკვეთას ეწოდება ბეტა მოკვეთა.
თუ იმ პოზიციებში, რომლებშიც განხორციელდა მოკვეთა გადასვლა მოხდებოდა არა
მოწინააღმდეგის, არამედ s1 მოთამაშის სვლით, მაშინ ცხადია, s1 ამოარჩევდა არა მინიმუმს,
არამედ მაქსიმუმს. ასეთ მოკვეთას უწოდებენ ალფა მოკვეთას. პროცედურამაც აქედან მიიღო
სახელი. ალფა – ბეტა პროცედურაში დიდი მნიშვნელობა აქვს კვანძებისს გახსნის
მიმდევრობას. განვიხილოთ მაგალითი (იხ. სურ. 7.6).

63
სურ.7.6. ალფა-ბეტა პროცედურის მიერ მოკვეთილი კვანძები

თუ ვიყენებთ ალფა – ბეტა პროცედურას, მაშინ, ალგორითმი ააგებს B კვანძს, შემდეგ


მის შვილობილ კვანძებს C,D,E და ამოარჩევს მათ შორის მინიმალურ შეფასებას, რომელსაც
გადაიტანს როგორც B, ასევე A კვანძებში. ამის შემდეგ ის ააგებს F კვანძს, მის შვილობილ G
კვანძს, მიიღებს მის შეფასებას, გადმოიტანს F წვეროში, შეადარებს მას B წვეროს შეფასებას და
რადგანაც ამ დონეზე ხდება მაქსიმუმის მოძებნა, აღარ გახსნის I და K კვანძებს. მაგრამ თუ
Fწვეროს შვილობილი კვანძები განლაგდებოდნენ შებრუნებული მიმდევრობით, მაშინ
ალგორითმს მოუწევდა ყველა შვილობილი წვეროს გახსნა და მისი ეფექტიანობა იქნებოდა
ისეთივე, როგორიც შემოკლებული მინიმაქსის პროცედურის.

სურ.7.7. ალფა – ბეტა პროცედურა. მართკუთხედებით აღნიშნულია კვანძები, რომლებშიც


გადავდივართ მოწინააღმდეგის სვლით.

აქედან გამომდინარე, შეგვიძლია დავასკვნათ, რომ უკეთესია ალგორითმმა პირველ რიგში


გამოიკვლიოს ის კვანძები, რომლებიც ალბათ შეიძლება გახდნენ საუკეთესოები. ცხადია, რომ
შეუძლებელია კვანძების აბსოლუტურად მოწესრიგება, მაგრამ რაღაც ალბათობით ეს მაინც
შესაძლებელია. მაგალითად, ჭადრაკის შემთხვევაში შეიძლება გამოვიყენოთ მარტივი
ფუნქცია, ჯერ განვიხილოთ სვლები, რომლებიც დაკავშირებულია ფიგურების აყვანასთან,
შემდეგ მუქარებთან, სვლები წინ და ასე შემდეგ. ანუ განსახილველი კვანძების მოწესრიგება
დამოკიდებულია შემფასებელ ფუნქციაზე. ასეთ შემთხვევაში ალგორითმის სივრცითი (და
შესაბამისად დროითი) სირთულე გახდება O( b m 2 ) , რაც მნიშვნელოვნად ამცირებს
გადარჩევას.

სავარჯიშოები:

64
1. როგორც ვნახეთ, თუ ორი მოწინააღმდეგის თამაშში სრული ინფორმაციით და
ნულოვანი ჯამით, თუ ორივე მოთამაშე მიჰყვება ოპტიმალურ სტრატეგიას, არცერთ
მოთამაშეს არ შეუძლია წააგოს, ან მოიგოს ამ სტრატიგიით გათვალისწინებულზე
მეტი სარგებელი. დავშვათ, S 1 მოთამაშემ იცის ოპტიმალური სტრატეგია, S 2 -მ კი არა.
აჩვენეთ, შეუძლია თუ არა S 1 მოთამაშეს მიიღოს ოპტიმალურზე მეტი მოგება, თუ ის
გადაუხვევს ოპტიმალური სტრატეგიიდან.
2. ჩვენს მიერ განხილული მინიმაქსის პროცედურაში იგულისხმება, რომ
მოწინააღმდეგეები სვლებს აკეთებენ რიგრიგობით, მაგრამ არსებობს ტამაშები, სადაც
ეს ასე არაა (მაგალითად კალახი, სადაც ერთმა მოტამასემ ზედიზედ სეიძლება
შეასრულოს რამდენიმე სვლა). აჩვენეთ, რა შეიცვლება ასეთ შემთხვევაში მინიმაქსის
პროცდურაში.
3. შეიძლება თუ არა ლექციაში აღწერილი მეთოდების წარმატებითგამოყენება ისეთ
თამაშებში, როგორიცაა ჩოგბურთი და ბილიარდი?

65
ლექცია 8.
კომპიუტერულ სისტემაში ცოდნის წარმოდგენის მეთოდები. სემანტიკური
ქსელები, ფრეიმები,

8.1. ცოდნის წარმოდგენის აუცილებლობა. ჩვენ განვიხილეთ მიზანზე დაფუძნებული


აგენტები, რომლებიც პრობლემათა გადასაწყვეტად იყენებდნენ ძებნის ალგორითმებს.
როგორც ვნახეთ, ასეთი აგენტები არ იძლევიან საშუალებას გადავჭრათ ყველა
პრობლემა, რადგანაც ეს ალგორითმები არის ექსპონენციალური და ამოცანის ზომების
ზრდასთან ერთად მათი ეფექტურობა მცირდებოდა. ჩვენ ეხლა დავიწყებთ ისეთი
აგენტების შესწავლას, რომლებიც მოქმედებენ ცოდნის საფუძველზე (შემოკლებით
ცოდნაზე დაფუძნებული აგენტი). ცოდნის წარმოდგენა და მსჯელობის პროცესები
წარმოადგენენ ხელოვნური ინტელექტის ცენტრალურ საკითხებს. თავისთავად ცხადია,
რომ ადამიანებმა ბევრი რამ იციან და გააჩნიათ განსჯის უნარი. ცოდნა და განსჯის
უნარი ასევე მნიშვნელოვანია ხელოვნური აგენტებისათვის, რადგანაც უზრუნველყოფს
წარმატებული ქცევის ფორმირებას, რომლის მიღწევაც სხვა გზით ალბათ შეუძლებელი
იქნებოდა. ასე მაგალითად, თუ ამოცანათა ამომხსნელ აგენტს ეცოდინება თავისი
ქმედებების შედეგები, მას შეეძლება წარმატებულად იმოქმედის რთული გარემოს
პირობებშიც და არ ეძებოს გზა ბათუმიდან თბილისამდე ბრმად, როგორც ამას აკეთეს
მიზანზე დამფუძნებული აგენტი. მაგრამ ამოცანათა ამომხსნელი აგენტების ცოდნა არის
ძალიან სპეციფიკური და მოუქნელი. ჭადრაკის მოთამაშე პროგრამას შეუძლია გათვალოს
მეფის დასაშვები სვლები (იმ ფერის, რომელი ფერითაც ის თამაშობს), მაგრამ მას არ გააჩნია
მრავალი სხვა სასარგებლო ცოდნა, მაგალითად, რომ არც ერთ ფიგურას არ შეუძლია
ერთდროულად იდგეს ორ უჯრაზე. ცოდნაზე დამყარებულ აგენტებს შეუძლიათ ძალიან
ზოგად ფორმაში გამოხატული ცოდნის გამოყენება, ამ ცოდნის კომბინირება და
რეკომბინირება სხვადასხვა გარემო პირობების შესაბამისად. ცოდნა და განსჯა თამაშობენ
გადამწყვეტ როლს მაშინაც როდესაც აგენტს უხდება მოქმედება ნაწილობრივ
დაკვირვებად პრობლემურ გარემოში. ცოდნაზე დამყარებულ აგენტს უნარი აქვს
შეუთავსოს ერთმანეთსცოდნა და მოცემულ მომენტში მიღებული აღქმა, რათა
გამოავლინოს მიმდინარე მდგომარეობის დაფარული ასპექტები მანამადე, სანამ ის
დაიწყებსმოქმედებას. ძალიან მნიშვნელოვანია ისიც, რომ ასეთი აგენტები არიან ძალიან
მოქნილები. მათ შეუძლიათ მიიღონ და შეასრულონ ახალი ამოცანები, რომლებიც
ჩამოყალიბებულია ცხადად დასმული მიზნის სახით, გარდაამისა მათ შეუძლიათ
შეეგუონ იმ გარემოს ცვლილებას, რომელშიც ისინიმოქმედებენ თავისი ცოდნის
განახლების გზით.
ცოდნაზე დამყარებული ნებისმიერი აგენტის ცენტრალურ კომპონენტს ცხადია
წარმოადგენს მისი ცოდნის ბაზა. სწორედ ასეთი ბაზის ორგანიზება კომპიუტერულ
სისტემაში წარმოადგენს ხელოვნური ინტელექტის ერთერთ ძირითად პრობლემას. ისევე,
როგორც პრობლემათა გადაწყვეტის დროს ჩვენ გვაინტერესებდა თუ როგორ წყვეტდა ასეთ
პრობლემებსადამიანი, აქაც რა თქმა უნდა საინტერესოა, თუ როგორაა
ორგანიზებულიცოდნა ადამიანში.
8.2. სემანტიკური ქსელები.როგორც ვნახეთ, არსებობს ცოდნის წარმოდგენის სხვადასხვა
მიდგომები და მეთოდები. განვიხილოთ ზოგიერთი მათგანი უფრო დაწვრილებით.
ფსიქოლიგიიდან ცნობილი ასოციონისტური
თეორიისთანახმად,ობიექტისმნიშვნელობა განისაზღვრება სხვაობიექტებთანასოციაციის
ტერმინებში. ამთეორიიდან გამომდინარე,ობიექტების აღქმა
ხდებაცნებებისსაშუალებით.ცნებებიწარმოადგენენგარემოსშესახებჩვენიცოდნისმნიშვნელ
ოვან ნაწილსდადაკავშირებულები არიანსხვა ცნებებთანასოციაციების
საშუალებით.ესკავშირებიწარმოადგენენ ობიექტის თვისებებს და ქცევას. მაგალითად,
ცდების საფუძველზე ჩვენ ვახდენთ ცნება“თოვლის” ასოცირებას სხვაცნებებთან,
დავუშვათ ისეთებთან, როგორებიცა:“სიცივე”,“თეთრი”,“თოვლის ადამიანი”,“ყინული”და
ასე შემდეგ.ჩვენიცოდნათოვლისშესახებდაგამონათქვამის “თოვლითეთრია” ჭეშმარიტება
იქმნება ამასოციაციის ქსელიდან. ასევეფსიქოლოგიიდანაა
ცნობილი,რომესასოციაცებიქმნიანიერარქიულსტრუქტურებს.
ფსიქოლიგიიდან ცნობილი ასოციონისტური თეორიის თანახმად, ობიექტის
მნიშვნელობა განისაზღვრება სხვა ობიექტებთან ასოციაციის ტერმინებში. ამ
თეორიის თანახმად, ობიექტების აღქმა
ხდებაცნებებისსაშუალებით.ცნებებიწარმოადგენენგარემოსშესახებჩვენი ცოდნის
მნიშვნელოვან ნაწილს და დაკავშირებულები არიან სხვა
ცნებებთანასოციაციებისსაშუალებით.ესკავშირებიწარმოადგენენობიექტის
თვისებებს და ქცევას. მაგალითად, ცდების საფუძველზე ჩვენ ვახდენთ ცნება
“თოვლის” ასოცირებას სხვა ცნებებთან, დავუშათ ისეთებთან,
როგორებიცა:“სიცივე”,“თეთრი”,“თოვლისადამიანი”,“ყინული”დაასეშემდეგ. ჩვენი
ცოდნა თოვლის შესახებ და გამონათქვამის “თოვლი თეთრია” ჭეშმარიტება იქმნება
ამ ასოციაციის ქსელიდან. ასევე ფსიქოლოგიიდანაა
ცნობილი,რომესასოციაცებიქმნიანიერარქიულსტრუქტურებს.
1969წელსკოლინსმა დაკვილიანმა ჩაატარესცდები,რომლისარსი
მდგომარეობდაიმაში,რომ ისინი ცდისპირებსაძლევდნენისეთ
შეკითხვებსფრინველებისთვისებებისშესახებ,როგორიცაამაგალითად“იადონი ეს ჩიტია?”
“შეუძლია იადონს ფრენა?”“სტრაუსიმაღალია?”დასხვა. ზომავდნენრადროს,რომელიც
სჭირდებოდათ ცდისპირებსპასუხების მოსაფიქრებლად.მათაღმოაჩინეს,რომ იმ
კითხვებზეპასუხისგასაცემად, რომლებიცეხება მოცემულიობიექტისკონკრეტულ
თვისებებს,ცდისპირებს დასჭირდათ უფრო ცოტა დრო, ვიდრე იმ კითხვებზე, რომლებიც
ეხებაუფროზოგადთვისებებს,დამახასიათებელს არამარტოამ
კონკრეტულიობიექტისათვის.მაგალითად,კითხვას“იადონიყვითელია?” სჭირდება
გაცილებით ცოტადრო, ვიდრე კითხვას “შეუძლია იადონს ფრენა?”, მაშინ, როდესაც
ანალოგიური შეკითხვა “შეუძლია თუ არა ფრენა სტრაუსს?“ მოითხოვდა
გაცილებთცოტადროს.ცდისავტორებიამასხსნიან
იმით,რომადამიანებიინფორმაციასიმახსოვრებენმაქსიმალურადაბსტრაქტულდონეზე.იმი
სმაგივრად,რომ დაიმახსოვრონიადონსშეუძლია თუ არა ფრენა, ისინი იმახსოვრებენ, რომ
იადონი ჩიტია, ხოლო ჩიტებს(ძირითადად)შეუძლიათფრენა.ამ
ცდისსაფუძველზემათშემოგვთავაზეს სემანტიკური ქსელი,რომელიც ორგანიზებულია
იერარქიულპრინციპებზე,და აღწერს ადამიანისთავისტვინშიცოდნისშენახვის
სქემას.როგორცამ ქსელიდანჩანს,იმისათვის,რომცდისპირმაუპასუხოს
შეკითხვას,შეუძლიათუ
არაიადონსსუნთქვა,ადამიანმათავისსემანტიკურქსელშიუნდაგაიაროსგზა”იადონი” 
“ჩიტი”  ფრინველი  “ცხოველი”  “სუნთქავს”.
სემანტიკურიქსელებისესპრინციპი
ფორმალიზებულიამემკვიდრეობითსტრუქტურებში. მემკვდრეობითობის პრინციპი
ყველაზე მნიშვნელოვანია სემანტიკურ ქსელებში. ის საშუალებას გვაძლევს
დავიმახსოვროთ ინფორმაცია აბსტრაქციისყველაზემაღალდონეზე,რაც
ამცირებსცოდნისბაზის ზომებსდა
საშუალებასგვაძლევსთავიდანავიცილოთწინააღმდეგობები. მაგალითად,
თუჩვენვაგებთცოდნისბაზასჩიტებისშესახებ,მაშინშეგვიძლიაგანვსაზღვროთ
ყველაჩიტისთვის დამახასიათებელი ისეთი
ზოგადითვისებები,როგორიცა“შეუძლიათფრენა”,“აქვთფრთები”დაა. შ. დავიმახსოვროთ

67
ესინფორმაცია ჩიტების აბსტრაქციის დონეზე დამივცეთ
შესაძლებლობაჩიტებისკონკრეტულწარმომადგენელსმემკვიდრეობით მიიღოს
ესთვისებები.
ესრათქმაუნდა ამცირებს ცოდნის ბაზის ზომას, იმიტომრომამთვისებებს
განვსაზღვრათ მხოლოდ ერთხელ და არაყოველიკონკრეტულიწარმომადგენელისათვის
ცალ-ცალკე.ესმოსახერხებელიააგრეთვეცოდნისბაზაში ცვლილებებისშეტანისდროსაც.თუ
ჩვენბაზასვუმატებთ ჩიტებისრომელიმე კონკრეტულ წარმომადგენელს ანმთლიანად
ქვეკლასს, კლასისათვის აღწერილი თვისებები
ავტომატურადგავრცელდებაამქვეკლასზეც.
სემანტიკური ქსელების აღწერის ყველაზე მოხერხებული ფორმაა გრაფები,
რადგანაც შესაძლებელია ცნებებს შორის დამოკიდებულებების აღწერა კვანძებისა
და რკალების საშუალებით. კვილიანის მიერ შედგენილ
ცოდნისბაზაში,რომელიცშეიქმნასამოციანიწლებისბოლოსდარომელიც
ორგანიზებულიიყოლექსიკონისპრინციპისშესაბამისად,გრაფისთითოეული კვანძი
შეესაბამებოდა სიტყვებით აღწერილ ცნებას, ხოლო რკალების
საშუალებითაღიწერებოდაასოციაციურიკავშირებისხვაცნებებთან.ცოდნის ბაზა იყო
ორგანიზებული სიბრტყეებით, სადაც თითოეული სიბრტყე წარმოადგენდა გრაფს,
რომელიც ახასიათებდა ერთ ცნებას. ამ ქსელიდან ერთერთი ცნების მაგალითი
მოყვანილია სურ.8.2.

სურ.8.1. სემანტიკური ქსელის მაგალითი

პროგრამა იყენებდა ამ ბაზას მიმართების მოსაძებნად სიტყვათა


წყვილსშორის.ამისათვისის ახორციელებდაძებნასსიგანეში,სანამარ იპოვნიდა საერთო
ცნებას, ანუ თანაკვეთის კვანძს. გზები საერთო
კვანძამდეწარმოადგენდნენმიმართებებსცნებებსშორის.მაგალითად,სურ. 8.2
68
ნაჩვენებიათანაკვეთისკვანძი,ორცნებას,ტირილიდა მოსვენებასშორის. გამოიყენა
რაამგზების თანაკვეთა, პროგრამამ დაასკვნა, რომ: "ტირილი
სხვადანარჩენთანერთადდაკავშირებულიასამწუხაროხმების წარმოქმნასთან.მოსვენებას
შეუძლია შეამციროსმწუხარება."
ავტორითვლიდა,რომ ასეთიმიდგომასემანტიკისადმიუზრუნველყოფდა
სისტემისმიერბუნებრივიენისგაგებისშემდეგშესაძლებლობებს:
1. ინგლისური ტექსტის აზრის გაგება თანაკვეთის კვანძების აგების გზით.
2. სიტყვისმნიშვნელობისამორჩევა,წინადადებისსხვასიტყვებთანგადაკვეთამდე
უმოკლესი გზისამორჩევის საფუძველზე. მაგალითად
ინგლისურწინადადებაში“Tomwenthometo waterhisnewplant” (“ტომი მოვიდა სახლში
თავისი ახალი ნარგავების მოსარწყავად”),სისტემას შეუძლია ამოირჩიოს სიტყვა“plant”-ის
მნიშვნელობა ცნებების“water”და“plant”თანაკვეთაზედაყრდნობით.
შეკითხვაშიმოცემულიცნებების ასოციაციებზედაყრდნობით,სისტემა
შეძლებსმოქნილადუპასუხოსშეკითხვებს.მიუხედავად
იმისა,რომამდასხვამისმამსგავსმასისტემებმანათლად
აჩვენესგრაფებისგამოყენებისეფექტურობაასოციაციურიაზრისმოდელირებისდროს,ისინი
შეზღუდულნიარიანმეტისმეტადზოგადიფორმალიზმისგამო.
ცოდნისსტრუქტურირება,როგორცწესი,ხდებოდასპეციფიკურიდამოკიდებულებებისტერ
მინებში,ისეთში,როგორიცაკლასიქვეკლასი,აგენტი–ზმნა–ობიექტი.

სურ.8.2. ცნებებისტირილიდაკომფორტითანაკვეთა.

პროგრამა იყენებდაამბაზას მიმართების მოსაძებნად სიტყვათა


წყვილსშორის.ამისათვისის ახორციელებდაძებნასსიგანეში,სანამარ იპოვნიდა საერთო
ცნებას, ანუ თანაკვეთის კვანძს. გზები საერთო
კვანძამდეწარმოადგენდნენმიმართებებსცნებებსშორის.მაგალითად,სურ. 8.2
ნაჩვენებიათანაკვეთისკვანძი,ორცნებას,ტირილიდა მოსვენება-სშორის. გამოიყენა
რაამგზების თანაკვეთა, პროგრამამ დაასკვნა, რომ: "ტირილი
სხვადანარჩენთანერთადდაკავშირებულიასამწუხაროხმების წარმოქმნასთან.მოსვენებას
შეუძლია შეამციროსმწუხარება."
1. ინგლისური ტექსტის აზრის გაგება თანაკვეთის კვანძების აგების გზით.
2.სიტყვისმნიშვნელობისამორჩევა,წინადადებისსხვასიტყვებთანგადაკვეთამდე
უმოკლესი გზისამორჩევის საფუძველზე. მაგალითად
ინგლისურწინადადებაში“Tomwenthometo waterhisnewplant” (“ტომი მოვიდა სახლში
თავისი ახალი ნარგავების მოსარწყავად”),სისტემას შეუძლია ამოირჩიოს სიტყვა“plant”-
69
ის მნიშვნელობა ცნებების“water”და“plant”თანაკვეთაზედაყრდნობით.
ავტორითვლიდა,რომ ასეთიმიდგომასემანტიკისადმიუზრუნველყოფდა
სისტემისმიერბუნებრივიენისგაგებისშემდეგშესაძლებლობებს:
8.3ფრეიმები.განსხვავებულიიდეაცოდნისკომპიუტერულსისტემაში წარმოდგენაზე
წამოაყენაამერიკელმა მეცნიერმამ.მინსკმა.მან
შემოგვთავაზაფრეიმებისთეორია,რომლისძირითადიმამოძრავებლიიდეა მდგომარეობს
იმაში, რომ როდესაც ადამიანი ცდილობს შეიცნოს მისთვისახალისიტუაცია,ან
ახლებურადშეხედოსმისთვისუკვეცნობილსაგნებს,ის
თავისიმეხსიერებიდანამოირჩევსმონაცემთარაღაცსტრუქტურას (სახეს,რომელსაც
ავტორიუწოდებსფრეიმს),იმმიზნით,რომმასშიგარკვეული დეტალების ცვლილების გზით
გახადოს ესსტრუქტურა გამოსადეგიუფროფართოკლასისპროცესებისთვის.

სურ.8.3.კუბისგამოსახულებადამისიფრეიმი,როდესაცვაკვირდებით
პირველიწერტილიდან.

ფრეიმიარის სტერეოტიპულისიტუაციისწარმოსადგენიმონაცემთა
სტრუქტურა.ფრეიმის თითოეულ ნაწილთანასოცირებულიასხვადასხვასახის
ინფორმაცია.მისიერთინაწილიმიუთითებს,თუ როგორუნდაგამოვიყენოთ ფრეიმი,მეორე –
თუ რა შეიძლებამოჰყვესმისშესრულებასდამესამე–რა უნდამოვიმოქმედოთ,თუეს
ჩვენიმოლოდინიარგამართლდა.
ფრეიმიშეიძლება წარმოვიდგინოთროგორცქსელი, რომელიცშედგებაკვანძებისადა
კავშირებისაგანამ
კვანძებსშორის.ფრეიმის"ზედადონეები"მკაცრადგანსაზღვრულია,რადგანაც
შეესაბამებიანცნებებს,რომლებიცყოველთვის სწორია
მოცემულიშესაძლოსიტუაციებისათვის.შედარებითუფრო დაბალ
დონეებზეარისმრავალიგანსაკუთრებულიწვერო– ტერმინალებიანუ
უჯრედები,რომლებიცუნდაშეივსოსდამახასიათებელი მაგალითებით,ან მონაცემებით.
თითოეულიტერმინალისმიერ შეიძლებაწამოყენებულიიქნასპირობები, რომლებსაც
უნდააკმაყოფილებდნენ მისიდავალებები. მარტივი
პირობები,მაგალითად,მოთხოვნა,რომტერმინალისდავალებაიყოს რომელიმე სუბიექტი,
ანგარკვეული ზომისსაგანი,განისაზღვრება მარკერების საშუალებით. უფრო რთული
პირობებით მოიცემა მიმართებები ცნებებს
შორის,რომლებიცმოთავსებულნიარიანსხვადასხვატერმინალურ წვეროებში. სემანტკურად
ახლო ფრეიმების ჯგუფი შეიძლება გავაერთიანოთ ფრეიმთა სისტემაში. განვიხილოთ
უმარტივესი მაგალითი. დავუშვათ,ჩვენ
გვინდაშევადგინოთფრეიმი,რომლისსაშუალებითაცშევძლებთ
ცოდნისბაზაშიაღვწეროთკუბიისე,რომ რა პოზიციიდანაცარუნდაუყურებდესამ
კუბსხელოვნურიინტელექტუალურისისტემა,მანშეძლოსმისი ამოცნობა.

70
სურ. 8.3. მოცემული იყოკუბისგამოსახულებარაიმეკონკრეტული წერტილიდან და
შესაბამისიფრეიმისსტრუქტურა.დავუშვათ,ეხლა დამკვირვებელი
იწყებსმოძრაობასმარჯვნივ,მაშინA წახნაგიგაქრებადა მის ადგილზე გამოჩნდება წახნაგი
B, ხოლო B წახნაგის ადგილზე C წახნაგი.

8.4.კუბისგამოსახულებადამისიფრეიმიროდესაცკუბს
ვაკვირდებითმეორეწერტილიდანდავიცით,რომსაგანიარშეცვლილა.

სურ.8.5.კუბისგამოსახულებადამისიფრეიმიროდესაცკუბს
ვაკვირდებითმეორეწერტილიდანდასაგანიარშეცვლილა.
თუ ეხლაშევეცდებითხელახლააღვწეროთკუბი,უნდადავივიწყოთ ყველაფერი,
რაცვიცოდით დახელახლა აღვწეროთ წახნაგები BდაEდა
აღვწეროთწახნაგიC.მაგრამ,თუჩვენვიცით,რომსაგანიარშეცვლილა,
მაშინშეგვიძლიაშევინახოთინფორმაციაBდაE წახნაგებისშესახებდააღვწეროთმხოლოდC
წახნაგი.ამასთან,რომარდავკარგოთინფორმაციაA
წახნაგისშესახებ,ჩვენშეგვიძლიადავუკავშიროთის უხილავიწახნაგის
ტერმინალს.მაშინჩვენსფრეიმსექნებაშემდეგისახე(იხ. სურ. 8.5.).
შესაძლებელია გავაგრძელოთ ასეთირთულისტრუქტურისაგება, მას
ეწოდებაფრეიმთასისტემა,როდესაცდაკვირვებისწერტილები გვაქვს უფრო მეტი (სურ. 8.5.
მოცემულია დაკვირვების სამი წერტილი).შესაბამისი ფრეიმების სტრუქტურა ნაჩვენებია
სურ. 8.6.

71
სურ.8.6.ფრეიმთასისტემადაკვირვებისსამიწერტილისათვის.
გამარტივებისმიზნითსურათზენაჩვენებიარააEწახნაგი,რომელიცჩანს ყველაწერტილიდან.

აქმთავართვისებაა-
სხვადასხვაფრეიმები,რომლებიცშედიანერთსადაიმავესისტემაში,გამოიყენებენერთსადაიმ
ავეტერმინალებს. მაშინ შეიძლებამეხსიერებისერთ
წერტილშიწინასწარმოვაგროვოთინფორმაცია ობიექტებისუკვე
ცნობილითვისებებისშესახებდაკვირვებისწერტილიდან დამოუკიდებლად.ამის
შედეგადშესაძლებელიამეხსიერებისეკონომიადა მცირდება აგრეთვე აღქმისპროცესი.
ფრეიმები აფართოებენ სემანტიკური ქსელებისშესაძლებლობებს.ისინი
გვაძლევენსაშუალებასწარმოვადგინოთ რთულიობიექტებიარა
დიდისემანტიკურიქსელის,არამედერთიანიფრე-
იმულისტრუქტურისსახით.მიუხედავადამისა, რთული ცოდნისბაზების ორგანიზების
პრობლემებიასეთი მიდგომისდროს მაინცუნდა გადაიჭრას
ძირითადადპროგრამისტისინტუიციისადაგამოცდილებისხარჯზე.

სავარჯიშოები:

1. რა უპირატესობა აქვთ ცოდნაზე დაფუძნებულ აგენტებს სხვა


აგენტებთან შედარებით?
2. რა განსხვავებაა კომპიუტერში მონაცემთა წარმოდგენასა და ცოდნის წარმოდგენას
შორის?
რა პრინციპებს ეფუძნება სემანტიკური ქსელები?
4. როგორ ხდება ცნებების დაკავშირება სემანტიკურ ქსელში?
5. რა არის ფრეიმი?
6. როგორ ხდება ფრეიმის ჩამოყალიბება?
7. როგორ იქმნება ფრეიმული სისტემა?
8. რა უპირატესობა აქვს ფრეიმულ სისტემას სემანტიკურ ქსელთანშედარებით?

72
ლექცია 9.
ცოდნის წარმოდგენა კონცეპტუალური გრაფებისა და ალბათურ -ლოგიკური
კონცეპტების საშუალებით.

9.1. კონცეპტუალური გრაფები.ცოდნის ბაზების შექმნაში შემდეგი


საფეხურიიყოქსელურიენებისშექმნაბუნებრივი ენისსემანტიკის დასხვა გარე
სამყაროსმოდელირებისათვისინტელექტუალურსისტემებში.ჩვენ განვიხილავთ ქსელური
ენების ერთ წარმომადგენელს – კონცეპტუალურ გრაფებს.კონცეპტუალური
გრაფიწარმოადგენს სასრულ,შეკრულ,
ორმხრივმიმართულგრაფს.გრაფისკვანძებიწარმოადგენენცნებებსან
კონცეპტუალურმიმართებებს.კონცეპტუალურგრაფებშირკალებისჭდეებიარ
გამოიყენება.მიმართებები ცნებებსშორისწარმოიდგინება კონცეპტუალური
მიმართებებისკვანძებით.იმისათვის,რომ განვასხვავოთერთმანეთისგან ცნებებიდა
მიმართებები,სქემაზეპირველსაღნიშნავენმართკუთხედებით, მეორესკი–
ელიფსებით.სურ.9 .1.მოყვანილიაკონცეპტუალური მიმართებები,
რომლებიცწარმოადგენენსხვადასხვა n-არობისმიმართებებს.
ჩიტიფრინავსარისუნარულიმიმართება,აქ ჩიტიარისობიექტი,
ხოლოფრინავსკონცეპტუალური მიმართება. ძაღლისფერიაყავისფერი
არისბინარულიმიმართება,ხოლობავშვისმშობლებიარიანდედადამამა კი–ტერანული
მიმართება. კონცეპტუალურ გრაფებში ცნებების კვანძები წარმოადგენენან
გარესამყაროშიარსებულიკონკრეტულიობიექტების ცნებებსან
მსჯელობისდროსგამოყენებულისეთაბსტრაქტულცნებებს, რომლებიცგარესამყაროშიარ
გვხვდება(მაგალითადპატრიოტიზმი, ღალატი,სიყვარულიდაასეშემდეგ).

სურ .9.1. სხვადასხვა n-არობის კონცეპტუალური მიმართებები.

სემანტიკური ქსელების შექმნისას, როგორც წესი ყურადღებას არაქცევდნენ


ისეთი მიმართებების განსაზღვრას, როგორებიცაა კლასი – ელემენტი, კლასი –
ქვეკლასი, რის გამოც წარმოიშვა სემანტიკური არაერთგვა- როვნება. მაგალითად,
მიმართება ეგზემპლარსა და კლასსშორის განსხვავ-
დებამიმართებისაგანკლასსამისსუპერკლასსშორის.აქედანგამომდინარე ზოგიერთი
თვისება ეკუთვნის ეგზემპლარს, ხოლო ზოგიერთი კი კლასს. ცოდნის წარმოდგენას
უნდა გააჩნდეს მექანიზმები ამ განსხვავების აღსაწერად. კონცეპტუალურ გრაფებში
თითოეული ცნება წარმოადგენს კონკრეტული ტიპის უნიკალურ ეგზემპლარს.
თითოეული ცნების მართკუთხედი აღინიშნება ტიპის ჭდით, რომელიც
განსაზღვრავს ამ კვანძით
წარმოდგენილკლასსანეგზემპლარისტიპს.ტიპისჭდედაეგზემპლარიგამოყოფილია
ორიწერტილით.

სურ.9..2.კონცეპტუალურიგრაფი,რომელიცგვიჩვენებს,რომძაღლიემა ყავისფერია.

სურ. 9.2. გვიჩვენებს, რომ ძაღლი ემა ყავისფერია. გრაფი, მოცემული სურ. 9.3. კი
გვიჩვენებს, რომ რომელიღაც არასპეციფირებული, ძაღლის ტიპის ობიექტი
ყავისფერია. კონცეპტუალური გრაფები გვაძლევენ საშუალებას აღვწეროთ აგრეთვე
კონკრეტული, მაგრამ არასპეციფირებული, უსახელო ეგზემპლარები.

სურ. 9.3. კონცეპტუალურიგრაფი,რომელიცგვიჩვენებს,რომრომელიღაც


არასპეციფირებული, ძაღლის ტიპის ობიექტიყავისფერია.

სემანტიკური ქსელების შექმნისას, როგორც წესი ყურადღებას არაქცევდნენ


ისეთი მიმართებების განსაზღვრას, როგორებიცაა კლასი – ელემენტი, კლასი –
ქვეკლასი, რის გამოც წარმოიშვა სემანტიკური არაერთგვაროვნება. მაგალითად,
მიმართება ეგზემპლარსა და კლასსშორის
განსხვავდებამიმართებისაგანკლასსამისსუპერკლასსშორის.აქედანგამომდინარე
ზოგიერთი თვისება ეკუთვნის ეგზემპლარს, ხოლო ზოგიერთი კი კლასს. ცოდნის
წარმოდგენას უნდა გააჩნდეს მექანიზმები ამ განსხვავების აღსაწერად.
კონცეპტუალურ გრაფებში თითოეული ცნება წარმოადგენს კონკრეტული ტიპის
უნიკალურ ეგზემპლარს. თითოეული ცნების მართკუთხედი აღინიშნება ტიპის
ჭდით, რომელიც განსაზღვრავს ამ კვანძით
წარმოდგენილკლასსანეგზემპლარისტიპს.ტიპისჭდედაეგზემპლარიგამოყოფილია
ორიწერტილით.
კონცეპტუალური გრაფები გვაძლევენ საშუალებასაღვწეროთ აგრეთვე
კონკრეტული, მაგრამ არასპეციფირებული, უსახელოეგზემპლარები.ამისათვის,
თითოეული ეგზემპლარის აღსაწერად მონაცემთა ბაზაში გამოიყენება უნიკალური
დესკრიპტორი (აღმწერი), რომელსაც უწოდებენ მარკერს.ის წარმოადგენს რიცხვს,
რომლის წინაც განთავსებულია სიმბოლო "#".მარკერი სახელისაგან განსხვავდება იმით,
რომ ის არის უნიკალური. ეგზემპლიარს შეიძლება საერთოდ არ ჰქონდეს სახელი,
შეიძლება ჰქონდესერთი, ან რამდენიმე სახელი, მაგრამ მას ყოველთვის აქვს ზუსტად
ერთიმარკერი. ეს გვაძლევსსაშუალებას თავიდან ავიცილოთ სემანტიკური
არაერთმნიშვნელობა, კერძოდ როდესაც გვაქვს ორი ობიექტი ერთი და იგივესახელით.
სურ. 9.4. მოყვანილია მაგალითები, როდესაც ეგზემპლიარს არგააჩნია სახელი, ან აქვს
ერთი, ან რამდენიმე სახელი.

74
სურ.9.4.კონცეპტუალურიგრაფები,რომლებიცგვიჩვენებენმარკერის და სახელის
გამოყენების სხვადასხვავარიანტებს

წინადადება "ძაღლი იფხანს ყურს თათით" კონცეპტუალური გრაფის


საშუალებით გამოისახებაასე:

სურ.9.5.

ტიპებს გააჩნიათ იერარქიული სტრუქტურა. ტიპი “ძაღლი” არის ტიპი


“ხორცისმჭამელების” ქვეტიპი, რომელიც თავის მხრივ არის “ძუძუმწოვრების” ქვეტიპი
და ასე შემდეგ. ტიპების იერარქია - ესაა ნაწილობრივიმოწესრიგება ტიპების
სიმრავლეზე, რომელიც შეგვიძლია აღვნიშნოთ სიმბოლოთი  . თუ S და T არიან ტიპები
და T£S, მაშინ ამბობენ, რომ T არისქვეტიპი, ხოლო S - სუპერტიპი. რადგანაც
მოწესრიგება არის ნაწილობრივი,ტიპს შეიძლება გააჩნდეს როგორც რამდენიმე
სუპერტიპი, ასევე რამდენიმექვეტიპი. თუ T<S და T<U, მაშინ ამბობენ, რომ T არის S-ს და
U-ს საერთოქვეტიპი. ანალოგიურად განიმარტება საერთო სუპერტიპიც.
კონცეპტუალური გრაფების ტიპების იერარქია წარმოადგენს ბადეს, რომელიც
აღწერსმრავალჯერადი მემკვიდრეობის სისტემის ზოგად სახეს. ამ ბადეში
ტიპებსშეიძლება გააჩნდეთ მრავალი მშობელი და ასევე მრავალი შვილობილი წვეროები,
მაგრამ ყოველ წყვილს ტიპებისა აუცილებლად გააჩნია მინიმალური საერთო სუპერტიპი
და მინიმალური საერთო ქვეტიპი.
9.3.ოპერაციები კონცეპტუალურ გრაფებზე. კონცეპტუალური
გრაფებისთეორიაშეიცავსგარკვეულოპერაციებს არსებული გრაფებისაგან ახალი გრაფების

75
მისაღებად. ამით ის არსებითადგანსხვავდებასემანტიკურიქსელებისაგან.ეს
ოპერაციებისაშუალებას გვაძლევენ
მივიღოთახალიგრაფებიარსებულიგრაფებისსპეციალიზაციის,ან
განზოგადებისგზითდაძალიანმნიშვნელოვანიაბუნებრივიენის
სემანტიკისწარმოსადგენად ცოდნის ბაზებში.ეს ოპერაციებია: კოპირება, შეზღუდვა,
გაერთიანება დაგამარტივება.
კოპირებისოპერაციასაშუალებასგვაძლევსgგრაფისაგანმივიღოთახალიგრაფი,რომე
ლიცწარმოადგენსg-სზუსტასლს.
შეზღუდვის ოპერაციით შეგვიძლია გრაფშიცნების კვანძიშევცვალოთ
მისისპეციალიზაციით. აქშესაძლებელია ორიშემთხვევა: თუ ცნება მონიშნულია ზოგადი
მარკერით, შესაძლებელია ის შევცვალოთინდივიდუალურიმარკერით, ან
ტიპისჭდეშეიძლება შეიცვალოს
მისიქვეტიპისჭდით,თუისშეესაბამებაობიექტს,რომელზედაცმიუთითებსცნება.
გაერთიანებისოპერაციითშეგვიძლიამოვახდინოთორი
გრაფისინტეგრირებაერთში.თუ მათგააჩნიათცნებისიდენტურიკვანძები,მაშინეს
კვანძიინტეგრირებულგრაფშიშევა მხოლოდერთხელ.გაერთიანებისოპერაცია
წარმოადგენს სპეციალიზაციის წესს, რადგანაც ინტეგრირებული
გრაფიარისნაკლებადზოგადი,ვიდრენებისმიერიმისიკომპონენტი. თუგრაფი შეიცავს
ორერთნაირ მიმართებას, მაშინ შეასძლებელია
ამოვშალოთერთერთიმათგანითავისრკალებთანერთად.ესაა გამარტივებისოპერაცია.
სურ. 9 .7.მოცემულია ამოპერაციების გამოყენების
მაგალითები.დავუშვათ,გვაქვსორი და g1g2 გრაფი.

სურ.9.6.

76
სურ.9.6.

სურ.9.7.

9.4. ცოდნის წარმოდგენა კონცეპტების საშუალებით.როდესაცადამიანები


მსჯელობენ,საუბრობენერთმანეთში,ან ფიქრობენრაიმეპრობლემაზე,ისინიიყენებენ
ცნებებს, რომლებიც პრაქტიკულად ბუნებაში არარსებობენ. მაგალითად,
ჩვენვხმარობთცნებას„მაგიდა“,მაგრამბუნებაშიარ არსებობს რაღაც ზოგადიმაგიდა,
ყოველთვისარსებობსრომელიღაცკონკრეტული
მაგიდა,ასევეარარსებობსზოგადადხე,ანშენობა. როგორხდება კონკრეტულობიექტებზე
დაკვირვებით ამზოგადი ცნებების ფორმირება ბუნებრივინტელექტში?ჩვენრა
თქმაუნდაზუსტადარშეგვიძლიააღვწეროთის პროცესები, რომლებიცმიმდინარეობს
ადამიანისთავისტვინში,როდესაც ხდება რაიმეცნებისფორმირება,მაგრამზოგადისქემა
გამოიყურებაასე:
ადამიანი გარემოსთან ურთიერთობის პროცესში აკვირდება რა ერთი და
იგივეტიპისობიექტებს,ახდენსმათ რაღაცპარამეტრებისსაშუალებით
აღწერას,მრავალობიექტებზედაკვირვებისშედეგადამპარამეტრებიდან გამოყოფსისეთ
პარამეტრებს,რომლებიც არსებითია მოცემული კლასისობიექტებისათვისდა
ასეთნაირადდაფიქსირებულინფორმაციასუწოდებსცნებას.ამ
პროცესშიმნიშვნელოვანია,რომ ცნებისჩამოყალიბებისპროცესიარ
გრძელდებაუსასრულოდდა ადამიანსშეუძლიამოცემულიკლასისსასრული
ელენეტებისსაფუძველზეჩამოაყალიბოსთავისიცნება.
მეორე მნიშვნელოვანი მომენტია ის, რომამცნებისგანმსაზღვრელია არაადამიანის
შეხედულებაამა თუიმობიექტზე,არამედსწორედამ
ობიექტებისთვისებები.ესრომასეარიყოს,ადამიანებსშორისშეუძლებელიიქნებოდაურთიერ
თობა,რადგანერთსადა იმავეცნებისქვეშ ისინიიგულისხმებდნენსულ
სხვადასხვაობიექტებს.ცხადია,რომ განსხვავებასხვადასხვაადამიანებების
ერთსადაიმავეცნებებსშორისარსებობს, მაგრამთუესცნებებიასახავენ ობიექტებს,
რომლებიც ბუნებაშიარსებობენ, მაშინესგანსხვავება არ ხდება იმის საფუძველი, რომ
ადამიანებმა ერთმანეთს ვერ გაუგონ.
თავის შრომებში ვ. ჭავჭანიძემ წამოაყენა იდეა, როგორ შეიძლება მოვახდინოთ
ბუნებრივი ინტელექტის მიერ ცნებების გამომუშავების პროცესის მოდელირება. ამ მიზნით
მან შემოიტანა სიმრავლის ახალი, განსხვავებული განმარტება. როგორც ცნობილია, იმ
დროისთვის აშკარა გახდა, რომ სიმრავლის არსებული, კლასიკური განმარტება არ იძლეოდა
ადამიანის ცნობიერებაში მიმდინარე პროცესების ფორმალური აღწერის საშუალებას.
77
სწორედ ამ პერიოდში წამოაყენა ლ. ზადემ თავისი ცნობილი ლინგვისტური ცვლადის იდეა,
რომელმაც საფუძველი დაუდო თანამედროვე ფაზი - სიმრავლეების და ფაზი - ლოგიკის
განვითარებას.
კონცეპტუალური ხელოვნური ინტელექტი თვლის, რომ სიმრავლე M შეიძლება

შეიცავდეს როგორც ელემენტს a , ასევე ელემენტს a , ანუ ის შეიცავს ელემენტს a , სადაც
 a
a   . სიმრავლის ასეთი განმარტების გამოყენებით კონცეპტუალურ ხელოვნურ
a
ინტელექტში განავითარდა მეთოდოლოგია, რომელითაც ხდება ფორმალურად,
მათემატიკურად ბუნებრივი ინტელექტის ცნებების შესაბამი კონცეპტების გამოთვლა.
იმისათვის, რომ ადამიანს ჩამოუყალიბდეს ცნება „რა არის ხე“, მას სჭირდება
გარკვეული რაოდენობის კონკრეტული ხეების შესწავლა, რის შემდეგაც ის ახდნეს
აბსტრაქციას და ჩამოაყალიბებს ხის აბსტარქტულ აღწერას, რის საფუძველზეც მას
შემდგომში შეუძლია როგორც ხის ამოცნობა, ასევე მსჯელობა ამ საგნის შესახებ.
ამგვარად, თუ გვინდა, რომ მივიღოთ ამ ცნების შესაბამისი კონცეპტი, ჩვენ უნდა
გავიმეოროთ იგივე გზა. პირველ რიგში საჭიროა შევაგროვოთ ის კონკრეტული ობიექტები,
რომელთა საშუალებითაც გამოვთვლით შესაბამის კონცეპტს. ეს ობიექტები უნდა აღვწეროთ
( A1 , A2 , A3 ,..., An ) ნიშნებისა და მათი მნიშვნელობების სიმრავლეებით ( (ai1 , ai2 ,...aim )  Ai .
ამასთან, აღწერაში შეიძლება ერთდროულად მონაწილეობდნენ როგორც რაოდენობრივი,
ასვე ხარისხობრივი თვისებები და მათი მნიშვნელობებიც შეიძლება იზომებოდეს სხვადასხვა
ერთეულებში, ან წარმოადგენდნენ ხარისხობრივ შეფასებებს.
შემდეგი და ძალიან მნიშვნელოვანი ეტაპია ამ ამ ობიექტების შეფასება. შეფასება
მარტივია, ობიექტი ან ან მიეკუთვნება იმ ობიექტების სიმრავლეს, რომლის კონცეპტის
გამოთვლასაც ვაპირებთ, ან არ მიეკუთვნება ამ კლასს. მაგრამ რადგანაც ეს შეფასება
პრაქტიკულად განსაზღვრავს კონცეპტის შინაარსს, შეფასებები უნდა იყოს მაქსიმალურად
ობიექტური.
შემდეგ ეტაპზე ხდება თითოეული ნიშნის მნიშვნელობათა სიმრავლის ფორმალური
ბინარიზაცია, ანუ მნიშვნელობათა სიმრავლე გაიყოფა ორ ნაწილად, ერთი მათგანის
_
ელემენტები აღინიშნება xij სახით, მეორესი კი - x ij . ამის შემდეგ ყველა კონკრეტული
ობიექტი, რომლებიც მონაწილეობენ კონცეპტის გამოთვლაში წარმოიდგინება ასეთი

ფორმით x1,1 x1,2 ..., x1,m .
აქ i აღნიშნავს ნიშნის ნომერს, j - ამ ნიშნის მნიშვნელობის ნომერს. ხაზი ცვლდის თავზე
მიუთითებს მნიშვნელობათა რომელ ნაწილს მიეკუთვნება მოცემული მნიშვნელობა.
ცვლადებს შორის იგულისხმება ლოგიკური კავშირი და  .
იმისათვის, რომ მივიღოთ კონცეპტის სრულყოფილი აღწერა, ბუნებრივია დავაკავშიროთ
ისინი ერთმანეთთან ლოგიკური ოპერაციით ან  . მიღებული შედეგი წარმოადგენს
კონცეპტის აღწერას.
  (T )   (T l ) .
l

9.5. კონცეპტების გამოთვლის ალბათურ-ლოგიკური მეთოდი. კონცეპტის გამოთვლის ასეთ


მეთოდს გააჩნია სუსტი მხარე. როდესაც იმ კონკრეტული ობიექტების რაოდენობა, რომელთა
საფუძველზეც ხდება კონცეპტის გამოთვლა, საკმაოდ დიდია, შესაბამისად დიდია
მიღებული ნორმალური დიზუნქციური ფუნქციაც. ამ ფუნქციის მინიმიზაცია მოითხოვს
დიდ დროს და ზოგჯერ მიღებული კონცეპტი ერთი შეხედვით მკაფიოდ ვეღარ გამოხატავს

78
კონცეპტს. ამ მომენტის თავიდან ასაცილებლად, ჩვენ განვიხილავთ კონცეპტის გამოთვლის
ალბათურ-ლოგიკურ პროცედურას.
ცნებების გამოთვლისათვის.კონცეფციის გაანგარიშების ამ მეთოდს აქვს სუსტი მხარე.
როდესაც კონკრეტული ობიექტების რაოდენობა, რომელთა საფუძველზეც გამოითვლება
კონცეფცია, ძალიან დიდია, ნორმალური დისჟუნქციური ფუნქცია ასევე დიდია. ამ ფუნქციის
მინიმიზაციას დიდი დრო სჭირდება და ზოგჯერ იქმნება შთაბეჭდილება, რომ
კონცეპტიცალსახად არ არის გამოხატული.ამ მომენტის თავიდან ასაცილებლად, ჩვენ
განვიხილავთ კონცეფციების გამოთვლის ალბათურ-ლოგიკურ მეთოდს.დავუშვათ, რომ
გვინდა გამოვთვალოთ ნებისმიერი S კლასის ობიექტის კონცეფცია. ამ ობიექტებში
აღწერილია მათი ატრიბუტები მნიშვნელობების სივრცეში, რომელიც შეიძლება
წარმოდგენილი იყოს მატრიცის სახით

 a11 a 21 ... a m1 
 
 a12 a 22 ... a 2m2 
 ... ... ... ... 
 
 a1n a 2n3 ... a mnm 
 1

სანამ კონცეპტის გამოთვლას დავიწყებთ, ჩვენ ვიტარებთ თითოეული ატრიბუტის


მნიშვნელობის ბინარიზაციას. დავუშვათ, ჩვენ გვაქვს ობიექტების N რაოდენობა, რომლებიც
მიეკუთვნება S კლასს. გსმოვთვალოთ
N ij
pij  , i  1, m and
N
სადაც N ij არის რიცხვი,რომელიც გვიჩვენებს რამდენჯერ შეგვხვდა ეს მნიშვნელობა S
კლასის ობიექტებში და N ამ რაოდენობა. ამ გამოთვლების შედეგადმივიღებთ ახალ
მატრიცას (მატრიცა 2).
 p11 p21 ... pm1 
 
 p12 p22 ... pm 2 
 ... ... ... ... 
 
 p1n p2n ... pmn 
 1 2 m

l t
თუ ავჯამავთ Pi   pik და Pi   p ik ,სადაც Pi არის ალბათობათა ჯამი aij ელემენტებისა,
k 1 k 1
ხოლო Pi კი - aij ელემენტებისა (ცხადია, რომ Pi  Pi  1) მივიღებთ:

 P1 , P2 , ..., Pm 
 ( S )   ,

 1
P , P2 , ..., Pm

კონცეპტის ლოგიკური აღწერის მისაღებად, ჩვენ გვაქვს ფილტრაციის კოეფიციენტი,


რომლის გამოყენებაც შესაძლებელია იმის დასადგენად, თუ რამდენად მნიშვნელოვანია ესა
თუ ის ატრიბუტი კონცეპტისთვის. როდესაც ფილტრაციის პარამეტრი შეირჩევა ხდება
შემდეგილოგიკურ პრინციპით:
თუ Pi   , მაშინ i -ური ატრიბუტი ლოგიკურ წარმოდგენაში შევა როგორც Ai ; თუ
P i  1  , მაშინ i -ური ატრიბუტი წარმოდგენაში შევა როგორც P i ; და თუ P i  1  , ან
79

რაც იგივეა მაშინ i -ური ატრიბუტი ლოგიკურ წარმოდგენაში შევა როგორც Ai . შედეგად
ჩვენ მივიღებთ ჩვენი კონცეპტის ლოგიკურ გამოსახულებას:
  
 ( S )  ( A1 A2 A3 A4 A5 A6 ... Am ) ,

სადაც ატრიბუტები Ai და Al მნიშვნელოვანი ატრიბუტებია, და სადაც Ak
ატრიბუტები საყურადღებო ატრიბუტებია. ატრიბუტებს შორისაა ლოგიკური ოპერატორი
”და” (  ).
განვიხილოთ აღწერილი მეთოდის გამოყენების მაგალითი „შეფუთვის ყუთის“
კონცეფციის გამოსათვლელად.
დავუშვათ, რომ ჩვენ გვაქვს ატრიბუტის მნიშვნელობის სივრცე, რომელიც შედგება 9
ატრიბუტისგან და მათი მნიშვნელობებისაგან (იხ. ცხრილი 1). ჩვენ შევიკრიბეთ შეფუთვის
ყუთები, რომლებშიც სარეცხი საშუალებები იყიდება, და ვთხოვეთ ამ ყუთების შეფასება
ორივე მომხმარებლისთვის "კარგი ყუთის" და "ცუდი ყუთის" პრინციპით. ჩვენ განვიხილეთ
ეს ყუთები მოცემული ატრიბუტის მნიშვნელობის სივრცის მიხედვით. შემდეგ შევარჩიეთ ის
ობიექტები, რომლებმაც მიიღეს დადებითი შეფასება მომხმარებელთა მხრიდან და
გამოვთვალეთ შესაბამისი კონცეფცია.

N ატრიბუტი ატრიბუტის სახელი ატრიბუტის მნიშვნელობები


1 A1 ყუთის ფერი 1. თეთრი; 2. შავი; 3. ცისფერი; 4. წითელი; 5. მწვანე;
6. ყავისფერი; 7 ყვითელი; 8. კომბინირებული
2 A2 ყუთის ფორმა 1.მართკუთხედი; 2.ცილინდრი 3. კონუსი; 4
წაკვეთილი კონუსი არ გააჩნია მყარი ფორმა.
3 A3 ყუთის მასალა ქაღალდი; 2. მინა; 3. ცელოფანი; 4.პლასტმასი5.
მუყაო.
4 A4 ყუთის წონა 1.  0,5 კგ; 2. 0,5 to 1 (კგ); 3. 1  (კგ)
5 A5 ყუთზე 1.სახელი, შემადგენლობა, გამოყენების წესი, წონა
განთავსებული 2.სახელი, გამოყენების წესი და წონა 3. მხოლოდ
ინფორმაცია 3.სახელი და წონა.
6 A6 ყუთის 1.არ იცავს ნესტისგან;
სტაბილურობა 2. არ იცავს ნესტისგან;
ნესტის მიმრთ
7 A7 ყუთის სიმტკიცე კგ 1. 0,5 კგ; 2. 0,5 to 1 (კგ); 3. 1 (კგ)
სმ
8 A8 ყუთის მოცულობა 2ds 3  3ds 3 . 2. 3ds 3 
დმ)
A9 გამოდის ეს დიახ; 2. არა.
საშუალება სხვა
შეფუთვაში?

9.6. ოპერაციები ალბათურ ლოგიკურ კონცეპტებზე. დავუშვათ, გვაქვს კონცეპტი


 
f ( A)  ( x1 x2 x3 ... xi ... xm ) . ავაგოთ m-განზომილებიანისივრცე, სადაც პარამეტრები ( x1 x2 ...xm )
არიან ამ სივრცის ღერძები მნიშვნელობებით -1, 0 და 1, სადაც -1 შეესაბამება i-ური

მახასიათებლის xi მდგომარეობას, 0 - x i მდგომარეობას და 1 კი - x i მდგომარეობას. ასეთ

80
შემთხვევაში ჩვნი კონცეპტი იქნება m-განზომილებიანი წერტილი ამ სივრცეში. ახლა
დავუშვათ გვაქვს ორი ბიფუნქციონალი, რომლებიც განსაზღვრულნი არიან m1 და m 2 -
განზომილებიან სივრცეებში. შემოვიტანოთ განზოგადოებული სივრცე, რომელიც
 
წარმოადგენს ამ სივრცეების გაერთიანებას. მაგალითად f ( A)  ( x1 x2 x3 x5 x7 ) და
 
f ( B)  ( x1 x3 x4 x6 x8 ) . განზოგადებული სივრცე იქნება ( x1 , x2 ,...x8 ) . მაშინ გვექნება
    
ბიფუნქციონალები:: f ( A)  ( x1 x2 x3 x4 ... x8 ) და f ( B)  ( x1 x2 x3 x4 x5 ... x8 ). ჩვენ შეგვიძლია
შემოვიტანოთ ევკლიდეს მეტრიკა ასეთ სივრცეშიდა მივიღოთ n-განზომილებიანი
დისკრეტული მეტრიკული სივრცე, რომელშიც შეგვიძლია ჩავატაროთ შემდეგი ოპერაციები
კონცეპტებზე:
   
ინვერსიის ოპერაცია ( x1 x2 x3 x4 )  ( x1 x2 x3 x4 )
       
უნიფიკაციის ოპერაცია ( x1 x2 x3 x4 )  ( x1 x2 x3 x4 x5 )  ( x1 x2 x3 x4 x5 )
    
თანაკვეთის ოპერაცია ( x1 x2 x3 x4 )  ( x1 x2 x3 x4 x5 )  (Ø x 2 x3 x 4 Ø)
    
ეკვივალენტობის ოპერაცია ( x1 x2 x3 x4 )  ( x1 x2 x3 x4 x5 )
  
ინკლუზიის ოპერაცია ( x1 x2 x3 x4 )  ( x1 x3 ) .
სავარჯიშოები:

1. რას წარმოადგენს კონცეპტუალური გრაფი?


2. რას ეწოდება კონცეპტი?
3. რა ეტაპებისაგან შედგება კონცეპტის გამოთვლის პროცედურა?
4. მოიფიქრეთ, როგორ შეიძლება გამოიყენოს ინტელექტუალურმა სისტემამ
კონცეპტის სახით ჩამოყალიბებული ცოდნა.

81
82
ლექცია 10.
მანქანური სწავლების მეთოდები. კანდიდატთა გამორიცხვის ალგორითმი.

10.1 ტერმინის შესახებ.ტერმინი „მანქანური სწავლება“ ჩემი აზრით არაა მთლად სწორი
თარგმანი ინგლისური ტერმინისა “Mashing lerning”. ამ ტერმინის ქვეშ მოიაზრება მანქანის,
ანუ ხელოვნური ინტელექტის სწავლების მეთოდები და ალგორითმები და არა მანქანურად
სწავლა. მაგრამ ეს უკვე დამკვიდრებული ტერმინია და არა აქვს აზრი ამაზე კამათს.
უბრალოდ გვახსოვდეს რას აღნიშნავს ეს ტერმინი.
10.2. სწავლის აუცილებლობა.ნებისმიერ სისტემას, რომელსაც გააჩნია ინტელექტი (ან თვლის,
რომ გააჩნია) უნდა გააჩნდეს დასწავლის უნარი, ამის გარეშე ის არა თუ ვერ შეძლებს
დასახული მიზნების მიღწევას, არამედ ვერ შეძლებს არსებობას რეალურ, მუდმივად
ცვალებად გარემოში.
თუ შევადარებთ ბუნებრივ ინტელექტს, რასაც ხშირად ვაკეთებთ იმის დასადგენად,
რამდენად ინტელექტუალურია ხელოვნური სისტემა, აღმოვაჩენთ, რომ ბუნებრივი
ინტელექტი მართლაც სწავლობს მთელი მისი ცხოვრების განმავლობაში. ჩვენ ყველამ ვიცით
გამოთქმები „სწავლა სიბერემდე“, „ჭკვიანი (ანუ ინეტელწტუალური) ადამიანი სწავლობს
სხვის შეცდომებზე“ და ასე შემდეგ. ეს ყველაფერი კი გამოწვეულია იმით, რომ ადამიანები
უნდა შეეჩვივნენ გარემოს და მის ცვლილებებს. ყველა საპიპიდპირო ქმედებებმა, რომლებიც
მიმდინარეობდა, თუ მიმდინარეობს ლოზუნგით „ადამანმა უნდა დაიმორჩილოს ბუნება“,
მიგვიყვანა ძალიან ბევრ კატასტროფებამდე.
10.3. მანქანური სწავლების მეთოდები. დღეს აშკარაა, რომ ბუნებრივი (ამ სიტყვის ქვეშ
პრაქტიკულად იგულისხმება ადამიანი) ინტელექტი არის ყველაზე მაღლი დონის და
ამიტომ, ცხადია, რომ მხოლოდ მას შეუძლია თავისი ცოდნის გადაცემა ხელოვნური
სისტემებისთვის, თუმცა ძალიან ბევრი მათგანი (მათ შორის ისეთი მაღალი ინტელექტის
მქონე მეცნიერი, როგორიც იყო სტივენ ჰოუკინგი), კატეგორიულად წინააღმდეგები არიან
ამის.
დასწავლა ნიშნავს, რომ სისტემა აუმჯობესებს თავის წარმოსგენას რაიმე კონკრეტულ
ამოცანაზე და მას შეუძლია იგივე ან მსგავსი ამოცანა გადაჭრას უფრო მარტივად. დასწავლა
აგრეთვე ცვლის დასწავლად სისტემას, ეს ეჭვს გარეშეა, მაგრამ ყოველთვის არაა ადვილად
გასაგები რას გამოწვევს ეს ცლილებები სისტემაში.
მანქანური სწავლება წარმოადგენს კვლევების ფართო არეს, რომელიც შეიცავს მრავალ
პრობლემას და მათი გადაჭრის ალგორითმებს. ეს ალგორითმები განსხვავდებიან თავიაანთი
ამოცანებით, საწყისი მონაცემებით, სწავლების სტრატეგიებით, თუ ცოდნის წარმოდგენის
მეთოდებით. მაგრამ ყველა მათგანის მთავარ მიზანს წარმოადგენს შესაძლო ცნებების
სივრცეში საჭირო ინფორმაციის მოძებნა და მისი კორექტული განზოგადება.
ყველაზე პირველი იყო დასწავლის ეგრეთწოდებული ემერჯენსული მეთოდები, ანუ
ბიოლოგიური მეთოდები, კერძოდ კი დასწავლა ნეირონული ქსელების და გენეტიკური
ალგორითმების საშუალებით. ამ მეთოდებს ჩვენ განვიხილავთ შემდეგ ლექციებზე. ეხლა კი
განვიხილავთ დასწავლის სხვა მეთოდებს.
10.4.სიმბოლური სწავლება.დასწავლის ალგორითმები შეიძლება დავახასიათოთ რამდენიმე
თვალსაზრისით. ერთერთი პირველი და მნიშვენლოვანია მონაცემები და სწავლების
მიზანი. მაგალითად, ცნებათა დასწავლის ალგორითმები თავის მუშაობას იწყებენ მოცემული
ცნების შესაბამისი დადებითი (და ასევე ხშირად უარყოფითი)მაგალითების მოგროვებით.
ასეთი იყო წინა ლექციაზე გნხილული კონცეპტების გამოთვლის ალგორითმიც. დასწავლამ
უნდა უზრუნველყოს ისეთი ზოგადი განსაზღვრის ჩამოყალიბება, რომელიც მომავალში
დასწავლის ობიექტსმისცემს საშუალებას გამოიცნოს ამ ცნების შესაბამისი მაგალითები.
ინფორმაციის
ოპერაციები ცნებათა
წარმოდგენის სივრცე
ენა
ევრისტიკული
მონაცემები და
დასწავლის ძებნა
ამოცანის მიზნები

შეძენილი
ცოდნა

სურ. 10.1 დასწავლის ზოგადი მოდელი.

განასხვავებით ცნებების დასწვლის ალგორითმისგან, ახსნაზე დაფუძნებული


სწავლებაგულისხმობს, რომუნდა იქნას მოპოვებული ზოგადი ცოდნა სწვალების
თითოეული მაგალითიდან. ამავე დროს საჭიროა არსებობდეს ცოდნის საწყისი ბაზა,
დასასწავლი განსაზღვრების კონკრეტული დონის შესახებ.
კონცეპტუალური კლასტერიზაციის ალგორითმები ახდენენ ინდუქციის პრობლემის
კიდევ ერთი ვარიანტის ილუსტრირებას. ისინი იწყებენ მუშაობას არაკლასიფიცირებული
ეგზეპლიარების ნაკრებთან. მათი ამოცანაა ამ მაგალითების ისეთი კატეგორიზაცია,
რომელსაც რაიმე აზრი აქვს დზასწავლადი სისტემისთვის.
ჩამოვთვალოთ დასწავლის ალგორითმების მახასიათებლები:
 ალგორითმის მიზანი. ალგორითმის მიზანი შეიძლება იყოს ცნება (კონცეპტი), ან
ობიექტთა კლასების ზოგადი აღწერა.
 მონაცემთა თვისებები და ხარისხი. მონაცემებიშეიძლება მოდიოდეს გარემოდან, ან
გამომუშავდებოდეს თითონ პროგრამის მიერ. ისინი შეიძლება იყოს საიმედო ან
შეუმოწმებელი, სტრუქტურირებული ან არაორგანიზებული, მონაცემები შეიძლება
შეიცავდნენ როგორც დადებით, ასევე უარყოფით ეგზმპლიარებს.
10.5. მიღებული ცოდნის წარმოდგენა.მანქანური დასწავლის ალგორითმებმა შეიძლება
გამოიყენონ ციდნის წარმოდგენის ნებისმიერი ენა, მათ შორის ისინიც, რომლებიც ჩვენს
ლქციათა კურსშია განხილული. მაგალითად, ობიექტთა კლასიფიკაციის პროგრამები
შეიძლება იყენებდნენ პრედიკატთა აღრიცხვას, ფრეიმებს, ნეირონულ ქსელებს,
კონცეპტუალურ გრაფებს და ა.შ.
იმისათვის, რომ ჩამოვაყალიბოთ ცნების დასწავლის პრობლემა, ცნების
ეგზემპლიარები შეგვიძლია წარმოვადგინოთ ლოგიკური გამოსახულებების სახით:
1. ზომა (ობ.1, პატარა)  ფერი(ობ.1, წითელი)  ფორმა(ობ.1, მრგვალი)
2. ზომა (ობ.2, დიდი)  ფერი(ობ.2, წითელი)  ფორმა(ობ.2, მრგვალი)
მაშინ ცნებას „ბურთი“ ექნება შემდეგი სახე:
ზომა (x,y)  ფერი(x, წითელი)  ფორმა(x, მრგვალი).
10.6. ცნებათა სივრცე.პრეზენტაციის ენა ზემოთ აღწერილ ოპერაციებთან ერთად,
განსაზღვრავს პოტენციური ცნებების განსაზღვრის სივრცეს. სტუდენტმა (პროგრამამ) უნდა

84
ჩაატაროს ამ სივრცის ჩხრეკა, რათა იპოვოს სასურველი კონცეპტი. კონცეპტუალური
სივრცის სირთულე ძირითადად განსაზღვრავს სასწავლო ამოცანის სირთულეს.
ჩავთვალოთ, რომ დასწავლად სისტემას უკვეგააჩნია ეგზემპლიარების ნაკრები (თუ ეს
ასე არაა, ჩვენ უნდა შევასრულთ ეს სამუშაო). ამის შემდეგ სისტემამ ან უნდა მოახდინოს მათი
განზოგადება, ან შექმნას ევრისტიკული წესი მათ გამოსარჩევად, ან ააგოს ფრეიმი, ან რაღაც
სხვა რაიმე ფორმით ჩამოაყალიბოს ეს კონცეპტი.ამ ამოცანის გადასაწყვეტად მას სჭირდება
წარმოდგენებით ოპერირება რათა ააგოს ცნება. ცნებათა სივრცესი ტიპურ ოპერაციებს
მიეკუთვნება განზოგადება ან სიმბოლური გამოსახულებების სპეციალიზაცია. ჩვენს მიერ
განხილულ ცნების ფორმირების მაგალითში დასწვლადმა სისტემამ ცნების წარმოსადგენად
შეიძლება გამოიყენოს კონკრეტული მონაცემების ცვლადებით შეცვლის მიდგომა.
დავუბრუნდეთ პირველ გამოსახულებას:
ზომა (ობ.1, პატარა)  ფერი(ობ.1, წითელი)  ფორმა(ობ.1, მრგვალი)
თუ შევცვლით ერთ მუდმივს ცვლადით, მივიღებთ შემდეგ განზოგადოeებებს:
ზომა (ობ.1, X)  ფერი(ობ.1, წითელი)  ფორმა(ობ.1, მრგვალი)
ზომა (ობ.1, პატარა)  ფერი(ობ.1, X)  ფორმა(ობ.1, მრგვალი)
ზომა (ობ.1, პატარა)  ფერი(ობ.1, წითელი)  ფორმა(ობ.1, X)
ზომა (ობ.1, X)  ფერი(ობ.1, X)  ფორმა(ობ.1, X)
დასწვლადმა სისტემებმა უნდა გაითვალისწინონ ძებნის მიმართულება და და
წესრიგი, და აგრეთვე ძებნის ეფექტურობისთვის გამოიყენონ არსებული დასასწავლი
მონაცემები და ევრისტიკები.
თუ კვლავ დავუბრუნდებით ჩვენს მაგალითს, აქ ალგორითმს შეუძლია ამოირჩიოს
ცნების კანდიდატად პირველი გამოსახულება და ჩასვას ის შემდეგ ეგზემპლიარებში.
მაგალითად, თუ სისტემას ექნებოდა მხოლოდ პირველი ეგზემპლიარი ზომა (ობ.1, პატარა) 
ფერი(ობ.1, წითელი)  ფორმა(ობ.1, მრგვალი), დასწავლადი სისტემა ამოირჩევდა მას ცნების
კანდიდატად. თუ ახლა ვაჩვენებთ მეორე ეგზემპლიარსზომა (ობ.2, დიდი)  ფერი(ობ.2,
წითელი)  ფორმა(ობ.2, მრგვალი), დასწავლადი სისტემა განაზოგადებს თავის კანდიდატს
მიიღები უფრო ზოგად კანდიდატს ზომა (,X,Y)  ფერი(X, წითელი)  ფორმა(X, მრგვალი).
ასე გააგრძელებს სისტემა, სანამ არ განიხილავს ყველა ეგზემპლიარს. ამასთან
შესაძლებელია როგორც დადებითი, ასევე უარყოფითი ეგზემპლიარების გამოყენება.
ვერსიების სივრცეში ძებნისას უნდა გამოიყენებოდეს სამიზნე ცნების როგორც
დადებითი, ასევე უარყოფითი მაგალითები. ცხადია, რომ შესაძლებელია მხოლოდ
პოზიტიური მაგალითების განზოგადება, მაგრამ უარყოფითი მაგალითებისაჭიროა
იმისთვის, რომ არ მოხდეს ზედმეტი განზოგადება.
10.7. განზოგადების ოპერაცია.განზოგადებისა და სპეციალიზაციისოპერაციები ყველაზე
ტიპური ოპერაციებია ცნებათა სივრცის განსასაზღვრად. მანქანურ დასწავლაში ძირითად
გამოიყენება განზოგადების შემდეგი ოპერაციები:
 კონკრეტული მნიშვნელობების შეცვლა ცვლადებით. მაგალითად ფერი (ბურთი,
წითელი)გარდაიქმნება ფერი (X, წითელი).
 პირობისგამორიცხვა კონუნქტიურ გამოსახულებაში. ჩვენი მაგალითისთვის,
გამოსახულება ფორმა (X, მრგვალი)  ზომა (X, პატარა)  ფერი(X,
წითელი)გარდაიქმნება ფორმა (X, მრგვალი)  ფერი(X, წითელი).
 გამოსახულებაში დიზუნქციის დამატება. მაგალითად, გამოსახულება ფორმა (X,
მრგვალი)  ზომა (X, პატარა)  ფერი(X, წითელი)გარდაიქმნება ფორმა (X, მრგვალი)
 ზომა (X, პატარა)  ფერი(X, წითელი)   ფერი(X, ლურჯი).
 თვისების შეცვლა მშობელი ობიექტით კლასთა იერარქიის შესაბამისად. თუ ობიექტი
primary_color (ძირითადი ფერი) წარმოადგენს სუპერკლასს თვისებისთვის წითელი,
მაშინ ფერი(X, წითელი)გარდაიქმნება ფერი(X, primary_color).
85
განზოგადების ოპერაცია შეიძლება აღვწეროთ სიმრავლეთა თეორიის ტერმინებშიც.
იდეალურ შემთხვევაში, დასწავლილი ცნება საკმარისად ზოგადი უნდა იყოს და
მოიცავდეს როგორც ყველა დადებით მაგალითს და ასევე სპეციფიკურსაც, რომ გამოირიცხოს
ყველა უარყოფითი მაგალითი. მაგრამ ერთი ცნებისგანზოგადება, რომელიც მოიცავს
მხოლოდ პოზიტიური შემთხვევების სრულ კომპლექტს, იქნება ობიექტი (X,Y,Z). ეს ცნება
აშკარადზედმეტად ზოგადია, რადგან ის უბრალოდ გვეუბნება, რომ ყველა ობიექტი
ეკუთვნის სამიზნე ცნებას. ზედმეტად განზოგადების თავიდან აცილების ერთ-ერთი გზაა
რაც შეიძლება ნაკლებად განვაზოგადოდ დადებით ეგზემპლიარები,მეორე კი- უარყოფითი
მაგალითების გამოყენებაა.
ევრისტიკური ძიება. სახელმძღვანელოები უნდა ემორჩილებოდნენ ძიების მიმართულებას
და რიგს და გამოიყენონ ხელმისაწვდომი სასწავლო მონაცემები და ევრისტიკები,
ეფექტურად მოძებნონ. "ბურთი" კონცეფციის სწავლის ჩვენს მაგალითში, სარწმუნო
ალგორითმს შეუძლია პირველი მაგალითი მიიღოს როგორც კანდიდატის კონცეფცია და
განზოგადოს იგი შემდეგი მაგალითების ჩათვლით. მაგალითად, ერთადერთი სასწავლო
მაგალითის ზომის გათვალისწინებით (obj1, მცირე)∧ ფერი (obj1, წითელი) ფორმა (obj1,
მრგვალი)
მოსწავლე ამ მაგალითს გახდის შესაფერის კონცეფციად; ეს კონცეფცია სწორად ახდენს
დანახულ ერთადერთ დადებით შემთხვევას.თუ ალგორითმში მოცემულია მეორე
დადებითი მაგალითიზომა (obj2, დიდი) ∧ ფერი (obj2, წითელი) ∧ ფორმა (obj2, მრგვალი),
პროგრამას შეუძლია განასაზღვროს კანდიდატის კონცეფცია ცვლადების კონსტანტებით
შეცვლის გზით. შედეგი არის უფრო ზოგადი კანდიდატის კონცეფცია, რომელიც უფრო
ახლოს არის ჩვენი სამიზნე ბურთის კონცეფციასთან.
ზომა (X, Y) ∧ ფერი (X, წითელი) ∧ ფორმა (X, მრგვალი)
10.8. განზოგადებისა და სპეციფიკაციის ოპერაციები.განზოგადებისა და სპეციალიზაციიის
ოპერაციები ყველაზე გავრცელებული სახეებია კონცეპტუალური სივრცის
განსაზღვრისთვის. ძირითადი განზოგადების ოპერაციები, რომლებიც გამოიყენება მანქანურ
სწავლებაში:
1. მუდმივების შეცვლა ცვლადით. მაგალითად: color(ball, red)  color(X, red).
2. პირობების მოხსნა კონიუნქტურული გამონათქვამიდან. მაგალითად: shape(X, round) ∧
size(X, small) ∧ color(X, red)  shape(X, round) ∧ color(X, red).
3. გამონათქვამში დიზუნქტივის დამატება. მაგალითად: shape(X,round)∧size(X,
small)∧color(X, red)  shape(X, round) ∧ size(X, small) ∧ (color(X, red) ∨ color(X, blue)).
4. იერარქიის კლასში თვისების მშობლით ჩანაცვლება. მაგალითად: თუ ჩვენ ვიცით,
რომprimary colorარის red-ის სუპერკლსი, მაშინ: color(X, red)  color(X, primary_color).
ჩვენ შეგვიძლია ვიფიქროთ განზოგადებაზე სიმრავლეთა თეორიის თვალსაზრისით:
დავუშვათ, P და Q იყოს წინადადებების ერთობლიობა, რომლებიც შესაბამისად შეესაბამება p
და q პრედიკატების აღრიცხვის გამონათქვამებს. გამოთქმა p უფრო ზოგადია, ვიდრე q, თუ P
⊇ Q. ზემოთ მოყვანილ მაგალითებში, ფერის შესატყვისი წინადადებების ერთობლიობა (X,
წითელი) შეიცავს ფერის შესატყვისი ნივთების ერთობლიობას (ბურთი, წითელი).
ანალოგიურადმაგალითში 2, ჩვენ შეგვიძლია ვიფიქროთ მრგვალი წითელი ობიექტების
ერთობლიობაზე, როგორც მრავალი პატარა წითელი მრგვალი ობიექტის სუპერკომპეტზე.
გაითვალისწინეთ, რომ უფრო ზოგადი ვიდრე დამოკიდებულება განსაზღვრავს ნაწილობრივ
რიგრიგობას ლოგიკურ წინადადებათა სივრცეში. ჩვენ ამას გამოხატავთ სიმბოლოთი "",
სადაც p ≥ q, ნიშნავს რომ p უფრო ზოგადია ვიდრე q. ეს შეკვეთა შეზღუდვის მძლავრი წყაროა
სასწავლო ალგორითმის მიერ შესრულებული ძიებისთვის.
შესაძლებელია ამ კავშირის გაფართოება დაფარვის ცნებით. თუ ცნება p უფო
ზოგადია, ვიდრე ცნება q, მაშინ შეგვიძლია ვთქვათ, რომ p ფარავს q-ს, ანუ p ფარავს q-ს მაშინ

86
და მხოლოდ მაშინ. როდესაც q (x) → positive (x), წარმოადგენს ლოგიკურ შედეგს p (x) →
positive (x). მაგალითად, ფერი (X, Y) ფარავს ფერი (ბურთი,Z), რომელიც თავის მხრივ ფარავს
ფერს (შარი,წითელი).

სურ.10.2. ცნებათა სივრცე.


ვერსიათა სივრცეში ძებნისათვის გამოიყენება სამიზნე კონცეფციის როგორც
დადებითი, ასევე უარყოფითი მაგალითები. მიუხედავად იმისა, რომ შესაძლებელია
მხოლოდ პოზიტიური მაგალითების განზოგადება, ნეგატიური მაგალითები
მნიშვნელოვანია ალგორითმის მიერ ზეგენერალიზაციის თავიდან ასაცილებლად. იდეალურ
შემთხვევაში, ნასწავლი კონცეფცია საკმარისად ზოგადი უნდა იყოს და მოიცავდეს ყველა
დადებით მაგალითს,მაგრამ ამავე დროს ასევეუნდაიყოს საკმარისად სპეციფიკური, რომ
გამოირიცხოს ყველა უარყოფითი მაგალითი.
ცნებათა სივრცეში (დიაგრამა 10.2) სივრცეში, ერთი ცნება, რომელიც მოიცავს მხოლოდ
პოზიტიური შემთხვევების ყველა კომპლექტს, არის უბრალოდ ობ.(X,Y,Z).ალბათ, ეს ცნება
ძალიან ზოგადია, რადგან იგი გულისხმობს, რომ ყველა ეზემპლიარი ეკუთვნის მიზნის
ცნებას. ზეგენერალიზაციის თავიდან აცილების ერთი გზაა რაც შეიძლება ნაკლები
განზოგადება პოზიტიური მაგალითების დასაფარავად; მეორე კი უარყოფითი მაგალითების
გამოყენება, რათა არ მივიღოთმეტისმეტად ზოგადი ცნება. ამ მონაკვეთის ალგორითმები
იყენებს ამ ორივე ტექნიკას.

კონცეფცია ინდუცირებული კონცეპტი ინდუცირებული


მხოლოდ დადებითი მაგალითებით.დადებითი და უარყოფითი მაგალითებით.

სურ.10.3

87
ჩვენ განვსაზღვრავთ სპეციფიკურ ძიებას ზოგადი ძიებისკენ, ჰიპოთეზის კომპლექტს
S, როგორც:

Begin
Initialize S to the first positive training instance;
N is the set of all negative instances seen so far;
For each positive instance p
Begin
For every s ∈S, if s does not match p, replace s with its most specific
generalization that matchs p;
Delete from S all hypotheses more general than some other hypothesis in S;
Delete from S all hypotheses that match a previously observed negative
instance in N;
End;

სურ. 10.4. სპეციფიკაციის ალგორითმი

სურ. 10.5.სპეციფიკური ზოგადისკენ ძებნა ვერსიათა სივრცეში დასასწავლი კონცეპტის


"ბურთი" დასასწავლად.

ინარჩუნებს კანდიდატის ცნების ორ კომპლექტს: G, მაქსიმალურად ზოგადი


კანდიდატის ცნებების ერთობლიობას და S, მაქსიმალურად სპეციფიკურ კანდიდატთა
ერთობლიობას. ალგორითმი სპეციალიზდება G და განზოგადებს S- სკენ, სანამ ისინი არ
გადადიან სამიზნე კონცეფციაზე. ალგორითმისაღწერა იხ.სურ.10.6)

88
Begin
Initialize G to be the most general concept in the space;
Initialize S to the first positive training instance;
For each new positive instance p
Begin
Delete all members of G that fail to match p;
For every s ∈ S, if s does not match p, replace s with its most specific
generalizations that match p;
Delete from S any hypothesis more general than some other hypothesis in S;
Delete from S any hypothesis more general than some hypothesis in G;
End;
For each new negative instance n
Begin
Delete all members of S that match n;
For each g ∈ G that matches n, replace g with its most general specializations
that do not match n;
Delete from G any hypothesis more specific than some other hypothesis in G;
Delete from G any hypothesis more specific than some hypothesis in S;
End;
If G = S and both are singletons, then the algorithm has found a single concept
that
is consistent with all the data and the algorithm halts;
If G and S become empty, then there is no concept that covers all
positive instancesand none of the negative instances;

სურ,10..6. ალგორითმის აღწერა

89
სურ.10.7.ვერსიათა სივრცის ზოგადიდან სპეციფიკურისკენ მიმართული ძებნა კონცეპტის
"ბურთი" დასასწავლად.

დიაგრამა 10.9 ასახავს კანდიდატის გამორიცხვის ალგორითმის ქცევას დიაგრამა 10.5-


ის ცნებათ სივრცეში ძებნისას. გაითვალისწინეთ, რომ სურათზე არ ჩანს ის ცნებები,
რომლებიც წარმოიშვა განზოგადების ან სპეციალიზაციის გზით, მაგრამ გამოირიცხება,
როგორც ზედმეტად ზოგადი ან ზედ,ეტად სპეციფიკური.
ძიების ორი მიმართულების ერთ ალგორითმში გაერთიანებას აქვს რამდენიმე
უპირატესობა. G და S ნაკრებები აჯამებს ინფორმაციას ნეგატიურ და პოზიტიურ დასასწავლ
მაგალითებში, შესაბამისად, აღარაა საჭირო ამ ეგზემპლიარების შენახვა. მაგალითად, S
განზოგადების შემდეგ პოზიტიური ინსტანციის დასაფარავად, ალგორითმი იყენებს G- ს
ცნებებს გამოსარიცხად S- ში, რომლებიც არ შეიცავს რაიმე უარყოფით ეგზემპლიარს.
რადგანაც G არის მაქსიმალურად ზოგადი ცნებების ერთობლიობა, რომლებიც არ
შეესაბამებიან დასწავლის არანაირ ნეგატიურ მაგალითებს, S– ის ნებისმიერი წევრი, უფრო
ზოგადი, ვიდრე G– ს რომელიმე წევრი, უნდა შეესაბამებოდეს რაიმე უარყოფით
ეგზემპლიარს. ზუსტად ასევე, ვინაიდან S მაქსიმალურად სპეციფიკური განზოგადებების
ერთობლიობაა, რომელიც მოიცავს ყველა დადებით მაგალითს, G– ს ნებისმიერი ახალი
წევრი, უფრო კონკრეტული, ვიდრე S– ს წევრი, არ უნდა შეიცავდეს რაიმე დადებით
მაგალითს და ასევე შეიძლება გამოირიცხოს.

სურ.10.8. კანდიდატის გამორიცხვისალგორითმი


კონცეპტის„წითელი ბურთის“დასწავლისას.

90
სურ. 10.9 G და S საზღვრებისთანხვედრა კანდიდატის გამორიცხვის ალგორითმის მიერ.

შინაგანი წრე მოიცავს ბევრ ცნობილ დადებით ეგზემპლიარებს, რომლებსაც მოიცავნ


კონცეპტების S-ში. უკიდურესი წრე მოიცავს G–თი დაფარულ შემთხვევებს; ამ წრის გარეთ
ნებისმიერი ნიმუში უარყოფითია. სურათის დაჩრდილული ნაწილი შეიცავს მიზნის
კონცეპტს, იმ კონცეპტებთან ერთად, რომლებიც შეიძლება ძალიან ზოგადი ან სპეციფიკური
იყოს. ნეგატიური მაგალითების გამორიცხვის მიზნით, ძებნა "კუმშავსს" ყველაზე შორეულ
კონცეპტს. ის "აფართოებს" შინაგან კონცეპტს, ახალი პოზიტიური მაგალითების ჩათვლით.
საბოლოო ჯამში, ორი კომპლექტი გადადის სამიზნე კონცეფციაზე. ამ გზით, კანდიდატის
ლიკვიდაციამ შეიძლება დაადგინოს, როდესაც მან იპოვა ერთიანი შეთანხმებული სამიზნე
კონცეპტი. როდესაც ორივე G და S ერთ კონცეპტზე გადადიან, ალგორითმი შეიძლება
გაჩერდეს. თუ G და S ცარიელია, მაშინ არ არსებობს კონცეპტი, რომელიც მოიცავს ყველა
პოზიტიურ შემთხვევას და არც ერთ უარყოფით შემთხვევას. ეს შეიძლება მოხდეს, თუ
სავარჯიშო მონაცემებიშეუთავსებელია ან თუ მიზნის კონცეპტი ვერ გამოიხატება
პრეზენტაციის ენაზე.
კანდიდატების გამორიცხვის ალგორითმის საინტერესო ასპექტია მისი
თანდათანობითი ხასიათი.
კანდიდატის აღმოფხვრის საინტერესო ასპექტი არის მისი ინკრემენტალური
დამატებითი ხასიათი. ალგორითმი იღებს სასწავლო ეგზემპლიარებს სათითაოდ და
თითოეული მაგალითის შემდეგ ქმნის გამოსდეგ, თუმცა შესაძლოა არასრულყოფილ
განზოგადებას.

სავარჯიშოები:

1. სურათზე 10.8 რომელიც ასახავს კანდიდატის გამორიცხვის ალგორითმის მუშაობას


კონცეპტის „წითელი ბურთი“ გამოთვალს, არაა ნაჩვენები კონცეპტები, რომლებიც იყო
გენერირებული და შემდეგ გადაყრილი ან ზედმეტად განზოგადების ან
კონკრეტულობი გამო, ან შემდეგ ეს ცნებები „ჩაყლაპეს“ სხვა ცნებებმა. გაიმეორეთ ეს
პროცედურა, ასახეთ ასეთი ცნებები და განმარტეთ მათი გამორიცხვის მიზეზები.

91
ლექცია 11.
ხელოვნური ნეირონი. ერთშრიანი ნეირონული ქსელები.
12.1. ნეირონულიქსელებისარსი. როგორც უკვე ავღნიშნეთ პირველ ლექციაზე,1943 წელს
უ.მაკ-კალოკმა და უ.პიტსმა გამოაქვეყნეს შრომა, სადაც დაამტკიცეს, რომ შესაძლებელია
ადამიანის ნეირონული უჯრედის მოდელირება ტექნიკური სისტემით (კომპიუტერების
შექმნის შემდეგ კი კომპიუტერითაც). ასეთი ნეირონების საშუალებით შექმნა 1958 წელს ფ.
როზენბლატმა თავისი ცნობილი პერცეპტრონი და საფუძველი დაუდო ხელოვნური
ინეტელექტის ერთერთ მნიშვნელოვან მიმართულებას. დღეს ნეირონული ქსელები
გამოიყენება როგორც ხელოვნური ინტელექტის ყველა მიმართულებაში, და ასევე
პრაქტიკულ ამოცანების გადასაჭრელადაც.
11.2. ბიოლოგიური პროტოტიპი.განვიხილოთ, რა პრინციპრბით მოქმედებს ადამიანის და
ზოგადად ცოცხალი არსებების ბიოლოგიური ნეირონული უჯრედი (იხ. სურ.1.1). ისევე,
როგორც სხვა უჯრედები, ნეირონიც შედგება: ბირთვისა და სხეულისაგან, რომლებიც
უზრუნველყოფენ ნეირონის სიცოცხლისუნარიანოიბას. მაგრამ ჩვნთვის უფრო საინეტრესოა,
რომ ნეირონს გააჩნია პატარა დაბოლოებები, რომლებსაც უწოდებენ დენტრიტებს და
რომლებიც უზრუნველყოფენ კავშირებს სხვა ნეირონებთან, ამასთან დენტრიტების
საშუალებით ნეირონში შემოდის სგნალები გარემოდან ან სხვა ნეირონისგან.

სურ. 1.1. ნეირონის უჯრედი.

ნეირონს გააჩნია ერთი დაბოლოება (აქსონი), რომლის ზომა იცვლება რამოდენიმე


მილიმეტრიდან მეტრამდე (და შეიძლება იყოს უფრო გრძელიც). აქსონი გამოიყენება
ინფორმაციის გადასაცემად სხვა ნეირონებისათვის. ამისთვის აქსონის ბოლო იტოტება
წვრილ დაბოლოებებად და უერთდება სხვა ნეირონის დენტრიტებს. ასეთი კავშირების
დამყარება ხდება სინაპსების საშუალებით. ნეირონის მოქმედების პრინციპი კი ასეთია: სხვა
ნეირონებიდან მიღებული იმპულსები იკრიბება და თუ მათი ჯამი გადააჭარბებს ნეირონის
აღგზნების ზღურბლს, ის იწყებს ასეთივე იმპულსების გადაცემას აქსონის საშუალებით იმ
ნეირონებზე, რომლებთანაც ის დაკავშირებულია. ამასთან, გადაცემული (ისევე, როგორც
მიღებული) სიგნალის ამპლიტუდა და სიხშირე ყოველთვის ერთი და იგივეა. პრაქტიკულად
ნეირონი მოქმედებს პრინციპით, ან არის სიგნალი (შევუსაბამოთ ამას - 1 და ან არ არის
სიგნალი (შევუსაბამოთ ამ შემთხვევას - 0). ცხადია ნეირონული უჯრედის ასეთ ქმედებას
სჭირდება თავისი ბიოქიმიური და ფიზიკური პროცესები, მაგრამ ეს არ წარმოადგენს ჩვენი
განხილვის საგანს. ჩვენთვის მთავარია მოქმედების პრინციპი.
11.2. ხელოვნური ნეირონი.სწორედ ეს პრინციპი გაიმეორეს უ. პიტსმა და უ . მაკ-კალოკმა
მათ მიერ შექმნილი ხელოვნური ნეირონში და შემდეგ აჩვენს, რომ ასეთი ნეირონებით
შიძლება ნებისმიერი ლოგიკური ფუნქციის განხორციელება და მათი საშუალებით თითქმის
ყველა ლოგიკური გამოთვლების შესრულება.

სურ. 11.2. ხელოვნური ნეირონი.

შემოვიტანოთ ძირთადი ტერმინები, რომლებიც გამოიყენება ნეირონულ ქსელებში.


ნეირონული ქსელების ძირითადი ელემენტია ხელოვნური ნეირონი, რომლის სქემაც
მოცემულია სურ. 10.1. მას გააჩნია შემდეგი სტრუქტურა:
 შესასვლელისიგნალებიxi - ესაა მონაცემები (სიგნალები), რომლებიც მიეწოდება
ნეირონს გარე სამყაროდან ან სხვა ნეირონებიდან. შესასვლელის დიაპაზონი
სხვადსხვა მოდელებისათვის შეიძლება იყოს განსხვავებული. ძირითადად ეს
სიგნალები არიან დისკრეტული და ღებულობენ მნიშვნელობებს { 0,1 },{ 1,1
}სიმრავლეებიდან ან იშვიათად R-დან.
 წონითიკოეფიციენტებიwi ეს კოეფიციენტები აიღება ნამდვილ რიცხვთა
სიმრავლიდან და განსაზღვრავენ კავშირის ძალას ნეირონებს შორის.
 ნეირონისაქტივაციისდონე. ესაა სიდიდე, რომელიც განსაზღვრება
ნეირონშიშემავალი wi xiსიგნალების შეწონილი ჯამით (ვექტორულად (WX ) .
 ზღურბლოვანიფუნქციაf . ამ ფუნქციის დანიშნულებაა აქტივაციის დონის
რაიმეზღურბლთან შედარების გზით გამოთვალოს გამოსასვლელი სიგნალის
მნიშვნელობა.
ზღურბლოვანი ფუნქცია განსაზღვრავს აქტიურია თუ არა ნეირონი.
12.2. სხვადასხვატიპისნეირონულიქსელები. იმისათვის, რომ ნეირონების საშუალებით
შევასრულოთ სერიოზული გამოთვლები, საჭიროა მათი გაერთიანება ქსელებში. ყველაზე
მარტივ ქსელს წარმოადგენს ნეირონების ჯგუფი, რომელიც გარეთიანებულია შრეში (იხ.
სურ. 11.2). ამ სურათზე ნეირონებს წარმოადგენენ კვადრატები, მათში მითითებული აჯამვის
ნიშნით, ხოლო წრეები წარმოადგენენ
მხოლოდ სიგნალების გამანაწილებლებს. ისინი არ ასრულებენ გამოთვლის არანაირ წონით
ფუნქციას და ამიტომ მათ არ უწოდებენ შრეს. თითოეული შესასვლელი სიგნალი თავისი
წონით უკავშირდება ყველა ნეირონს. ეს წონები წარმოადგენენ წონების W მატრიცის
ელემენტებს, რომელსაც აქვს m სტრიქონი და n სვეტი, სადაც m არის შესასვლელების
რაოდენობა, ხოლო n – კი ნეირონების რიცხვი. N გამოსასვლელი, რომლის კომპონენტებიცაა
ნეირონების OUT გამოსასვლელები, გამოითვლება როგორც WX =N მატრიცული ნამრავლი.
შესაძლებელია უფრო რთული, მრავალშრიანი ნეირონული ქსელების შედგენაც,
სადაც გვაქვს ორი, სამი და უფრო მეტი შრეები. აღმოჩნდა, რომ მრავალშრიან ქსელებს
გააჩნით გააჩნიათ უფრო მეტი საშუალებები, ვიდრე ერთშრიან ქსელებს. აქ ყველაზე
მთავარია, რომ ნებისმიერი კონფიგუაციის ქსელის შექმნისას დაცული უნდა იყოს
შრისებური ორგანიზაცია, რაც ახდენს ადამიანის თავის ტვინის სხვადასხვა ნაწილების
93
შრისებურ სტრუქტურების მოდელირებას. მრავალშრიან ქსელებში ერთი შრის
გამოსასვლელები წარმოადგენენ მეორე შრის შესასვლელებს და თუ გვინდა, რომ ასეთ ქსელს
გააჩნდეს უფრო მეტი გამოთვლების უნარი, საჭიროა რომ გამააქტივირებელი ფუნქცია იყოს
არაწრფივი, რადგანაც, თუ ეს ფუნქცია იქნება წრფივი, მაშინ მეორე შრის გამოსასვლელზე
ჩვენ მივიღებთ სიგნალს
OUT= ( XW 1 )  W 2 =X (W 1 W 2 )
ცხადია, რომ ასეთივე სიგნალის მიღება შეგვეძლო ერთშრიანი ქსელით, რომლის
კოეფიციენტების მატრიცაც იქნებოდა ორი მატრიცის ნამრავლი.
12.3. ხელოვნურინეირონულიქსელებისსწავლება. ყველაზე საინტერესო თვისება, რაც
აღმოაჩნდათ ხელოვნურ ნეირონულ ქსელებს, არის მათი დასწავლის უნარი. მათი
დასწავლის პროცესი ისე ძალიან წააგავს ადამიანის ინტელექტუალური განვითარების
პროცესს, რომ ერთი შეხედვით შეიძლება მოგვეჩვენოს, რომ ჩვენ მართლაც ღრმად გვესმის ეს
პროცესები, მაგრამ უნდა აღვნიშნოთ, რომ ხელოვნური ნეირონული ქსელების დასწავლის
უნარი მაინც არის შეზღუდული და ჯერჯერობით უცნობია, ანალოგიურია თუ არა ეს
პროცესები თავის ტვინში მიმდინარე პროცესებისა. დასწავლის პროცესის ქვეშ ჩვენ გვესმის
შემდეგი: მივაღწიოთ იმას, რომ შესასვლელი სიგნალების რაიმე სიმრავლისათვის ქსელი
გამოსასვლელზე იძლეოდეს სასურველ (ან თუნდაც ამ სიმრავლისათვის შესაბამის)
სიგნალებს. ყოველი შესასვლელი და გამოსასვლელი სიმრავლე განიხილება როგორც
ვექტორი. დასწავლის პროცესი ხორციელდება შესასვლელი ვექტორების მიმდევრობითი
შეყვანით ქსელში. ამასთან ერთდროულად ხდება გარკვეული პროცედურის თანახმად
წონების შერჩევა ისე, რომ გამოსასვლელზე მივიღოთ სასურველი ვექტორი. დასწავლის
პროცესში წონები თანდათანობით ღებულობენ ისეთ მნიშვნელობებს, რომ ყოველი
შესასვლელი ვექტორი გამოიმუშავებს თავის გამოსასვლელ ვექტორს. ამასთან, დასწავლის
პროცესი შეიძლება ხორციელდებოდეს მასწავლებლის საშუალებით ან მასწავლებლის
გარეშე.
დასწავლა მასწავლებლის საშუალებით გულისხმობს, რომ თითოეული შესასვლელი
ვექტორისათვის არსებობს შესაბამისი მიზნის ვექტორი, რომელიც გვინდა რომ მივიღოთ
გამოსასვლელზე. ასეთ წყვილს ეწოდება დასწავლადი წყვილი. როგორც წესი, ქსელი
სწავლობს ასეთი წყვილების სასრულო სიმრავლის საშუალებით. ქსელს შესასვლელზე
მიეწოდება შესასვლელი ვექტორი, გამოითვლება გამოსასვლელი ვექტორი და ხდება მისი
შედარება მიზნის ვექტორთან. განსხვავება (რაც წარმოადგენს შეცდომას), უკუკავშირის
საშუალებით მიეწოდება ქსელს და ხდება გარკვეული ალგორითმის საშუალებით წონების
შეცვლა ისე, რომ მოხდეს შეცდომების მინიმიზაცია. ეს პროცედურა ხორციელდება
თითოეული დასწავლადი წყვილისათვის მანამდის, სანამ არ მიიღწევა დასაშვები დონე
შეცდომებისა მთელი დასასწავლი სიმრავლისათვის. მიუხედავად იმისა, რომ დასწავლის
ასეთი პრინციპი საშუალებას იძლევა გამოვიყენოთ ნეირონული ქსელები მრავალი
პრაქტიკული ამოცანების გადასაჭრელად, მაინც ითვლება, რომ ასეთი მიდგომა არასწორია,
რადგანაც შეუძლებელია წარმოვიდგინოთ, რომ დასწავლის ასეთი მექანიზმი არსებობდეს
ადამიანის თავის ტვინში. დასწავლა მასწავლებლის გარეშე ალბათ იქნებოდა უფრო კარგი
მოდელი თავის ტვინში მიმდინარე პროცესების აღსაწერად. ასეთი დასწავლის დროს საჭირო
აღარ არის მიზნის ვექტორი და დასწავლა ხდება მხოლოდ შესასვლელი ვექტორების
საშუალებით.
ამასთან დასწავლის მიზანია გადაეწყოს წონები ისე, რომ ორი, საკმარისად ახლოს
მდგომი შესასვლელი ვექტორისათვის გამოსავლელი ვექტორი იყოს ერთი და იგივე.
დასწავლის პროცესი ამ შემთხვევაში გამოყოფს დასასწავლი სიმრავლის
სტატისტიკურმახასიათებლებს და აჯგუფებს მსგავს ვექტორებს ერთ კლასში. მოცემული
კლასის ვექტორის ვექტორის მიწოდება შესასვლელზე მოგვცემს გარკვეულ ვექტორს

94
გამოსასვლეზე, მაგრამ სანამ არ დამთავრდება დასწავლა, შეუძლებელია ვიცოდეთ, რა სახის
იქნება ეს ვექტორი.
11.4. ერთშრიანი პერცეპტრონი. პირველი ნეირონული ქსელი, რომელსაც შეეძლოაღქმა
(პერცეპცია) და გარკვეული რეაქციის ფორმირება აღქმაზე იყო როზენბლატის პერცეპტრონი.
ავტორი თვლიდა რომ ეს იყო თავისტვინის მუშაობის მოდელი. ფ. როზენბლატი ამ მოდელს,
რომელიც შეიქმნაკორნელის საავიაციო ლაბორატორიაში MARK-1 სახელით, უწოდებდა
სამშრიან პერცეპტრონს, მაგრამ დღევანდელი ტერმინოლოგიით ის წარმოადგენს ერთშრიან
ნეირონულ ქსელს. პერცეპტრონის შემავალი ცვლადები ( xi )ღებულობენ მხოლოდ ორ
მნიშვნელობას 0 ან 1, ხოლო წონები – მნიშვნელობებს ნამდვილ რიცხვთა სიმრავლიდან.
აქტივაციის დონე გამოითვლებაროგორც შემავალი მონაცემების შეწონილი ჯამი Σ wi xi .
პერცეპტრონის გამომავალი მნიშვნელობა გამოითვლება მკაცრი ზღურბლური
ფუნქციისსაშუალებით: თუ აქტივაციის დონე მეტია ან ტოლი ზღურბლურ მნიშვნელობაზე,
პერცეპტრონის გამოსასვლელი ტოლია 1-ს, წინააღმდეგ შემთხვევაში -1-ს. ამგვარად
პერცეპტრონის გამომავალი მნიშვნელობები გამოითვლება შემდეგნაირად: XW=1, თუ wi xi t
Σ ³ და XW= -1, თუ wi xi t Σ <. პერცეპტრონის წონების რეგულირებისთვის
რეგულირებისათვის გამოიყენება სწავლების მარტივი ალგორითმი მასწავლებლით, ანუ
პერცეპტრონს შესასვლელზე მიეწოდება დასწავლადი წყვილის პირველი ელემენტი,
პერცეპტრონი გამოთვლის გამოსასვლელ ვექტორს და ამის შემდეგ მას უჩვენებენ თუ რა
შედეგი უნდა მიეღო. პერცეპტრონის წონებს ცვლიან ისეთნაირად, რომ შემცირდეს
შეცდომები მის გამოსასვლელზე. ამ დროს გამოიყენება შემდეგი წესი: ვთქვათ c არის
სწავლების სიჩქარის მუდმივი კოეფიციენტი, ხოლო d – გამოსასვლელის მოსალოდნელი
მნიშვნელობა. შემავალი ვექტორის i -ური კომპონენტის წონითი კოეფიციენტის აგება
სრულდებაშემდეგი ფორმულით:სადაც (Σ ) sign xiwi არის პერცეპტრონის გამომავალი
მნიშვნელობა, რომელიც ტოლია +1, ან -1. სხვაობა სასურველ და რეალურ გამომავალ
მნიშვნელობებს შორის შეიძლება იყოს 0, 2 ან -2. შესაბამისად შემავალივექტორის ყოველი
კომპონენტებისათვის სრულდება ასეთი მოქმედება:
თუ სასურველი და რეალური გამოსასვლელი ვექტორები ერთმანეთსემთხვევა, წონები არ
იცვლება;
თუ რეალური გამოსასვლელი ვექტორის მნიშვნელობაა -1, ხოლოსასურველის კი 1, მაშინ i -
ური შესასვლელის წონითი კოეფიციენტიიზრდება 2cxi -ით;
თუ რეალური გამოსასვლელი ვექტორის მნიშვნელობაა 1, ხოლო სასურველის კი -1, მაშინ i
-ური შესასვლელის წონითი კოეფიციენტიმცირდება 2cxi -ით;
დასწავლის ამ მეთოდს უწოდებენ დელტა წესს.
როგორც უკვე ვნახეთ, ქსელის შემავალი მონაცემები წარმოადგენენnგანზომილებიან
ვექტორს და განსაზღვრავენ n განზომილებიან სივრცეს,ამიტომ კლასიფიკაციის სწავლების
ამოცანა დაიყვანება ამ სივრცეში სხვადასხვა კლასის წერტილების ჰიპერსიბრტყეების
საშუალებით რაიმე ჯგუფებად განცალკავების ამოცანაზე.ფ. როზენბლატმა დაამტკიცა
თეორემა პერცეპტრონის დასწავლადობის შესახებ, რომლის თანახმადაც პერცეპტრონს
შეუძლია ისწავლოს ყველაფერი, რისი წარმოდგენაც მას შეუძლია. ამ დამტკიცების ქვეშ
იგულისხმება, რომ დასწავლის პროცესი არის სასრულო. აქ მთავარია გავარჩიოთთუ რა
განსხვავებაა წარმოდგენასა და დასწავლას შორის. წარმოდგენისცნების ქვეშ იგულისხმება
პერცეპტონის უნარი მოახდინოს გარკვეულიფუნქციის მოდელირება, დასწავლა კი ნიშნავს
ქსელის წონების რეგულირების ისეთი სისტემატური პროცედურის არსებობას, რომელიც
უზრუნველყოფს ამ ფუნქციის რეალიზაციას.
10.5. რა არ შეუძლია ერთშრიან პერცეპტრონს. ფ. როზენბლატმა დაამტკიცა,რომ
პერცეპტრონს შეუძლია დაისწავლოს ყველაფერი, რისი წარმოადგენაცშესაძლებელია
პერცეპტრონში. სამწუხაროდ, მოგვიანებით მ. მისკმა და ს.პეიპერტმა აჩვენეს, რომ არსებობს
95
ძალიან ბევრი მარტივი ფუნქცია, რომლის წარმოდგენაც პერცეპტრონში შეუძლებელია,
მაგალითად, ისეთი მარტივი ფუნქცია, როგორიცაა „გამომრიცხავი ან“, ანუ XOR ფუნქცია.
ამფუნქციას გააჩნია ორი შესასვლელი და ერთი გამოსასვლელი. ამასთან ესფუნქცია
ღებულობს მნიშვნელობას ერთს, მხოლოდ მაშინ, როდესაც შესასვლელი მნიშვნელობები
ღებულობენ სხვადასხვა მნიშვნელობებს.განვიხილოთ პერცეპტრონი ორი, x1 და x2
შესასვლელით, ორიწონითი კოეფიციენტით w1 და w2 და ზღურბლით t . პერცეპტრონის
მუშაობის პრინციპის თანახმად, ჩვენ მივიღებთ შემდეგ უტოლობებს:
w1  1  w2  1  t ჭეშმარიტობის ცხრილის პირველი სტრიქონი
w1  1  0  t ჭეშმარიტობის ცხრილის მეორე სტრიქონი
0  w 2  1  t ჭეშმარიტობის ცხრილის მესამე სტრიქონი
0  0  t ჭეშმარიტობის ცხრილის ბოლო სტრიქონი
ბოლო უტოლობიდან გამოდის, რომ ამ პერცეპტრონის ზღურბლი დადებითია,
მაშინ უტოლობათა ამ სისტემას არ ექნება ამონახსენი, რადგანაც პირველი, მეორე და
მესამე უტოლობები მოდიან წინააღმდეგობაში. ეს აიხსნება იმით, რომ პერცეპტრონმა
მოცემული წერტილების სიმრავლე {(0,0),(0,1),(1,0),(11)} უნდა გაყოს ორ კლასად, {(0,0),
(1,1)} და {(0,1), (1,0} . როგორც სურ. 10.3-დან ჩანს, არ არსებობს წრფივი ფუნქცია,
რომელიც ამას მოახერხებს.

სურ. 11.3. „გამომრიცხავი ან_-ის პრობლემა, სიბრტყეზე შეუძლებელია ისეთი წრფის


გატარება, რომელიც ერთმანეთისგან გაყოფს შავ და თეთრ წერტილებს.

სავარჯიშოები:

1. რასწარმოადგენს
ხელოვნურინეირონიდარაფუნქციებისგანხორციელებაშეუძლიამას?
2.
განმარტეთტერმინები:შესასვლელისიგნალები,წონითიკოეფიციენტი,ნეირონისაქ
ტივაციისდონე,ზღურბლოვანიფუნქცია.
3. განმარტეთ, როგორსისტემასეწოდებაერთშრიანინეირონულიქსელი?
4. რაგანსაკუთრებულითვისებააღმოაჩნდათნეირონულქსელებს?
5. რასნიშნავსდასწავლამასწავლებლით?მასწავლებლისგარეშე?
6. ჩამოაყალიბეთთქვენისიტყვებითსახეთაკლასიფიკაციისამოცანა.
7. შეადგინეთნეირონულიქსელი
(ერთშრიანი),რომელიცშეასრულებსმარტივლოგიკურფუნქციებს.

96
97
ლექცია 12.
პერცეპტრონის გამოყენება ობიექტთა კლასიფიკაციის ამოცანებისთვის.

12.1. კლასიფიკაციის ამოცანა.სახეთა კლასიფიკაციის ამოცანა უმარტივესი


შემთხვევისათვის შეიძლებააღვწეროთ შემდეგნაირად: დავუშვათ, მოცემული გვაქვს
ობიექტების სიმრავლე, რომელიც გვინდა გავყოთ ორ კლასად. მაგალითად, გვინდა
განვასხვაოთ ერთმანეთისაგან სამკუთხედები და ოთხკუთხედები. იმისათვის,რომ
შესაძლებელი იყოს ნეირონულ ქსელს (პერცეპტრონს) ვასწავლოთ ამორი კლასის
ერთმანეთისაგან გარჩევა, პირველ რიგში საჭიროა გვქონდესშემფასებელი ფუნქცია,
რომელიც მოგვცემს საშუალებას მივაკუთვნოთ ესობიექტები ამა თუ იმ კლასს.
კლასიფიკატორის მიერ გამოვლენილი მონაცემთა ყოველი ჯგუფი შეიძლება
წარმოდგენილი იყოს რაიმე არეს საშუალებით მრავალგანზომილებიან სივრცეში. ყოველ
Ri კლასს შეესაბამება ამარესთან კუთვნილების ხარისხის განმსაზღვრელი g i
დისკრიმინანტულიფუნქცია. ყველა ასეთ g i დისკრიმინანტულ ფუნქციებს შორის
მაქსიმალური მნიშვნელობა Ri არესათვის აქვს ისეთ g i ფუნქციას,
რომლისთვისაცსრულდება პირობა:
gi ( x )  g j ( x ) .
ყოველი 1 <j <n . ყველაზე მარტივ შემთხვევაში ამ ფუნქციის მნიშვნელობები
შეიძლება იყოს {-1,1} სიმრავლე, ანუ ობიექტი ეკუთვნის მოცემულსიმრავლეს (1) და
ობიექტი არ ეკუთვის მოცემულ სიმრავლეს (-1). უფრომნიშვნელოვანია შემთხვევაა,
როდესაც დისკრიმინანტული ფუნქცია წარმოადგენს მიკუთვნების შეფასებას არეს რაიმე
ცენტრალური წერტილიდანმანძილის საფუძველზე. ასეთ შემთხვევაში კლასიფიკაციას
უწოდებენ კლასიფიკაციას მინიმალური მანძილით. თუ ორი g i და g j კლასები
წარმოადგენენ მოსაზღვრე კლასებს, მაშინ არსებობს საზღვარი, რომლისთვისაც
gi ( x )  g j ( x )  0.
განვიხილოთ მაგალითი, დავუშვათ, სიმრავლე, რომლის საფუძველზეცუნდა
ვასწავლოთ პერცეპტრონს სახეთა გამოცნობა, მოცემულია შემდეგი ცხრილით:

ცხრილის პირველი ორი სვეტი შეიცავს მონაცემთა ვექტორებს, რომლებიცგამოიყენებიან


ქსელის სწავლებისათვის. მესამე სვეტში წარმოდგენილიაკლასიფიკაციის
მოსალოდნელი შედეგები +1 ან -1, რომლებიც გამოიყენებიან ქსელის სწავლებისათვის.
ამ მონაცემებისათვის სურ. 12.1. მოყვანილიამათი განლაგება სიბრტყეზე და მათ შორის
წრფე, რომელიც წარმოადგენსსაზღვარს ამ ორ სიმრავლეს შორის.
სურ.12.1.მონაცემების განლაგება სიბრტყეზე

თუ შესაძლებელია კლასების წრფივად გაყოფა, როგორც ეს ხდებასურ. 12.1, მაშინ


ორივე კლასის დისკრიმინანტული ფუნქციები gi ( x ) და g j ( x ) წარმოადგენენ წრფეს.
რადგანაც წრფე არის ისეთი წერტილების ერთობლიობა, რომლებიც თანაბარი
მანძილებით არიან დაშორებული ორიფიქსირებული წერტილიდან, გამოდის, რომ
gi ( x ) და g j ( x ) ფუნქციები წარმოადგენენ თითოეული არეს დეკარტული ცენტრიდან
მინიმალური მანძილის ფუნქციებს.
წრფივი გამყოფი ფუნქცია შეიძლება გამოვთვალოთ პერცეპტრონის საშუალებით
რომელიც მოცემულია სურ. 11.2. იგი შეიცავს ორ ჩვეულებრივშესავალს და ერთ
ზღურბლურ შესავალს მუდმივი მნიშვნელობით 1. პერცეპტრონი ასრულებს
გამოთვლებს შემდეგი ფორმულით:
f ( NET )  f ( w1 x1  w2 x2  w3 1 )

სურ. 12.2. პერცეპტრონი, რომელიც სახეთა კლასიფიკაციის მაგალითია.

სადაც f (x) = sign(x) .თუ f (x) = 1 მაშინ x ობიექტი ეკუთვნის ერთ კლასსდა თუ f (x) = -1,
მაშინ x ობიექტი ეკუთვნის სხვა კლასს. ასეთ გარდაქმნასეწოდება წყვეტილ-წრფივი
ბიპოლარული ზღურბლური ფუნქცია.

99
ზღურბლური შესასვლელი ემსახურება ზღურბლური ფუნქციის გადაადგილებას
ვერტიკალური ღერძის გასწვრივ. ამ გადაადგილების სიდიდე განისაზღვრება სწავლების
პროცესში w 3 წონითი კოეფიციენტის დახმარებით. დავიწყოთ პერცეპტრონის სწავლება.
ამისათვის შევარჩიოთ წონების საწყისი მნიშვნელობები შემთხვევითად, მაგალითად
[0,75; 0,5; -0,6].იმისათვის, რომ გავარჩიოთ, რომელი მონაცემებისთვის ვითვლით
ფუნქციის მნიშვნელობას, დავუმატოთ ფუნქციას ზედა ინდექსი f ( NET )n . დავიწყოთ
ცხრილის პირველი სტრიქონიდან.
f ( NET )1  f ( 0 ,75  1  0.5  1  0 ,6  1 )  f ( 0 ,65 )  1 .
რადგან ფუნქციის მნიშვნელობა მივიღეთ ერთის ტოლი და ის ემთხვევაცხრილის
მნიშვნელობას, ამიტომ წონითი კოეფიციენტების აგება არ არისსაჭირო. შესაბამისად
მეორე წყვილისთვისაც გამოვიყენებთ იგივე წონითკოეფიციენტებს.
f ( NET )2  F ( 0 ,75  9 ,4  0 ,5  6 ,40 ,6  1 )  f ( 9 ,65  1
მოცემული წყვილისათვის გამოსასვლეზე უნდა მიგვეღო -1,ამიტომ საჭიროა
წონითი კოეფიციენტების შეცვლა ზემოთმოყვანილი წესის თანახმად.
W t  W t 1  c( d t 1  sign(( W t 1 )T ( X )t 1 )) X t 1
სადაც c არის დასწავლის სიჩქარის მუდმივი კოეფიციენტი, X არის შესასვლელის
და W - წონითი კოეფიციენტების ვექტორები t –სწავლებისიტერაციის ნომერი, T -
ტრანსპონირების სიმბოლო, d t 1 მოსალოდნელიშედეგი დროის ( t  1 ) მომენტში (ამ
შემთხვევაში t  2 ). t  2 მნიშვნელობისდროს ქსელის გამოსასვლელი ტოლია 1 -ის,
ნაცვლად  1 -ისა, ამიტომ შემდეგი წყვილისათვის წონითი კოეფიციენტები შეიცვლება
და მივიღებთ

 0 ,75  9 ,4    3 ,01 
W  W  0 ,2( 1  1 ) X   0 ,5   o ,4 6 ,4     2 ,06 
3 2  2 
  0 ,6   1    1 

ახლა საჭიროა გამოვთვალოთ ქსელის გამომავალი მნიშვნელობები სწავლების


მესამე მაგალითისათვის აგებული წონების გათვალისწინებით. მივიღებთ, რომ
f ( NET )3  1 .
ეს მნიშვნელობა ისევ არ ემთხვევა მოსალოდნელ გამოსასვლელს.შემდეგი
იტერაციის დროს კვლავ მოხდება წონების განახლება იგივე ფორმულით. პერცეპტრონის
ქსელს სწავლების ათი იტერაციის შემდეგ ფორმირდება წრფივი გაყოფადობა, რომელიც
მოცემულია სურ. 12.1. დაახლოებით სწავლების 500 ბიჯის შემდეგ წონითი
კოეფიციენტების ვექტორიმიიღებს მნიშვნელობას: [ 1,3 ;1,1;10 ,9 ] . ჩვენ გვაინტერესებს
ორი კლასისწრფივი გაყოფა. gi ( x )  g j ( x )  0 . gi ( x ) და g j ( x ) დისკრიმინანტული
ფუნქციებს ტერმინებში გამყოფი ზედაპირი წარმოადგენს წერტილთა სიმრავლეს,
რომელთათვისაც gi ( x )  g j ( x )  0 , ე.ი. აქტივაციის დონე ტოლია 0-ის. ქსელის
ფუნქციონირების განტოლება შეიძლება ჩავწეროთ წონების ტერმინებით, შემდეგისახით:
NET  wi  xi  w j  x j  w  1 . მაშინ, ჩვენს მაგალითში ორ კლასს შორისწრფივი გამყოფი
ზედაპირი განისაზღვრება წრფივი განტოლებით: NET  wi  xi  w j  x j  w  1

12.2. დელტა–წესის განზოგადება.იმისათვის, რომ განვაზოგადოთ პერცეპტრონის იდეა


და ავაგოთ დასწავლის უფრო დახვეწილი ალგორითმები, საჭიროა შევცვალოთ მისი
ზღურბლოვანი ფუნქცია და გავხადოთ ის უფრომოქნილი და უწყვეტი ფუნქცია,
რომელიც საშუალებას მოგვცემს უფროზუსტად გამოვთვალოთ წონები. ერთერთ ასეთ

100
ფუნქციას წარმოადგენს სიგმოიდური ფუნქცია, რომელმაც თავისი სახელი მიიღო
ლათინურ S-თან მსგავსების გამო.
ტიპური სიგმოიდური აქტივაციური ფუნქცია, ანუ ლოგისტიკულიფუნქცია
მოიცემა განტოლებით:
f ( NET )  1 ( 1  e  NET )

სადაც = NET   wi  xi . აქ  არის სიმრუდის (ამოზნექილობის პარამეტრი), რომელიც


გამოიყენება სიგმოიდური წირის ფორმის ასაგებად.  -ს დიდი მნიშვნელობებისთვის
სიგმოიდას ფორმა უახლოვდება ჩვეულებრივ წყვეტილ-წრფივ ზღურბლურ ფუნქციას,
რომლის მნიშვნელობები მოთავსებულია [ 0 ,1 ] დიაპაზონში, ხოლო სიმრუდის
პარამეტრის იმ მნიშვნელობებისთვის, რომლებიც ახლოს არიან 1-თან, სიგმოიდური
წირი ჰგავს სწორ ხაზს. ზღურბლური ფუნქციის არგუმენტს წარმოადგენს ნეირონის
აქტივაციის დონე, ხოლო მისი მნიშვნელობაა ნეირონის გამოსასვლელი. სიგმოიდური
აქტივაციური ფუნქცია არის უწყვეტი რაც, იძლევა ქსელის გამოსასვლელზე შეცდომების
უფრო ზუსტად შეფასების საშუალებას. ჩვეულებრივი ზღურბლური ფუნქციის
მსგავსად, სიგმოიდური აქტივაციური ფუნქცია ასახავს განსაზღვრის არის წერტილებს
(0,1) ინტერვალში მოთავსებულ მნიშვნელობებში. თუმცა უნდა ითქვას ისიც, რომ
ჩვეულებრივი ზღურბლური ფუნქციისგან განსხვავებით სიგმოიდას შეუძლია მიიღოს
მნიშვნელობები მთელი ინტერვალიდან. ე.ი. ის უზრუნველყოფს კლასიკური
ზღურბლური ფუნქციის უწყვეტ აპროქსიმაციას.  პარამეტრი განსაზღვრავს გადასვლის
სიმრუდეს.

სურ. 12.3.აქტივაციური ფუნქცები:ა) წყვეტილ- წრფივი ბიპოლარულიფუნქცია;


ბ) სიგმოიდური უნიპოლარული ზღურბლოვანი ფუნქცია;
გ)წაძრული სიგმოიდური ფუნქცია სხვადასხვა სიმრუდით. რაც მეტია lპარამეტრი, მით
უფრო უახლოვდება ფუნქცია წყვეტილ ფუნქციას.

უწყვეტი აქტივაციური ფუნქციების მქონე ქსელების გამოჩენამ ისტორიულად


განაპირობა შეცდომების კორექციაზე დაფუძნებული სწავლების ახალი მიდგომები.
მაგალითად, ვიდროუ-ჰოფის დასწავლის წესიგვთავაზობს საშუალო კვადრატული

101
შეცდომების მინიმიზაციას გამომავალმნიშვნელობასა და ქსელის აქტივაციის დონეს
შორის იმის მიუხედავად თუროგორი სახე აქვს აქტივაციურ ფუნქციას, მაგრამ უწყვეტი
აქტივაციურიფუნქციების მქონე ქსელებისათვის სწავლების ყველაზე მნიშვნელოვან
წესსწარმოადგენს დელტა-წესი. ინტიუციურად დელტა-წესი ეფუძნება ისეთცნებას,
როგორიცაა შეცდომის ზედაპირი, რომელიც მონაცემთამთელი ნაკადისათვის ჯამურ
შეცდომას განსაზღვრავს როგორც ფუნქციასდამოკიდებულს ქსელის წონებზე. წონების
ყოველი შესაძლო კონფიგურაცია განსაზღვრავს შეცდომის ზედაპირის წერტილს. გვაქვს
რა წონებისგარკვეული კონფიგურაცია, სწავლების ალგორითმის საშუალებით შეიძლება
ვიპოვოთ ამ ზედაპირზე მიმართულება, რომლის გასწვრივაც ყველაზე სწრაფად ხდება
შეცდომის ფუნქციის შემცირება. ამ მიდგომას ეწოდება სწავლება გრადიენტული
დაშვების მეთოდით, რადგანაც გრადიენტი განსაზღვრავს ზედაპირის დახრილობას მის
ყოველ წერტილში.
დელტა-წესი გვთავაზობს უწყვეტი და დიფერენცირებადი აქტივაციური
ფუნქციის გამოყენებას. ეს თვისებები გააჩნია ზემოთგანხილურ ლოგისტიკურ ფუნქციას.
დელტა-წესს ქსელის i -ური კვანძის j -ური წონითიკოეფიციენტის რეგულირებისათვის
აქვს შემდეგი სახე:
c( d i  Oi f / ( net i ) x j
სადაც c არის სწავლების სიჩქარის მუდმივი კოეფიციენტი, d i -ური და Oi -ური i -ური
ნეირონის მოსალოდნელი და რეალური გამოსასვლელები, f i / - i -ური კვანძის
აქტივაციური ფუნქციის წარმოებული, ხოლო x j -ური j -ური კვანძისშესასვლელის
მნიშვნელობა. ვაჩვენოთ თუ საიდან გამოდისეს ფორმულა. ქსელის გამოსასვლელზე
საშუალოკვადრატული შეცდომაპროპორციულია ყოველი კვანძისათვის შეცდომების
კვადრატების ჯამისადა გამოითვლება ფორმულით
E  1 2  ( d i  Oi )2
i
აჯამვის დროს ხდება შეცდომების კვადრატში აყვანა, იმისათვის, რომ დადებითმა
და უარყოფითმაშეცდომებმა არ მოახდინონ ერთმანეთის კომპენსირება.
განვიხილოთ შემთხვევა, როცა ქსელი შედგება ნეირონების ერთადერთი
(გამოსასვლელი) შრისაგან. თავდაპირველად აუცილებელია განვსაზღვროთ ქსელის
ყოველ გამოსასვლელ ნეირონზე შეცდომის ცვლილების სიჩქარე. ამისათვის უნდა
ავიღოთ კერძო წარმოებული, რომელიც განსაზღვრავს ვექტორული ცვლილების
სიჩქარეს, მისი ერთ-ერთი ცვლადის მიხედვით. ზოგადი შეცდომის კერძო წარმოებული
გამომავალი შრის ყოველი i -ური ნეირონისათვის იქნება
 1  ( d i  Oi ) 2
E 2 i
  ( d i  Oi )
Oi Oi

ასეთი გამარტივება შესაძლებელია იმიტომ, რომ განსახილველი ქსელი შეიცავს


ნეირონების მხოლოდ ერთ გამომავალ შრეს და აქედან გამომდინარეშეცდომა ერთერთი
კვანძის გამოსასვლელზე ვერ მოახდენს გავლენას სხვანეირონებზე. განვსაზღვროთ
შეცდომის ცვლილების სიჩქარე i -ური კვანძის ყოველი w k წონითი
კოეფიციენტისათვის. ამისათვის გამოვთვალოთ შეცდომის ფუნქციის კერძო
წარმოებული ყოველი კვანძისათვის, w k წონითი კოეფიციენტების მიხედვით, რომელსაც
მივყავართ ამ კვანძამდე.

102
11.4. შეცდომის ორგანზომილებიანი სიბრტყე. c კონსტანტადასწავლის ბიჯის ზომაა.

E E Oi E Oi
  ანუ  ( d i  Oi ) 
w k Oi w k w k w k
განვიხილოთ ამ გამოსახულების მარჯვენა მხარე, სადაც გამოითვლება i -ური
ნეირონის რეალური გამომავალის კერძო წარმოებული კავშირების იმწონითი
კოეფიციენტების მიხედვით, რომლებსაც მივყავართ ამ ნეირონთან.
ნეირონის გამოსასვლელი მნიშვნელობა წონითი კოეფიციენტების საშუალებით
გამოისახება შემდეგი სახით: Oi  f ( Wi X i ) , სადაც Wi X i  net i .
რადგან f ამ შემთხვევაში უწყვეტი ფუნქციაა, შეიძლება გამოვთვალოთ მისი წარმოებული
Oi E
 x k  f / ( net i ) მაშინ  ( d i  Oi ) f / ( net i ) xk
w k w k
შეცდომის მინიმიზაციისათვის აუცილებელია შევცვალოთ წონის მნიშვნელობა
ანტიგრადიენტის მიმართულებით, საიდანაც მივიღებთ, რომ
E
wk  c  c( ( d i  Oi ) f / ( net i ) xk  c( d i  Oi ) f / ( net )i x
wk
უნდა აღინიშნოს, რომ ისევე, როგორც ლოკალური პიკის ძებნის ალგორითმს, დელტა
წესსაც არ შეუძლია გაარჩიოს ლოკალური მინიმუმიგლობალურისაგან, რაც იწვევს ამ
წესის არამდგრადობას. დელტა წესის ეფექტურობაზე არსებით გავლენას ახდენს
აგრეთვე სწავლების სიჩქარის cკოეფიციენტი. (იხ. სურ. 11.4.). ამ კოეფიციენტის
მნიშვნელობა განსაზღვრავს სწავლების ყოველ ბიჯზე წონების ცვლილების სიდიდეს.
რაც უფროდიდია c , მით უფრო ჩქარა მიდის წონა ოპტიმალურ მნიშვნელობამდე.თუმცა
თუ c კოეფიციენტი ძალიან დიდია, ალგორითმი შეიძლება გასცდესექტრემუმის
წერტილს ან დაიწყოს რხევა მის ირგვლივ. სწავლების სიჩქარის კოეფიციენტის მცირე
მნიშვნელობები საშუალებას იძლევიან აღმოვფვხრათ ეს პრობლემა, მაგრამ ანელებენ
სწავლების პროცესს.

სავარჯიშოები:

1. რა ტიპის ზღურბლოვანი ფუნქციები არსებობენ და რა განსხვავებაა მათ შორის?


2. როგორ განზოგადდება დელტა წესი უწყვეტი აქტივაციის ფუნქციისდროს?
3. რა მნიშვნელობა ენიჭება დასწავლის კოეფიციენტს ამ შემთხვევაში?

103
104
ლექცია 13
მრავალშრიანი ნეირონული ქსელები.
13.1. მრავალშრიანი ნეირონული ქსელი.აშკარაა, რომ ერთშრიანი პერცეპტრონები რთული
პრობლემების გადასაწყვეტად არ გამოდგებოდა. ამიტომ წარმოიშვა იდეა მრავალშრიანი
ქსელების შექმნისა, ისე, როგორც ეს გვხვდება ადამიანის თავის ტვინში. რა შესაძლებლობები
ემატება პერცეპტრონს, თუ ის შეეიცავს ერთ შრეზე მეტს? განვიხილოთ უმარტივესი
ორშრიანი ქსელი, რომელიც შედგება მხოლოდ სამი ნეირონისგან (იხ. სურ. 13.1).

სურ. 13.1. უმარტივესი ორშრიანი ნეირონული ქსელი, რომელსაც შეუძლია


“გამომრიცხავი ან” ოპერაციის განხორციელება.

აქ პირველ შრეში განლაგებულია ორი ნეირონი, რომლებიც ახდენენ “და” და “ან” ლოგიკური
ოპერაციების განხორციელებას, ხოლო მეორე შრის ერთადერთი ელემენტი ასრულებს
“გამომრიცხავი ან” ოპერაციას. ეს მაგალითი გვიჩვენებს, რომ მრავალშრიანი ქსელების
საშუალებით შესაძლებელია უფრო რთული პროცესების მოდელირება და სახეთა
კლასიფიკაციის უფრო საინტერესო შემთხვევების გადაჭრა.
13.2. პირდაპირი გავრცელების ნეირონული ქსელები.ნეირონულ ქსელს,რომელიც შეიცავს
რამდენიმე შრეს, და d შრის ყველა ელემენტი იღებს შესასვლელ სიგნალებს ( d  1 ) შრის
ყველა ელემენტისაგან და გადასცემს გამოსასვლელ სიგნალებს ( d  1 ) შრის ყველა
ელემენტს, უწოდებენ პირდაპირიგავრცელების ნეირონულ ქსელებს.ჩვენი მიზანია ვაჩვენოთ,
რომ შესაძლებელია ისეთი მრავალშრიანი ნეირონული ქსელების აგება, რომელთა
გამოთვლითი შესძლებლობები გაცილებით აღემატება ერთშრიანი ნეირონული ქსელის
გამოთვლით საშუალებებს და რომ გაფართოებული დელტა წესი წარმოადგენს დასწავლის
ალგორითმს ასეთი ქსელებისათვის.
ჯერ კარგად გავერკვიოთ მრავალშრიანი ნეირონულიქსელების სტრუქტურაში (იხ.
სურ.12.2.). რითი სჯობია მრავალშრიანი ნეირონული ქსელის გამოთვლითი საშუალებები
ერთშრიანი ქსელის გამოთვლით საშუალებებს. პირველ რიგში, რაც ყველაზე მთავარია,
განსხვავებით ერთშრიანი ქსელისა, აქ შემოდის უწყვეტი ზღურბლოვანი ფუნქცია,
რომელსაც უწოდებენ სიგმოიდურ ფუნქციას (იმის გამო, რომ მისი გრაფიკი წააგავს ასო s -ს,
განსხვავებით ერთშრიანი ნეირონული ქსელებისა, სადაც ზღურბლოვანი ფუნქცია იყო
წრფივ-წყვეტილი. ეს გვაძლევს საშუალებას გამოვთვალოთ ამ ფუნქციის წარმოებული, რაც
მნიშვნელოვნად ზრდის გამოთვლით საშუალებებს. ეს კი ძალიან მნიშვნელოვანია
დასწავლის პროცესში არსებული შეცდომების გასასწორებლად, რადგანაც მრავალშრიან
ნეირონულ ქსელებში შეცდომების გავრცელება ხდება სიგნალების გავრცელების
საწინააღმდეგოდ, ანუ თუ სიგნალი ვრცელდება შესასვლელი შრიდან გამოსასვლელი
შრისკენ, სეცდომები პირიქთ, ვრცელდება გამოსასვლელი შრიდან შესასვლელი შრისკენ,
ამასთან ჩვენ არ შეგვიძლია ჩავერიოთ დაფარულ შრეებში, ანუ შეცდომები გავასწოროთ იქ,
სადაც ისინი წარმოიშვებიან. ჩვენ ისევაც შეგვიძლია ვიმსჯელოთ მხოლოდ იმის მიხედვით,
თუ რა სიგნალი მიიღო სისტემამ შესასვლლელზე და რა უნდა მიგვეღო გამოსასვლელზე და
რა მივიღეთ სინამდვილეში.

სურ.12.2. პირდაპირი გავრცელების ნეირონული ქსელი.

სიგნალის მრავალშრიანი დამუშავების დროს, შეცდომა ქსელის გამოსასვლელზე შეიძლება


გამოწვეული იყოს მის შიგნით მიმდინარე რთული პროცესებით. ამიტომ ქსელის
გამოსასვლელ შრეში შეცდომის წყარო უნდა გაანალიზდეს კომპლექსურად. შეცდომის
უკუგავრცელების მეთოდი, რომელსაც ეხლა განვიხილავთ, უზრუნველყოფს წონების აგებას
მრავალშრიანი ნეირონული ქსელის სტრუქტურის გათვალისწინებით. სწორედ ამ მიზნით
გამოიყენება აქტივაციის სიგმოიდური ფუნქცია f ( NET )  1 ( 1  e  NET ) , სადაც
NET   w i x i .
ამ მიდგომის თანახმად, როგორც უკვე იყო აღნიშნული, შეცდომა ქსელის
გამოსასვლელზე ვრცელდება უკუმიმართულებით გამოსასვლელი შრიდან დაფარული
შრეებისკენ. დაფარული ეწოდება ყველა შრეს, რომლებიც მოთავსებულნი არიან
შესასვლელსა და გამოსასვლელ შრეებს შორის. სწავლების დელტაწესით ანალიზისას არ
არის რთული იმის დანახვა, რომ მთელი ინფორმაცია, რომელიც აუცილებელია ნეირონის
წონების მოდიფიკაციისათვის, გარდა თვით შეცდომის სიდიდისა, ეკუთვნის მხოლოდ ამ
ნეირონს.
ნეირონებისათვისშეცდომისსიდიდე გამოითვლებამარტივად,როგორც
სხვაობამოსალოდნელდა რთულგამოსასვლელმნიშვნელობებსშორის.
დაფარულიშრეებისკვანძებისათვისკი შეცდომისგანსაზღვრა მნიშვნელოვნად
უფრორთულია.
13.3. შეცდომების უკუგავრცელების მეთოდი.შეცდომების უკუგავრცელების მეთოდი
წარმოადგენს დელტა წესის განზოგადებას. აქაც გამოიყენება წინა ლექციაში განხილული
გრადიენტული დაშვების მეთოდი. დაფარული შრეების კვანძებისთვის შეცდომა
გამოითვლება გსმომსვსლი შრის შეცდომის საფუძველზე. შეცდომებიდ უკუგავრცელების
მეთოდის გამოყენებისას k და i ნეირონებს შორის კავშირის w ki წონითი კოეფიციენტის

106
ცვლილება შესასვლელი შრის კვანძებისთვის გამოითვლება ფორმულით:
w ki  c( d i  Oi )Oi ( 1  Oi ) x i
ფარული შრეებისათვის კი - wki  1cOi ( 1  Oi ) ( delta j wij )xi
მეორე ფორმულაში j არის შემდეგი შრის კვანძის ინდექსი. სიგნალი i -ური ნეირონიდან
მიდის მხოლოდ ამ შრემდე და შესაბამისად შეცდომაც ვრცელდება მხოლოდ ამ ნეირონამდე.
E
delta j    ( d i  Oi )Oi ( 1  Oi ) .
net j
გამოვთვალით ამ ფუნქციის წარმოებული. ჯერ ავიღოთ პირველი ფუნქციის წარმოებული
E
 ( d i  Oi ) f / ( net i ) xk
wk
თავის მხრივ f / ( net )  f ( net )( 1  f ( net )).
E
რადგანაც f ( net i )  Oi , მივიღებთ   ( d i  Oi )Oi ( d i  Oi )w k .
w k
რადგან შეცდომის მინიმიზაციისთვის წონები უნდა იცვლებოდეს გრადიენტის
საწინააღმდეგო მიმართულებით, მაშინ i -ური ნეირონისთვის წონითი კოეფიციენტის
ცვლილების გამოთვლისას ეს წარმოწბული უნდა გავამრავლოთ ( c ) -ზე:
რადგან შეცდომის მინიმიზაციისთვის წონები უნდა იცვლებოდეს გრადიენტის
საწინააღმდეგო მიმართულებით, მაშინ i -ური ნეირონისთვის წონითი კოეფიციენტის
ცვლილების გამოთვლისას ეს წარმოწბული უნდა გავამრავლოთ ( c ) -ზე:
w k  c( d i  Oi )Oi ( 1  Oi ) x k
გამოვიყვანოთ დაფარული შრეებისთვის წონების აგების ფორმულა. სიმარტივისთვის ჯერ
დავუშვათ, რომ ქსელი შეიცავს მხოლოდ ერთ დაფარულ შრეს. ავიღოთ i -ური ნეირონი
დაფარული შრიდან და გავაანალიზოთ მისი წვლილი გამომავალი შრის j -ური ნეირონის
გამოსასვლელზე აესევულ შეცდომაში, შემდეგ კი შევკრიბოთ ეს წვლილები გამომავალი
შრის ყველა ელემენტისთვის და ბოლოს გავითვალისწინოთ ავიღოთ i -ურ ნეირონთან
კავშირის k -ური წონითი კოეფიციენტის მთლიანი შეცდომა. ეს სიტუაცია აღწერილია სურ.
13.3.
ჯერ განვიხილოთ ქსელის შეცდომის კერძო წარმოებული დაფარული შრის შეცდომაში i -
ური ნეირონის გამოსასვლელის მიხედვით. ამისათვის შეგვიძლია ვისარგებლოთ
იგივეობით:
E E net j
 
O i net j O i
ამ დამოკიდებულების მარჯვენა მხარს პირველი მამრავლი აღებული საპირისპირო ნიშნით
აღვნიშნოთ delta j -თი. მაშინ გვენება
E net j
  delta j 
O i O i
გავიხსენოთ, რომ net j , გსმოსასვლელი შრის j -ური ნეირონის აქტივაციიც დონე
გამოითვლება როგორც დაფარული შრის წონითი კოეფიციენტებისა და გამოსასვლელების
ნამრავლის ჯამი net j   w ij O .
რადგან კერძო წარმოებული გამოითვლება ჯამის მხოლოდ ერთი კომპონენტის i და j
ნეირონებს შორის კავშირით
net j
 w ij
O i

107
სადაც w ij არის დაფარული შრის i -ურ ნეირონსა და გამოსასვლელი შრის j -ურ ნეირონს
შორის კავშირის წონა. თუ ჩავსვავთ ამ შედეგს შეცდომის წარმოებულის ფორმულაში
მივიღებთ
E
 delta j w ij
O i

სურ.13.3. i -ური ნეირონის   delta j  w ih მთლიანი წვლილი შეცდომაში ქსელის


გამოსასვლელზე, რომელიც მიიღება მხედველობაში w kj წონითი კოეფიციენტის აგებისას.

ეს ტოლობა განსაზღვრავს ქსელის გამოსასვლელზე შცდომის დამოკიდებულებას


დაფარული შრის i -ური ნეირონის გამოსასვლელზე. განვსაზღვროთ ეხლა delta i -ს
მნიშვნელობა - ქსელის სეცდომის დამოკიდებულება დაფარული შრის i -ური ნეირონის
აქტივაციის დონეზე. ეს მოგვცემს საშუალებას მივიღოთ ქსელის შეცდომის
დამოკიდებულება i -ური კვანძის შემავალი კავშირების წონითი კოეფიციენტებზე.
E E O i
ვისარგებლოთ იგივეობით  delta i   
net i O i net i
რადგან გამოიყენება ლოჯისტიკური ფუნქცია, მივიღებთ
 delta i  Oi ( 1  Oi )  delta j w ij
j

შევაფასოთ ქსელის გამოსასვლელზე შეცდომის დამოკიდებულება დაფარული შრის


i -ური ნერონის შესასვლელი კავშირების წონებზე. განვიხილოთ კავშირის k -ური წონითი
კოეფიციენტი w ki i -ური კვანძით. გვექნება
E E net i net i
    delta i    delta i x k
w ki net i w ki w ki
სადაც x k არის i -ური ნეირონის k -ური შესასვლელი. თუ ჩავსვავთ ამ დამოკიდებულებას
delta i -ს გამოსახულებაში, მივიღებთ:
E
 O i ( 1  O i ) (  delta j ) x k .
w ki j

რადგან შეცდომის მინიმიზაციისათვის აუცილებელია წონის შეცვლა ანტიგრადიენტის


მიმართულებით, მაშინ წონის აგება სრულდება შემდეგი ფორმულით:
E
w ki  1c  1cO i ( 1  Oi ) ( delta j w ij ) x k
w ki j

108
ქსელებში, რომლებიც შეიცავენ რამდენიმე დაფარულ შრეს, შეცდომის გავრცელების ეს
პროცედურა გამოყენება რეკურსიულად n -ური დაფარული შრიდან ( n  1 ) დაფარული
შრისკენ. მიუხედავად იმისა, რომ შეცდომების გავრცელების მეთოდი იძლევა
მრავალშრიანიქსელების სწავლების პრობლემის გადაწყვეტის საშუალებას, მას გააჩნია იგივე
ნაკლი, რაც დელტა წესს. რადგან იგი ეფუძნება ექსტრემუმის ძებნის მეთოდზე, ამიტომ
შესაძლებელია ის იკრიბებოდეს ლოკალური მინიმუმისაკენ და ამასთან გამოსათვლელად
არც ისე მარტივია. განსაკუთრებით ქსელებისთვის შეცდომების რთული ზედაპირით.
12.4. შეცდომის უკუგავრცელების მეთოდის გამოყენების მაგალითი.სისტემა NETtalk. ეს
სისტემა წარმოადგენს სწავლების რთული პრობლემისნეიროქსელური ამოხსნის
საინტერესო მაგალითი. სისტემა სწავლობს ინგლისური ტექსტის წარმოთქმას. სისტემა
NETtalk სწავლობს ტექსტის სტრიქონის კითხვას და აბრუნებს ფონემას შესაბამისი
მახვილით სტრიქონის ყოველი ასოსათვის. ფონემა არისენაში ბგერის ბაზური
ერთეული, ხოლო მახვილი – ამ ბგერის ფარდობითისიმძლავრე. რადგან ყოველი ასოს
წარმოთქმა დამოკიდებულია კონტექსტზე და მის გარემომცველ ასოებზე, ამიტომ
NETtalk მუშაობს ფანჯარასთან,რომელიც შეიცავს შვიდ სიმბოლოს. ამ ფანჯარაში
ტექსტის გადაადგილების დროს, NETtalk ყოველიასოსათვისაბრუნებსწყვილს“ფონემა-
მახვილი”.
ამ სისტემის არქიტექტურა მოცემულია სურ. 13.4. ქსელი შედგება ნეირონების
სამიშრისაგან. შემავალი კვანძები შეესაბამებიან ტექსტურიფანჯრის შვიდ სიმბოლოს.
ფანჯარაში ყოველი პოზიცია წარმოდგენილია29 შემავალი ნეირონით, მათ შორის თითო
ალფაბეტის ყოველი ასოსათვისდა სამი პუნქტუაციის ნიშნებისა და პრობელებისათვის.
ასო ყოველ პოზიციაში ააქტიურებს შესაბამის ნეირონს. გამომავალი შრის კვანძებიდან
ოცდაერთის საშუალებით წარმოიდგინება ფონემები ადამიანისათვის დამახასიათებელი
არტიკულაციის თვისებებით. დარჩენილი 5 ნეირონის საშუალებით ხდება მახვილისა და
მარცვლების საზღვრების კოდირება. ქსელიშეიცავს 80 დაფარულ ნეირონს, 26 გამომავლ
კვანძს და 18629 კავშირს.სწავლების დროს სისტემას წარედგინება 7 სიმბოლიანი
ფანჯარა დაის ცდილობს წარმოთქვას შუა ასო. წარმოთქმულის კორექტულთან
შედარების შემდეგ, სისტემის წონები აიგება შეცდომის უკუგავრცელების მეთოდით. ეს
მაგალითი ახდენს ნეირონული ქსელების მრავალი საინტერესოთვისების ილუსტრაციას,
რომელთა ნაწილიც ასახავს ადამიანური სწავლების ბუნებას. მაგალითად, დასაწყისში
როდესაც კორექტული პასუხებისპროცენტული შეფარდება მცირეა, სწავლების
პროცედურა მიდის საკმარისად სწრაფად და მცირდება სწორი პასუხებს წილის გაზრდის
შედეგად. ისე,როგორც ადამიანისათვის, ქსელი რაც უფრო მეტი სიტყვის წარმოთქმას
ისწავლის, მით უფრო ადვილი იქნება უცნობი სიტყვების გამოთქმა. ექსპერიმენტებმა,
რომლებშიც წონითი კოეფიციენტები იცვლებოდნენ შემთხვევით,აჩვენა რომ ქსელი
მდგრადია სტრუქტურის დაზიანებისადმი. გამოკვლევებმა აჩვენეს დაზიანებული
ქსელის ხელახალი სწავლების მაღალი ეფექტურობა.

109
მრავალშრიანი ქსელების კიდევ ერთი საინტერესო ასპექტია დაფარული შრეების
როლი. სწავლების ნებისმიერმა ალგორითმმა უნდა შეასრულოს განზოგადოება
საგნობრივი არის წერტილების უცნობ ქსელებზე.დაფარული შრეები თამაშობენ
მნიშვნელოვან როლს ქსელისათვის ამ განზოგადოების რეალიზაციაში. ბევრი ქსელის
მსგავსად, რომლებიც ახორციელებენ სწავლებას უკუგავრცელების მეთოდით NETtalk
სისტემის დაფარული შრე შეიცავს უფრო მცირე რაოდენობის ნეირონს, ვიდრე
შემავალიშრე. ეს ნიშნავს, რომ სწავლების სახეებში შემავალი ინფორმაციის
კოდირებისათვის დაფარულ შრეებში გამოიყენება მცირე რაოდენობის ნეირონები,ე.ი. ეს
შრე რეალიზაციას უკეთებს აბსტრაქციის რომელიღაც ფორმას. ასეთშეკუმშულ
კოდირებას მივყავართ იქამდე, რომ სხვადასხვა შემავალ სახეებსდაფარულ შრეში
აქვთიდენტური წარმოდგენები. ზუსტად ამაში მდგომარეობს განზოგადოება.
სისტემის სწავლება მიმდინარეობს საკმარისად ეფექტურად, თუმცაამისთვის
მოითხოვება დიდი რაოდენობის სასწავლო მაგალითები, აგრეთვე სწავლების იტერაციის
მრავალჯერადი გამეორება ერთიდაიგივე სასწავლო მონაცემებზე.

110
ლექცია 14.
გენეტიკური ალგორითმები. მათი გამოყენება ძებნის ამოცანებში.
კომივოიაჟერის მაგალითი.

14.1. ევოლუცია.წინა ლექციებში განვიხილეთ ხელოვნური ნეირონული ქსელების


გამოყენება მანქანური დასწავლის პრობლემის გადასჭრელად.ნეირონული ქსელები არ
წარმოადგენენ ერთადერთ ბიოლოგიურ პროტოტიპს, რომელიც გამოიყენება ხელოვნურ
ინტელექტში. ამ ლექციაში ჩვენ განვიხილავთ ალგორითმებს, რომლებიც დაფუძნებული
არიან ბიოლოგიური ევოლუციის პრინციპებზე: ესაა პოპულაციის ძლიერი პერსონის
გადარჩენა მისი განვითარების პროცესში. პოპულაციის უძლიერესი წარმომადგენლის
არჩევის როლი ნათლად ვლინდება როგორც სახეთა ევოლუციის, ასევე სოციალურ
პროცესებში. ამ პროცესების ფორმალიზებას ცდილობენ უჯრედოვანი ავტომატების
თეორიის, გენეტიკური ალგორითმების, გენეტიკური პროგრამირების, ემერჯენტული
გამოთვლების სხვა ფორმების დახმარებით.
დასწავლის ემერჯენტული, ანუ გამოვლინებადი მოდელები (Emergent models)
ახდენენ ადაპტაციის ყველაზე უფრო ელეგანტური და ძლიერი ფორმის – მცენარეული და
ცხოველური სამყაროს ცოცხალი ფორმების ევოლუციის იმიტაციას. თავისი ბუნებით
ევოლუცია ძალიან მარტივი პროცესია. გარემოს ზემოქმედების შედეგად, თანდათანობით,
პოპულიაციის ყველაზე უფრო ძლიერ წარმომადგენლებში ზოგიერთი თვისებების უბრალო
ცვლილებების, შედარებით წარუმატებელი ეგზემპლიარების გამოხშირვის შედეგად
იზრდება პოპულიაციის ადაპტაციის უნარი და გამომჟღავნდება განსხვავება პოპულაციის
წარმომადგენელებს შორის. ევოლუციის საფუძვლებში მიმდინარე პროცესების სიმარტივე
უზრუნველყოფს მათ საკმარისად საყოველთაო დამკვიდრებას. ბიოლოგიური ევოლუციის
პროცესში ახალი სახეობები იქმნებიან გენომის ყველაზე უფრო ხელსაყრელი ცვლილებების
შერჩევის ხარჯზე. ანალოგიურად კულტურული ევოლუციის პროცესში, სოციალურად
დამუშავებული და მოდიფიცირებული ინფორმაციის ერთეულის გადაცემისას ფორმირდება
ცოდნა. გენეტიკური ალგორითმები და სხვა ფორმალური ევოლუციური ანალოგები
განაპირობებენ ამოცანის უფრო ზუსტ ამოხსნას ამოცანის ამომხსნელ კანდიდატ
პოპულაციებზე გარკვეული ოპერაციების საშუალებით. ამოცანის ამოხსნის გენეტიკური
ალგორითმი შედგება სამი სტადიისგან, რომელთაგან პირველია ცალკეული პოტენციური
ამოხსნების წარმოდგენა სპეციალური ფორმით, რომელიც ყველაზე უფრო მოსახერხებელია
ცვლილებების და შერჩევის ევოლუციური ოპერაციების შესასრულებლად. უფრო ხშირად
ესაა ჩვეულებრივ ბიტური (ორობითი) სტრიქონები. მეორე სტადიაზე ხდება შეჯვარებისა
და მუტაციის ოპერაციების რეალიზაცია, რომლებიც დამახსიათებელია ცოცხალი
ბიოლოგიური ფორმებისათვის. ამ ოპერაციების გამოყენების შემდეგ მიიღება ახალი თაობა
თავიაანთი მშობლების რეკომბინირებული თვისებებით. ბოლო, მესამე სტადიაზე,
რომელიმე შერჩევის კრიტრიუმის საფუძველზე მოხდება საუკეთესოების, ანუ მოცემული
პრობლემის ამოხსნის ყველაზე უფრო ზუსტად შესატყვისი ამოხსნების ამორჩევა. ეს
ეგზემპლარები ამოირჩევა გასამრავლებლად, ანუ პოტენციური ამოხსნების ახალი თაობის
მისაღებად. საბოლოოდ რომელიმე თაობა გახდება საწყისი ამოცანის ამონახსნი. გენეტიკურ
ალგორითმებში შეიძლება გამოყენებული იყოს უფრო რთული წარმოდგენებიც.
14.2. გენეტიკური ალგორითმების ზოგადი სახე.როგორც უკვე ითქვა, ნეირონული
ქსელების მსგავსად, ევოლუციური მოდელირება და გენეტიკური ალგორითმებიც
ეფუძნებიან ბიოლოგიური პროტოტიპების თვისებას. ყოველი ამოხსნის შეფასება ხდება
შერჩევის კრიტერიუმის თანახმად. შეფასების შედეგების მიხედვით განისაზღვრება
მიიღებს თუ არა მონაწილეობას მოცემული ეგზემპლარი ამოხსნების შემდეგ თაობაში.
შემდეგ, ბიოლოგიური კვლავწარმოქმნის პროცესში გენოტიპის ტრანსფორმაციების
ანალოგიური ოპერაციების გამოყენებით მიიღება ამოხსნა - კანდიდატების ახალი თაობა.
ვთქვათ, P ( t ) არის t ამონახსნ-კანდიდატების თაობა დროის რაღაც t მომენტში, მაშინ
ზოგადი სახით გენეტიკური ალგორითმი შეიძლება წარმოვადგინოთ შემდეგნაირად:
Procedure genetic algorithm:
Begin
მივანიჭოთ t : 0 ;
მოახდინე P ( t ) პოპულაციის ინიცირება;
While არ მიღწეულა დამთავრების პირობა
Begin
გამოთვალე ხარისხის კრიტერიუმის მნიშვნელობა P ( t ) პოპულაციის ყველა
წევრისთვის;
ხარისხის კრიტერიუმის მნიშვნელობის საფუძველზე ავარჩიოთ P ( t ) -დან
საჭირო რაოდენობის წევრები;
შევქმნათ სემდეგი თაობა გენეტიკური ოპერაციების გამოყენებით;
ხარისხის კრიტერიუმის მნიშვნელობის გათვალისწინებით შევცვალოთ
P ( t ) პოპულაციის ეგზემპლიარები მათი შთამომავლებით;
მიანიჭე t  t  1;
End.
ეს ალგორითმი ასახავს გენეტიკური ალგორითმების გამოყენების პრინციპებს. მისი
კონკრეტული რეალიზაციები კი რასაკვირველია შეიძლება განსხვავდებოდნენ ამოცანების
მიხედვით. პერსონების რა პროცენტული თანაფარდობა გადარჩება შემდეგ თაობაში?
რამდენი ეგზემპლარი ღებულობს მონაწილეობას შეჯვარებაში? მუტაციაში? რა სიხშირით და
ვის მიმართ გამოიყენებიან გენეტიკური ოპერატორები?
P(t ) პოპულაციის ეგზემპლარების შეცვლის პროცედურა შეიძლება შესრულდეს უმარტივესი
გზით, თუ შევცვლით სუსტი კანდიდატების ფიქსირებულ პროცენტულ თანაფარდობას.
უფრო რთული მიდგომა მდგომარეობს პოპულაციის დალაგებაში ხარისხის კრიტერიუმის
მიხედვით და ეგზემპლიარების ამოგდებაში ალბათობების გათვალისწინებით, რომელიც
სრულდება ხარისხის კრიტერიუმის მნიშვნელობის უკუპროპორციულად. მიუხედავად
იმისა, რომ ამ შემთხვევაში პოპულაციის საუკეთესო ეგზემპლარის ამოგდების ალბათობა
ძალიან მცირეა, ეს მაინც შესაძლებელია. ასეთი მიდგომის უპირატესობა მდგომარეობს
ზოგიერთი “სუსტი” ეგზემპლარის შენარჩუნების შესაძლებლობაში, რომლებმაც შემდეგში
შეიძლება შეიტანონ თავიაანთი წვლილი უფრო ზუსტი ამოხსნის მიღებაში. შეცვლის ასეთი
ალგორითმი ცნობილია სხვადასხვა სახელით, მათ შორის როგორც მონტე-კარლოს მეთოდი,
ან ხარისხის კრიტერიუმის პროპორციულად არჩევის ალგორითმი.

სურ. 14.1. შეჯვარებისოპერაციისგამოყენებაორირვაბიტიანისტრიქონისათვის.

112
დავუშვათ, საჭიროა გენეტიკური ალგორითმის დამხარებით ვისწავლოთ
სტრიქონების კლასიფიცირება, რომლებიც შედგებიან ერთიანებისა და ნულებისაგან. ასეთ
ამოცანაში ბიტური სტრიქონების პოპულაციის აღწერა შეიძლება შაბლონის დახმრებით,
რომელიც შედგება 1-ს 0-ს და # სიმბოლოებისაგან, სადაც # - სიმბოლო შეიძლება
შეესაბამებოდეს როგორც ერთიანს ასევე ნულს. შესაბამისად შაბლონი 1##00##1
წარმოადგენს ყველა რვაბიტიან სტრიქონს, რომელიც იწყება და მთავრდება ერთიანით და
შუაში შეიცავს ორ 0-ს მიყოლებით.
მეორე მნიშვნელოვანი გენეტიკური ოპერატორია მუტაცია. ამ ოპერაციის
შესასრულებლად შემთხვევითად ამოირჩევა კანდიდატი და ასევე შემთხვევითად
წერტოლები, რომლებშიც ხდება შეუცვლა. მაგალითად, მუტაცია იქნება შაბლონში ბიტის
შემთხვევითად ამორჩევა და მისი მნიშვნელობის 1-იანის 0-ით ან #- ით შეცვლა. მუტაციის
ოპერაციის არსი მდგომარეობს ამოხსნის ზოგიერთი ისეთი მნიშვნელოვანი კომპონენტის
წარმოქმნის შესაძლებლობაში, რომელიც არ იყო საწყის პოპულაციაში. თუ ზემოთ
განხილულ მაგალითში საწყის პოპულაციის არცერთი წევრი არ შეიცავს 1-ს პირველ
პოზიციაში, მაშინ შეჯვარების პროცესში არ შეიძლება ამ თვისების მქონე შთამომავლის
მიღება. პირველი ბიტის მნიშვნელობის შეცვლა შეიძლება მხოლოდ მუტაციის შედეგად.
გენეტიკური ალგორითმის მუშაობა გრძელდება მანამ, სანამ არ იქნება მიღწეული მისი
დამთავრების პირობა, მაგალითად, ერთი ან რამდენიმე კანდიდატისათვის ხარისხის
კრიტერიუმის მნიშვნელობა არ გადააჭარბებს რაიმე ზღურბლს. განვიხილოთ ამოცანის
წარმოდგენისა და ხარისხის კრიტერიუმების შერჩევის პრობლემები მაგალითზე.
14.3. გენეტიკური ალგორითმის გამოყენება ნკფ-თვის.განვიხილოთალგორითმის გამოყენება
ნორმალურ კონუნქციურ ფორმაში აღწერილი პრობლემისათვის. ნორმალურ კონუნქციურ
ფორმაში (ნკფ) აღწერა ნიშნავს გამოსახულებას, რომელიც შედგება ერთმანეთთან „და“
ოპერაციით დაკავშირებული ოპერატორების მიმდევრობისაგან. ამასთან, თითოეული
ოპერატორი უნდა შედგებოდეს ან ერთი ასოსაგან, ან რამდენიმე ასოსაგან, რომლებიც
ერთმანეთთან დაკავშირებულია “ან” ოპერაციით. მაგალითად, გამოსახულება:
( a  c )  ( a  c  e )  ( b  c  d  e )  ( a  b  c )  ( e  f )
წარმოადგენს ნკფ-ს, რომელიც შედგება ხუთი ოპერატორისაგან, სადაც თითოეული
ოპერატორი წარმოადგენს რამდენიმე ლიტერალის დიზუნქციას. წარმოდგენა ნკფ-ში
ნიშნავს, რომ ყველა ლიტერალისათვის (ჩვენს შემთხვევაში – ექვსი) არსებობს ლოგიკური
მნიშვნელობები 0 (მცდარი) ან 1 (ჭეშმარიტი) ისეთი, რომ ნკფ ღებულობს მნიშვნელობას 1.
მაგალითად, თუ ლიტერალები c და f ღებულობენ მნიშვნელობებს 1, მაშინ ნკფ-ც
ღებულობს მნიშვნელობას 1. აქედან მტკიცდება, რომ ეს ნკფ წარმოდგენადია.
იმისათვის, რომ აღვწეროთ მონაცემები ამ ამოცანისათვის, დაგვჭირდება ექვსბიტიანი
სტრიქონები, სადაც თითოეული ბიტი შეესაბამება a ,b ,c ,d ,e , f
ლიტერალებისმნიშვნელობებს. ასემაგალითად 1 0 1 0 1 0სტრიქონინიშნავს,
რომლიტერალები a , c , e ღებულობენმნიშვნელობას 1დალიტერალები b , d , f -
კიმნიშვნელობას 0.
გენეტიკურიოპერაციებისშესრულებისშედეგადუნდამივიღოთშთამომავლობა,
რომლისთვისაც ნკფღებულობსმნიშვნელობას 1. ესიმასნიშნავს,
რომგენეტიკურიოპერაციებისშედეგადუნდამივიღოთახალისტრიქონი,
რომელიცშეიძლებაგანხილულიიყოსროგორცამოცანისამოხსნისკანდიდატი.
ამშემთხვევაშიშესაძლებელიაგამოყენებულიიყოსროგორცშეჯვარების,
ასევემუტაციისოპერაციები,
რადგანაცმათიგამოყენებისშედეგადკვლავმიიღებაექვსბიტიანისტრიქონები.
113
ასევეშეიძლებაგამოვიყენოთინვერსირებისდაგაცვლისოპერაციები.
პირველისარსიმდგომარეობსსტრიქონშიბიტებისმიმდევრობისშეცვლაშებრუნებულზე,
ხოლომეორესიკი – ნებისმიერიორიბიტისათვისადგილებისგაცვლაში.
ამთვალსაზრისითამოცანისსტრიქონებისსახითწარმოდგენაყველაზემოსახერხებელია.
შედარებითრთულიახარისხისკრიტერიუმებისამორჩევა,
რადგანაცამოხსნაწარმოადგენსისეთსტრიქონს,
რომლისთვისაცნკფღებულობსმნიშვნელობასერთიანსდაერთიშეხედვითრთულიავიწინასწა
რმეტყველოთრამდენიმესტრიქონიდანრომელიუფროახლოსდგასამოხსნასთან. მაგრამ,
თუგავითვალისწინებთ, რომნკფღებულობსმნიშვნელობასერთსმხოლოდმაშინ,
როდესაცხუთივეგამოსახულებაღებულობსმნიშვნელობასერთს,
ჩვენშეგვიძლიამოვახდინოთამოცანისდეკომპოზიციადახარისხისკრიტერიუმებადავიღოთის
ეთიბიტურისტრიქონები,
რომლებიცუზრუნველყოფენრაცშეიძლებამეტიგამოსახულებებისათვისერთიანისმინიჭებას.
კერძოდ, შეგვიძლიაშევადგინოთასეთიცხრილი:
110010–1
010010–2
010011–3
101011–5
ანუპირველისტრიქონიუზრუნველყოფსერთიგამოსახულებისერთთანტოლობასდამისირეი
ტინგიაერთი, მეორესტრიქონიუზრუნველყოფს
ორიგამოსახულებისერთთანტოლობასდამისირეიტინგიაორი,
მესამესტრიქონიუზრუნველყოფსსამიგამოსახულებისერთთანტოლობასდამისირეიტინგიასა
მი. ბოლოსტრიქონიწარმოადგენსფაქტობრივადამოხსნას,
რადგანცისუზრუნველყოფსხუთივეგამოსახულებისერთთანტოლობას.
ამაღწერისშემდეგშესაძლებელიაგამოვიყენოთგენეტიკურიალგორითმიამამოცანისამოსახსნე
ლად. ყველაზემნიშვნელოვანიასეთმიდგომაშიარისის,
რომალგორითმიერთდროულადმუშაობსამოხსნათამთელპოპულიაციასთან,
ანუფაქტობრივადძებნახდებაპარალელურრეჟიმში. ამასემატებაისიც,
რომშესაძლებელიაამოცანისდეკომპოზიციადაალგორითმსშეუძლიაიმუშაოსთითოეულიგამ
ოსახულებისამოხსნაზეცალ- ცალკე.
14.4.
გენეტიკურიალგორითმისგამოყენებაკომივოიაჟერისამოცანისათვის.კომივოიაჟერისამოცანა

ესარისტესტურიამოცანისკლასიკურიმაგალითიხელოვნურიინტელექტისმეთოდებისათვის
დაზოგადადკომპიუტერულიმეცნიერებისათვის.
ჩვენესამოცანავახსენეთგადრჩევისალგორითმებთანდაკავშირებით.
ჩამოვაყალიბოთამოცანაზოგადისახით:
კომივოიაჟერსმოეთხოვებამოინახულოს N ქალაქი. სვლისმარშრუტზე
ქალაქებისყოველიწყვილისათვისდადგენილიაფასი (მაგალითადმანძილი).
მოითხოვებამოიძებნოს გზა,რომლის ფასიც იქნება მინიმალური.ამასთან ის იწყება
რომელიმექალაქიდანდარომელიცუზრუნველყოფსდანარჩენიქალაქების
ნახვასზუსტადერთხელდაგამგზავრებისცენტრშიდაბრუნებას.
კომივოიაჟერისამოცანაფართოდგამოიყენებაპრაქტიკაში,
მათშორისიგიუზრუნველყოფსისეთიამოცანებისამოხსნას,
114
როგორებიცააელექტრონულისქემებისდაპროექტებისპრობლემა,
რენტგენულიკრისტალოგრაფიისდადიდიინტეგრალურისქემებისწარმოებისასმარშრუტიზა
ციისამოცანებისგადაჭრა. ზოგიერთამამოცანებშიდამატებითმოითხოვება,
რომმოიძებნოსმინიმალურიფასისმქონეგზა.
დიდინტერესსწარმოადგენსკომივოიაჟერისკლასისამოცანებისანალიზიმათირეალიზაციისეფ
ექტიანობისთვალსაზრისით. რაუფროიაფიდაგვიჯდება,
დავხარჯოთრამდენიმესაათიმძლავრიკომპიუტერისგამოყენებითსუბოპტიმალურიამოხსნის
მისაღებად, თუგამოვიყენოთნაკლებადძლიერიკოპიუტერი,
რომელიცრამდენიმეწუთშიმოგვცემსარაოპტიმალურ, მაგრამსავსებითმისაღებამოხსნას?
კომივოიაჟერისამოცანა – ესარისსაინტერესოდართული (NP სირთულის) პრობლემა,
რომელიცეხებაძებნისსტრატეგიისრეალიზაციისმრავალასპექტებს.
რომგამოვიყენოთგენეტიკურიალგორითმიამამოცანისამოსახსნელად,
პირველრიგშიუნდაავირჩიოთწარმოდგენაქალაქებისმონახულებისმარშრუტისათვის,
აგრეთვეშეავარჩიოთგამოსაყენებელიგენეტიკურიოპერატორები.
რაცშეეხებახარისხისკრიტერიუმისარჩევას, ისძალიანმარტივიაამშემთხვევაში.
საჭიროამხოლოდგზისსიგრძისშეფასება.
ამისშემდეგმარშრუტებიშეიძლებადავალაგოთსიგრძისმიხედვით – რაცმოკლეა,
მითუკეთესი. ვცადოთმარშრუტისწარმოდგენაბიტურისტრიქონებისსაშუალებით.
დავუშვათაუცილებელია 9 ქალაქის 1,2,...,9 მონახულება. გზაშეგვიძლიაწარმოვადგინოთ 9
მთელირიცხვისაგანშედგენილიდალაგებულისიით.
ყოველიქალაქისრიგითინომერიწარმოვადგინოთოთხბიტიანისტრიქონით: 0001, 0010,...,1001.
მაშინგამოსახულება
0001 0010 0011 0100 0101 0110 0111 1000 1001
წარმოადგენსქალაქებისმონახულებისმიმდევრობასმათირიგითინომრისზრდისმიხედვით.
ამგამოსახულებაშიჰარი (პრობელი) გამოყენებულიამხოლოდაღქმისსიმარტივისათვის.
რომელიგენეტიკურიოპერატორებიშეიძლებაგამოვიყენოთწარმოდგენილიამოცანისათვის?
შეჯვარებისოპერაციაცალსახადარგამოდგება,
რადგანმისშედეგადმიღებულისტრიქონიარწარმოადგენსისეთგზას,
რომლისდროსაცყოველიქალაქისმონახულებაშესაძლებელიიქნებამხოლოდერთჯერ.
მართლაც, შეჯვარებისდროს მიმდევრობიდანზოგიერთიქალაქიამოვარდება,
ხოლოსხვებიშეგხვდებამასშირამდენჯერმე. რაშეიძლებაითქვასმუტაციაზე? დავუშვათ,
რომმეექვსექალაქისაღვნიშვნაში 0110 მარცხენაგანაპირაწევრიიცვლება 1-ით,
მაშინმიღებულირიცხვი 1110 შესაბამისიიქნება 14 რიგითინომრის,
რომელიცარშედისჩამონათვალში.მოცემულშემთხვევაშიერთადერთდასაშვებოპერაციას
წარმოადგენსგზისგამოსახულებაშიქალაქებისინვერტირებამაგრამსაკმარისიიქნებათუარაესო
პერაცია, უცნობია.
კომივოიაჟერისამოცანაშეიძლებაამოიხსნასსხვანაირადაც: უარი
ვთქვათბიტურწარმოდგენაზედამივანიჭოთქალაქებსჩვეულებრივირიგითინომრები: 1,2,..,9.
ამქალაქებსშორისგზაწარმოადგენსცხრაციფრისგანშემდგარომელიღაცმიმდევრობას,
ხოლოშესაბამისიგენეტიკურიოპერატორებიმოგვცემენახალიგზისფორმირებისსაშუალებას.
ამშემთხვევაშიმუტაცია, როგორცმარშრუტშიორიქალაქისშემთხვევითიგაცვლა,
იქნებადასაშვებიოპერაცია, მაგრამშეჯვარებაისევუსარგებლოა. ოპერატორი,
რომელიცცვლისმარშრუტისფრაგმენტებსიმავეგზისსხვაფრაგმენტებითანნებისმიერიოპერატ
ორი, რომელიცუცვლისადგილებსმარშრუტშიქალაქებისნომრებს (ამოგდების,

115
დამატებისანდუბლირებისგარეშე), აღმოჩნდებასაკმარისადეფექტური,
მაგრამასეთიმიდგომებისდროსშეუძლებელიამშობლებისსაუკეთესოთვისებებისშეთავსებაშთ
ამომავალში, რადგანამისათვისმოითხოვებამისიფორმირებაორიმშობლისსაფუძველზე.
დამუშავებულიიქნასხვადასხვასახისშეჯვარებისოპერატორები,
რომლებიციცილებენამპრობელმებსდაიძლევიანმოსანახულე-
ბელიქალაქებისდალაგებულსიასთანმუშაობისსაშუალებას.
ერთერთიასეთიოპერატორიადალაგებულიშეჯვარებისოპერატორი.
დალაგებულიშეჯვარებისპროცესშიშთამომავლისაგებახდებაერთერთიმშობლისგზაშ
იქალაქებისქვემიმდევრობისარჩევისსაშუალებით.
მასშიაგრეთვეშენარჩუნებულიამეორემშობლისქალაქებისფარდობითირიგი.
დასაწყისშიამოირჩევააღნიშნულიკვეთისორიწერტილი (აღინიშნება “I” სიმბოლოთი),
რომლებიცშემთხვევითადდგებიანთითოეულიმშობლისერთსადაიგივეპოზიციებში.
კვეთისწერტილებისადგილმდებარეობააირჩევაშემთხვევითადთუმცამშობლებიდანთითოეუ
ლისათვისესწერტილებიერთმანეთს ემთხვევა.მაგალითად, თუორიმშობლისთვის p1 და p 2
კვეთისწერტილებიგანლაგებულიარიანმესამედამეშვიდექალაქებისშემდეგ p1=(192 I 4657 I
83); p2=(459 I 1876 I 23); მაშინორიშთამომავალი c1 და c2 მიიღებაშემდეგნაირად.
პირველრიგშიყოველიშთამომავლისათვისკოპირდებაწყვეტისწერტილებსშორისმოთავსებუ
ლიმშობლებისსტრიქონისფრაგმნეტი:
c1=(xxx I 4657 I xx)
c2=(xxx I 1876 I xx)
(დააკვირდითმშობლებისდაშთამომამვლებისინდექსებს, c1-ითაღნიშნულიშთამომავალი,
რომელშიცგადადის p1 -ისკვეთებსშორისმოთავსებულიფრაგმენტი). ამისშემდეგ p2
მშობლისსტრიქონიგარდაიქმნებაშემდეგნაირად:
სტრიქონიიწყებამეორეკვეთისშედეგდარჩენილიფრაგმენტითდაშემდეგგაგრძელდებაჩვეულ
ებრივად, მიიღებასტრიქონი:
234591876
რადგანაცქალაქები 4,6,5 და 7 უკვეშედიანპირველიშთამომავლისშემადგენლობაში,
ამიტომამოვყრითმათსტრიქონიდანდამიიღებაშემოკლებულისტრიქონი 2,3,9,1,8,
რომელიცჩაისმება c1-ში, p2-შიარსებულირიგისშენარჩუნებითდაგვექნება: c1 = (239 I 4657 I
18).
ანალოგიურადმიიღებამეორეშთამომავალიც c2 = (392I1876I45).
ამგვარადდალაგებულიშეჯვარებისდროსგზისფრაგმენტებიერთიმშობლიდან (p1)
გადაეცემაშთამომავალს (c1), ამდროსქალაქებისმონახულებისრიგიმასგადაეცემამეორე (p2)
მშობლისაგან. ასეთიმიდგომაეყრდნობაინტუიციურვარაუდსიმისშესახებ,
რომქალაქებისმონახულებისრიგიმნიშვნელოვანროლსთამაშობსუმოკლესიგზისმოძებნაში.
ამიტომხდებაშთამომავლებისათვისქალაქებისმონახულებისრიგისშესახებინფორმაციისშენახ
ვა.
დალაგებულიშეჯვარებისალგორითმიიძლევაყველაქალაქისერთხელმონახულებისგა
რანტიას. ამოპერაციისშედეგზემუტაციისგამოყენებაუნდამოხდესძალიანფრთხილად.
როგორცზევითუკვეიყოაღნიშნული,
მუტაციისოპერაციადაიყვანებაერთიმარშრუტისჩარჩოებშიორიქალაქისადგილისგაცვლაზე,
ანუინვერტირებაზე. მოცემულშემთხვევაშიუბრალოინვერტირება
(ქალაქებისმონახულებისრიგისმარტივიშეცვლა) მიუღებელია,
რადგანამდროსარხდებაახალიგზისფორმირება. მაგრამ,

116
თუერთიმარშრუტისჩარჩოებშიავირჩევთრაიმეფრაგმენტსდამოვახდენთმისინვერტირებასმა
შინამანშეიძლებამოგვცესკარგიშედეგი.მაგალითადავიღეგზა:c1 = (239 I 4657 I
18)დამოვახდინოთმისიშუა ნაწილისინვერტირება. შთამომავალიმიიღებსსახეს:c1 = (239 I
7564 I 18).
შეიძლებაშემოვიტანოთმუტაციისკიდევერთიოპერატორი,
რომელიცმდგომარეობსშემდეგში:
შემთხვევითადავირჩიოთრომელიმექალაქიდაგადავადგილოთიგიმარშრუტისშემთხვევითა
დარჩეულადგილზე. ასეთიოპერატორიშეიძლებაგამოვიყენოთგზისფრაგმენტისთვისაც,
მაგალითად, ავირჩიოთსამიქალაქისგანშემდგარიფრაგმენტიდამოვათავსოთიგიახალ,
შემთხვევითადარჩეულადგილზე. განსხვავებითნკფ-
ისამოცანისაგანამმაგალითშიუფრორთულიიყოროგორცწარმოდგენის,
ასევეოპერატორებისგანსაზღვრა, რაცგვიჩვენებს,
რომგენეტიკურიალგორითმისთვისდამახასიათებელცოდნისწარმოდგენის,
ოპერატორებისარჩევისდახარისხისკრიტერიუმისგანსაზღვრისპრობლემებიწარმოადგენსერ
თერთყველაზემთავარპრობლემასგენეტიკურიალგორითმებისათვის.
არჩეულიწარმოდგენაუნდაიყოსისეთი,
რომშესაძლებელიიყოსგენეტიკურიოპერატორებისგამოყენება.
ზოგჯერბუნებრივიაბიტურიწარმოდგენა (როგორცესიყოპირველმაგალითში).
ამშემთხვევაშიპოტენციალურიამონახსნებისმისაღებადსაჭიროაპირდაპირგამოვიყენოთისეთ
იტრადიციულიგენეტიკურიოპერატორები, როგორიცააშეჯვარებადამუტაცია.
მაგრამკომივოიაჟერისამოცანაშისრულიადსხვასიტუაციაა. პირველ რიგში,
მისთვისარგამოდგებაბიტურიწარმოდგენა. მეორეც,
მუტაციისდაშეჯვარებისოპერაციებისგანსაზღვრისასყოველიშთამომავლისთვისაუცილებელ
იათვალიმივადევნოთსაჭიროთვისებებისშესრულებას
(მაშრუტშიყველაქალაქისარსებობადათითოეულისმხოლოდერთხელნახვა). ბოლოს,
გენეტიკურიოპერაციებისრეალიზაციისასარსებითიინფორმაციაუნდაგადაეცესშემდეგთაობა
ს.კომივოიაჟერისამოცანაშიგადამწყვეტიამარშრუტშიქალაქებისთანმიმდევრობა,
ამიტომშთამომავლებსუნდაგადაეცეთამინფორმაციისფარგმენტები. იმისათვის,
რომუზრუნველვყოთთვისებებისასეთიმემკვიდრეობა, აუცილებელია,
თითოეულიამოცანისათვისცალცალკეშესაბამისისახითავირჩიოთმონაცემებისწარმოდგენისხ
ერხიდაგენეტიკურიოპერატორები.
14.5. გრეის კოდი.განვიხილოთ მონაცემების წარმოდგენის პრობლემის ერთი ასპექტი,
რომელიც ცნობილია, როგორც წარმოდგენის “ბუნებრივობის” პრობლემა. ამისათვის
განვიხილოთ ძალიან მარტივი, მაგალითი. განვიხილოთ 6,7,8 და 9 რიცხვების
გარჩევადობის ამოცანა. ბუნებრივი, ანუ ათობითი წარმოდგენა, რომელიც უზრუნველყოფს
მონაცემების დახარისხებას, არის ჩვეულებრივი აღწერა მთელი რიცხვებით, რადგანაც ათ
ციფრს შორის ყოველი შემდეგი 1-ით მეტია წინაზე. ორობით აღწერაზე გადასვლის შემ-
დეგ ეს ბუნებრივობა ქრება. განვიხილოთ 6,7,8 და 9 რიცხვების ორობითი წარმოდგენა:
6=0110, 7= 0111, 8=1000, 9=1001
შევნიშნოთ, რომ რიცხვები 6 და 7, აგრეთვე 8 და 9 მართლაც განსხვავდებიან
ერთმანეთისგან ერთი ბიტით. მაგრამ 7 და 8 რიცხვებს საერთო არაფერი აქვთ. წარმოდგენის
ამ თვისებამ შეიძლება გამოიწვიოს დიდი პრობლემები იმ ამოცანების ამოხსნის დროს,
რომლებშიც მოითხოვება ამ სახეების სისტემატიზაცია. ასეთი არაერთგვაროვანი
წარმოდგენის მოსახსნელად, გენეტიკური ალგორითმების თეორიაში ფართოდ
117
გამოიყენება გრეის კოდი.

ცხრილი 14.1.
რიცხვი ორობით სისტემაში გრეის კოდი

0000 0000
0001 0001
0010 0011
0011 0010
0100 0110
0101 0111
0110 0101
0111 0100
1000 1100
1001 1101
1010 1111
1011 1110
1100 1010
1101 1011
1110 1001
1111 1000
გრეის კოდი, რომელსაც ოფიციალურად ეწოდება რეფლექსური ორობითი კოდი,
წარმოადგენს ნუმერაციის ორობით სისტემას, რომელშიც ორი მეზობელი მნიშვნელობა
გნსხვავდება მხოლოდ ერთ ორობით თანრიგში.
გენეტიკური
ალგორითმებისმნიშვნელოვანუპირატესობასწარმოადგენსძებნისპარალელურიბუნება.
ესალგორითმებიახდენენექსტრემუმისძებნისერთ-ერთიმძლავრიფორმისრეალიზაციას,
რომელიცმდგომარეობსერთდროულადრამდენიმეამონახს-კანდიდატებისმხარდაჭერაში.
სურ. 14.2. ნაჩვენებია,
როგორიკრიბებაამონახსნებისსიმრავლეექსტრემუმისწერტილისაკენძებნისსივრცეში.
ამსურათზეჰორიზონტალურიღერძზეაღებულიაშესაძლოწერტილებიამონახსნთასიმრავლეში
, ხოლოვერტიკალურზეამამოხსნათახარისხი.
წერტილებიწირებზეარიანმიმდინარეპოპულაციისამონახსნ-კანდიდატებისწევრები,
რომლებიცმიღებულიარიანგენეტიკურიალგორითმისმუშაობისშედეგად.
დასაწყისშიამონახსნებითითქმის თანაბრადნაწილდებოდნენძებნისსივრცეში.
რამდენიმეიტერაციისშემდეგისინიჯგუფდებიანარეებში,
რომლებიცშეესაბამებიანამოხსნებისუფრომაღლხარისხს.

118
ლექცია 15.
ხელოვური ინტელექტის ეთიკა

15.1. რა არის ეთიკა?ეთიკა არის მეცნიერება მორალის შესახებ. მაშინ რა არის მორალი?
მორალი არის წესებისა ნორმების ერთობლიობა, რომლებიც განსაზღვრავს ადამიანთა
ურთიერთდამოკიდებულებასა და ყოფაქცევას ამა თუ იმ საზოგადოებაში;
მოდით, ნუ შევიჭრებით ფილოსოფიურ დისკუსიაში, და პირდაპირ გადავიდეთ ჩვენს
საკითხზე. თავისთავად ცხადია, რომ თუ ეთიკა არის მეცნიერება მორალის შესახებ და
მორალი კი განსაზღვრავს ადამიანთა ქცევას საზოგადოებაში, მაშინ საზოგადოების
ცვლილებას ყოველთვის მოსდევს მორალის ცვლილებაც. თუმცა შეიძლება ითქვას
პირიქითაც, საზოგადოების მოწინავე ინდივიდები მკაცრად აკრიკიტებენ არსებული
მორალის უარყოფით დებულებებს და თანდათანობით იძულებულს ხდიან საზოგადოებას
შეცვალოს მორალი. ეს თანდათანობით მარტივად ნათქვამია, რადგანაც მის უკან იმალება
ბრზოლა სხვადასხვა საშუალებებით, მათ შორის შეიარაღებული ბრძოლაც (მაგალითად
სამოქალაქო ომი აშშ-ში).
რა პრობლემები ელის ამ თვალსაზრისით საზოგადოებას ხელოვნური ინტელექტის
განვითარებასთან ერთად? ზუსტი პასუხის გაცემა შეუძლებელია, მაგრამ მოდით ვცადოთ
და განვიხილოთ მოსალოდნელი ვარიანტები.
15.2. დასწავლადი აგენტების და კონკრეტულად ორიენტირებული ინტელექტუალური
პროგრამების ეთიკა.ჩვენ ასეთ პროგრამებს პრაქტიკულად არც ვთვლით ხელოვნური

119
ინტელექტის მქონე პროგრამებად, მაგრამ ისინი არსებობენ და ხშირ შემთხვევებში აქვთ
პირდაპირი ან რაღაც სოციალური კავშირი ადამიანებთან. არაფერი რომ არ ვთქვათ
რობოტებზე, რომლებიც თანდათანობით გამოდევნიან ადამიანებს არა მარტო საწარმოო
პროცესებიდან, სულ უფრო ხშირად ჩნდება პროგრამები, რომლებიც არა მარტო ცვლიან
ადამიანებს ამა თუ იმ საქმიანობაში, არამედ მათი ქმედებები უშუალოდ მოქმედებენ
ადამიანის სოციალურ მდგომარეობაზე. წარმოვიდგინოთ, რომ ბანკმა შექმნა პროგრამა,
რომელიც განიხილავს მოთხოვნებს იპოთეკურ სესხზე და წარუდგენს მათ ბანკის
ხელმძღვანელობას დასამტკიცებლად. ბანკმა ამისთვის შექმნა ინტელექტუალური
დასწავლადი პროგრამა, რომელმაც წარმატებით გაიარა ყველა შემოწმება და დანერგეს
ბანკში. როგორ ფიქრობთ რა ხასითზე დადგება ბანკის ხელმძღვანელობა, თუ ძალიან მალე
ისინი მიიღებენ სასამართლო უწყებას, რომ მათ კლიენტი ადანაშაულებენ რასიზმში,
რადგანაც ისინი უფრო ხშირად აკრედიტებენ თეთრკანიან კლიენტებს, ვიდრე შავკანიანებს.
ბანკი ცდილობს თავის გამართლებას, მაგრამ კლიენტის ადვოკატები სტატისტიკისა და
ფაქტების საფუძველზე ამტკიცებენ, რომ ერთსა და იმავე პარამეტრების შემთხვევაში,
სისტემა აფინანსებს თეთრკანიან კლიენტს და უარს ეუბნება შავკანიან კლიენტს.
თუ სისტემა აგებულია რთული ნეირონული ქსელების ან გენეტიკური
ალგორითმების გამოყენებით, რომელიც შეიქმნა მიმართული ევოლუციური პროცესის
საფუძველზე, ბანკში შეიძლება დიდი ხნის განმავლობაში (ან სულაც საერთოდ) ვერ
გაარკვიონ თუ რატომ მოქმედებს სისტემა ასე, მაგრამ თუ სისტემის სწავლებისთვის
გამოყენეს ბაიესის ქსელები ან ამონახსნთა ხეები, მაშინ უფრო ადვილად აღმოაჩენენ, რომ
სისტემა იყენებს ინფორმაციას კლიენტის საცხოვრებელი ადგილის შესახებ (და არა მარტო
მიმდინარეს, არამედ სად დაიბადა და გაიზარდა) და როცა აღმოაჩენს ადამიანს, რომელიც
დაიბადა და გაიზარდა ქალაქის ღარიბ უბანში, უარს ეუბნება იპოთეკაზე. ასეთები კი
ამერიკაში უმეტესად არიან შავკანიანები. გამჭვირვალობა, ესაა ერთადერთი აუცილებელი
თვისება, რომელიც უნდა ახასიათებდეს ინტელექტუალურ პროგრამებს, რომელთა
ქმედებები რამენაირად დაკავშირებულია ასოციალურ პრობლემებთან.
ასევე მნიშვნელოვანია, რომ ეს პროგრამები არ ექვემდებარებოდნენ რაიმე მანიპულიაციებს
მოწინააღმდეგის (ადამიანის) მხრიდან, რომლებიც ეძებენ პროგრამის სუსტ წერტილებს
იმისთვის, რომ ხელი შეუშალონ მას მუშაობაში. ამის მაგალითები უამრავია და არ ღირს
მათზე შეჩერება, მარტივად ვთქვათ, რომ ყოველწლიურად 5 მილიარდ დოლარზე მეტი
იკარგება ასეთი მანიპულიაცების შედეგადად.
პასუხისმგებლობა, გამჭვირვალეობა, შემოწმებადობა, მოუსყიდველობა, პროგნოზირებადობა
- ესაა კრიტიუმები, რომლებიც შეიძლება გამოყენებული იყოს იმ ადამიანებისთვის,
რომლებიც ასრულებენ რაიმე სოციალურ ფუნქციას და ყველა ეს კრიტერიუმი
გათვალისწინებული უნდა იყოს იმ ალგორითმებში, რომლებიც იქმნება იმისთვის , რომ
შეცვალონ ადამიანები.
15.3. ზოგადი ინტელექტუალური სისტემები (ზოგადი ხელოვნური
ინტელექტი).ყველასთვის ცხადია, რომ დღეს არსებული ინტელქტუალური პროგრამები
თუ სისტემები, ახლოსაც ვერ მივლენ ადამიანის ინტელექტთან, მიუხედავად იმის, რომ
ისინი ხშირად ჯობნიან ადამიანს რომელიმე კონკრეტულ სფეროში. უფრო მეტიც,
ზოგიერთი მკვლევარის აზრით, როგორც კი შეიქმნება ინტელექტუალური პროგრამა,
რომელსაც შეუძლია რომელიმე კონკრეტული რთული ამოცანის ამოხსნა, იმ მომენტიდან
ეს საქმიანობა აღარ წარმოადგენს ინტელექტუალურ საქმიანობას. უფრო გასაგები იყოს რა
გვაქვს მხედველობაში, მოვიყვანოთ მაგალითი, ინტელექტუალურმა პროგრამამ „Deep Blue”
120
მოუგო მსოფლიო ჩემპიონს გ. კასპაროვს, მაგრამ ამ პროგრამას არ შეუძლია ითამაშოს შაშკი
ან კრესტიკი - ნოლიკი, არავითარი ინტელექტი არ გააჩნია, ამიტომ მას არავითარი
ინტელექტი არ გააჩნია, უბრალოდ პროგრამისტებმა იპოვნეს ჭადრაკის თამაშის სწორი
ალგორითმი. მაგრამ ეს რომ ასე ყოფილიყო, „Deep Blue”-ს შემქმნელები თვითონ უნდა
ყოფილიყვნენ კასპაროვზე უკეთესი მოთამაშეები.
მართლაც, დღევანდელი ინტელექტუალური სისტემები ორიენტირებულნი არიან
კონკრეტულ, სპეციალიზირებულ პრობლემებზე, რითაც უფრო თითქოს წააგავან ცოცხალ
ბიოლოგიურ არსებებს, მაგრამ არა ადამიანს. მაგალითად, ფუტკარი კომპენტენტურია
ფიჭების აშენებაში, თახვი კი კარგად აშენებს კაშხლებს, მაგრამ ფუტკარს არ შეუძლია
კაშხლის აშენება, თახვს კი ფიჭების. ადამიანს კი შეუძლია და ისწავლა კიდეც როგორც
კაშხლის აშენება, ასევე ფიჭების დამზადება. ესაა უნიკალური უნარი სიცოცხლის
ბიოლოგიურ ფორმებს შორის.
ჯერჯერობით კიდევ საკამათოა, რამდენად ზოგადი და ფართოა ადამიანის
ინტელექტი, რადგანაც როგორც ჩანს, ჩვენ უკეთესად შეგვიძლია ზოგიერთი შემეცნებითი
ამოცანების გადაჭრა, მაგრამ ეს არ ნიშნავს, რომ ჩვენმა ინტელექტმა მიაღწია განვითარების
მწვერვალს. მიუხედავად ამისა, ფაქტია, რომ ადამიანური ინტელექტი მნიშვნელოვნად
უფრო ზოგადია, დღეს არსებულ დანარჩენ ინტელექტებთან შედარებით.
ზოგადი ხელოვნური ინტელექტის მქონე სისტემების ასაგებად, საკმარისი არაა ის
მეთოდები, რომლებსაც ჩვენ ვიყენებთ დღეს არსებული ინტელექტუალური პროგრამების
ასაგებად. დავუბრუნდეთ ისევ ჩვენს მაგალითს. თუ „Deep Blue”-ს ავტორები არ იყვნენ
ექსტრა კლასის მოთამაშეები, მაშ რა პრინციპით ააგეს ასეთი ძლიერი სისტემა? მათ უარი
თქვეს განეხილათ თითოეული კონკრეტული სიტუაციები და დაეპროგრამებინათ როგორ
ითამაშოს „Deep Blue”-მ ასეთ სიტუაციაში. ამის მაგივრად ისინი დარწმუნებულები იყვნენ
იმაში, რომ „Deep Blue”-ს საჭადრაკო სვლები დააკმაყოფილებდნენ არალოკალური
ოპტიმალურობის კრიტერიუმს, კერძოდ Deep Blue”-ს სვლები შეძლებდნენ მიემართათ
სიტუაცია საჭადრაკო დაფაზე მომგებიან სიტუაციების არეში (მომგებიანი სიტუაციები
განიმარტებოდა თამაშის წესების მიხედვით). ეს პროგნოზი შორეულ შედეგებზე მართალია
აღმოჩნდა სწორი, მაგრამ ის არ აძლევდა პროგრამისტებს საშუალებას წარმოედგინათ Deep
Blue”-ს ლოკალური ქცევა, მაგალითად, მისი რექცია თავის მეფეზე კონკრეტული შეტევის
დროს, იმიტომ რომ „Deep Blue”-მ გამოთვალა თამაშის არალოკალური სქემა, არამედ სქემა,
რომელიც აძლევდა კავშირს მოცემულ სვლასა და მომავალ შედეგებს შორის, და ეს იყო
გამოთვლილი უფრო ზუსტად, ვიდრე ამას შეძლებდნენ პროგრამისტები.
თუ ეს ასე რთული იყო იმ შემთხვევაში, როდესაც საქმე ეხებოდა ერთ კონკრეტულ
პრობლემას, წარმოიდგინეთ რამდენად რთული იქნება ამის გაკეთება ზოგადი ხელოვნური
ინტელექტის შემთხვევაში, როდესაც საქმე ეხება სისტემის მოქმედებას არსებულ გარემოში,
სადაც გვაქვს არა კონკრეტული მიზანი, არამედ ერთი ძირითადი მიზანი, გადარჩეს სისტემა
ამ გარემოში. აქ საჭიროა სისტემამ თვითონ დასახოს კონკრეტული მიზნები გარემოს
ცვლილებების გათვალისწინებით და თვითონვე მოძებნის ამ მიზნების მიღწევის გზები. ეს
რა თქმა უნდა შესაძლები იქნება, თუ ჩვენ სისტემას ექნება საწყისი ცოდნა გარემოს შესახებ
და შემდეგ თავისი არსებობის განმავლობაში თანდათანობით გააუმჯობესებს ამ ცოდნას.
სამედო ზოგადი ხელოვნური ინტელექტის მქონე სისტემების ასაგებად საჭირო იქნება სხვა
მეთოდები და თქვენ წარმოიდგინეთ სხვანაირი აზროვნებაც. ასეთი სისტემა უკვე აღარააა
ჩვენთვის ნაცნობი ინტელექტუალური პროგრამა, რომელიც მარტივად შეიძლება
წავშალოთ კომპიუტერიდან, თუ მან არ გაამართლა ჩვენი იმედები. ასეთი სისტემა ალბათ
აუცილებლად უნდა აკმაყოფილებდეს ეთიკის მინიმუმ ერთ, მაგრამ ძალიან მნიშვნელოვან
მოთხოვნას, მისმა ქმედებება არ უნდა ავნოს როგორც სოციალურ საზოგადოებას, ასევე

121
ინდივიდუალურად კონკრეტულ ადამიანს. ასეთი სისტემის უსაფრთხოების შემოწმება
გახდება გაცილებით რთული, რადგანაც ჩვენ უნდა შევამოწმოთ, თუ რის გაკეთებას
აპირებს სისტემა და არა რამდენად უსაფრთხოა მისი ქმედებები ყველა ოპერაციულ
კონტექსტში. ეს ნიშნავს, რომ ეთიკური პრობლემები გათვალისწინებული უნდა იყოს
სისტემის აგების პროცესში.
15.4. სუპერინტელექტი. ჯერ კიდევ 1965 წელს ჯ. გუდმა წამოაყენა კლასიკური ჰიპოთეზა
სუპერინტელექტის შესახებ. ხელოვნური ინტელექტუალური სისტემა (დავუშვათ ზოგადი
ხელვნური ინტელექტი), საკმარისად ჭკვიანი იმისათვის, რომ გაიგოს თავისი სტრუქტურა,
ცვალის თავისთავს იმისათვის, რომ გახდეს უფრო ჭკვიანი. ჩავთვალოთ, ესაა მისი
შთამომავალი. ეხლა განვიხილოთ ეს პროცესი ევოლუციაში. შთამომავალი იძლევა ახალ
კვლავ გაუმჯობესებულ შთამომავალს. დღეს ჩვენთვის უცნობია როდესმე დასრულდება
თუ არა ეს პროცესი, მაგრამ აშკარაა ასეთი განვითარების შემთხვევაში აუცილებლად
დადგება მომენტი, როდესაც რომელიმე შთამომავალის ინტელექტი გადააჭარბებს
ადამიანის ინტელექტს. შესაძლებელია განვიხილოთ სხვა ვარიანტებიც.
ინტელექტუალური ადამიანი, რომელიც იყენებს კომპიუტერს, აფართოებს თავის
ინტელექტს, და რაღაც მომენტში ხვდება, რომ უნდა გააძლიეროს კომპიუტერი თავისი
ინტელექტის გასაფართოებლად (თქვენ რომ გქონდეთ კომპიუტერი, რომელიც აამაღლებს
თქვენს IQ-ს, ალბათ თქვენც იგივე მოგინდებოდათ).
არსებობს მესამე ვარიანტი ინტელექტის გასაზრდელად, ესაა აზროვნების სიჩქარე.
ყველაზე სწრაფი ნეირონები ირთვება ხელახლა წამში 1000-ჯერ; ყველაზე ჩქარი აქსონები
სიგნალს ატარებენ 150 მ/წმ-ში. თუ ამ პარამეტრებს შევადარებთ სინათლის სიჩქარეს და
გავითვალისწინებთ, რომ დიდი ხანია ლაპარაკია კვანტური კომპიუტერების აგებაზე,
გასაგები გახდება, რომ არც ეს ვარიანტი არაა გამორიცხული (თუ არაა ყველაზე
მოსალოდნელი).
მეცნიერები და ფანტასტები აკეთებენ პროგნოზებს, თუ რა შეიძლება მოჰყვეს ამას.
ვნახოთ მხოლოდ რამდენიმე. დიდმა განსხვავებამ ადამიანების ინტელექტებს შორის:
 ყველა პატენტი, გამოკვლევები ეკუთვნით მხოლოდ მაღალიინტელექტის მქონე
ადამიანებს;
 საფონდო ბაზარზე და ბიზნესში იმარჯვებენ მხოლოდ ისინი;
 ისინი იმარჯვებენ პოლიტიკაში.
განსხვავება დღევანდელ და მომავალ ცივილიზაციებში:
 ძალიან სწრაფად განვითარდება ნანოტექნოლოგიები მოლეკულურ დონეზე;
 ადამიანები დაიწყებენ მოგზაურობას გალაქტიკებში.
საბოლოოდ შეგვიძლია დავასკვნათ უახლოეს მომავალში აუცილებელი გახდება
რომ ხელოვნური ინტელექტის პროგრამების შექმნისას (განსაკუთრებითიმ პროგრამების
რომლებიც შეიძლება გამოყენებული იქნას სოციალურ სფეროში), აუცილებელი იქნება
ეთიკის პრინციპების გათვალისწინება უკვე მათი კონსტრუირების დროს, ასე რომ ეთიკაში
შეიძლება უკვე გამოვყოთ საინჟინრო ეთიკა.რაც შეეხება უფრო შორეულ მომავალს, აქ არა
თუ ეთიკა, არამედ თვით ხელოვნური ინტელექტის არსებობა და არარსებობაც კი
გაურკვეველია. იქნებ სჯობია დავუჯეროთ სტივენ ჰოკინგს და შევწყვიტოთ მისი
განვითარება, რადგან თანამედროვე ეთიკის პრინციპებში ნამდვილად არ ჯდება
სუპერინტელექტი.
ან მთლიანად უნდა შეიცვალოს საზოგადოების მორალი, რაც არ ხდება ისე სწრაფად,
როგორც ჩვენ გვინდა.

122

You might also like