Вход

Логический подход к построению систем ИИ. Основные стратегии решения задач (Пролог )

Рекомендуемая категория для самостоятельной подготовки:
Решение задач*
Код 302547
Дата создания 06 октября 2013
Страниц 5
Покупка готовых работ временно недоступна.
480руб.

Описание

Имеется произвольное число кубиков, из которых составлены столбики – один или несколько. Максимальное число столбиков ограничено. На каждом шагу разрешается переставлять только один кубик. Кубик можно взять только тогда, когда его верхняя поверхность свободна. Кубик можно поставить либо на стол, либо на другой кубик. Целевая ситуация – любая конфигурация кубиков, содержащая столбик составленный из всех имеющихся кубиков в указанном порядке.
1. Конкретизируйте условие задачи: кол-во кубиков, кол-во столбиков, начальное и конечное положение кубиков.
2. Изобразите пространство состояний данной задачи.
3. Реализуйте на языке Пролог процедуры поиска в глубину, сочетающие в себе обнаружение циклов с ограничением глубины в пространстве состояний.
4. Напишите процедуру для отображения ...

Содержание

блок-схема, программа

Введение

Имеется произвольное число кубиков, из которых составлены столбики – один или несколько. Максимальное число столбиков ограничено. На каждом шагу разрешается переставлять только один кубик. Кубик можно взять только тогда, когда его верхняя поверхность свободна. Кубик можно поставить либо на стол, либо на другой кубик. Целевая ситуация – любая конфигурация кубиков, содержащая столбик составленный из всех имеющихся кубиков в указанном порядке.
1. Конкретизируйте условие задачи: кол-во кубиков, кол-во столбиков, начальное и конечное положение кубиков.
2. Изобразите пространство состояний данной задачи.
3. Реализуйте на языке Пролог процедуры поиска в глубину, сочетающие в себе обнаружение циклов с ограничением глубины в пространстве состояний.
4. Напишите процедуру для отображен ия на экране состояния задачи.

Алгоритм: когда алгоритму поиска в глубину надлежит выбрать из нескольких вершин ту, в которую следует перейти для продолжения поиска, он предпочитает самую глубокую из них. Самая глубокая вершина - та, которая расположена дальше других от стартовой вершины.
Поиск в глубину наиболее адекватен рекурсивному стилю программирования, принятому в Прологе. Обрабатывая цели Пролог - система сама просматривает альтернативы именно в глубину.
Описанная процедура поиска в глубину страдает одним серьезным недостатком - она не работает в пространстве состояний, имеющем циклы.
Механизм обнаружения циклов: Ни одну из вершин, уже содержащихся в пути, построенном из стартовой вершины в текущую, не следует вторично рассматривать в качестве возможной альтернативы продолжения поиска.

Фрагмент работы для ознакомления

4. Напишите процедуру для отображения на экране состояния задачи.Алгоритм: когда алгоритму поиска в глубину надлежит выбрать из нескольких вершин ту, в которую следует перейти для продолжения поиска, он предпочитает самую глубокую из них. Самая глубокая вершина - та, которая расположена дальше других от стартовой вершины.          Поиск в глубину наиболее адекватен рекурсивному стилю программирования, принятому в Прологе. Обрабатывая цели Пролог - система сама просматривает альтернативы именно в глубину.          Описанная процедура поиска в глубину страдает одним серьезным недостатком - она не работает в пространстве состояний, имеющем циклы.         Механизм обнаружения циклов: Ни одну из вершин, уже содержащихся в пути, построенном из стартовой вершины в текущую, не следует вторичнорассматривать в качестве возможной альтернативы продолжения поиска.Пространство состояний данной задачи:Программа:domainslist=symbol*.structure=st(list,list,list).superlist=structure*.predicatesafter(structure,structure).alternativanie_sostojanija(structure,structure).member(structure,superlist).conc(superlist,superlist,superlist).find(structure,structure,integer,superlist).goalmakewindow(1,8,10,"Kubiki-YRA,RABOTAET!!!",0,0,25,80),write("Start statement:"),nl,Readln(X1),Readln(Y1),Readln(Z1),Write("End statement:"),nl,Readln(X2),Readln(Y2),Readln(Z2),Write("Vvedite glybiny poiska:"),Readint(R1),Write("* * * * * *"),nl,find(st([X1,Y1,Z1],[],[]),st([],[X2,Y2,Z2],[]),R1,[]).clausesafter(st([X|L],Y,Z),st(L,[X|Y],Z)).after(st([X|L],Y,Z),st(L,Y,[X|Z])).after(st(X,[Y|L],Z),st([Y|X],L,Z)).after(st(X,[Y|L],Z),st(X,L,[Y|Z])).after(st(X,Y,[Z|L]),st([Z|X],Y,L)).after(st(X,Y,[Z|L]),st(X,[Z|Y],L)).alternativanie_sostojanija(st(X,Y,Z),st(X,Y,Z)).alternativanie_sostojanija(st(X,Y,Z),st(X,Z,Y)).alternativanie_sostojanija(st(X,Y,Z),st(Y,X,Z)).alternativanie_sostojanija(st(X,Y,Z),st(Y,Z,X)).alternativanie_sostojanija(st(X,Y,Z),st(Z,X,Y)).alternativanie_sostojanija(st(X,Y,Z),st(Z,Y,X)).member(_,[]):-fail.member(State,[Head|_]):-alternativanie_sostojanija(State,Head).

Список литературы

сама делала
Очень похожие работы
Найти ещё больше
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00332
© Рефератбанк, 2002 - 2024