Class SeekHospitalStrategy

java.lang.Object
epidemic.strategies.movement.SeekHospitalStrategy
All Implemented Interfaces:
MovementStrategy

public class SeekHospitalStrategy extends Object implements MovementStrategy
Strategia ruchu (wzorzec Strategy) ukierunkowująca agenta na najbliższą dostępną placówkę medyczną. Wykorzystuje podejście zachłanne (greedy search) w celu identyfikacji szpitala o najmniejszej odległości euklidesowej i generuje wektor ruchu bezpośrednio w jego stronę.
  • Constructor Details

    • SeekHospitalStrategy

      public SeekHospitalStrategy()
  • Method Details

    • calculateNextPosition

      public Point2D calculateNextPosition(Agent agent, WorldMap world)
      Oblicza kolejny krok w kierunku najbliższej placówki szpitalnej. Algorytm w każdej epoce przelicza na nowo dystans do wszystkich szpitali na mapie, co pozwala na dynamiczną adaptację w przypadku pojawienia się w środowisku nowych placówek. W przypadku braku jakichkolwiek szpitali, strategia nakazuje agentowi pozostanie w miejscu.
      Specified by:
      calculateNextPosition in interface MovementStrategy
      Parameters:
      agent - Agent, dla którego ewaluowany jest wektor ucieczki medycznej.
      world - Stan mapy symulacyjnej dostarczający listę zarejestrowanych szpitali.
      Returns:
      Nowa pozycja przesunięta o maksymalnie 1 jednostkę w osi X i Y w stronę celu.