Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Поиск кратчайшего пути в лабиринте.  (Прочитано 6623 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Atilla

  • Автор темы
  • Участник
  • *
  • Сообщений: 196
    • Просмотр профиля
Надо найти кратчайший путь в лабиринте. Сделал поиск в глубину, но работает слишком долго.
Есть ли другие способы поиска, чтобы побыстрее работало?

P. S. И не посоветуете форумы, где более уместны такие вопросы?

Оффлайн [DarkNet]Alpha

  • Активист
  • *
  • Сообщений: 987
  • Эмоциональный эльдар
    • Просмотр профиля
    • EBM-радио

Оффлайн Atilla

  • Автор темы
  • Участник
  • *
  • Сообщений: 196
    • Просмотр профиля
Re: Поиск кратчайшего пути в лабиринте.
« Ответ #2 : 09 Августа 2010, 13:57:11 »
Пользоваться заливкой по экрану - это слишком круто для меня:)
Мне бы что-то полегче что ли...

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net

Оффлайн Atilla

  • Автор темы
  • Участник
  • *
  • Сообщений: 196
    • Просмотр профиля
Re: Поиск кратчайшего пути в лабиринте.
« Ответ #4 : 09 Августа 2010, 17:54:40 »
http://www.google.com/search?q=кратчайший+путь+в+лабиринте
М?..
Мммм... Очень интересный сайт. И как я только о нём до этого не знал...

Оффлайн truegeek

  • FPGA Designer
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4214
  • аЦкий схемотехник
    • Просмотр профиля
Re: Поиск кратчайшего пути в лабиринте.
« Ответ #5 : 09 Августа 2010, 20:41:15 »
http://www.google.com/search?q=кратчайший+путь+в+лабиринте
М?..
Мммм... Очень интересный сайт. И как я только о нём до этого не знал...
а пора бы уже ;)

Оффлайн inkblack

  • Старожил
  • *
  • Сообщений: 1216
    • Просмотр профиля
Re: Поиск кратчайшего пути в лабиринте.
« Ответ #6 : 10 Августа 2010, 00:28:12 »
А для чего? Искать кратчайший путь?
В чем состоит задача?
Делюсь знаниями, но их у меня мало!

Оффлайн ChaosWarrior

  • Активист
  • *
  • Сообщений: 461
  • d(-_-)b
    • Просмотр профиля
Поиск кратчайшего пути в лабиринте.
« Ответ #7 : 10 Августа 2010, 05:21:48 »
(Нажмите, чтобы показать/скрыть)

Соломоново решение... но не для поставленной задачи.
Цитировать
http://ithappens.ru/story/825

Вам нужно сделать следующее:

Если лабиринт такой все немного проще: можно двигаться только вперед, назад, вверх и вниз. А там либо стенка, либо проход, либо выход. Либо вернулись к началу, что тоже надо обработать. Можно сделать так, чтобы попытка пройти в начало соответствовало "стенка" и все будет в порядке.  Надо помнить еще вариант "нет выхода". Рекурсия в помощь. По идее, должен образоваться ветвящийся список всех возможных путей прохода, там уже встанет проблема выбора кратчайшего, это уже тупо подсчетом и перебором. И да, мне кажется, любой плоский лабиринт можно привести в "квадратный" вид.
Открытый код и его подержка — это лучшая реклама Windows.

Оффлайн Atilla

  • Автор темы
  • Участник
  • *
  • Сообщений: 196
    • Просмотр профиля
Re: Поиск кратчайшего пути в лабиринте.
« Ответ #8 : 10 Августа 2010, 07:24:48 »
Да, лабиринт именно такой.
Я уже сделал примерно такой ход решения. Но такая программа работает нормально только при небольших матрицах (~100х100). При увеличении матрицы хотя бы до 200х200 время нормально так возрастает до неприемлемого уровня (до секунд 2-2,5).
В чём и заключается вопрос: нет ли более быстрой программы для поиска пути? (В замечательном сайте google.com к сожалению представлен только медленный метод решения)

Оффлайн ChaosWarrior

  • Активист
  • *
  • Сообщений: 461
  • d(-_-)b
    • Просмотр профиля
Re: Поиск кратчайшего пути в лабиринте.
« Ответ #9 : 10 Августа 2010, 08:13:21 »
Код на стол.
Открытый код и его подержка — это лучшая реклама Windows.

Оффлайн [DarkNet]Alpha

  • Активист
  • *
  • Сообщений: 987
  • Эмоциональный эльдар
    • Просмотр профиля
    • EBM-радио
Re: Поиск кратчайшего пути в лабиринте.
« Ответ #10 : 10 Августа 2010, 09:15:34 »
Попробовать что ли тоже лабиринт накодить...

Оффлайн vadim-nsk

  • Старожил
  • *
  • Сообщений: 1318
  • Жить надо так, как горит пламя!
    • Просмотр профиля
    • Linux в Новосибирске
Re: Поиск кратчайшего пути в лабиринте.
« Ответ #11 : 10 Августа 2010, 09:23:45 »
 а что нельзя через графы решить? алгоритмы дейкстра, беллмана-форда, флойда-уоршелла . поиск кратчайшего пути между двумя вершинами разве не рулят?

Оффлайн truegeek

  • FPGA Designer
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4214
  • аЦкий схемотехник
    • Просмотр профиля
Re: Поиск кратчайшего пути в лабиринте.
« Ответ #12 : 10 Августа 2010, 11:36:39 »
а что нельзя через графы решить? алгоритмы дейкстра, беллмана-форда, флойда-уоршелла . поиск кратчайшего пути между двумя вершинами разве не рулят?
конечно можно, но нужно же учить матчасть, а хочется уже побыстрее велосипед изобрести

может наталкнет на мысли
http://www.ega-math.narod.ru/Nquant/Maze.htm
« Последнее редактирование: 10 Августа 2010, 11:48:56 от Владимир Николаевич »

Оффлайн ChaosWarrior

  • Активист
  • *
  • Сообщений: 461
  • d(-_-)b
    • Просмотр профиля
Re: Поиск кратчайшего пути в лабиринте.
« Ответ #13 : 11 Августа 2010, 03:33:19 »
Увы, решения, отличного от уже озвученного, там нет.
Открытый код и его подержка — это лучшая реклама Windows.

Оффлайн armad

  • Активист
  • *
  • Сообщений: 629
    • Просмотр профиля
Re: Поиск кратчайшего пути в лабиринте.
« Ответ #14 : 11 Августа 2010, 04:55:48 »
Волновой алгоритм - Построение крaтчaйшего мaршрутa (мне кажется очень удачным)
http://www.codenet.ru/progr/alg/way.php
Ubuntu 10.04. 2.6.35-25-generic-pae Проблем нет.

 

Страница сгенерирована за 0.027 секунд. Запросов: 21.