Files
paper-racing-gpi/TEST-RESULTS.md
2025-10-20 19:35:38 +05:00

6.7 KiB
Raw Blame History

Результаты тестирования A* алгоритма с новыми правилами

Новые правила

  1. Препятствия: Можно проезжать через камни, но нельзя на них останавливаться
  2. Снег (тип 2): Ускорение ограничено диапазоном от -1 до +1
  3. Лёд (тип 3): Ускорение нельзя менять (только сохранение текущей скорости)
  4. Обычная дорога (тип 0): Ускорение от -2 до +2

Тестовые карты

Тест 1: test-obstacles.json

Цель: Проверить проезд через препятствия

Описание: Карта 15x11 с большой зоной препятствий (56 клеток) между стартом и чекпоинтом

Результаты:

  • Решение найдено за 4 хода
  • Машина успешно проехала через зону препятствий
  • Траектория: (0,10) → (2,10) → (6,9) → (11,6) → (14,1)
  • Максимальная скорость: 8
  • Время работы: 0.04 сек
  • Итераций: 24

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


Тест 2: test-snow.json

Цель: Проверить ограничение ускорения на снегу

Описание: Карта 15x9 с большой зоной снега (49 клеток) между стартом и чекпоинтом

Результаты:

  • Решение найдено за 3 хода
  • На снегу использовалось ограниченное ускорение: (1,1) и (-1,0)
  • Траектория: (0,8) → (2,6) → (5,5) → (7,4)
  • Максимальная скорость: 4
  • Время работы: 0.04 сек
  • Итераций: 42

Вывод: На снегу ускорение корректно ограничено диапазоном ±1.


Тест 3: test-ice.json

Цель: Проверить инерцию на льду

Описание: Карта 18x9 с большой зоной льда (54 клетки) между стартом и чекпоинтом

Результаты:

  • Решение найдено за 3 хода
  • Машина не останавливалась на льду
  • Траектория: (0,8) → (2,8) → (6,7) → (9,4)
  • Максимальная скорость: 6
  • Время работы: 0.04 сек
  • Итераций: 34

Вывод: Алгоритм успешно обходит или проходит через лёд без остановки.


Тест 4: test-combined.json

Цель: Проверить комбинацию всех типов поверхностей

Описание: Карта 20x15 с 4 чекпоинтами и всеми типами поверхностей:

  • 16 препятствий
  • 24 клетки снега
  • 15 клеток льда

Результаты:

  • Решение найдено за 9 ходов
  • Собраны все 4 чекпоинта
  • Проезд через препятствия: шаги 3-4
  • Движение по снегу с ограниченным ускорением: шаги 6-7
  • Проход через/около льда без остановки: шаги 8-9
  • Максимальная скорость: 6
  • Время работы: 0.04 сек
  • Итераций: 21

Детальный путь:

Шаг 0: (0,14)  Скор=(0,0)   Ускор=(0,0)
Шаг 1: (1,12)  Скор=(1,-2)  Ускор=(1,-2)
Шаг 2: (3,12)  Скор=(2,0)   Ускор=(1,2)   ✓ Чекпоинт #1
Шаг 3: (7,12)  Скор=(4,0)   Ускор=(2,0)
Шаг 4: (9,10)  Скор=(2,-2)  Ускор=(-2,-2)
Шаг 5: (9,9)   Скор=(0,-1)  Ускор=(-2,1)  ✓ Чекпоинт #2
Шаг 6: (11,7)  Скор=(2,-2)  Ускор=(2,-1)
Шаг 7: (12,6)  Скор=(1,-1)  Ускор=(-1,1)  ✓ Чекпоинт #3 (на снегу)
Шаг 8: (15,3)  Скор=(3,-3)  Ускор=(2,-2)
Шаг 9: (17,2)  Скор=(2,-1)  Ускор=(-1,2)  ✓ Чекпоинт #4

Вывод: Алгоритм корректно работает со всеми типами поверхностей одновременно.


Общие выводы

Успешные проверки

Препятствия можно проезжать, нельзя останавливаться
На снегу ускорение ограничено ±1
На льду ускорение нельзя менять
Все типы поверхностей работают в комбинации
Алгоритм быстро находит оптимальные решения

Производительность

  • Все тесты выполнились за 0.04 секунды
  • Количество итераций: от 21 до 42
  • Максимальный размер открытого множества: от 101 до 256

Рекомендации для дальнейшего использования

  1. Карты с большим количеством льда могут требовать более сложного планирования
  2. Снег эффективно замедляет движение, но не блокирует пути
  3. Препятствия теперь не являются критичным блокировщиком - можно прыгать через них
  4. Комбинированные карты решаются эффективно благодаря адаптивному подходу A*

Визуализация карт

Легенда

  • S - старт
  • 1-9 - чекпоинты (номера)
  • - чекпоинты с номерами >= 10
  • # - препятствия (можно проезжать)
  • ~ - снег (ускорение ±1)
  • = - лёд (инерция)
  • . - путь решения
  • - обычная дорога

Запуск тестов

# Компиляция
dotnet build racing-astar.csproj

# Тест 1: Препятствия
./bin/Debug/net8.0/racing-astar maps/test-obstacles.json

# Тест 2: Снег
./bin/Debug/net8.0/racing-astar maps/test-snow.json

# Тест 3: Лёд
./bin/Debug/net8.0/racing-astar maps/test-ice.json

# Тест 4: Комбинированная карта
./bin/Debug/net8.0/racing-astar maps/test-combined.json

Дата тестирования

19 октября 2025