Source code for csle_defender.defender

from csle_common.dao.emulation_config.emulation_env_state import EmulationEnvState
from csle_common.dao.emulation_action.attacker.emulation_attacker_action import EmulationAttackerAction
from csle_common.dao.emulation_action.defender.emulation_defender_action import EmulationDefenderAction
from csle_defender.emulation.emulated_defender import EmulatedDefender


[docs]class Defender: """ Represents an automated defender agent """
[docs] @staticmethod def defender_transition(s: EmulationEnvState, defender_action: EmulationDefenderAction, attacker_action: EmulationAttackerAction = None) -> EmulationEnvState: """ Implements the transition operator of the MDP/Markov Game for defense actions, supporting both simulation and emulation mode (s, a) --> s' :param s: the current state :param defender_action: the defender's action of the transition :param attacker_action: previous attacker action :return: s' """ return EmulatedDefender.defender_transition(s=s, defender_action=defender_action, attacker_action=attacker_action)