Большой Воронежский Форум

Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел.
Вернуться   Большой Воронежский Форум » Компьютеры и все, что с ними связано » » Программирование
Философия, технологии, алгоритмы!

Ответ
 
Опции темы
Старый 01.06.2008, 17:31   #1   
АТП А-074
 
Аватар для jakysh
 
Сообщений: 47
Регистрация: 19.08.2006
Возраст: 36

jakysh вне форума Не в сети
Question Помогите пожалуйста!!!(задача на Pascal'е)

Доброго времени суток всем!!!
не пойму как мне алгоритм применить к задаче!!! ПОМОГИТЕ ПОЖАЛУЙСТА
вот и алгоритм:
3.3. Алгоритм поиска в ширину
Основная идея такого поиска – последовательный просмотр списков инцидентности вершин, смежных с данной. При поиске в ширину, попав в новую вершину, просматривают все смежные с ней непросмотренные вер-шины и заносит их в список, после чего эта вершина считается обработан-ной. Далее переходят в новую вершину, стоящую первой в списке необрабо-танных вершин. Иными словами, просмотр осуществляется по принципу очереди: чем раньше вершина просмотрена, тем раньше она будет обработа-на.
Сложность реализации алгоритма в том, что рекурсивные процедуры действуют по принципу стека, а не очереди. Поэтому в этом случае возможен только нерекурсивный вариант алгоритма
procedure BREADTH( v ) ;
begin ОЧЕРЕДЬ:=nil; {ОЧЕРЕДЬ – локальная структура }
ОЧЕРЕДЬ := v; NOWY[v]:= False;
while ОЧЕРЕДЬ <> nil do
begin p := ОЧЕРЕДЬ; write(p);
for u := СПИСОК[p] do
if NOWY[u] then
begin ОЧЕРЕДЬ := u;
NOWY[u]:= False
end
end
end;


Как мы уже говорили, основная программа отличается от соответствую-щей программы поиска в глубину только именем вызываемой во втором цикле процедуры.

А суть самой задачи такая:
ПЕРЕДВИНУТЬ мебель в комнате!!!условно это всё назовем так
1-стол
2-стул
3-шкаф
4-кресло
0-ничаво нету

изначальное расположение такое
1 2 3
2 0 4
необходимо поменять местами 3 и 4 и остальные предметы вернуть на своё же месте!!!
ЗЫ физмодель сделал!!!28 переприсваиваний!!!
ребят ну если не графами тогда как???просто очень срочно надо решить прогу!!!за мной не заржавеет!!!
  Ответить с цитированием
Старый 01.06.2008, 19:47   #2   
Пессимист
 
Аватар для dn2k4
 
Сообщений: 618
Регистрация: 22.07.2004

dn2k4 вне форума Не в сети
Почти пятнашки =)
Я так думаю, что общая идея в построении графа состояний комнаты - каждая комбинация мебели в пространстве - вершина. Вершины, которые получаются одна из другой перестановкой одного предмета мебели, соединяются дугами. После построения выбираешь исходную точку и конечную точку (означающие исходную и конечную расстановку предметов в комнате) и натравливаешь на граф поиск в ширину для получения маршрута. Пройденные дуги и есть собсно шаги по перестановке мебели.
  Ответить с цитированием
Старый 01.06.2008, 20:50   #3   
АТП А-074
 
Аватар для jakysh
 
Сообщений: 47
Регистрация: 19.08.2006
Возраст: 36

jakysh вне форума Не в сети
Спасибо конечно!!! ещё бы понять как это написать на Паскале!!!что к чему привязать???
мы не писали ни одной проги по графам) я даже нее представляю как они организуются((( в лекциях два обзаца первый - определине графа, второй определение дерева!!!и фсё
  Ответить с цитированием
Старый 01.06.2008, 21:30   #4   
Пессимист
 
Аватар для dn2k4
 
Сообщений: 618
Регистрация: 22.07.2004

dn2k4 вне форума Не в сети
"А есть вы за меня тоже будете, да?"

1) Пронумеровать все возможные состояния комнаты, их будет 5^6 штук (или 6^6 если стулья "2" считать разными предметами) - это будут вершины графа. Запомнить номера исходной и конечной точек.
2) Организовать структуру хранения вершин и дуг графа, учитывая, что из одной вершины в другую можно вести максимум 5 дуг (ну или меньше - если нельзя двигать по диагонали),
3) Запустить алгоритм, приведенный тобой с исходной точки, и гнать, пока не обработается финишная точка.
Алгоритм поиска в ширину объяснять не буду, это должны были сделать более умные дядьки до меня =)

Изначальная просьба была "...как мне алгоритм применить к задаче"...
  Ответить с цитированием
Старый 01.06.2008, 21:55   #5   
Registered User
 
Аватар для adrenalin
 
Сообщений: 276
Регистрация: 18.02.2006
Возраст: 37

adrenalin вне форума Не в сети
dn2k4, научи меня расставить 6 предметов в комнате 46656 ю разными способами!
jakysh, чиайте книги. по волновым алгоритмам много писано-переписано...
  Ответить с цитированием
Старый 01.06.2008, 22:04   #6   
Пессимист
 
Аватар для dn2k4
 
Сообщений: 618
Регистрация: 22.07.2004

dn2k4 вне форума Не в сети
adrenalin, да, это я шибко погорячился... Ну суть не меняется - будет у него 720 узлов, какая разница-то... 640 килобайт будет достаточно для каждого =)
  Ответить с цитированием
Старый 02.06.2008, 09:07   #7   
АТП А-074
 
Аватар для jakysh
 
Сообщений: 47
Регистрация: 19.08.2006
Возраст: 36

jakysh вне форума Не в сети
как это всё организуется в Паскале???какой тип имеет вершина???или чего???я ни разу не видел реализации графа в Паскале!!!!не писали проги вообще с графами!!!
  Ответить с цитированием
Старый 03.06.2008, 18:05   #8   
Форумец
 
Аватар для Constantine
 
Сообщений: 18
Регистрация: 05.12.2006
Возраст: 38

Constantine вне форума Не в сети
Ну а как ты думаешь? Можно использовать матрицу смежности. Если у нас N вершин, то имеем матрицу NxN, a(i,j) = 1 если вершина i смежна c j, и a(i,j) = 0 в противном случае. Все просто
  Ответить с цитированием
Старый 19.06.2008, 18:12   #9   
АТП А-074
 
Аватар для jakysh
 
Сообщений: 47
Регистрация: 19.08.2006
Возраст: 36

jakysh вне форума Не в сети
смежность это как???
как узнат что они передвинулись...мне это всё ещё графически деалть
  Ответить с цитированием
Старый 20.06.2008, 10:26   #10   
Форумец
 
Аватар для дядя Дима
 
Сообщений: 722
Регистрация: 24.03.2004
Возраст: 43

дядя Дима вне форума Не в сети
Смежность это просто. книжку хоть прочти по графам, иначе дальнейший диалог бессмысленен. смежна если от i есть "стрелка" к j
  Ответить с цитированием
Старый 22.06.2008, 15:08   #11   
Форумец
 
Аватар для Constantine
 
Сообщений: 18
Регистрация: 05.12.2006
Возраст: 38

Constantine вне форума Не в сети
Согласен с дядя Дима
Если возникают вопросы "а что такое смежность", то сабж следовало формулировать "Решите за меня задачу"
  Ответить с цитированием
Старый 22.06.2008, 16:06   #12   
АТП А-074
 
Аватар для jakysh
 
Сообщений: 47
Регистрация: 19.08.2006
Возраст: 36

jakysh вне форума Не в сети
спасибо всем кто писал здесь...
задача решена несколько другим спосбом...и преподователем принята...осталась одна загвоздочка сопственно вот она http://www.u-antona.vrn.ru/forum/sho...d.php?t=297282
  Ответить с цитированием
Старый 22.06.2008, 16:07   #13   
АТП А-074
 
Аватар для jakysh
 
Сообщений: 47
Регистрация: 19.08.2006
Возраст: 36

jakysh вне форума Не в сети
спасибо всем кто писал здесь...
задача решена несколько другим спосбом...и преподователем принята...осталась одна загвоздочка собственно вот она
http://www.u-antona.vrn.ru/forum/sho...d.php?t=297282
  Ответить с цитированием
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind