Implemetation du system des classeurs de type xcsfca
-
Upload
hocine-mansouri -
Category
Technology
-
view
83 -
download
1
Transcript of Implemetation du system des classeurs de type xcsfca
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
I.. INTRODUCTIONII.. LEARNING CLASSIFIER SYSTEM
III.. XCSFCAIV.. XCSFCA POUR PENDULUM SWINGUP
V.. CODE ET EXÉCUTIONVI.. CONCLUSION
305/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
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).
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
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
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
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.
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.
𝐴=𝜋 𝑟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
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
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;
}
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