სხვა AI ტექნიკები 8 წთ კითხვა

მრავალ აგენტური სისტემები

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

სალექციო ვიქტორინა

Multi-Agent Systems მიმართულება AI-ში გაჩნდა 1990-იან წლებში, როგორც პასუხი ინტერნეტისა და განაწილებული სისტემების ზრდაზე. კლასიკური AIს სახელმძღვანელოებიდან, AI: თანამედროვე მიდგომა, ყურადღებას ამახვილებს კლასიკური AIს ხედვაზე მრავალ აგენტური სისტემების თვალსაზრისით.

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

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

მრავალ აგენტური სისტემები დღესდღეობით გამოიყენება მთელ რიგ აპლიკაციებში:

  • თამაშებში ბევრი არამოთამაშის პერსონაჟი იყენებს რაღაც AI-ს და შეიძლება ჩაითვალოს ინტელექტუალურ აგენტებად
  • ვიდეო წარმოებაში, რთული 3D სცენების გადაღება, რომელიც მოიცავს ხალხმრავლობას, ჩვეულებრივ ხდება მრავალ აგენტიანი სიმულაციის გამოყენებით
  • სისტემების მოდელირებაში, მრავალ აგენტური მიდგომა გამოიყენება რთული მოდელის ქცევის სიმულაციისთვის. მაგალითად, მრავალ აგენტური მიდგომა წარმატებით იქნა გამოყენებული მსოფლიოში COVID-19 დაავადების გავრცელების პროგნოზირებისთვის. მსგავსი მიდგომა შეიძლება გამოყენებულ იქნას ქალაქში მოძრაობის მოდელირებისთვის და ვნახოთ, როგორ რეაგირებს იგი მოძრაობის წესების ცვლილებებზე.
  • კომპლექსურ ავტომატიზაციის სისტემებში, თითოეულ მოწყობილობას შეუძლია იმოქმედოს როგორც დამოუკიდებელი აგენტი, რაც მთელ სისტემას ხდის ნაკლებად მონოლითურს და უფრო გამძლეს.

ჩვენ დიდ დროს არ დავხარჯავთ მრავალ აგენტურ სისტემებში ღრმად ჩასვლაში, მაგრამ განვიხილოთ მრავალაგენტური მოდელირების ერთი მაგალითი.

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

NetLogo-ში ჩვენ შეგვიძლია შევქმნათ ბევრი კუ create-turtles ბრძანების გამოყენებით. შემდეგ ჩვენ შეგვიძლია ვუბრძანოთ ყველა კუს გარკვეული მოქმედებების შესრულება (ქვემოთ მოცემულ მაგალითში - მეტი 10 ქულა წინ):

იტვირთება…

რა თქმა უნდა, საინტერესო არ არის, როდესაც ყველა კუ ერთსა და იმავეს აკეთებს, ასე რომ, ჩვენ შეგვიძლია ask კუს ჯგუფი, მაგ. ისინი, ვინც გარკვეული პუნქტის სიახლოვეს არიან. ჩვენ ასევე შეგვიძლია შევქმნათ სხვადასხვა ჯიშის კუები breed [cats cat] ბრძანების გამოყენებით. აქ cat არის ჯიშის სახელი და ჩვენ უნდა მივუთითოთ როგორც მხოლობითი, ასევე მრავლობითი სიტყვა, რადგან სხვადასხვა ბრძანებები სიცხადისთვის სხვადასხვა ფორმებს იყენებენ.

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

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

მოდელების ბიბლიოთეკა

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

NetLogo Models Library

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

შეგიძლიათ გახსნათ ერთ-ერთი მოდელი, მაგალითად ბიოლოგია → ფლოკინგი.

ძირითადი პრინციპები

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

NetLogo Main Screen

სკრინშოტი დიმიტრი სოშნიკოვის მიერ

ამ ეკრანზე შეგიძლიათ იხილოთ:

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

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

იტვირთება…

NetLogo-ს სამყარო შედგება შემდეგი ობიექტებისგან:

  • აგენტები (კუს), რომლებსაც შეუძლიათ მოედანზე გადაადგილება და რაღაცის გაკეთება. თქვენ ბრძანებთ აგენტებს ask turtles [...] სინტაქსის გამოყენებით, ხოლო ფრჩხილებში მოცემული კოდი შესრულებულია ყველა აგენტის მიერ კუს რეჟიმში.
  • პატჩები არის ველის კვადრატული უბნები, რომლებზეც აგენტები ცხოვრობენ. თქვენ შეგიძლიათ მიმართოთ ყველა აგენტს იმავე პაჩზე, ან შეგიძლიათ შეცვალოთ პაჩის ფერები და სხვა თვისებები. თქვენ ასევე შეგიძლიათ ask patches რაიმეს გაკეთება.
  • დამკვირვებელი უნიკალური აგენტია, რომელიც აკონტროლებს სამყაროს. ღილაკების ყველა დამმუშავებელი შესრულებულია დამკვირვებლის რეჟიმში.

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

ფლოკინგი

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

  • Alignment - ის მიმართულია მეზობელი აგენტების საშუალო მიმართულებისკენ
  • თანმიმდევრულობა - ის ცდილობს მიმართოს მეზობლების საშუალო პოზიციისკენ (შორ მანძილზე ატრაქციონი)
  • განცალკევება - სხვა ფრინველებთან ძალიან მიახლოებისას ის ცდილობს დაშორდეს (მოკლე დიაპაზონის მოგერიება)

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

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

სხვა მოდელები სანახავად

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

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

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

სათათბირო აგენტები

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

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

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

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

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

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

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

დასკვნა

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

გამოწვევა

გადაიტანეთ ეს გაკვეთილი რეალურ სამყაროში და შეეცადეთ წარმოადგინოთ მრავალ აგენტიანი სისტემა, რომელსაც შეუძლია პრობლემის გადაჭრა. მაგალითად, რა უნდა გააკეთოს მრავალ აგენტიან სისტემას სასკოლო ავტობუსის მარშრუტის ოპტიმიზაციისთვის? როგორ შეიძლება ის მუშაობდეს თონეში?

ლექციის შემდგომი ვიქტორინა

მიმოხილვა და თვითშესწავლა

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

ეს გაკვეთილი არის Microsoft “AI for Beginners” კურსის ქართული თარგმანი, გავრცელებული MIT ლიცენზიით.