Class VindictiveDecisionStrategy

java.lang.Object
epidemic.strategies.decision.VindictiveDecisionStrategy
All Implemented Interfaces:
DecisionStrategy

public class VindictiveDecisionStrategy extends Object implements DecisionStrategy
Złośliwa strategia decyzyjna (wzorzec Strategy) oparta na rosnącym wskaźniku frustracji jednostki. Agent zachowuje się zgodnie ze standardami społecznymi do momentu, w którym system ochrony zdrowia odmawia mu dostępu do leczenia (np. ze względu na przepełnione szpitale). Przekroczenie progu cierpliwości skutkuje wpadnięciem w furię, odrzuceniem środków ochronnych i celowym rozsiewaniem patogenu na innych agentów.
  • Field Details

    • maliciousMovementStrategy

      private final MovementStrategy maliciousMovementStrategy
    • hospitalMovementStrategy

      private final MovementStrategy hospitalMovementStrategy
    • normalMovementStrategy

      private final MovementStrategy normalMovementStrategy
    • frustrationMap

      private final Map<Human,Integer> frustrationMap
      Mapa śledząca licznik frustracji przypisany do konkretnego agenta. Wykorzystanie struktury WeakHashMap gwarantuje, że wpisy dla zmarłych lub usuniętych z mapy agentów zostaną automatycznie zebrane przez Garbage Collector, zapobiegając wyciekom pamięci w długo trwających symulacjach.
  • Constructor Details

    • VindictiveDecisionStrategy

      public VindictiveDecisionStrategy(MovementStrategy maliciousMovementStrategy, MovementStrategy hospitalMovementStrategy, MovementStrategy normalMovementStrategy)
      Inicjalizuje mściwą strategię decyzyjną.
      Parameters:
      maliciousMovementStrategy - Wzorzec ruchu aktywowany po wpadnięciu w furię (agresywne podążanie za ofiarami).
      hospitalMovementStrategy - Strategia wyznaczająca trasę do placówki medycznej.
      normalMovementStrategy - Standardowy wzorzec ruchu stosowany przed wybuchem frustracji lub po wyleczeniu.
  • Method Details

    • makeDecision

      public void makeDecision(Human human, WorldContext world)
      Weryfikuje cierpliwość chorego agenta oczekującego na przyjęcie do placówki medycznej. Każda epoka spędzona poza oddziałem zwiększa licznik frustracji. Osiągnięcie limitu wyzwala status wrogości (Hostile). Udane wejście do szpitala lub całkowite wyleczenie automatycznie resetuje ten stan i uspokaja agenta.
      Specified by:
      makeDecision in interface DecisionStrategy
      Parameters:
      human - Agent poddawany ewaluacji i presji psychologicznej.
      world - Stan środowiska symulacji.