yawning_titan.envs.specific.four_node_def#

NOTE: This environment is deprecated but has been included as an example of how to create a specific environment.

Four Node Connected Environment#

This environment is made up of four nodes in the following topology:

+————–+ Node 1 - UAD +—————+ | | Red Start | | | | | +———+———+

+——–+———-+ | | | | | | +——————-+ | | | | | Node 3 - UAD | | Node 2 - UAD | | | | | +——————-+ | | | | | | +———+———+ +——-+———–+ | Node 4 - UAD | |

| Objective | |
+—————+ +—————+

The aim of this environment is for a blue team agent, which has full observability of the environment, to successfully stop the hard code red agent from getting to the objective.

Inspired by: - https://github.com/panlybero/MARL-POMDP-CYBERSECURITY - https://www.scitepress.org/Link.aspx?doi=10.5220%2f0006197105590566

Classes

FourNodeDef

Class that represents a simple four node connected network.

class yawning_titan.envs.specific.four_node_def.FourNodeDef(attacker_skill=90, red_start_node=0, objective_node=3, n_machines=4, attack_success_threshold=0.6)[source]#

Class that represents a simple four node connected network.

__init__(attacker_skill=90, red_start_node=0, objective_node=3, n_machines=4, attack_success_threshold=0.6)[source]#
reset()[source]#

Reset the environment to the default state.

Returns:

A new starting observation (numpy array)

step(action)[source]#

Take a time step and execute the actions for both Blue RL agent and hard-hard coded Red agent.

Parameters:

action – The action value generated from the Blue RL agent (int)

Returns:

The next environment observation (numpy array) reward: The reward value for that timestep (int) done: Whether the epsiode is done (bool) notes: An empty notes dictionary

Return type:

observation

render(mode='human')[source]#

Render the environment to the screen so that it can be played in realtime.