implemetation du system des classeurs de type xcsfca

43
Université Mohamed Kheider – BISKRA Faculté des Sciences Exactes, des Sciences de la Nature et de la Vie Département d’informatique Implémentation d’un système de classeurs de type XCSFCA Etudiant: MANSOURI El Hocine

Upload: hocine-mansouri

Post on 13-Apr-2017

83 views

Category:

Technology


1 download

TRANSCRIPT

Université Mohamed Kheider – BISKRAFaculté des Sciences Exactes, des Sciences de la Nature et de la Vie

Département d’informatique

Implémentation d’un système de classeurs de type XCSFCA

Etudiant: MANSOURI El Hocine

SOMMAIRE

205/02/2023

I.. INTRODUCTIONII.. LEARNING CLASSIFIER SYSTEM

III.. XCSFCAIV.. XCSFCA POUR PENDULUM SWINGUP

V.. CODE ET EXÉCUTIONVI.. CONCLUSION

305/02/2023

I.INTRODUCTION

405/02/2023

Et dans ce travail, je vais présenter comment mettre en œuvre ce système (XCSFCA) et comment il fonctionne pour résoudre le problème de simuler le mouvement inverse du pendule « swing up pendulum »ce qui un problème d’environnement «multistep», avec des actions continues.

Depuis la Hollande, à ce jour , les systèmes de classeurs permettent de résoudre de nombreux problèmes , et qui a été à un moment n’ont pas un résolution, et en raison de son efficacité, ils sont utilisés dans de nombreuses technologies modernes

505/02/2023

II. Les systèmes de classeurs Learning Classifier System

605/02/2023

II. a Définition

705/02/2023

805/02/2023

Les systèmes de classeurs (LCS) sont des architectures de contrôle et d’apprentissage non supervisé d’interactions entre un système artificiel et son environnement. Ils offrent un apprentissage inductif qui généralise un ensemble de règles comportementales en combinant l’apprentissage par renforcement et les algorithmes génétiques (Holland, 1975).

II. b Principe

905/02/2023

1005/02/2023

Environnement

Interface d’entrées Interface de sorties

Renforcement

Appariement Electiond’action

Population AlgrithmesEvolutionistes

Systeme de classeurs

Rétribution

t := 0 ; // compteur d’itérations

initClassifierPopulation( P(t) ) ; // population de classeurs initiale

while not done do // critère de terminaison (temps ...)

t := t +1 ;// Perception : 1. codage de la perceptionIe(t) := readDetectors(t) ;// Comparaison : 2a. comparaison de [P] et Ie et sauvegarde les appariements dans [M]M(t) := matchClassifiers( Ie(t),P(t),Comparaison ) ;// Génération (1) Covering : 2b. créer des règles s’appariant avec Ie (si M vide ou criterion1)if ( M.size < criterion0 || criterion1 ) thenM(t) := cover( Ie(t),P(t),Covering ) ;// Sélection : 3. sélection des règles dans [A]A(t) := selectClassifiers( M(t),Sélection ) ;// Actions : 4. envoie de l’action via IoIo(t) := sendEffectors( A(t) ) ;// Rétribution (1) : 5. réception de la rétribution de l’environnementr := receivePayoff(t) ;// Rétribution (2) : 6. distribution de la rétribution aux classeursP(t) := distributeCredit( r,P(t),P(t-1),Rétribution ) ;// Génération (2) A.E. : 7. éventuellement (selon t) un Algorithme Évolutionniste est utilisé sur [P]if ( criterion2 ) thenP(t+1) := reviseRules( P(t),Algorithme_Evolutionniste ) ;

Pseudocode représentant le principe et cycle d’un système de classeurs

Interactions entre l’environnement et le système de classeurs

II. c Versions

1105/02/2023

ZCS , XCS , XCSF

1205/02/2023

ZCS (Wilson, 1994)

1305/02/2023

C’est un système de classeurs basés sur la force. Où chaque classeur ne dispose que d’une évaluation, qui lui tient lieu à la fois d’évaluation de la récompense cumulée que l’agent peut obtenir en le déclenchant et de fitness pour le mécanisme de création et de suppression de classeurs. Ce système fonctionne avec une population de classeurs de taille fixée P.Ce type de système de classeurs utilise des règles sous la forme classique du triplet R = (C, A, f).

1405/02/2023

[01010111]Interface entrées

Renforcement

List

e de

cla

sseu

rs Condition[#10#0#1#][#1010##1][#10##1#1][10###101][0#10#0#0]

Action[010][100][001][001][001]

Qualité0.50.60.70.10.8

Classeur choisi[#10##1#1] [001] 0.7

001

Interface de sorties

Le principe de fonctionnement de l’interaction d’un agent commandé par ZCS avec son environnement

1505/02/2023

XCS (Wilson, 1995)

1605/02/2023

Est une extension de ZCS basés sur la précision, Il a été introduit pour pallier au problème de la maintenance des longues chaînes d’actions.Wilson propose de ne plus considérer la force d’un classeur comme sa valeur sélective. Le XCS propose de remplacer la force d’une règle, définie initialement par les gains qu’elle permet d’espérer, par la précision de ses prédictions de gain.Condition C Action A Force F

Condition C Action A Prédiction P Erreur E Fitness fit

1705/02/2023

XCSF (Wilson, 2001)

1805/02/2023

XCSF est le prolongement de XCS dans lequel la prédiction de classeur est calculé comme une combinaison linéaire des entrées de classeur et un vecteur de pondération associé à chaque classeur. Le XCSF étend le XCS pour traiter les entrées réelles.

III.XCSFCA

1905/02/2023

XCSF avec des actions continues

2005/02/2023

• Une extension de XCSF utilisé principalement dans les environnements multi- itérations.

• Calculer les actions discrets pour réduire l'espace de recherche dans les problèmes avec un grand nombre d'actions.

• En XCSFCA les actions sont continue en fonction des messages entrants.

III.a Architecture

2105/02/2023

2205/02/2023

selectiond’action

[P][M]

[A]

Environnement

a* RécompenseP(x, a)

X

Covering

ESAG

IV. XCSFCA POUR PENDULUM SWINGUP

2305/02/2023

IV.a Dynamique de PENDULUM SWINGUP

2405/02/2023

𝐴=𝜋 𝑟2 𝐴=𝜋𝑟 2La dynamique de pendule étudier dans

notre projet est caractérisé par :

2505/02/2023

𝐹=∆×𝑐𝑜𝑛𝑠𝑡׿

∆=0 .05

𝑐𝑜𝑛𝑠𝑡= 34×𝑝𝑀×𝑝𝐿2

𝑝𝑀𝐿𝐺=𝑝𝑀×𝑝𝐿×𝐺𝑟𝑎𝑣𝑖𝑡𝑦𝐺

Envi

ronn

emen

tXCSFCA

Classifier 1•Condition.LOWER >= X[] >= Condition.UPPER ?

Classifier 2•Condition.LOWER >= X[] >= Condition.UPPER ?

Classifier n•Condition.LOWER >= X[] >= Condition.UPPER ?

Classifier 1•Action{a}•Prediction{O}

Classifier 2•Action{a}•Prediction{O}

Classifier n•Action{a}•Prediction{O}

X[ , ] T=0

Cl2.action

Cl2.reward

N fois

• ØP1• ØP2• ØPN

Update Classifiers weight + Prediction

error + fitness

Vote Best Classifier (best action a*)

covering

ES

GA

Matching [M]

ActionSet [A]

Population [P]Si aucune classeur satisfait 2605/02/2023

Envi

ronn

emen

tXCSFCA

Classifier 1•Condition.LOWER >= X[] >= Condition.UPPER ?

Classifier 2•Condition.LOWER >= X[] >= Condition.UPPER ?

Classifier n•Condition.LOWER >= X[] >= Condition.UPPER ?

Classifier 1•Action{a}•Prediction{O}

Classifier 2•Action{a}•Prediction{O}

Classifier n•Action{a}•Prediction{O}

X[ , ] T=1

Cl35.action

Cl35.reward

N fois

• 1.671360P1•ØP2•ØPN

Update Classifiers weight + Prediction

error + fitness

Vote Best Classifier (best action a*)

covering

ES

GA

Matching [M]

ActionSet [A]

Population [P]Si aucune classeur satisfait 2705/02/2023

Envi

ronn

emen

tXCSFCA

Classifier 1•Condition.LOWER >= X[] >= Condition.UPPER ?

Classifier 2•Condition.LOWER >= X[] >= Condition.UPPER ?

Classifier n•Condition.LOWER >= X[] >= Condition.UPPER ?

Classifier 1•Action{a}•Prediction{O}

Classifier 2•Action{a}•Prediction{O}

Classifier n•Action{a}•Prediction{O}

X[ , ] T=2

Cl18.action

Cl18.reward

N fois

• 1.671360P1•0.38511P2•ØPN

Update Classifiers weight + Prediction

error + fitness

Vote Best Classifier (best action a*)

covering

ES

GA

Matching [M]

ActionSet [A]

Population [P]Si aucune classeur satisfait 2805/02/2023

Envi

ronn

emen

tXCSFCA

Classifier 1•Condition.LOWER >= X[] >= Condition.UPPER ?

Classifier 2•Condition.LOWER >= X[] >= Condition.UPPER ?

Classifier n•Condition.LOWER >= X[] >= Condition.UPPER ?

Classifier 1•Action{a}•Prediction{O}

Classifier 2•Action{a}•Prediction{O}

Classifier n•Action{a}•Prediction{O}

X[ , ] T=3

Cl108.action

Cl108.reward

N fois

• 1.671360P1•0.38511P2• -1.0475P3

•……..•….

Update Classifiers weight + Prediction

error + fitness

Vote Best Classifier (best action a*)

covering

ES

GA

Matching [M]

ActionSet [A]

Population [P]Si aucune classeur satisfait 2905/02/2023

V. Code et Exécution

3005/02/2023

V.a Diagramme de projet

3105/02/2023

3205/02/2023

Class main

SwingUp_Pendulum_UI

XCSCA_System_Globale

ASelection

Class XCSCA

CoveringGetMatch

GAES

Renforcement

Select act

Saiser le nombre de Population et iterations

La Boucle principale Environnement/XCSFCA

V.b Quelque Codes <..>

3305/02/2023

3405/02/2023

Main.java

public static void main(String[] args) throws FileNotFoundException,IOException { SwingUp_Pendulum_UI ui = new

SwingUp_Pendulum_UI(); ui.Ui_main(); }

3505/02/2023

XCSFCA_system_globale.javafor (long i = 0L; i < problems;) {

if (vr != 1) { for (int rep = 0; rep < runAvg; rep++) {

InitializePendulum();xcsfca[0].ClearAllSets();for (int step = 0; step < NUM_STEPS && reset != 1;

step++) { action = xcsfca[0].SingleStepProblemExplore(x);

rwd = SwingPendulum(action);xcsfca[0].Reinforce(0, -1);

xcsfca[0].ESDiscovery(0, -1); xcsfca[0].GADiscovery(0); if (reset == 1 || step == NUM_STEPS - 1) { xcsfca[0].Reinforce(1, rwd); xcsfca[0].ESDiscovery(1, rwd); xcsfca[0].GADiscovery(1); } xcsfca[0].AffectLastActionSet(rwd); } }……

3605/02/2023

XCSFCA.java (SingleStepProblemExpore())itTime++; msg = inputmsg; GetMatchSet(msg, matchset, match_size);

Covering(); int winnerPop; if (covering_called > 0 || (epsilon_greedy > 0 && drand()< eps)){ winnerPop = LearningWinnerAction(matchset, match_size); asel.RWSDeterministic(); } else { winnerPop = DeterministicWinnerAction(matchset, match_size); }

GetActionSet(matchset, match_size, cl[winnerPop].action,

actionset, action_size); return cl[winnerPop].action[0];

3705/02/2023

Aselectionint RWSDeterministic() { int astar = -1; for (int j = 0; j < rwssze; j++) { if (rwsset[j].fitness != 0.) { rwsset[j].data = rwsset[j].payoff / rwsset[j].fitness; } else { rwsset[j].data = 1e-15; } if (astar == -1 || rwsset[astar].data < rwsset[j].data) { astar = j; }

}return rwsset[astar].index;

}

V.c Exécution

3805/02/2023

3905/02/2023

4005/02/2023

VI. Conclusion

4105/02/2023

L’intégration du système de classeur de type XCSFCA dans la résolution du problème de swing up pendulum preuve que la technique d’apprentissage peut traiter beaucoup problèmes de ce genre.Et Comme j’explique dans la mémoire, le problème de mouvement de bras d’humanoid artificiel, est un exemple des perspective possible de réalisé et résolu par le XCSFCA.

4205/02/2023

Merci pour votre attention