Как можно найти кратчайший путь в лабиринте для пакмана, чтобы

съесть все точки?

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

ПС: на лабиринте находятся только пакман и точки(фрукты)

6 ответов

15 просмотров

Это ж коммивояжер (TSP)

Vladimir Mokeev
Это ж коммивояжер (TSP)

по идее одним им не обойтись - надо сначала узнать расстояние между точками

Vladimir Mokeev
Это ж коммивояжер (TSP)

А вроде обход графа в ширину

Ярослав
А вроде обход графа в ширину

С чего вдруг обход, если нам нужно найти путь с минимальной суммой длин рёбер, проходящий через каждую вершину

Vladimir Mokeev
С чего вдруг обход, если нам нужно найти путь с ми...

Ой, да, вы правы, только встал, прочитал каким-то чудом, что ему нужно найти выход из лабиринта

Миршохид-Окилбеков Автор вопроса

решил с помощью генетического алгоритма, даже если не самый оптимальный путь, но достаточно короткий, и находится в быстрое время когда есть много точек в лабиринте

Похожие вопросы

Обсуждают сегодня

Всем привет Есть достаточно базовая задача: Дан неориентированный граф. Требуется определить, есть ли в нем цикл, и, если есть, вывести его. Входные данные подаются в виде ма...
Αλeksandr
10
Привет всем. Подскажите, как можно данную задачу более менее эффективно решить? В столовой одного известного Завода вот-вот начнётся обед. На обеде есть три гарнира — макарош...
Vitaliy
6
всем привет. У меня есть неупорядоченный массив точек(в моем случае в трёхмерном пространстве). Есть критерий связанности точек: если евклидово расстояние между ними меньше за...
Павлик Ливаткин
31
Доброе утро. Такой вопрос: есть ли какие-то практически полезные меры вычислительной мощности (в смысле computational complexity) для реальных машин, с ограниченными ресурсам...
Yaroslav Schekin
15
Всем привет Пытаюсь решить следующую задачу: https://informatics.msk.ru/mod/statements/view.php?id=6992&chapterid=101#1 Строка S была записана много раз подряд, после чего из ...
Αλeksandr
10
Здравствуйте. Есть задача нужно найти наименшое число P где фактриал P делиться на 10^N. Ограничения 10^9. Знаю что нужно найти такой P в конце как минимум N нулей. Решение с ...
. Azmiddin
20
Друзья, практический вопрос надо счиать скользящую медиану в последовательности по заданному окну (длины N) тупой вариант - взять значения в окне, отсортировать, взять элеме...
Стас Выщепан
17
Должна-ли работать такая стратегия: Мы каждую секунду бросаем монетку - орел или решка. Если орел - покупаем акцию на все деньги, если у нас есть деньги, или продаем все акци...
George Polevoy
13
#pragma once #include <iostream> #include <vector> template <typename T, typename Comp = std::less<T>> class Heap { public: Heap() = default; Heap(const std::vector<T>&...
Степан
1
Как можно сжимать временные ряды в памяти? У меня есть исторические стоимости ценных бумаг. Данные для каждой минуты в истории OHLC (Open, High, Low, Close). Соответственно, O...
George Polevoy
10
Карта сайта