Skip to content

Training auto-agents to destroy or repair the complex network based on reinforcement learning

Notifications You must be signed in to change notification settings

CityChan/Network-Destroy-and-Repair-Game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Network-Destroy-and-Repair-Game

Training auto-agents to destroy or repair the complex network based on reinforcement learning
This is course project for EE382 Complex Network in Real World.

Overview of the project

How networks’ protection mechanisms respond to environmental adversity is a vital task of network design. This project will explore the protection mechanism and design a destroy-repair game between two parties. Reinforcement learning, e.g, Markov Decision Processes or Q-learning, will be used to explore the optimal destroy-repair strategies when given certain objectives and network information, and a multi-agent game based on the learned strategies will be further developed in the physical network setting. Few existing papers investigated the dynamic interaction process incomplex networks, especially in physical networks, which makes this project novel and exciting.

Description

myenv.py: Develop a game environment inherited from openai.gym which describes the rule of network, cost/reward of attacker and defender, winning condition and action set.

NetGame.py: Define classes 'Attacker', 'Defender' and 'Game', provides utils funtion.

MCST.py:: Create a Monte Carlo Search Tree to sample agents self playing data and log every step and final winner as training data for our agent's models. With data, we create a residual network to training agent's models.

human_test_agent: do experiments to check the winning rate of game playing between trained attacker and defender.

About

Training auto-agents to destroy or repair the complex network based on reinforcement learning

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages