КАТЕГОРИИ: Архитектура-(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) |
Проблема зебри
Ogr1(A,D,B,V,G),ogr2(A,D,B,V,G). Not(norm3(A,D,B,V,G)),not(norm4(A,D,B,V,G)), Not(norm1(A,D,B,V,G)),not(norm2(A,D,B,V,G)), St_A(A),st_D(D),st_B(B),st_V(V),st_G(G), St_A(A),st_D(D),st_B(B),st_V(V),st_G(G), St_A(A),st_D(D),st_B(B),st_V(V),st_G(G), St_A(A),st_D(D),st_B(B),st_V(V),st_G(G), Norm3(_,dmitri,net,net,_). norm4(_,net,net,victor,grig). Norm1(andre,dmitri,net,_,_). norm2(andre,net,boris,net,_). Ogr2(_,dmitri,_,_,net). ogr2(_,net,_,_,_). Ogr1(andre,_,_,net,_). ogr1(net,_,_,victor,_). Norm3(s,s,s,s,s) norm4(s,s,s,s,s) Norm1(s,s,s,s,s) norm2(s,s,s,s,s) Spisok(s,s,s,s,s) Ogr1(s,s,s,s,s) ogr2(s,s,s,s,s) St_A(s) st_D(s) st_B(s) st_V(s) st_G(s) CLAUSES st_A(A):-A=andre; A=net. st_D(D):-D=dmitri; D=net. st_B(B):-B=boris; B=net. st_V(V):-V=victor; V=net. st_G(G):-G=grig; G=net.
spisok(A,D,B,V,G):-st_A(A),st_D(D),st_B(B),st_V(V),st_G(G), norm1(A,D,B,V,G),ogr1(A,D,B,V,G),ogr2(A,D,B,V,G); norm2(A,D,B,V,G),ogr1(A,D,B,V,G),ogr2(A,D,B,V,G); norm3(A,D,B,V,G),ogr1(A,D,B,V,G),ogr2(A,D,B,V,G); norm4(A,D,B,V,G),ogr1(A,D,B,V,G),ogr2(A,D,B,V,G);
Можливо, може бути сформульоване більш витончене програмне рішення, чим наведене. При його пошуку можна переконатись, що в подібних випадках дуже велике значення має вибір предикатів і правил, які можуть визначатися по-різному. При невдалому виборі правил можна одержати невірні рішення або вичерпати ресурси комп'ютера вкладеними викликами правил. 10. Проблема мешканців острова Постановка задачі. На деякому острові живуть: § "лицарі", які завжди горять правду, § "брехуни", які завжди брешуть, і § нормальні люди, які іноді брешуть, іноді говорять правду. Троє мешканців острова А, В і С, серед яких є лицар, брехун і нормальна людина, висловлюють наступні твердження: 1) А каже: "Я нормальна людина". 2) В каже: "Це правда". 3) С каже: "Я не нормальна людина". Хто ж такі А, В і С?
men(M):- M="knіght"; M="lear"; M="normal". % лицар, брехун, нормальна людина
people(A,B,C):-men(A),men(B),A=\=B,men(C),A=\=C,B=\=C.
say1(A):- A="normal". say3(C):- C=\="normal".
checkА(A):-A="knіght",say1(A);A="lear",not(say1(A)); A="normal". checkВ(A,B):-B="knіght",say1(A);B="lear",not(say1(A)); B="normal". checkС(C):-C="knіght",say3(C); C="lear", not(say3(C)); C="normal".
check(A,B,C):-рeopl(A,B,C),checkА(A),checkВ(A,B),checkС(C).
goal ?-check(A,B,C),wrіte([A,B,C]).
Відповідь: [lear,normal,knіght] Постановка задачі. П'ять людей різної національності живуть у п'ятьох перших будинках однієї з вулиць. Вони є представниками п'яти різних професій, і в кожного є свої улюблені напої й тварини, серед яких нема повторюваних. Дома, у яких вони живуть, пофарбовані в різні кольори. Відомо, що: · англієць живе в червоному будинку; · в іспанця є собака; · японець є художником; · італієць п'є чай; · норвежець живе в першому будинку ліворуч; · власник зеленого будинку п'є каву; · зелений будинок розташований праворуч від білого; · скульптор розводить равликів; · дипломат живе в жовтому будинку; · у будинку посередині п'ють молоко; · норвежець живе поруч із блакитним будинком; · скрипаль п'є фруктові соки; · лиса тримають у будинку, сусідньому з будинком лікаря; · коня тримають по сусідству з будинком дипломата. Необхідно визначити, хто тримає зебру, і хто п'є воду.
Рішення Generate-and-Test Стан задачі: L = [Colours,Drinks,Nationalities,Professions,Pets] Colours = [ blue:1, yellow:2, …] … solve([Colours,Drinks,Nationalities,Professions,Pets]):- generate([Colours,Drinks,Nationalities,Professions,Pets]),
Дата добавления: 2014-01-04; Просмотров: 273; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |