← Retour aux projets en programmation
Apprentissage par renforcement
1. Initialisation des paramètres
#Paramètres :
grid_size = 10
base = (0, 0)
intrus_base = (8, 9)
alpha = 0.1
gamma = 0.9
epsilon = 0.9
min_epsilon = 0.9
decay_rate = 0.995
num_episodes = 1000
2. Définition des actions
actions = ['haut', 'bas', 'gauche', 'droite']
action_map = {
'haut': (-1, 0),
'bas': (1, 0),
'gauche': (0, -1),
'droite': (0, 1)
}
q_table = np.zeros((grid_size, grid_size, len(actions)))#mise en place de la Q_table
3. Ajout des fonctions
def is_valid(position):...
def get_reward(agent_pos, intrus_pos):...
def choose_action(state, epsilon):...
def intrus_move_towards_base(position):...
4. Création de la boucle d'apprentissage
# Enregistrement du dernier chemin pour affichage
last_path_agent = []
last_path_intrus = []
for episode in range(num_episodes):...
5. Visualisations
Visualisation des chemins empreter par l'agent
Lorsque Epsilon est proche de 0 alors l'intrus sera intercepté dans la majortié des épisodes
Lorsque Epsilon est proche de 1 alors l'agent va tester d'autres chemins donc ira pas intercepter l'intrus