Чисто софтуерни ситуирани агенти се намират във виртуалните светове. Средата на софтуерно базираните ситуирани агенти е логическа, а не физическа. Интерфейсът се състои от комуникациоони интерфейси на логическата среда, кочто е динамична, непредвидима, голяма и сложна. Ситуираните софтуерни агенти включват балансьори на натоварването в телефонните мрежи и витруалните характери в игрите.
По принцип агентите се опитват да постигнат няколко цели чрез взаимодействие с околната среда чрез техните сензори и манипулатори. Често целите са конкурентни една на друга и агентът трябва сам да решава конфликтите. Това е трудна задача. Сложната и динамична природа на средата определя ,че агентът:
- Няма пълен контрол върху средата.
- Няма капацитет за изграждане на пълен модел на средата.
- Не притежава пълна информация за средата.
- Не може напълно да вярва на информацията , която има, защото тя е неопределена, неточна, стара или съдържа шум .
Обикновенно ситуираните агенти нямат цялата информация, от която се нуждаят, затова те трябва да действат за събиране на информация( като противоположност на действия за достигане на първоначалните цели).
И на последно място използването на инструкции в зависимост от ситуацията включва проверяване дали прилагането на тези инструкции има смисъл ( заюитена интерпретация) и как те се вписват в текущата ситуация( контекстно зависима интерпретация).
Тези проблеми получиха необходимата доза интерес след изместването на фокуса от създаването на нетелесни мозъци( например шахматни програми) към създаването на по-предметни форми на интелект. Ефектът от тази промяна е, че някои области от ИИ се препокриват с апекти от програмирането на embed системи.
В много области се прилагат и тестват техники от дизайна на ситуираните агенти. Вероятно най- познатата област е тази на подвижните роботи. Марсоходът на NASA е най- обсъжданият (полуавтономен) ситуиран агент. Но има и много по-земни приложения- балансиране на натоварване на мрежа, интелигентни стаи, интелигентни изкуствени създания за виртуални светове и много други.
В тази статия ще покажа подход за програмиране на реактивни ситуирани агенти, който е азирана на паралелни функционални дървета с решения. В процеса на работа ще представя библиотеката на C++ "InSitu" и система за ситуирани агенти , които се справят с изложените по-горе проблеми и изисквания.
В моя подход при проблема за програмиране на реактивни ситуирани агенти първо създадох реактивна система на C++ и след това създадох C++ класове за добавяне на функционалност за последователност, активни възприятия и използване на ситуирани инструкции. Резултатът беше InSitu. Повечето среди за embed системи са проектирани по друг начин - те изпозват последователен програмен език ( като C++) и добавят нишки, прекъсвания и обработка на събития за достигане на реактивност .
Рене е доктор по компютърни науки в лабораторията по Изкуствен Интелект в Цюрихския университет, Швейцария.
Няма коментари:
Публикуване на коментар