Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
 
Екатерина_93
1

LISP задачу о двух кувшинах алгоритма поиска решений в глубину переделать по алгоритму в ширину

16.10.2014, 14:50. Показов 2346. Ответов 0
Метки нет (Все метки)

Здравствуйте! Помогите пожалуйста! :oops: Есть готовая правильная рабочая программа, реализующая задачу о двух кувшинах, написанная на Lisp по алгоритму поиска решений в пространстве состояний В ГЛУБИНУ. Нужно переделать чтобы работала по алгоритму поиска В ШИРИНУ ! просьба сделать как можно скорее!!!!

Задача о двух кувшинах

Условие - Дан кувшин с водой емкостью N литров и пустой кувшин емкостью M литров. Требуется получить заданную емкость L литров (L<N и L<M). Воду можно либо выливать, либо переливать из одного кувшина в другой. (Кувшины можно полностью наполнять водой неограниченно). Значения N, M, L вводятся с клавиатуры, например, соответственно: 5, 2, 1

Немного теории : При поиске в глубину всегда раскрывается самая глубокая вершина в текущем фронте поиска. Процедура поиска в глубину отличается от процедуры поиска в ширину тем, что дочерние вершины, получаемые при раскрытии вершины x , помещаются в начало списка OPEN ,то есть принцип формирования списка open соответствует стеку, когда в алгоритме поиска в ширину принцип формирования списка OPEN соответствует очереди.
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
(defun lab5()
(princ "N M L: ")
 
(let* ((n (read *standard-input*))(m (read *standard-input*))(l (read *standard-input*)) (open (list (list n 0))) (close nil) (x)) 
(loop 
 
(if (equal open nil ) (return "Nea") )
(setf x (first open))
(setf close (append close (list x)))
(if (equal (second x) l) (return "YES"))
(setf open (cdr open))  
(cond 
 
( (and (not (equal (first x) 0)) (not (equal (second x) 0)))
(if (> m (second x))
(setf open (append open (list (list (- (first x) (- m (second x))) m))))
 
 
(if (< (first x) (second x)) 
(setf open (list (list 0 (first x)))) 
(setf open (append open (list (list (first x) 0))))
)
)
)
 
( (and (equal (first x) 0) (equal (second x) 0)) 
(setf open (append open (list (list n 0)) ))
)
 
( (and (not (equal (first x) 0)) (equal (second x) 0)) 
(if (> (- (first x) m) 0) 
(setf open (list (list (- (first x) m) m)))
(setf open (append open(list (list 0 (first x)))))
)
)
 
( (and (equal (first x) 0) (not (equal (second x) 0))) 
(setf open (append open (list (list n (second x))) ))
)
)
(print x)
 
)
)
)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.10.2014, 14:50
Ответы с готовыми решениями:

Смоделировать работы алгоритмов поиска в ширину и поиска в глубину
Здравствуйте! Требуется помощь, имеется следующий граф, нужно смоделировать на нём работы...

Разработать программы поиска в глубину и поиска в ширину при описании графа с помощью матрицы смежности
Ребят помогите, на носу экзамен. Дали задачу,для получения зачета. Весь мозг себе сломал, не как не...

Алгоритмы поиска в глубину и ширину
Помогите с кодом: на входе файл есть файл вида: n m v1 u1 v2 u2 .... vm um Здесь n -...

Алгоритм поиска в глубину и ширину!)
Построить свой неориентированный граф (не менее 5-и вершин и 7-и рёбер ) применить к нему алгоритмы...

__________________
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.10.2014, 14:50

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Построить граф, применить к нему алгоритмы поиска в ширину и глубину
Построить свой смешанный (который имеет ориентированные и неориентированные ребра) граф (не менее...

Анимирование алгоритма поиска в глубину на графе
Вообщем нужно сделать такую же анимация как здесь -...

Реализация алгоритма A star и Поиска в ширину
Реализовать алгоритмы A star и Поиска в ширину для графа у которого 26 вершин. Помогите пожалуйста...

Common Lisp - Поиск в глубину
Помогите решить задачу! Реализовать рекурсивный алгоритм поиска в глубину, выхода из лабиринта.

Алгоритмы поиска кратчайших путей в ширину и двунаправленный в ширину
Реализовать алгоритм поиска кратчайшего пути. Двунаправленный поиск в ширину. Вот есть 2...

Поиск в глубину и в ширину
Доброго времени суток! Пытаюсь уже как неделю написать алгоритм поиска в глубину и в ширину. Для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.