![]() |
Модераторы: Alx, Fixin |
![]() ![]() ![]() |
|
kometa_triatlon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 384 Регистрация: 7.1.2005 Где: Киев Репутация: нет Всего: 6 |
Слушаем задачу:
Лабиринт задан матрицей смежности n*n, де Сij = 1, если узел i связан с узлом j дорогой. Одну часть узлов назначили входами, другую выходами. Найти максимальное количество человек, которых можно провести от входов к выходам так, чтобы их пути не пересекались на путях и дорогах. Ход моих мыслей был примерно таков: больше всего людей сможем провести, если при каждом проходе побываем на минимальном кол-ве узлов. То есть для других останется больше узлов свободных. Таким образом задача превращается в поиск кратчайшего пути на графе, но каждый раз новый, с учетом помеченных вершин, которые уже использовались. Но поиск в ширину (самый логичный вариант поиска кратчайшего пути) сам по себе требует пометку вершин, это делает задачу очень громоздкой, короче я не стал браться. Не то, чтобы просил помощи, задача решена, мне интересно, достаточно ли правильно? Это всего лишь лабораторная работа, но такой задачи я не встречал еще ни разу... Вобщем, общий принцип такой: Я отмечаю все входы первыми номерами, а выходы - последними (в постановке задачи никаких ограничений по этому поводу нет, кроме того, какая графу разница, каков порядок его вершин? ), и при переходе по ссылке начинаю поиск дальнейшего пути с последних номеров. Проверял работу, вроде все четко, но нет все же какого-то обоснования жесткого... Текст:
Это сообщение отредактировал(а) kometa_triatlon - 15.1.2005, 20:49 -------------------- Всё очень просто: сказки обман, Солнечный остров скрылся в туман, Замков воздушных не носит земля, Кто-то ошибся, ты или я. -------------- Программирование - самое большое удовольствие, которое вы можете получить, будучи одетым. |
|||
|
||||
podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: нет Всего: 62 |
А по-русски нельзя? |
|||
|
||||
kometa_triatlon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 384 Регистрация: 7.1.2005 Где: Киев Репутация: нет Всего: 6 |
Можно, но это надо переписывать...
А ты так не понимаешь? -------------------- Всё очень просто: сказки обман, Солнечный остров скрылся в туман, Замков воздушных не носит земля, Кто-то ошибся, ты или я. -------------- Программирование - самое большое удовольствие, которое вы можете получить, будучи одетым. |
|||
|
||||
podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: нет Всего: 62 |
Посмотри внимательно, какова география участников.
Наверное, только с Африки, Австралии и Антарктиды нет никого. |
|||
|
||||
podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: нет Всего: 62 |
Тема перемещена из раздела "Алгоритмы".
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 2 Всего: 454 |
Неверно. Известная нерешаемая задача - соединить дорогами 3 дома и 3 колодца, каждый с каждым... Переводить же с украинского (белорусского, церковнославянского и прочих) нет никакого желания - посему даже не читал. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
kometa_triatlon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 384 Регистрация: 7.1.2005 Где: Киев Репутация: нет Всего: 6 |
Планарность графа? Да ну, это не моя задача. Перевожу: Дан лабиринт (задан матрицей смежности). Некоторые узлы помечены входами, некоторые выходами. Нужно найти максимальное кол-во людей, которые могут пройти от входов к выходам так, чтобы не встретиться. Возможен такой вариант: сделать из нашего графа сеть. Добавляем еще два узла - вход и выход. Все входы соединяем с истоком, все выходы со стоком. Все ребра между собой равнозначны. При этом условии ищем максимальный поток. Алгоритм не помню как называется, Новикова уже нет. Если кто знает, подскажите. Но все-таки в таком виде решение очень громоздко... -------------------- Всё очень просто: сказки обман, Солнечный остров скрылся в туман, Замков воздушных не носит земля, Кто-то ошибся, ты или я. -------------- Программирование - самое большое удовольствие, которое вы можете получить, будучи одетым. |
|||
|
||||
kometa_triatlon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 384 Регистрация: 7.1.2005 Где: Киев Репутация: нет Всего: 6 |
Все, смотрим перевод...
Блин, посмотрите внимательней! Алгоритм чисто эвристический, но работает на ура. -------------------- Всё очень просто: сказки обман, Солнечный остров скрылся в туман, Замков воздушных не носит земля, Кто-то ошибся, ты или я. -------------- Программирование - самое большое удовольствие, которое вы можете получить, будучи одетым. |
|||
|
||||
Гость_kometa_triatlon |
|
|||
Unregistered |
Мда, вижу идей куча...
Ну ладно, пусть просто висит, может кому пригодится. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Интересные и занимательные задачи по программированию | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |