# Ordonnancer le trafic dans des réseaux déterministes grâce à l'apprentissage par renforcement

Adrien Roberty

<figure><img src="image_1.png" /></figure>

## To cite this version:

Adrien Roberty. Ordonnancer le trafic dans des réseaux déterministes grâce à l'apprentissage par renforcement. 2024. cea-05118550

HAL Id: cea-05118550

https://cea.hal.science/cea-05118550v1

Submitted on 18 Jun 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_2.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
<figure><img src="image_3.png" /></figure>

list

<figure><img src="image_4.png" /></figure>

# ORDONNANCER LE TRAFIC DANS DES RÉSEAUX DÉTERMINISTES GRÂCE À L'APPRENTISSAGE PAR RENFORCEMENT

Adrien Roberty

<figure><img src="image_5.png" /></figure>

INSTITUT
CARNOT
CEA LIST

UGA
Université
Grenoble Alpes

université
PARIS-SACLAY

<figure><img src="image_6.png" /></figure>

LIAS

Isae

<figure><img src="image_7.png" /></figure>

<figure><img src="image_8.png" /></figure>

ENSMA
<figure><img src="image_9.png" /></figure>

<figure><img src="image_10.png" /></figure>

<figure><img src="image_11.png" /></figure>

<figure><img src="image_12.png" /></figure>

<figure><img src="image_13.png" /></figure>

<figure><img src="image_14.png" /></figure>

# Encadrement

- Directrice de thèse : Annie GENIET – Université de Poitiers/ISAE-ENSMA, LIAS

- Encadrants universitaires : Frederic RIDOUARD, Henri BAUER – ISAE-ENSMA, LIAS

- Encadrante CEA : Siwar BEN HADJ SAID – LSC
# Industrie 4.0/5.0

- Outils et dispositifs interconnectés

- Besoin d'ajouter des caractéristiques temps-réel à Ethernet

<figure><img src="image_15.png" /></figure>
# Industrie 4.0/5.0

* Outils et dispositifs interconnectés

* Besoin d'ajouter des caractéristiques temps-réel à Ethernet

* Borner les délais de bout en bout pour les flux critiques

<figure><img src="image_16.png" /></figure>
# Lignes directrices

## 1 Contexte et technologies

- Borner les délais

- Apprentissage par renforcement
<figure><img src="image_17.png" /></figure>

# Lignes directrices

1. Contexte et technologies

- Borner les délais

- Apprentissage par renforcement

2. Configurer l'ordonnancement de manière identique sur chaque commutateur

- Modélisation

- Évaluation

3. Configurer l'ordonnancement de manière individuelle sur chaque commutateur

- Modélisation

- Évaluation
<figure><img src="image_18.png" /></figure>

# Lignes directrices

1. Contexte et technologies

- Borner les délais

- Apprentissage par renforcement

2. Configurer l'ordonnancement de manière identique sur chaque commutateur

- Modélisation

- Évaluation

3. Configurer l'ordonnancement de manière individuelle sur chaque commutateur

- Modélisation

- Évaluation

4. Conclusion et perspectives
<figure><img src="image_19.png" /></figure>

<figure><img src="image_20.png" /></figure>

<figure><img src="image_21.png" /></figure>

<figure><img src="image_22.png" /></figure>

<figure><img src="image_23.png" /></figure>

<figure><img src="image_24.png" /></figure>

# Lignes directrices

## 1 Contexte et technologies

- Borner les délais

- Apprentissage par renforcement

## 2 Configurer l'ordonnancement de manière identique sur chaque commutateur

- Modélisation

- Évaluation

## 3 Configurer l'ordonnancement de manière individuelle sur chaque commutateur

- Modélisation

- Évaluation

## 4 Conclusion et perspectives
<figure><img src="image_25.png" /></figure>

<figure><img src="image_26.png" /></figure>

<figure><img src="image_27.png" /></figure>

<figure><img src="image_28.png" /></figure>

<figure><img src="image_29.png" /></figure>

<figure><img src="image_30.png" /></figure>

# Délais de bout en bout

## Somme de quatre délais

- Délai de transmission (taille de la trame / débit)

- Délai de propagation (distance / vitesse de propagation)

- Délai de traitement du commutateur

- Délai de mise en file d'attente

<figure><img src="image_31.png" /></figure>
# Délais de bout en bout

<figure><img src="image_32.png" /></figure>

## Somme de quatre délais

* Délai de transmission (taille de la trame / débit), constant sur Ethernet, dépend du matériel

* Délai de propagation (distance / vitesse de propagation), constant sur Ethernet, dépend du matériel

* Délai de traitement du commutateur, constant, dépend du matériel

* Délai de mise en file d'attente

<figure><img src="image_33.png" /></figure>
<figure><img src="image_34.png" /></figure>

<figure><img src="image_35.png" /></figure>

<figure><img src="image_36.png" /></figure>

<figure><img src="image_37.png" /></figure>

<figure><img src="image_38.png" /></figure>

# Time-Sensitive Networking (TSN)

## Time-Sensitive Networking (TSN) Profiles (Selection and Use of TSN tools)

<table><tr><td>Audio Video Bridging<br>[802.1BA]</td><td>Fronthaul<br>[802.1CM/de]</td><td>Industrial Automation<br>[IEC/IEEE 60802]</td><td>Automotive In-Vehicle<br>[P802.1DG]</td><td>Service Provider<br>[P802.1DF]</td><td>Aerospace Onboard<br>[IEEE P802.1 DSA / IPAS 56875]</td></tr></table>

<figure><img src="image_39.png" /></figure>

Note: A 'P' in front of '802.1' indicates an ongoing Project.

More on TSN standards and ongoing projects at: https://www.ieee802.org/1/tsn

8/4/2023
<figure><img src="image_40.png" /></figure>

<figure><img src="image_41.png" /></figure>

<figure><img src="image_42.png" /></figure>

<figure><img src="image_43.png" /></figure>

<figure><img src="image_44.png" /></figure>

# Time-Sensitive Networking (TSN)

## Time-Sensitive Networking (TSN) Profiles (Selection and Use of TSN tools)

<table><thead><tr><th></th><th></th></tr></thead><tbody><tr><td>Audio Video Bridging<br>[802.1BA]</td><td>Fronthaul<br>[802.1CM/de]</td></tr><tr><td>Industrial Automation<br>[IEC/IEEE 60802]</td><td>Automotive In-Vehicle<br>[P802.1DG]</td></tr><tr><td>Service Provider<br>[P802.1DF]</td><td>Aerospace Onboard<br>[IEEE P802.1DP / SAE AS6675]</td></tr></tbody></table>

More on TSN standards and ongoing projects at: https://www.ieee802.org/1/tsn

8/4/2023
<figure><img src="image_45.png" /></figure>

<figure><img src="image_46.png" /></figure>

<figure><img src="image_47.png" /></figure>

<figure><img src="image_48.png" /></figure>

<figure><img src="image_49.png" /></figure>

# IEEE 802.1Q

Ajout de deux champs dans les trames Ethernet :

- Tag Protocol Identifier (TPID) sur 2 octets

- Tag Control Information (TCI) sur 2 octets

- Priority Code Point (PCP)

- Drop Eligible Indicator (DEI)

- VLAN Identifier (VID)

<figure><img src="image_50.png" /></figure>
<figure><img src="image_51.png" /></figure>

<figure><img src="image_52.png" /></figure>

<figure><img src="image_53.png" /></figure>

<figure><img src="image_54.png" /></figure>

<figure><img src="image_55.png" /></figure>

<figure><img src="image_56.png" /></figure>

Ajout de deux champs dans les trames Ethernet :

- Tag Protocol Identifier (TPID) sur 2 octets

- Tag Control Information (TCI) sur 2 octets

- Priority Code Point (PCP) ⇒ ordonnancement

- Drop Eligible Indicator (DEI)

- VLAN Identifier (VID)

<figure><img src="image_57.png" /></figure>
<figure><img src="image_58.png" /></figure>

<figure><img src="image_59.png" /></figure>

<figure><img src="image_60.png" /></figure>

<figure><img src="image_61.png" /></figure>

<figure><img src="image_62.png" /></figure>

# Classes de trafic et priorités

<table><thead><tr><td>Priorité</td><td>Type de trafic</td></tr></thead><tbody><tr><td>1</td><td>arrière-plan</td></tr><tr><td>0 (par défaut)</td><td>meilleur effort (BE) (par défaut)</td></tr><tr><td>2</td><td>excellent effort</td></tr><tr><td>3</td><td>application critique</td></tr><tr><td>4</td><td>vidéo (latence et gigue &lt; 100ms)</td></tr><tr><td>5</td><td>voix (latence et gigue &lt; 10ms)</td></tr><tr><td>6</td><td>Administration inter-réseau</td></tr><tr><td>7</td><td>Administration réseau</td></tr></tbody></table>
<figure><img src="image_63.png" /></figure>

<figure><img src="image_64.png" /></figure>

<figure><img src="image_65.png" /></figure>

<figure><img src="image_66.png" /></figure>

<figure><img src="image_67.png" /></figure>

# IEEE 802.1Qbv – Time-Aware Shaper (TAS)

<figure><img src="image_68.png" /></figure>
<figure><img src="image_69.png" /></figure>

<figure><img src="image_70.png" /></figure>

<figure><img src="image_71.png" /></figure>

<figure><img src="image_72.png" /></figure>

<figure><img src="image_73.png" /></figure>

# IEEE 802.1Qbv – Time-Aware Shaper (TAS)

<figure><img src="image_74.png" /></figure>
<figure><img src="image_75.png" /></figure>

<figure><img src="image_76.png" /></figure>

<figure><img src="image_77.png" /></figure>

<figure><img src="image_78.png" /></figure>

<figure><img src="image_79.png" /></figure>

# IEEE 802.1Qcc – Architecture complètement centralisée

<figure><img src="image_80.png" /></figure>
<figure><img src="image_81.png" /></figure>

<figure><img src="image_82.png" /></figure>

<figure><img src="image_83.png" /></figure>

<figure><img src="image_84.png" /></figure>

<figure><img src="image_85.png" /></figure>

# IEEE 802.1Qcc – Architecture complètement centralisée

<figure><img src="image_86.png" /></figure>
<figure><img src="image_87.png" /></figure>

<figure><img src="image_88.png" /></figure>

<figure><img src="image_89.png" /></figure>

<figure><img src="image_90.png" /></figure>

<figure><img src="image_91.png" /></figure>

<figure><img src="image_92.png" /></figure>

# Problématique

Déterminer directement un ordonnancement permettant de respecter les contraintes applicatives des flux critiques

- de manière dynamique (capable de s'adapter un à changement de topologie)

- sans connaissances préalables sur les flux

- rapidement (de l'ordre de quelques minutes)
<figure><img src="image_93.png" /></figure>

<figure><img src="image_94.png" /></figure>

<figure><img src="image_95.png" /></figure>

<figure><img src="image_96.png" /></figure>

<figure><img src="image_97.png" /></figure>

<figure><img src="image_98.png" /></figure>

# Problématique

Déterminer directement un ordonnancement permettant de respecter les contraintes applicatives des flux critiques

- de manière dynamique (capable de s'adapter un à changement de topologie)

- sans connaissances préalables sur les flux

- rapidement (de l'ordre de quelques minutes)

Trouver un ordonnancement à partir

- des contraintes applicatives

- de la topologie du réseau
<figure><img src="image_99.png" /></figure>

<figure><img src="image_100.png" /></figure>

<figure><img src="image_101.png" /></figure>

<figure><img src="image_102.png" /></figure>

<figure><img src="image_103.png" /></figure>

<figure><img src="image_104.png" /></figure>

# Problématique

Déterminer directement un ordonnancement permettant de respecter les contraintes applicatives des flux critiques

- de manière dynamique (capable de s'adapter un à changement de topologie)

- sans connaissances préalables sur les flux

- rapidement (de l'ordre de quelques minutes)

Trouver un ordonnancement à partir

- des contraintes applicatives

- de la topologie du réseau

⇒ problème NP-difficile
<figure><img src="image_105.png" /></figure>

<figure><img src="image_106.png" /></figure>

<figure><img src="image_107.png" /></figure>

<figure><img src="image_108.png" /></figure>

<figure><img src="image_109.png" /></figure>

<figure><img src="image_110.png" /></figure>

# État de l'art

## Méthodes conventionnelles (ILP, SMT, DSE)

- Ne passe pas à l'échelle

- Méthodes hors ligne non adaptées à l'aspect dynamique des réseaux
<figure><img src="image_111.png" /></figure>

<figure><img src="image_112.png" /></figure>

<figure><img src="image_113.png" /></figure>

<figure><img src="image_114.png" /></figure>

<figure><img src="image_115.png" /></figure>

# État de l'art

<figure><img src="image_116.png" /></figure>

* Méthodes conventionnelles (ILP, SMT, DSE)

* Ne passe pas à l'échelle

* Méthodes hors ligne non adaptées à l'aspect dynamique des réseaux

* Méthodes utilisant l'Intelligence Artificielle (IA)
<figure><img src="image_117.png" /></figure>

<figure><img src="image_118.png" /></figure>

<figure><img src="image_119.png" /></figure>

<figure><img src="image_120.png" /></figure>

<figure><img src="image_121.png" /></figure>

# État de l'art

## Méthodes conventionnelles (ILP, SMT, DSE)

- Ne passe pas à l'échelle

- Méthodes hors ligne non adaptées à l'aspect dynamique des réseaux

## Méthodes utilisant l'Intelligence Artificielle (IA)

- Utiliser une IA pour aider à la configuration (Min et al. 2023)
<figure><img src="image_122.png" /></figure>

<figure><img src="image_123.png" /></figure>

<figure><img src="image_124.png" /></figure>

<figure><img src="image_125.png" /></figure>

<figure><img src="image_126.png" /></figure>

# État de l'art

## Méthodes conventionnelles (ILP, SMT, DSE)

* Ne passe pas à l'échelle

* Méthodes hors ligne non adaptées à l'aspect dynamique des réseaux

## Méthodes utilisant l'Intelligence Artificielle (IA)

* Utiliser une IA pour aider à la configuration (Min et al. 2023)

* Utiliser une IA pour trouver un ordonnancement
<figure><img src="image_127.png" /></figure>

<figure><img src="image_128.png" /></figure>

<figure><img src="image_129.png" /></figure>

<figure><img src="image_130.png" /></figure>

<figure><img src="image_131.png" /></figure>

# État de l'art

## Méthodes conventionnelles (ILP, SMT, DSE)

* Ne passe pas à l'échelle

* Méthodes hors ligne non adaptées à l'aspect dynamique des réseaux

## Méthodes utilisant l'Intelligence Artificielle (IA)

* Utiliser une IA pour aider à la configuration (Min et al. 2023)

* Utiliser une IA pour trouver un ordonnancement

* Trouver les ordonnancements faisables parmi ceux possibles (Navet, Mai et Migge 2019-2021)
<figure><img src="image_132.png" /></figure>

<figure><img src="image_133.png" /></figure>

<figure><img src="image_134.png" /></figure>

<figure><img src="image_135.png" /></figure>

<figure><img src="image_136.png" /></figure>

# État de l'art

## Méthodes conventionnelles (ILP, SMT, DSE)

* Ne passe pas à l'échelle

* Méthodes hors ligne non adaptées à l'aspect dynamique des réseaux

## Méthodes utilisant l'Intelligence Artificielle (IA)

* Utiliser une IA pour aider à la configuration (Min et al. 2023)

* Utiliser une IA pour trouver un ordonnancement

* Trouver les ordonnancements faisables parmi ceux possibles (Navet, Mai et Migge 2019-2021)

* Calculer l'ordonnancement en se basant sur le modèle de non-attente (X. Wang et al. 2022)
<figure><img src="image_137.png" /></figure>

<figure><img src="image_138.png" /></figure>

<figure><img src="image_139.png" /></figure>

<figure><img src="image_140.png" /></figure>

<figure><img src="image_141.png" /></figure>

<figure><img src="image_142.png" /></figure>

# Apprentissage automatique

* But : apprendre à partir de données

* 3 paradigmes d'apprentissage :
<figure><img src="image_143.png" /></figure>

<figure><img src="image_144.png" /></figure>

<figure><img src="image_145.png" /></figure>

<figure><img src="image_146.png" /></figure>

<figure><img src="image_147.png" /></figure>

<figure><img src="image_148.png" /></figure>

# Apprentissage automatique

* But : apprendre à partir de données

* 3 paradigmes d'apprentissage :

* Supervisé : apprentissage sur des données étiquetées
<figure><img src="image_149.png" /></figure>

<figure><img src="image_150.png" /></figure>

<figure><img src="image_151.png" /></figure>

<figure><img src="image_152.png" /></figure>

<figure><img src="image_153.png" /></figure>

# Apprentissage automatique

<figure><img src="image_154.png" /></figure>

* But : apprendre à partir de données

* 3 paradigmes d'apprentissage :

* Supervisé : apprentissage sur des données étiquetées

* Non-supervisé : apprentissage sur des données non étiquetées
<figure><img src="image_155.png" /></figure>

<figure><img src="image_156.png" /></figure>

<figure><img src="image_157.png" /></figure>

<figure><img src="image_158.png" /></figure>

<figure><img src="image_159.png" /></figure>

# Apprentissage automatique

<figure><img src="image_160.png" /></figure>

* But : apprendre à partir de données

* 3 paradigmes d'apprentissage :

* Supervisé : apprentissage sur des données étiquetées

* Non-supervisé : apprentissage sur des données non étiquetées

* Par renforcement : apprentissage sur des expériences
<figure><img src="image_161.png" /></figure>

<figure><img src="image_162.png" /></figure>

<figure><img src="image_163.png" /></figure>

<figure><img src="image_164.png" /></figure>

<figure><img src="image_165.png" /></figure>

<figure><img src="image_166.png" /></figure>

# Apprentissage automatique

* But : apprendre à partir de données

* 3 paradigmes d'apprentissage :

* Supervisé : apprentissage sur des données étiquetées

* Non-supervisé : apprentissage sur des données non étiquetées

* Par renforcement : apprentissage sur des expériences
<figure><img src="image_167.png" /></figure>

<figure><img src="image_168.png" /></figure>

<figure><img src="image_169.png" /></figure>

<figure><img src="image_170.png" /></figure>

<figure><img src="image_171.png" /></figure>

<figure><img src="image_172.png" /></figure>

# Apprentissage par renforcement (RL)

<figure><img src="image_173.png" /></figure>
<figure><img src="image_174.png" /></figure>

<figure><img src="image_175.png" /></figure>

<figure><img src="image_176.png" /></figure>

<figure><img src="image_177.png" /></figure>

<figure><img src="image_178.png" /></figure>

<figure><img src="image_179.png" /></figure>

# Apprentissage par renforcement (RL)

<figure><img src="image_180.png" /></figure>

- État : description complète de l'environnement

- Action : interaction avec l'environnement

- Récompense : évaluation de l'action

But : maximiser la récompense sur le long terme via une politique
<figure><img src="image_181.png" /></figure>

<figure><img src="image_182.png" /></figure>

<figure><img src="image_183.png" /></figure>

<figure><img src="image_184.png" /></figure>

<figure><img src="image_185.png" /></figure>

<figure><img src="image_186.png" /></figure>

# Apprentissage par renforcement (RL)

<figure><img src="image_187.png" /></figure>

But : maximiser la récompense sur le long terme via une politique

- État : description complète de l'environnement

- Action : interaction avec l'environnement

- Récompense : évaluation de l'action

- Observation : description partielle de l'environnement

- Pas : 1 interaction

- Épisode : séquence d'interactions
<figure><img src="image_188.png" /></figure>

<figure><img src="image_189.png" /></figure>

<figure><img src="image_190.png" /></figure>

<figure><img src="image_191.png" /></figure>

<figure><img src="image_192.png" /></figure>

# Algorithmes approximatifs de RL avec utilisation de réseaux de neurones

<figure><img src="image_193.png" /></figure>
<figure><img src="image_194.png" /></figure>

<figure><img src="image_195.png" /></figure>

<figure><img src="image_196.png" /></figure>

<figure><img src="image_197.png" /></figure>

<figure><img src="image_198.png" /></figure>

# Algorithmes approximatifs de RL avec utilisation de réseaux de neurones

<figure><img src="image_199.png" /></figure>
<figure><img src="image_200.png" /></figure>

<figure><img src="image_201.png" /></figure>

<figure><img src="image_202.png" /></figure>

<figure><img src="image_203.png" /></figure>

<figure><img src="image_204.png" /></figure>

# SAC et PPO

## Soft Actor-Critic

- sans modèle

- politique hors ligne

## Proximal Policy Optimization

- sans modèle

- politique en ligne
<figure><img src="image_205.png" /></figure>

<figure><img src="image_206.png" /></figure>

<figure><img src="image_207.png" /></figure>

<figure><img src="image_208.png" /></figure>

<figure><img src="image_209.png" /></figure>

# SAC et PPO

## Soft Actor-Critic

- sans modèle

- politique hors ligne

SAC est plus efficace, mais PPO converge plus rapidement

## Proximal Policy Optimization

- sans modèle

- politique en ligne
<figure><img src="image_210.png" /></figure>

<figure><img src="image_211.png" /></figure>

<figure><img src="image_212.png" /></figure>

<figure><img src="image_213.png" /></figure>

<figure><img src="image_214.png" /></figure>

# Implémentation

<figure><img src="image_215.png" /></figure>
# Lignes directrices

1 Contexte et technologies
■ Borner les délais

■ Apprentissage par renforcement

2 Configurer l'ordonnancement de manière identique sur chaque commutateur
■ Modélisation

■ Évaluation

3 Configurer l'ordonnancement de manière individuelle sur chaque commutateur
■ Modélisation

■ Évaluation

4 Conclusion et perspectives
# Réseau

Hypothèses :

- Pas d'interférences extérieures

- Synchronisation temporelle parfaite supposée

- Même délai de traitement dans les commutateurs

- Même débit des liaisons

- 2 classes de trafic

- Topologies seulement linéaires
# Réseau

Hypothèses :

- Pas d'interférences extérieures

- Synchronisation temporelle parfaite supposée

- Même délai de traitement dans les commutateurs

- Même débit des liaisons

- 2 classes de trafic

- Topologies seulement linéaires

<figure><img src="image_216.png" /></figure>
# État

<table><thead><tr><th>Catégorie</th><th>Nom</th><th>Espace des états</th></tr></thead><tbody><tr><td rowspan="4">Topologie</td><td>Nombre de stations émettrices</td><td>2</td></tr><tr><td>Nombre de stations réceptrices</td><td>2</td></tr><tr><td>Nombre de commutateurs</td><td>∈ [1; 10]</td></tr><tr><td>Capacité des liens (Mbit/s)</td><td>100 ou 1000</td></tr><tr><td rowspan="2">Flux</td><td>Longueur des trames (octets)</td><td>∈ [94; 1 500]</td></tr><tr><td>Intervalle d'émission (μs)</td><td>∈ [240; 1 000]</td></tr><tr><td>Contraintes</td><td>Latence maximale du trafic critique (μs)</td><td>∈ [100; 20 000]</td></tr></tbody></table>
<figure><img src="image_217.png" /></figure>

<figure><img src="image_218.png" /></figure>

<figure><img src="image_219.png" /></figure>

<figure><img src="image_220.png" /></figure>

<figure><img src="image_221.png" /></figure>

<figure><img src="image_222.png" /></figure>

<figure><img src="image_223.png" /></figure>

# Récompense

À la fin d'un pas :

- La latence a baissé depuis l'épisode précédent et 95% des paquets critiques et 50% des paquets BE envoyés sont arrivés : la récompense est de 0

- Certains éléments (latences, pertes) se sont améliorés et d'autres, dégradés : la récompense est de -1

- Dégradation des performances : la récompense est de -10

À la fin d'un épisode :

- Une solution est trouvée : succès, récompense de 1

- Aucune solution n'est trouvée avant 100 tentatives : échec, récompense de -100
# Évolution de la récompense au cours de l'entraînement

- 1 évaluation consiste en 10 épisodes différents

- 1 évaluation chaque 10 000 pas

- 5 évaluations au cours de l'entraînement
# Évolution de la récompense au cours de l'entraînement

- 1 évaluation consiste en 10 épisodes différents

- 1 évaluation chaque 10 000 pas

- 5 évaluations au cours de l'entraînement

<figure><img src="image_224.png" /></figure>
<table><thead><tr><td>Paramètre</td><td>Valeur</td></tr></thead><tbody><tr><td>Nombre de commutateurs</td><td>5</td></tr><tr><td>Capacité des liens</td><td>1 Gbps</td></tr><tr><td>Taille des données utiles critiques</td><td>1 000 octet</td></tr><tr><td>Taille des données utiles BE</td><td>500 octet</td></tr><tr><td>Intervalle d'envoi de paquets critiques</td><td>500 μs</td></tr><tr><td>Intervalle d'envoi de paquets BE</td><td>200 μs</td></tr><tr><td>Délai à respecter pour les flux critiques</td><td>2.5 ms</td></tr></tbody></table>

<figure><img src="image_225.png" /></figure>
# Analyse critique

1. Connaissances préalables sur les flux

2. Topologies limitées

3. Récompense éparses

4. Entraînement long
# Lignes directrices

1. Contexte et technologies

- Borner les délais

- Apprentissage par renforcement

2. Configurer l'ordonnancement de manière identique sur chaque commutateur

- Modélisation

- Évaluation

3. Configurer l'ordonnancement de manière individuelle sur chaque commutateur

- Modélisation

- Évaluation

4. Conclusion et perspectives
# Réseau

Hypothèses :

- Pas d'interférences extérieure

- Synchronisation temporelle parfaite supposée

- Même délai de traitement dans les commutateurs

- Même capacité des liaisons

- 2 classes de trafic

- Topologies seulement linéaires

- Nombre de commutateurs constant (5)
<figure><img src="image_226.png" /></figure>

<figure><img src="image_227.png" /></figure>

<figure><img src="image_228.png" /></figure>

<figure><img src="image_229.png" /></figure>

<figure><img src="image_230.png" /></figure>

# Réseau

Hypothèses :

- Pas d'interférences extérieure

- Synchronisation temporelle parfaite supposée

- Même délai de traitement dans les commutateurs

- Même capacité des liaisons

- 2 classes de trafic

- Topologies seulement linéaires

- Nombre de commutateurs constant (5)

<figure><img src="image_231.png" /></figure>

<figure><img src="image_232.png" /></figure>

<figure><img src="image_233.png" /></figure>
# Implémentation

<figure><img src="image_234.png" /></figure>
<figure><img src="image_235.png" /></figure>

# Observation

- L'état est une description complète du réseau

- Les observations décrivent les changements dans le réseau visibles par l'agent

<table><thead><tr><td>Nom</td><td>Espace des observations</td></tr></thead><tbody><tr><td>Latence observée du flux critique (ns)</td><td>∈ [0; 1 000 000 000]</td></tr><tr><td>Type de topologie utilisée</td><td>Linéaire, en anneau, maillée</td></tr></tbody></table>
# Action

<figure><img src="image_236.png" /></figure>

L'agent doit déterminer, pour chaque commutateur :

- $d_{cycle}$

- pour chaque file d'attente :

- $d_{offset}$

- $d_{ouvert}$

<figure><img src="image_237.png" /></figure>

Durée de l'offset ($d_{offset}$) <=> porte fermée

Durée pendant laquelle la porte est ouverte ($d_{ouvert}$)

Durée pendant laquelle la porte est fermée ($d_{cycle} - d_{offset} - d_{ouvert}$)

<figure><img src="image_238.png" /></figure>

File d'attente 1

File d'attente 0

Durée du cycle ($d_{cycle}$)

Temps
# Récompense

$$ \text{Récompense} = \frac{\text{échéance} - \text{nouvelle\_latence}}{10} $$
# Entraînement sur une topologie linéaire simple avec différents algorithmes

<figure><img src="image_239.png" /></figure>
# Entraînement sur une topologie linéaire simple avec différents algorithmes

<figure><img src="image_240.png" /></figure>

Courbe type : courbe en S
(sigmoïde)

1. Exploration

2. Apprentissage

3. Exploitation
# Entraînement sur trois types de topologie de réseau (linéaire, en anneau et maillée)

<figure><img src="image_241.png" /></figure>

Algorithme d'apprentissage : PPO
Entraînement sur un nombre aléatoire de clients (1 à 5) pour chaque épisode sur une topologie linéaire, et sur topologie aléatoire (linéaire, en anneau et maillée) pour chaque épisode avec 3 clients

<figure><img src="image_242.png" /></figure>

Algorithme d'apprentissage : PPO
Redéfinir la récompense

<figure><img src="image_243.png" /></figure>

But : récompense qui tend vers 0

■ Récompense = $\frac{\text{échéance} - \text{nouvelle\_latence}}{10}$ – punition

Punition $\le -100$
# Durée moyenne des épisodes au cours du dernier entraînement

<figure><img src="image_244.png" /></figure>

Durée moyenne d'un pas : 1 seconde
<figure><img src="image_245.png" /></figure>

<figure><img src="image_246.png" /></figure>

<figure><img src="image_247.png" /></figure>

<figure><img src="image_248.png" /></figure>

<figure><img src="image_249.png" /></figure>

# Ordonnancement calculé sur un environnement de test

<figure><img src="image_250.png" /></figure>
<figure><img src="image_251.png" /></figure>

<figure><img src="image_252.png" /></figure>

<figure><img src="image_253.png" /></figure>

<figure><img src="image_254.png" /></figure>

<figure><img src="image_255.png" /></figure>

# Ordonnancement calculé sur un environnement de test

<figure><img src="image_256.png" /></figure>

<figure><img src="image_257.png" /></figure>
<figure><img src="image_258.png" /></figure>

<figure><img src="image_259.png" /></figure>

<figure><img src="image_260.png" /></figure>

<figure><img src="image_261.png" /></figure>

<figure><img src="image_262.png" /></figure>

<figure><img src="image_263.png" /></figure>

# Publication des résultats

Configuring the IEEE 802.1Q Time-Aware Shaper with Deep Reinforcement Learning –
NOMS 2024 Article accepté
# Récompense plus complète

* But : prendre en compte les autres types de trafic

* Récompense = différence de latence–paquets critique perdus–paquets BE perdus

* Résultat : augmentation drastique de la durée de l'entraînement

⇒ Modifier les observations
<figure><img src="image_264.png" /></figure>

# Lignes directrices

1 Contexte et technologies

- Borner les délais

- Apprentissage par renforcement

2 Configurer l'ordonnancement de manière identique sur chaque commutateur

- Modélisation

- Évaluation

3 Configurer l'ordonnancement de manière individuelle sur chaque commutateur

- Modélisation

- Évaluation

4 Conclusion et perspectives
# Conclusion

- But à atteindre : générer un ordonnancement

- dynamiquement

- sans connaissances préalables sur les flux

- rapidement
<figure><img src="image_265.png" /></figure>

<figure><img src="image_266.png" /></figure>

<figure><img src="image_267.png" /></figure>

<figure><img src="image_268.png" /></figure>

<figure><img src="image_269.png" /></figure>

<figure><img src="image_270.png" /></figure>

# Conclusion

* But à atteindre : générer un ordonnancement

* dynamiquement

* sans connaissances préalables sur les flux

* rapidement

* Deux contributions :

1. Utiliser le RL pour trouver un ordonnancement unique pour tout le réseau

2. Utiliser le RL pour trouver un ordonnancement individuel sur chaque commutateur

* Fonctionne si les conditions suivantes sont réunies :

* Réseau filaire

* Nombre de commutateurs constant (et nombre de files d'attente constant)

* Synchronisation temporelle mise en place
<figure><img src="image_271.png" /></figure>

<figure><img src="image_272.png" /></figure>

<figure><img src="image_273.png" /></figure>

<figure><img src="image_274.png" /></figure>

<figure><img src="image_275.png" /></figure>

# IEEE 802.1Qcc – Architecture complètement centralisée

<figure><img src="image_276.png" /></figure>
<figure><img src="image_277.png" /></figure>

Publications

■ Configuring the IEEE 802.1Q Time-Aware Shaper with Deep Reinforcement Learning – NOMS 2024

■ A. Roberty, S. B. H. Said, F. Ridouard, H. Bauer and A. Geniet, "Reinforcement Learning for Time-Aware Shaping (IEEE 802.1Qbv) in Time-Sensitive Networks," 2023 IEEE 28th International Conference on Emerging Technologies and Factory Automation (ETFA), Sinaia, Romania, 2023, pp. 1-4, doi: 10.1109/ETFA54631.2023.10275566.
<figure><img src="image_278.png" /></figure>

<figure><img src="image_279.png" /></figure>

<figure><img src="image_280.png" /></figure>

<figure><img src="image_281.png" /></figure>

<figure><img src="image_282.png" /></figure>

<figure><img src="image_283.png" /></figure>

## Publications

* Configuring the IEEE 802.1Q Time-Aware Shaper with Deep Reinforcement Learning – NOMS 2024

* A. Roberty, S. B. H. Said, F. Ridouard, H. Bauer and A. Geniet, "Reinforcement Learning for Time-Aware Shaping (IEEE 802.1Qbv) in Time-Sensitive Networks," 2023 IEEE 28th International Conference on Emerging Technologies and Factory Automation (ETFA), Sinaia, Romania, 2023, pp. 1-4, doi: 10.1109/ETFA54631.2023.10275566.

* Minh-Thuyen Thi, Siwar Ben Hadj Said, Adrien Roberty, Fadlallah Chbib, Rida Khatoun, and Leonardo Linguaglossa. 2023. Enabling Programmable Deterministic Communications in 6G. In Proceedings of the Twenty-fourth International Symposium on Theory, Algorithmic Foundations, and Protocol Design for Mobile Networks and Mobile Computing (MobiHoc '23). Association for Computing Machinery, New York, NY, USA, 322-327. https://doi.org/10.1145/3565287.3617607

* Adrien Roberty, Siwar Ben Hadj Said, Frederic Ridouard, Henri Bauer, Annie Choquet-Geniet. ETR 2021 - École d'Été Temps Réel 2021 : Deep Q-learning pour la gestion de réseaux déterministes. École d'Été Temps Réel 2021, Sep 2021, Poitiers, France. pp.9. cea-03363679
# Étendre l'agent

## Permettre de varier le nombre de commutateurs

- Apprentissage par renforcement multi-agent

- 1 agent par commutateur

- Chaque agent coopère avec ses voisins

<figure><img src="image_284.png" /></figure>
<figure><img src="image_285.png" /></figure>

<figure><img src="image_286.png" /></figure>

<figure><img src="image_287.png" /></figure>

<figure><img src="image_288.png" /></figure>

<figure><img src="image_289.png" /></figure>

<figure><img src="image_290.png" /></figure>

# Autres pistes

* Redéfinir la fin d'un épisode

* Supprimer la notion d'échéance
<figure><img src="image_291.png" /></figure>

<figure><img src="image_292.png" /></figure>

<figure><img src="image_293.png" /></figure>

<figure><img src="image_294.png" /></figure>

<figure><img src="image_295.png" /></figure>

<figure><img src="image_296.png" /></figure>

# Autres pistes

- Redéfinir la fin d'un épisode

- Supprimer la notion d'échéance

- Problème d'optimisation des latences
<figure><img src="image_297.png" /></figure>

<figure><img src="image_298.png" /></figure>

<figure><img src="image_299.png" /></figure>

<figure><img src="image_300.png" /></figure>

<figure><img src="image_301.png" /></figure>

<figure><img src="image_302.png" /></figure>

# Autres pistes

* Redéfinir la fin d'un épisode

* Supprimer la notion d'échéance

* Problème d'optimisation des latences

* Avoir un nombre de files d'attentes variable

* Problème ouvert
<figure><img src="image_303.png" /></figure>

<figure><img src="image_304.png" /></figure>

<figure><img src="image_305.png" /></figure>

<figure><img src="image_306.png" /></figure>

<figure><img src="image_307.png" /></figure>

<figure><img src="image_308.png" /></figure>

# Autres pistes

* Redéfinir la fin d'un épisode

* Supprimer la notion d'échéance

* Problème d'optimisation des latences

* Avoir un nombre de files d'attentes variable

* Problème ouvert

* Considérer les réseaux sans-fils
<figure><img src="image_309.png" /></figure>

<figure><img src="image_310.png" /></figure>

<figure><img src="image_311.png" /></figure>

<figure><img src="image_312.png" /></figure>

<figure><img src="image_313.png" /></figure>

<figure><img src="image_314.png" /></figure>

# Autres pistes

* Redéfinir la fin d'un épisode

* Supprimer la notion d'échéance

* Problème d'optimisation des latences

* Avoir un nombre de files d'attentes variable

* Problème ouvert

* Considérer les réseaux sans-fils

* Ajout d'interférences sur le trafic

* Délais de transmission et de propagation variables
<figure><img src="image_315.png" /></figure>

<figure><img src="image_316.png" /></figure>

<figure><img src="image_317.png" /></figure>

<figure><img src="image_318.png" /></figure>

<figure><img src="image_319.png" /></figure>

<figure><img src="image_320.png" /></figure>

# Autres pistes

* Redéfinir la fin d'un épisode

* Supprimer la notion d'échéance

* Problème d'optimisation des latences

* Avoir un nombre de files d'attentes variable

* Problème ouvert

* Considérer les réseaux sans-fils

* Ajout d'interférences sur le trafic

* Délais de transmission et de propagation variables

* Configurer d'autres mécanismes (synchronisation du temps, autres méthodes d'ordonnancement, ...)
<figure><img src="image_321.png" /></figure>

<figure><img src="image_322.png" /></figure>

<figure><img src="image_323.png" /></figure>

<figure><img src="image_324.png" /></figure>

<figure><img src="image_325.png" /></figure>

<figure><img src="image_326.png" /></figure>

# CNC, CUC et SDN

* Centralized Network Configuration (CNC) : gère des informations réseau

* Centralized User Configuration (CUC) : traite des informations applicatives

* Software-Defined Networking (SDN) : modèle d'architecture réseau

<figure><img src="image_327.png" /></figure>
<figure><img src="image_328.png" /></figure>

<figure><img src="image_329.png" /></figure>

<figure><img src="image_330.png" /></figure>

<figure><img src="image_331.png" /></figure>

<figure><img src="image_332.png" /></figure>

<figure><img src="image_333.png" /></figure>

# ILP, SMT, DSE et modèle de non-attente

* Integer Linear Programming (ILP) : méthode d'optimisation mathématique

* Satisfiability Modulo Theories (SMT) : permet de déterminer si une formule mathématique est satisfaisable

* algorithmes Design-Space Exploration (DSE) : algorithmes utilisés pour explorer l'espace des solutions

* modèle de non-attente pour l'ordonnancement TSN (Dürr et Nayak 2016) : modèle dans lequel il n'y a pas de délai dans les files d'attentes ⇒ l'ordonnancement du trafic sur chaque commutateur par lesquels les flux passent peut être calculé en fonction du moment où chaque paquet est transmis
<figure><img src="image_334.png" /></figure>

<figure><img src="image_335.png" /></figure>

<figure><img src="image_336.png" /></figure>

<figure><img src="image_337.png" /></figure>

<figure><img src="image_338.png" /></figure>

<figure><img src="image_339.png" /></figure>

# Réseau de neurones

<figure><img src="image_340.png" /></figure>
<figure><img src="image_341.png" /></figure>

<figure><img src="image_342.png" /></figure>

<figure><img src="image_343.png" /></figure>

<figure><img src="image_344.png" /></figure>

<figure><img src="image_345.png" /></figure>

<figure><img src="image_346.png" /></figure>

# Classification des algorithmes de RL

Un algorithme peut être

- tabulaire/approximatif

- sans modèle/basé sur un modèle

- politique en ligne/hors ligne