КАТЕГОРИИ: Архитектура-(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) |
Самостійне проектування
Резюме Абс_разн(X, X1, Рх), абс_разн(Y, Y1, Ру), P is Рх + Ру. Расст(X: Y, X1: Y1, Р):- % Відстань до короля абс_разн(X, X1, Рх),абс_разн(Y, Y1, Ру),макс(Рх, Ру, Р). L_конфиг(_..Б..Л..Ч.._):- % L - конфігурація манх_расст(Б, Ч, 2),манх_расст(Л, Ч, 3). Расст_до_клетки(Поз, Мрасст):- % Манхеттенська відстань бк(Поз, БК), % між БК і критичною кліткою кк(Поз, КК), % Критична клітка манх_расст(БК, КК, Мрасст). Пат(Поз):- чей_ход(Поз, ч),not шах(Поз),not разрход(Поз, _, _). Мат(Поз):- чей_ход(Поз, ч), шах(Поз),not разрход(Поз, _, _). Любая_поз(Поз). Коорд(5). коорд(6). коорд(7). коорд(8). Коорд(1). коорд(2). коорд(3). коорд(4). Мешает(X: Y1, X: Y2, X: Y3):-упоряд(Y1, Y2, Y3). Мешает(X1: Y, X2: Y, Х3: Y):-упоряд(X1, Х2, Х3),!. Мешает(S, S1, S1):-!. Разрход(Поз, Ход, Поз1):-ход(разреш, Поз, Ход, Поз1). Ход(разреш, ч..Б..Л..Ч..Г, Ч-Ч1, б..Б..Л..Ч1..Г1):-Г1 is Г + 1,сосед(Ч, Ч1),not шах(б..Б..Л..Ч1..Г1). шах(_..Б..Лх: Лу..Чх: Чу.._):- упоряд(N1, N2, N3):-
% Предикати цілей ход_противника(б.._). % Супротивник ходить білими уменьш_простр(Поз, КорнПоз):- ладья_под_боем(ЧейХод..Б..Л..Ч.._):- ближе_к_клетке(Поз, КорнПоз):- раздел(_..Бх: Бу..Лх: Лу.. Чх: Чу.._):- не дальше_от_ладьи(_..Б..Л.._, _..Б1..Л1.._):- простр_больше_2(Поз):- простр(Поз, Пр), Пр > 2. наш_король_на_краю(_..Х: Y.._):- король_противника_на_краю(_..Б..Л..Х: Y.._):- короли_рядом(Поз):- %Відстань між королями < 4 потеря_ладьи(_..Б..Л..Л.._). % Тура взята потеря_ладьи(ч..Б..Л..Ч.._):- абс_разн(А, В, С):- А > В,!, С is A - В; С is В - А. макс(А, В, М):-А >= В,!, М = А;М = В. манх_расст(X: Y, X1: Y1, Р):- % Манхеттенська відстань простр(Поз, Пр):- кк(_..Б..Лх: Лу.. Чх: Чу.._, Кх: Ку):-
% Процедуры для відображення позицій отобр(Поз):- отобр(Поз):- печ_фиг(Клетка, Поз):- показать_ход(Ход):- nl, write(Ход), nl. § Ігри двох осіб піддаються формалізації у формі І/Або-графів. Тому процедури пошуку в І/Або-графах застосовні для пошуку в ігрових деревах. § Простий алгоритм пошуку вглиб в ігрових деревах легко програмується, але для ігор, що представляють інтерес, він не ефективний. Більш реалістичний підхід - мінімаксний принцип у комбінації з оцінюючою функцією й пошуком, обмеженим по глибині. § Альфа-бета алгоритм є ефективною реалізацією мінімаксного принципу. Ефективність альфа-бета алгоритму залежить від порядку, у якому проглядаються варіанти ходів. Застосування альфа-бета алгоритму, у найкращому разі, зменшує коефіцієнт розгалуження дерева пошуку до значення, що є коренем квадратним від коефіцієнта розгалуження мінімаксного дерева пошуку. § В альфа-бета алгоритм можна внести ряд удосконалень. Серед них: o продовження пошуку за межі обмеження по глибині аж до спокійних позицій, o послідовне поглиблення й o евристичне відсікання гілок. § Числова оцінка позицій є досить обмеженою формою подання знань про конкретну гру. Більш змістовний за своїми можливостями метод подання знань має передбачати внесення в програму знань про типові ситуації. Мова порад (Advice Language) реалізує такий підхід. На цій мові знання представляються в термінах цілей і засобів для їхнього досягнення. § У даній главі подано наступні програми: програмна реалізація мінімаксного принципу і альфа-бета процедури, інтерпретатор мови AL0 і таблиця порад для ендшпілю "король і тура проти короля". § Були введені й обговорені наступні поняття: ігри двох осіб з повною інформацією ігрові дерева оцінююча функція, мінімаксний принцип статичні оцінки, робочі оцінки альфа-бета алгоритм послідовне заглиблення, евристичне відсікання, евристики для виявлення спокійних позицій Мови порад цілі, обмеження, елементарні поради, таблиця порад
1. Напишіть програму для якої-небудь простої гри (такої, як ним), що використає спрощений алгоритм пошуку в І/Або-дереві. 2. Розгляньте яку-небудь гру двох осіб (наприклад, який-небудь нетривіальний варіант хрестиків-нуликів). Напишіть відношення, що задають правила цієї гри (дозволені ходи й термінальні позиції). Запропонуйте статичну оцінюючу функцію, придатну для використання в ігровій програмі, заснованій на альфа-бета алгоритмі. 3. Розгляньте який-небудь інший простий ендшпіль, наприклад "король і пішак проти короля", і напишіть для нього програму мовою AL0 (разом з визначеннями відповідних предикатів).
Дата добавления: 2014-01-04; Просмотров: 283; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |