КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Проблема мавпи
Ця задача відноситься до задач пошуку в просторі станів. Вона широко відома у штучному інтелекті й часто використовується для ілюстрації задач моделювання поведінки об'єктів. Уперше задача була запропонована Дж.Маккарти в 1963 році й звучить вона в такий спосіб. Постановка задачі. § Біля дверей кімнати стоїть мавпа. § У середині цієї кімнати до стелі підвішений банан. § Мавпа голодна й хоче з'їсти банан, однак не може дотягтись до нього, перебуваючи на підлозі. § Біля вікна цієї ж кімнати на підлозі лежить ящик, яким мавпа може скористатись. § Мавпа може вживати наступні дії: o ходити по підлозі, o залазити на ящик, o пересувати ящик (якщо вже перебуває біля нього), o схопити банан, якщо стоїть на ящику під бананом.
Чи може мавпа добратись до банана? У більш загальному випадку ця задача може вважатись як задача визначення поведінки самоврядного об'єкта, перед яким поставлено завдання й описана поточна ситуація Задача "про мавпу і банани" була однією з перших, використаних у тестуваннях універсального вирішувача задач GPS (General Problem Solver). Вказівки до рішення задачі. Простір станів задачі можна описати структурою state(ПоложенняМавпи_В_Кімнаті, % значення: двері, вікно, середина МавпаНаЯщикуАбо_Ні, % значення: ящик, підлога ПоложенняЯщикаВ_Кімнаті, % значення: двері, вікно, середина МаєЧиНеМаєБанан) % значення: так, ні
Існує 4 типи ходів: 1) схопити банан - якщо мавпа на ящику в середині кімнати й не має банана; 2) залізти на ящик, якщо мавпа перебуває на підлозі, поруч із ящиком; 3) підсунути ящик з одного дозволеного місця на інше, якщо мавпа на підлозі поруч із ящиком; 4) перейти по підлозі з одного дозволеного місця на інше. Початковий стан: state('двері','підлога','вікно','ні') - мавпа біля дверей на підлозі, ящик біля вікна, банана у мавпи нема. Кінцевий стан: state(_,_,_,'так') – банан у мавпи.
Вихідний код програми «пошук вшир»: ?- width_search(state(door,floor,window,no),state(_,_,_,yes)). %перші 4 можливі кроки: від дверей чи вікна в середину % і навпаки % якщо мавпа поряд із ящиком, то може залізти на нього % якщо мавпа на підлозі поряд із ящиком, то може його % пересунути %якщо мавпа в середині на ящику і ще не має банан, то може %його схопити % для виводу стану в словесній формі print_station(state(A,B,C,D)):-write('мавпа стоїть'),
% перевірка, чи не входить стан у вже пройдений шлях, щоб %запобігти зацикленню width_search(Start, Result):- width([[Start]], Result),!. % якщо результат отримано, то кінець пошуку і вивід відповіді width([[Result | Way ]|_], Result):- reverse([Result|Way], RWay),print_way(RWay).
% поточного, додаємо у список шляхів новий шлях вже з % урахуванням нового стану і рекурсивно викликаємо пошук. %Предикат setof(X, P, L) породжує список L об'єктів X, що %задовольняють Р.
proverka(Temp,Next,Way), A),
Дата добавления: 2014-01-04; Просмотров: 269; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |