Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.222.35.77] |
|
Сообщ.
#1
,
|
|
|
Помогите!!!!! Срочно нужна програмка поиска в гафе с заданием вида поиска (в глубину или в ширину)!!!!! ??? :'(
Вот полное условие : /* search(a,end,graph,'bredth-first',P) 1. Define a predicate search(+Start,+EndP,+Expand,+Strategy,-Path) which implements a problem independent search algorithm. Expand should be the name of a predicate expand(+N,-SL) which computes the list of successors SL of a node N. EndP should be a predicate which is true on a target node. Use the so called univ opretator '=..' for dynamicly constructing a goal: ... G =.. [EndP,State], G ... constructs the goal 'EndP(State)' and proves it, if the value of EndP ist a predicate name.(the first element of the list becomes the predicate name, all the other elements become arguments.) Strategy may have values 'depth-first' und 'breadth-first' using the corresponding search strategy. Try to minimize strategy dependent parts in the program code: Use an agende (list of tasks) which contains all currently constructed partial pathes which must be expanded to search for a solution. Restrict the effect of different strategies to the way of handling this agenda Test the program with the following graph: (start node: a , target node g) */ /* d--- ^ \ | \ | v a---->c---->f | ^ | | | | v | v b---->i<----g |\ ^ | \ | | \ | | ->h<-- | \ v | e---->k | | | | v v / j---->l--- */ |
Сообщ.
#2
,
|
|
|
А случайно на русском языке нет ;D
|
Сообщ.
#3
,
|
|
|
Щас сделаем на русском...... извиняюсь за корявый перевод :-/
и кривой граф..... В общем надо определить предикат поиск(+Начало, +Цель, +Расширить, +Стратегия, -Путь) чтобы програмка искала путь на вопрос поиск(a,цель,граф,'вширину',П) и можно было задавать вид поиска: в ширину или в глубину Расширить должно быть тоже предикатом расширить(+N,-SL) который вычислял бы список последующих пунктов SL от пункта N. Предикат Цель действителен в целевой точке соответственно Да.... надо использовать оператор '=..' : например ... G =.. [Цель,Состояние], G ... который создает цель Цель(Состояние)' . При этом перввый элемент списка становится предикатом, а все последующие - аргументами Стратегия имеет значения 'вглубину' и 'вширину' , и использует соответствующие методы поиска Используйте список целей, который содержит все образованные на данный момент пути и расширяется при поиске решения. Способ расширения будет различаться в зависимости от используемого метода поиска. Испытайте программу с помощю следующего графа: (начальный пункт: a , целевой пункт: g) */ /* d--- ^ \ | \ | v a---->c---->f | ^ | | | | v | v b---->i<----g |\ ^ | \ | | \ | | ->h<-- | \ v | e---->k | | | | v v / j----> l --- */ |
Сообщ.
#4
,
|
|
|
|
Сообщ.
#5
,
|
|
|
Сообщ.
#6
,
|
|
|
Этот сайт я уже смотрела..... К сожалению немного не то....
Но все равно спасибо! |