In(0,0) ÙFacing(north) ÙØDirt(0,0)àDo(forward) (1.2)
In(0,1) ÙFacing(north) ÙØDirt(0,1)àDo(forward) (1.3)
In(0,2) ÙFacing(north) ÙØDirt(0,2)àDo(turn) (1.4)
In(0,2) ÙFacing(east) àDo(forward) (1.5)
Заметьте, что в каждом правиле мы должны явно проверять не выполняется ли предшествующая часть правила (1.1). Это делается для того, чтобы быть уверенным, что мы всегда назначаем только одно действие через предикат Do(…). Похожие правила могут быть просто выведены для случая, когда агент достигает (2,2) и когда один раз к от (2,2) к (0,0). Нетрудно увидеть, что эти правила совместно с функцией next вырабатывают требуемое поведение нашего агента.
В этом месте стоит вернуться назад и рассмотреть pragmatics (догмы?) подхода к построению агентов, основанного на логике. Вероятно, самым важным моментом является то, что исходная попытка буквально построить агента этим способом, будет в тои или иной степени полностью непрактичной. Чтобы понять почему, предположим, что мы построили набор правил агента r такого, что для любой базы данных D, если мы можем доказать Do(a), то тогда a является оптимальным действием, т.е. a это наилучшее действие, которое может быть выполнено при том состоянии окружения, как описано в D. Теперь представим, что мы запускаем нашего агента. В момент t1 агент выработал некую базу данных D1 и начинает применять свои правила r для того, чтобы найти какое действие выполнить. Через некоторое время в момент t2 ему удается вывести
для некоторого aÌA и, таким образом, что a является оптимальным действием, которое агент может выполнить на момент t1. Но если окружение изменилось между t1и t2, то нет никакой гарантии что a все еще оптимально. Оно может быть далеко от оптимального, особенно если прошло много времени между t1 и t2. Если t2-t1 бесконечно мало т.е. принятие решения происходит практически мгновенно, то мы можем с уверенностью не обращать внимание на эту проблему. Но на самом деле мы знаем, что принятие решения о типе наших агентов, основанных на логике, будет каким угодно, но не мгновенным. (Если наш агент использует классическую логику предикатов первого порядка для представления окружения и его правила полные и законченные, тогда нет никакой гарантии, что процедура принятия решения когда-либо будет прерываться). Говориться, что агент обладает свойством вычислительной рациональности в случае и только в этом случае, если его блок принятия решения предлагает действие, которое было оптимально на момент начало процесса принятия решения. Ясно, что вычислительная рациональность не приемлема в окружении, которое меняется быстрее, чем агент может принять решение – мы вернемся к этому позже.
Можно возразить, что эта проблема является артефактом чистого логического подхода принятого здесь. В этом есть доля правды. Уходя от языков представляющих жесткую логику и состоящих из законченных наборов дедуктивных правил, можно построить агентов, которые обладают приемлемыми характеристиками. Но в этом случае мы также теряем спорное наибольшее преимущество логического подхода: простую элегантную семантику.
Есть еще несколько проблем, связанных с логическим подходом к организации. Первая, функция see агента (компонента восприятия) отображает его окружения на восприятие. В случае агента основанного на логике это очувствление будет скорее символическим: обычно это набор формул в языке представления агента. Но для многих окружений это не очевидно как отобразить окружение на символьное восприятие. Например, проблема преобразования изображения к набору декларативных утверждений представляющих изображение является предметом обучения AI в течение десятилетий и до сих пор открыта. Другая проблема заключается в том, что свойства, представляющие динамическое окружение реального мира, крайне сложны. Для примера, выработать представление и заключения о временной информации – как ситуация изменяется во времени – оказываются на деле крайне сложно. Наконец, как показывает простой пример вакуумного мира, представление это скорее простое процедурное знание (т.е. знание «что делать») в традиционной логике может быть скорее не интуитивным и громоздким.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.