Рефлексний агент
Рефлексний агент — інтелектуальний агент, що діє на основі поточного акту сприйняття, ігноруючи всю іншу історію актів сприйняття. Цей термін є одним з фундаментальних в штучному інтелекті.
Найпростішим видом агента є простий рефлексний агент.
Ця стаття містить правописні, лексичні, граматичні, стилістичні або інші мовні помилки, які треба виправити. (грудень 2016) |
Люди використовують велику кількість зв'язків, причому деякі з них являють собою складні відгуки, засвоєні в результаті навчання (як при керуванні автомобіля), а інші є вродженими рефлексами (такими як моргання, яке відбувається при наближенні до ока стороннього предмета).
Загальніший і гнучкіший підхід полягає в тому, щоб спочатку створити інтерпретатор загального призначення для правил умова-дія, а потім визначити набори правил для конкретної проблемного середовища.
На лістингу 1 наведена структура такої спільної програми в схематичній формі й показано, яким чином правила умова-дія дозволяють агенту створити зв'язок від сприйняття до дії. Програма цього агента, яка також є дуже простою, приведена в лістингу 1. Функція Interpret-Input виробляє абстрагований опис поточного стану за результатами сприйняття, а функція Rule-Match повертає перше правило з множини правил, яке відповідає заданому опису стану. Слід зазначити, що наведений тут виклад в термінах «правил» і «відповідностей» є чисто концептуальним; фактичні реалізації можуть бути настільки простими, як сукупність логічних елементів, що реалізують логічну схему.
Лістинг 1. Програма простого рефлексного агента, який діє згідно з правилом, умова якого відповідає поточному стану, який визначається результатом сприйняття
function Simple-Reflex-Agent(percept) returns action static: rules, множина правил умова-дія state ← Interpret-Input(percept) rule ← Rule-Match(state, rules) action ← Rule-Action[rule] return action
Прості рефлексні агенти надзвичайно прості, але досить обмежені в інтелекті. Агент, програма якого наведена в лістингу 2, працює, тільки якщо правильне рішення може бути прийняте на основі виключно поточного сприйняття, інакше кажучи, тільки якщо середовище є повністю спостережуваним.
Найефективніший спосіб організації роботи в умовах часткової спостережуваності полягає в тому, щоб агент відстежував ту частину світу, яка сприймається ним в поточний момент. Це означає, що агент повинен підтримувати внутрішній стан, що залежить від історії актів сприйняття і тому відображає принаймні деякі з не спостережуваних аспектів поточного стану.
Для забезпечення можливості оновлення цієї внутрішньої інформації про стан протягом часу необхідно, щоб в програмі агента були закодовані знання двох видів. По-перше, потрібна певна інформація про те, як середовище змінюється незалежно від агента. По-друге, потрібна певна інформація про те, як впливають на світ власні дії агента.
Ці знання, про те, як реагує середовище називаються моделлю світу. Агент, в якому використовується така модель, називається агентом, заснованим на моделі.
На лістингу 2 наведена структура рефлексного агента, що діє з урахуванням внутрішнього стану, і показано, як поточне сприйняття комбінується з колишнім внутрішнім станом для вироблення оновленого опису поточного стану. Програма такого агента приведена в лістингу 2. В цьому лістингу інтерес представляє функція Update-State, яка відповідає за створення нового опису внутрішнього стану. Ця функція не тільки інтерпретує результати нового сприйняття у світлі існуючих знань про стан, але і використовує інформацію про те, як змінюється середовище, для стеження за невидимими частинами світу, тому повинна враховувати інформацію про те, як дії агента впливають на стан світу.
Лістинг 2. Рефлексний агент, заснований на моделі, який стежить за поточним станом світу з використанням внутрішньої моделі, потім вибирає дію таким же чином, як і простий рефлексний агент
function Reflex-Agent-With-State(percept) returns action static: state, опис поточного стану світу rules, множина правил умова-дія action, остання за часом дія; спочатку не визначено state ← Update-State(state, action, percept) rule ← Rule-Match(state, rules) action ← Rule-Action[rule] return action
Агенту потрібен не тільки опис поточного стану, але і свого роду інформація про мету, яка описує бажані ситуації, такі як, наприклад, доставка пасажира в місце призначення. Програма агента може комбінувати цю інформацію з інформацією про результати можливих дій (з такою ж інформацією, як і та, що використовувалася при оновленні внутрішнього стану рефлексного агента) для вибору дій, що дозволяють досягти цієї мети.
Іноді задача вибору дії на основі мети вирішується просто, коли досягнення мети негайно стає результатом єдиної дії, а іноді ця задача стає складнішою, і агенту потрібно розглянути довгі послідовності дій, щоб знайти спосіб досягнення мети. Підобласті штучного інтелекту, присвячені виробленню послідовності дій, дозволяючи агенту досягти цілі, є пошук та планування.
Станом світу, а також за множиною цілей, які він намагається досягти, і вибирає дію, що дозволяє (в кінцевому підсумку) домогтися досягнення цих цілей.
Слід враховувати, що процедура прийняття рішень такого роду має фундаментальні відмінності від описаної вище процедури застосування правил умова-дія, оскільки в ній доводиться розмірковувати про майбутнє, відповідаючи на два питання: «Що станеться, якщо я зроблю те-то і те-то?» і «Чи дозволить це мені досягти задоволення?». В проєктах рефлексних агентів така інформація не представлена явно, оскільки вбудовані правила встановлюють безпосередню відповідність між сприйняттями й діями.
Хоча на перший погляд здається, що агент, заснований на цілі, менш ефективний, він є гнучкішим, оскільки знання, на які спираються його рішення, представлені явно і можуть бути модифіковані.
Оскільки поняття «задоволеності» не є зовсім науковим, частіше застосовується термінологія, згідно з якою стан світу більш детально визначений в порівнянні з іншим, розглядається як той, що має вищу корисність для агента.
Стан світу використовується поряд з функцією корисності, яка вимірює переваги агента стосовно станів світу. Потім агент вибирає дію, яка веде до найкращої очікуваної корисності. Для обчислення очікуваної корисності виконується усереднення по всіх можливих результуючих станах з урахуванням коефіцієнта, що визначає ймовірність кожного результату.
Функція корисності відображає стан (або послідовність станів) на вагове число, яке позначає відповідний ступінь задоволеності агента. Повна специфікація функції корисності забезпечує можливість приймати раціональні рішення в описаних нижче двох випадках, коли цього не дозволяють зробити цілі.
По-перше, якщо є конфліктуючі цілі, такі, що можуть бути досягнуті тільки деякі з них, то функція корисності дозволяє знайти прийнятний компроміс. По-друге, якщо є декілька цілей до яких може прагнути агент, але жодна з них не може бути досягнута з усією визначеністю, то функція корисності надає зручний спосіб зваженої оцінки ймовірності успіху з урахуванням важливості цілей.
Прості рефлексні агенти відповідають безпосередньо на акти сприйняття, тоді як рефлексні агенти, засновані на моделі, підтримують внутрішній стан, слідкуючи за тими аспектами середовища, котрі не прослідковуються в поточному акті сприйняття. Агенти, які діють на основі цілі, організують свої дії так, щоб досягнути своїх цілей. Агенти, які діють з урахуванням корисності, роблять спроби максимізувати свою очікувану «задоволеність».
- С. Рассел, П. Норвіг «Штучний інтелект: сучасний підхід»