Nano Hash - криптовалюты, майнинг, программирование

А.И. который может перемещаться по случайно сгенерированному 2D-городу

Я пишу игру для iOS (с использованием UIView), в которой есть случайно сгенерированный 2D-город. Мне нужен атакующий ИИ, который выберет разумный путь, чтобы найти игрока (без столкновения со зданиями). Может ли кто-нибудь указать мне в правильном направлении, какие алгоритмы я бы использовал для этого?

Изменить: я решил использовать A *. Я создам сетку на карте, проверю каждую точку пересечения сетки, если эта точка находится внутри здания, я аннулирую эту точку. Нападающий А. Затем игрок переместится из своего текущего местоположения в действительную точку сетки, которая ближе к его цели (в пределах определенного радиуса от его местоположения).


  • Голосование за закрытие как инструмент rec / to wide. 19.04.2016

Ответы:


1

Вам нужен класс алгоритмов, который называется алгоритмами поиска пути. Вы можете использовать множество подходов.

Классическими алгоритмами здесь являются алгоритм Дейкстры и A * search, который может направлять объект из одного места в другое по оптимальному пути. Эти алгоритмы работают, моделируя 2D-мир в виде графа, а затем находя кратчайший путь от начального местоположения объекта до конечного местоположения на этом графике. Эти два алгоритма широко используются в ИИ и поиске путей, и я настоятельно рекомендую потратить время, чтобы узнать о них больше. Если хотите, в Интернете можно найти подробное руководство по поиску A *.

Если у вас есть много разных объектов, которые необходимо переместить к цели, не мешая им, вы можете захотеть изучить потенциальные поля, которые дают простую и гибкую структуру для того, чтобы несколько объектов приблизились к цели. Этот подход использовался Беркли "Overmind" StarCraft AI и часто используется при планировании движения роботов. Интуитивно этот подход работает, присваивая «потенциальное» значение каждому местоположению, а затем заставляя объекты двигаться от высокого потенциала к низкому потенциалу, пока они не достигнут цели. Этот подход немного сложнее реализовать правильно, но как только он сработает, он, как правило, приводит к гибкому, настраиваемому ИИ, который ведет себя разумно.

Надеюсь это поможет!

22.01.2012

2

Этот вопрос здесь: Pacman: как глаза находят путь обратно в нору монстра? - хороший обзор подходов к навигации ИИ по случайной 2D-сетке в поисках движущегося игрока. Общий консенсус (и подход, используемый Pacman) состоит в том, чтобы не беспокоиться о запекании интеллектуальных алгоритмов поиска пути в AI, а вместо этого использовать саму карту для хранения информации о местоположении игрока. Это увлекательное чтение, особенно второй и третий ответы (и их внешние ссылки) от ammoQ и Дэна Винтона.

Эта ссылка здесь: паттерн антиобъектов запаха Pacman описывает дешевый и эффективный подход.

22.01.2012
  • Хотя я согласен с тем, что это хороший подход, если мир генерируется случайным образом, вы не можете жестко запрограммировать что-либо в мире, и вам придется использовать более сложные алгоритмы для выполнения начального поиска пути. Это также не сработает, если игрок постоянно перемещается, если вы не сохраните много дополнительной информации. 23.01.2012
  • Извините, @templatebydef, я отсылал спрашивающего ко второй и третьей ссылкам, а не к существующему решению связанного вопроса или принятому ответу - оба из них действительно страдают от проблем, на которые вы указываете. Я обновил свой вопрос ссылкой на интересный подход, на который я хочу, чтобы OP посмотрел. 23.01.2012
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..