SKAZA Symulacja Konfliktu Antycznego – Zespolenie Algorytmów

Przedstawiony projekt jest próbą opracowania jak najbliższego rzeczywistości symulatora bitwy lądowej z okresu wojny punickiej. Celem jest, uwzględnienie możliwie jak największej ilości czynników wpływających na przebieg bitwy i skalibrowanie ich w taki sposób, by móc uznać przebieg symulacji za jak najbardziej zgodny ze źródłami historycznymi.

Projekt ma charakter modułowy, przy czym efekty działania modułów wpływają na siebie wzajemnie. Istnieje moduł bitewny,
uwzględniający takie aspekty jak teren, rozmieszczenie wojska oraz ich zachowanie; moduł taktyczny, który na podstawie analizy powyższych czynników wydaje odpowiednie rozkazy oraz moduł kalibracyjny, który będzie w zasadzie osobną aplikacją.

W kalibracji użycie znajduje algorytm genetyczny, w którym każdy osobnik jest
zestawem wszystkich wykorzystanych stałych i ich efektów z przeprowadzonej w tle
symulacji. Jego zdolność przetrwania zależy od zbieżności z pożądanymi cechami symulacji,
np. czas trwania bitwy, wpływ morale, zmęczenia, itd.

Moduł taktyczny ma za zadanie przeprowadzać analizę bitewną i wykorzystując
niedeterministyczny algorytm decyzyjny wydawać odpowiednie rozkazy. Kalibracja stałych
w tym wypadku może zostać przeprowadzona również za pomocą algorytmu genetycznego,
przy czym można dzięki temu wytworzyć wielu różnych dowódców i sprawdzać efektywność
stosowanej przez nich taktyki. Do obliczania ścieżek oddziałów wykorzystywany będzie
algorytm Dijkstry.

Projekt jest wciąż rozwijany. Modułowy charakter pozwala na kończenie projektu
etapami. Kalibracja algorytmem genetycznym pozwala na doszlifowanie parametrów
symulacji w czasie zdecydowanie krótszym niż ręcznie. Ostateczna wersja projektu będzie
pozwalała na dowolne rozstawienie i tworzenie oddziałów (jak również dobór automatyczny
przez AI), wczytywanie predefiniowanych map, wybór walczących AI i kalibrację ręczną
oraz automatyczną.

Autor: Damian Malarczyk.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *