21 октомври 2008

Ситуирани агенти

"Ситуиран агент" е контролер, разположен в динамична, сложна и относително неструктурирана среда. Ситуирани агенти могат да бъдат хардуер или софтуер( или и двете). Софтуерът се включва почти винаги, а хардуер е необходим , ако средата е физична. В такива случаи хардуерът има ролята на интерфейс, въпреки че може и да участва в изчисленията. Типичните хардуерни ситуирани агенти включват подвижни роботи , автономни подводници, интелигентни стаи и други подобни.

Чисто софтуерни ситуирани агенти се намират във виртуалните светове. Средата на софтуерно базираните ситуирани агенти е логическа, а не физическа. Интерфейсът се състои от комуникациоони интерфейси на логическата среда, кочто е динамична, непредвидима, голяма и сложна. Ситуираните софтуерни агенти включват балансьори на натоварването в телефонните мрежи и витруалните характери в игрите.

По принцип агентите се опитват да постигнат няколко цели чрез взаимодействие с околната среда чрез техните сензори и манипулатори. Често целите са конкурентни една на друга и агентът трябва сам да решава конфликтите. Това е трудна задача. Сложната и динамична природа на средата определя ,че агентът:

  • Няма пълен контрол върху средата.
  • Няма капацитет за изграждане на пълен модел на средата.

  • Не притежава пълна информация за средата.

  • Не може напълно да вярва на информацията , която има, защото тя е неопределена, неточна, стара или съдържа шум .
Агентът трябва да действа последователно за постигане на целта си, неговите действия трябва го водят постепенно до целта ( например мобилен робот да достигне определено положение в средата). От друга страна агентът трябва да реагира адекватно на неочаквани събития, които се случват в средата( например ако се появи неочаквано препятствие по пътя на робота). Но обикновенно е невъзможно да се изградят правила за противоречиви цели като тези ако няма идеални познания и планиране. За разрешаване на този проблем дизайнерите на ситуирани системи трябва да имат инструменти за представяне на реактивни правила като последователни действия в тяхните планове.

Обикновенно ситуираните агенти нямат цялата информация, от която се нуждаят, затова те трябва да действат за събиране на информация( като противоположност на действия за достигане на първоначалните цели).

И на последно място използването на инструкции в зависимост от ситуацията включва проверяване дали прилагането на тези инструкции има смисъл ( заюитена интерпретация) и как те се вписват в текущата ситуация( контекстно зависима интерпретация).

Тези проблеми получиха необходимата доза интерес след изместването на фокуса от създаването на нетелесни мозъци( например шахматни програми) към създаването на по-предметни форми на интелект. Ефектът от тази промяна е, че някои области от ИИ се препокриват с апекти от програмирането на embed системи.

В много области се прилагат и тестват техники от дизайна на ситуираните агенти. Вероятно най- познатата област е тази на подвижните роботи. Марсоходът на NASA е най- обсъжданият (полуавтономен) ситуиран агент. Но има и много по-земни приложения- балансиране на натоварване на мрежа, интелигентни стаи, интелигентни изкуствени създания за виртуални светове и много други.

В тази статия ще покажа подход за програмиране на реактивни ситуирани агенти, който е азирана на паралелни функционални дървета с решения. В процеса на работа ще представя библиотеката на C++ "InSitu" и система за ситуирани агенти , които се справят с изложените по-горе проблеми и изисквания.

В моя подход при проблема за програмиране на реактивни ситуирани агенти първо създадох реактивна система на C++ и след това създадох C++ класове за добавяне на функционалност за последователност, активни възприятия и използване на ситуирани инструкции. Резултатът беше InSitu. Повечето среди за embed системи са проектирани по друг начин - те изпозват последователен програмен език ( като C++) и добавят нишки, прекъсвания и обработка на събития за достигане на реактивност .


Рене е доктор по компютърни науки в лабораторията по Изкуствен Интелект в Цюрихския университет, Швейцария.

Няма коментари:

Публикуване на коментар