Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont...

24
´ Ecole Polytechnique de l’Universit´ e de Tours 64, Avenue Jean Portalis 37200 TOURS, FRANCE el. +33 (0)2 47 36 14 14 Fax +33 (0)2 47 36 14 22 www.polytech.univ-tours.fr epartement Informatique 4` eme ann´ ee 2007-2008 Rapport du projet d’analyse de donn´ ees Etude des relations / indicateur performance pour le RCPSP (borne sup) ´ Etudiants : Lulu Zhong [email protected] Jonathan Courtois [email protected] Encadrants : Emmanuel Neron [email protected] Vincent T’Kindt [email protected] Universit´ ee Fran¸ cois-Rabelais, Tours Version du 15 mai 2008

Transcript of Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont...

Page 1: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes

Ecole Polytechnique de l’Universite de Tours64, Avenue Jean Portalis37200 TOURS, FRANCETel. +33 (0)2 47 36 14 14Fax +33 (0)2 47 36 14 22

www.polytech.univ-tours.fr

Departement Informatique4eme annee 2007-2008

Rapport du projet d’analyse de donnees

Etude des relations / indicateurperformance pour le RCPSP (borne sup)

Etudiants :Lulu [email protected] [email protected]

Encadrants :Emmanuel Neron

[email protected] T’Kindt

[email protected] Francois-Rabelais, Tours

Version du 15 mai 2008

Page 2: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes
Page 3: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes

Table des matieres

Introduction 5

1 Presentation du projet 61.1 Objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.2 Le format des donnees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Le logiciel R 82.1 Presentation de R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2 Quelques commandes utiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2.1 Les matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2.2 Les graphiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2.3 Fonctions statistiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3 Traitement des donnees 113.1 Conversion des donnees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2 Recuperation des donnees dans une matrice . . . . . . . . . . . . . . . . . . . . . . . . . 11

4 Analyse en composantes principales 124.1 ACP sous R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124.2 Methode CHRISTOPHIDES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.3 Methode PRITSKER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Conclusion 16

A Code sous R 17A.1 Analyse du fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

B Liens utiles 21B.1 Webographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Etude de relations (RCPSP) III

Page 4: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes

Table des figures

1.1 Fichier OpenOffice Calc contenant les donnees initiales . . . . . . . . . . . . . . . . . . . 6

4.1 Affichage graphique pour la methode CHRISTOPHIDES . . . . . . . . . . . . . . . . . . 134.2 1er plan factorielle, methode CHRISTOPHIDES . . . . . . . . . . . . . . . . . . . . . . . 144.3 3 plans factorielles, methode PRITSKER . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

IV Etude de relations (RCPSP)

Page 5: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes

Introduction

Dans le cadre de notre projet d’analyse de donnees, nous avons du traiter un tableau de donneescomportant un grand nombre d’instances caracterise par des indicateurs. Ces instances ont ete soumises ades methodes de resolution de borne superieure et on en a obtenu des indicateurs de performances pourchacune de ces methodes. Dans un premier temps, nous avons realise un traitement de ces donnees pourobtenir une matrice comportant uniquement les informations voulues. Ensuite nous avons effectue une ACPsur ces differents indicateurs pour obtenir une representation de ces variables dans un plan factoriel. Puispour terminer, nous avons interprete les differents resultats dans le but de definir une relation entre lesperformances des mehodes Christophides et Pritsker avec les indicateurs initiales des instances.

Etude de relations (RCPSP) 5

Page 6: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes

CHAPITRE 1

Presentation du projet

1.1 Objectif

L’objectif de ce projet est d’etudier les relations entre les differents indicateurs des instances d’unjeu de donnees et les indicateurs de performances de plusieurs methodes de resolution. En clair, nousavons differentes methodes de resolution de la borne superieure avec pour chaque methode un certainnombre d’indicateurs de performance. Nous allons effectuer une analyse en composante principale sur cejeu de donnees avec comme individu les instances et comme variables les indicateurs des instances et lesindicateurs de performances des methodes. Grace a la representation graphique obtenu, nous pourronsetudier les correlations qui existent entre ces differents indicateurs.

1.2 Le format des donnees

Les donnees a analyser dans ce projet sont contenues dans un fichier au format OpenOffice Calc. Tousles fichiers suivent le meme format que l’on va rapidement d’ecrire ci-dessous.

Jeux de données Méthode Indicateurs de performances Indicateurs des jeux de données...

Fig. 1.1 – Fichier OpenOffice Calc contenant les donnees initiales

La premiere colonne contient les differentes instances qui representeront par la suite nos individus. Pourchaque instance, on possede un jeu de donnees. Les colonnes suivantes representent les indicateurs des jeuxde donnees. Par exemple :

• N : le nombre de taches• #ress : le nombre de ressources• CPLB : le chemin critique

6 Etude de relations (RCPSP)

Page 7: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes

Le format des donnees

• UB : borne superieure de base• etc.

A la suite des indicateurs, on peut observer les differentes methodes de resolution (ici CHRISTO-PHIDES). La premiere ligne indique le nom de la methode, la seconde ligne les differents indicateurs deperformances de cette methode avec un indicateur par colonne. pour l’ensemble des methodes les indica-teurs de performances sont les suivants (ou XX est le nom de la methode) :

• XX-LB : borne inferieure calculee• XX-LBINT : arrondi entier superieur de la borne inferieure• XX-CPU : temps CPU• XX-DCPLB : deviation par rapport a la valeur du chemin critique (en %)• XX-DBEST : deviation par rapport a la meilleure solution (en %)• XX-DBLB : deviation par rapport a la meilleure borne inferieure (en %)• XX-#OPT : est ce que LB = UB best• XX-#LB=LBBES : est ce que LB = LB Best

Etude de relations (RCPSP) 7

Page 8: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes

CHAPITRE 2

Le logiciel R

2.1 Presentation de R

R est un systeme (progiciel) d’analyse statistique et graphique, disponible gratuitement pour toutes lesplateformes (Windows, Mac OS X, Linux). R a ete cree en 1990 par Ross Ihaka et Robert Gentleman aUniversity of Auckland. R est devenu un logiciel libre et gratuit en 1995.

R est un langage de programmation et un progiciel de fonctions statistiques. La version de base de Rcontient deja un grand nombre de fonctions statistiques et graphiques permettant, par exemple, de calculerune moyenne ou une variance ou de tracer un histogramme, de programmer des boucles qui vont analysersuccessivement differents jeux de donnees. Il est aussi possible de combiner dans le meme programmedifferentes fonctions statistiques pour realiser des analyses plus complexes.

De nombreux chercheurs ont developpe au cours des annees des fonctions plus avancees qui sont dis-ponibles a tous les utilisateurs de R. Ces fonctions sont regroupees en bibliotheques qui sont disponiblespour telechargement sur le site du projet R (http://www.r-project.org/), ou encore sur la page Web deschercheurs ou en annexe de leurs publications. A cause de sa grande flexibilite et du fait qu’il soit mul-tiplateforme et gratuit, R est devenu l’un des principaux instruments de calcul statistique utilise par leschercheurs dans tous les domaines.

En un mot, ses caracteristiques les plus remarquables sont :

• Un systeme performant de stockage et de manipulation de donnees ;• La possibilite d’effectuer du calcul matriciel et autres operations complexes ;• Une large collection integree et coherente d’outils d’analyse statistique ;• Un large eventail d’outils graphiques particulierement flexibles ;• Un langage de programmation simple et efficace qui inclut de nombreuses facilites.

2.2 Quelques commandes utiles

2.2.1 Les matrices

Une matrice est simplement un tableau a deux indices.

1. Multiplication : si A et B sont des matrices de meme dimension, x est un vecteur :• A * B est la matrice de produits element par element,• A %*% B est le produit matriciel,• x %*% A %*% x est une forme quadratique.

2. Autres operations :• t(A) est la transposee de la matrice A,, diag(v), diag(M)• nrow(A) est le nombre de ligne,• ncol(A) est le nombre de colonne,• diag(A) est la diagonale de la matrice.

8 Etude de relations (RCPSP)

Page 9: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes

Quelques commandes utiles

3. Systemes d’equations lineaires et inversion :• solve(A,b) resout l’equation Ax = b,• solve(A) calcul l’inverse de A.

4. Valeurs et vecteurs propres :• La fonction eigen(Sm) calcul.les valeurs et vecteurs propres d’une matrice symetrique Sm,• le resultat est une liste de deux composantes nommees values et vectors,• ev <- eigen(Sm) ; ev$val ; ev$vec ; .

2.2.2 Les graphiques

La fonction plot()

Une des fonctions graphiques la plus utilisee est plot(). Ceci est une fonction generique : le type degraphique produit depend du type ou classe de son premier argument. plot(x,y), plot(xy) si x et y sont desvecteurs, plot(x,y) produit un ” scatterplot ” de y contre x. La deuxieme forme (un seul argument) envoieune liste a deux elements ou une matrice a deux colonnes. plot(x) si x est une serie temporelle, produit ungraphique de x contre son indice. plot(f), plot(f,y) f est un objet facteur, y est un vecteur numerique ; lapremiere forme genere un graphique en barre (” bar plot ”) de f, la seconde produit des graphiques en boite(” boxplots ”) de y pour chaque niveau de f. plot(df), plot( expr), plot(y expr) df est un data frame, y esttout objet, expr est une liste d’objets separes par ’ + ’ (eg. a+b+c) ; les 2 premieres formes produisentdes traces distribues des variables dans le data frame, ou d’un nombre d’objets nommes ;la troisieme formetrace y contre chaque objet nomme dans expr.

plot(x,y. type= " ", xlab= " titre de l’axe des x ", ylab="titre de l’axe desy", xlim=c(-a,a), ylim=c(-b,b), pch=--, col=" ", bty=" ", tcl=--, main="titredu graphique", las=--, cex=--, lty=--)

1. type : specifie le type de graphique ”p” : points, ”l” : lignes, ”b” : points connectes par des lignes,”o” lignes recouvrant les points, ”h” : lignes verticales, ”s” : escaliers, les donnees etant representeespar le haut des lignes, ”S” : les donnees etant representees par le bas des lignes.

2. xlim, ylim : definissent les limites de l’axe des x et des y.

3. pch : specifie le symbole utilise pour representer les points. Tous les symboles ont un code, o(20), ?(5), ? ? (22), ? (6), ? (10), ? (13), ? (18), ? (8), ? (17), ? (1), etc).

4. col : la couleur du symbole utilise.

5. bty : specifie la forme du cadre du graphique (”o”,”u”,”l”,”7”,”c”,”]”), la forme du carde ressemblantau caractere choisi. Le caractere ”n” supprime le cadre du graphique.

6. las : specifie la disposition des annotations des axes ( 0 : paralleles aux axes, 1 : horizontales, 2 :perpendiculaires aux axes, 3 : verticales).

7. cex : controle la taille des symboles.

8. lty : specifie le type de ligne tracee (1 : continue, 2 : tiret, 3 : gras, 4 : point et tiret5 : tiret long, 6 :tiret long et court).

9. tcl : specifie la longueur du trait de graduation par defaut tcl=-0.5 .

10. cex.axis, cex.lab, cex.main, controlent respectivement la taille des annotations des axes, la taille destitres d’axes et la taille du titre du graphique.

Etude de relations (RCPSP) 9

Page 10: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes

Chapitre 2. Le logiciel R

2.2.3 Fonctions statistiques

• sum(x) : la somme des elements de x.• prod(x) : les produits des elements de x.• max(x) : la plus grand des elements de x.• min(x) : le plus petit des elements de x.• range(x) : l’etendue des elements de x.• length(x) : le nombre d’elements de x.• mean(x) : la moyenne des elements de x.• median(x) : la mediane des elements de x.• var(x) : la variance des elements de x (calculee avec n-1).• sd(x) : l’ecart-type de x.• cov(x) : matrice de variances-covariances.• cor(x) : matrice des correlations.• cov(x,y) : covariance entre x et y.• cor(x,y) : correlation entre x et y.• sort(x) : ordonne les elements de x et y.• table(x,y) : table de contingence.

10 Etude de relations (RCPSP)

Page 11: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes

CHAPITRE 3

Traitement des donnees

3.1 Conversion des donnees

Apres de nombreuses recherches, il nous a ete impossible de traiter directement un fichier OpenOfficeCalc a l’aide du logiciel R. Il nous a donc fallu exporter les donnees dans un autres format lisible par R.Nous avons choisi le format text .csv qui contient l’ensemble des donnees des differentes cellules du fichierd’origine separees par des ”,”.

3.2 Recuperation des donnees dans une matrice

L’encadrant de notre projet d’analyse de donnees nous a demande de garder certains indicateurs etd’en supprimer d’autres et de faire l’analyse sur certaines methodes. Cependant, nous avons trouve plusjudicieux de realiser un script sous R qui demande a l’utilisateur quels indicateurs il veut utiliser, ainsi que lamethode associee. Cela permet a l’encadrant de faire plusieurs tests avec differentes methodes et differentsindicateurs. Nous allons rapidement expliquer le fonctionnement de ce script.

Tout d’abord, le script charge le fichier contenant les donnees dans un tableau X, grace a la commandeX=read.csv("analyse-j30.csv",h=T).On recupere ensuite les noms des methodes (contenus dans le tableau X) avec la fonction recupmeth <- function(X).On supprime ensuite la premiere ligne(X <- X[-c(1),].On supprime aussi les lignes qui ne sont pas des donees en utilisant la fonction add <- function(X).Maintenant, notre tableau X est ”propre”, on va pouvoir demander a l’utilisateur les indicateurs et lamethode qu’il souhaite garder pour faire l’analyse.On commence donc avec la fonctionselec_var_entree <- function(Mmeth,Y), qui va afficher a l’utilisateur les differents indicateurs. L’uti-lisateur va donc rentrer les numeros des indicateurs qu’il souhaite garder, en les separant bien par desvirgules. La fonction fun <- function() va s’occuper de recuperer la saisie clavier de l’utilisateur, puison va utiliser la fonction list_indic<-unlist(strsplit(num_indic, ",")) qui va decouper la chaınede caracteres recuperee avec comme delimitateur l’espace, puis mettre le resultat dans la liste list_indic.Le meme principe est ensuite applique pour recuperer le numero de la methode, puis les numeros des indi-cateurs de la methode.

Une fois que l’on a recupere toutes ces donnees de la part de l’utilisateur, on peut alors remplir unematrice X3, dans laquelle on va copier les colonnes de donnees (de X vers X3) que l’utilisateur souhaitegarder pour l’analyse.

La fonction se termine donc en renvoyant cette matrice.

Etude de relations (RCPSP) 11

Page 12: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes

CHAPITRE 4

Analyse en composantes principales

L’analyse en composantes principales (ACP) est une technique d’analyse statistique, principalement des-criptive, consistant a representer sous forme graphique le plus d’informations possibles contenues dans untableau. Elle permet ainsi de visualiser un espace a n dimensions a l’aide d’espaces de dimensions plus petites(generalement de dimension 2). L’ACP construit de nouvelles variables artificielles et des representationsgraphiques permettant de visualiser des relations entre variables ainsi que l’existence eventuelle de groupesd’individus et de groupes de variables.

Afin d’analyser les correlations entre les differents indicateurs, nous avons effectue une analyse encomposantes principales pour chacune des methodes de resolution de la borne superieure. Cela nous apermis de montrer les indicateurs qui ont une incidence sur les performances de la methode de resolution.

4.1 ACP sous R

Presentation d’une ACP detaillee etape par etape avec le langage R.

#Mettre les donnees dans une variable Yn <- dim(Y)

#Centrage du tableauX <- Y-matrix(1,n[1],1)%*%apply(Y,2,mean)

#Reduction du tableau(eventuellement)X <- X/matrix(1,n[1],1)%*%apply(X,2,sd)

#Calcul de la matrice de covariance#V <- cov(X)V <- (1/(n[1]-1))*t(X)%*%X

#Calcul des valeurs propres et des vecteurs propresRes = eigen (V)valp = Res$valuesvectp = Res$vectors

#Calcul de l’inertie totalesommeVal <- sum(valp)

#Calcul des intertie et affichage graphiqueinertie = valp / sommeValplot(inertie, type="h", col = "blue", lwd=10,xlab="Valeurs propres",ylab="Inertie",main="NOM METHODE")

#Recupere le nombre d’axes factoriels

12 Etude de relations (RCPSP)

Page 13: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes

Methode CHRISTOPHIDES

inertie = cumsum(inertie)valin <- inertie[inertie>0.7][1]nb <- findInterval(valin,inertie)

#Nombre d’axes factorielles (ici 2)nb

#Calcul des composantes principales du probleme dualC1 <- sqrt(valp[1]) * vectp[,1]C2 <- sqrt(valp[2]) * vectp[,2]

#Tracer des graphiquesdim <- c(-1,1)plot(C1,C2,pch=’+’,xlab="Axe 1",ylab="Axe 2",xlim=dim,ylim=dim,main="NOM METHODE")text(C1,C2,row.names(C),pos=3)abline(h=0,v=0)curve(sqrt(1-x^2),xlim=c(-1,1),add=TRUE)curve(-sqrt(1-x^2),xlim=c(-1,1),add=TRUE)

Fig. 4.1 – Affichage graphique pour la methode CHRISTOPHIDES

4.2 Methode CHRISTOPHIDES

Pour la methode Christophides, on obtient 2 axes factoriels apres avoir realise l’ACP. On projettel’ensemble des variables (indicateurs des instances et indicateurs de performance de la methode) sur les2 axes factorilles. Etant donne que les donnees ont ete normees, on obtient la representation a l’interieurd’un cercle trigonometrique entre -1 et 1.

Etude de relations (RCPSP) 13

Page 14: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes

Chapitre 4. Analyse en composantes principales

Fig. 4.2 – 1er plan factorielle, methode CHRISTOPHIDES

On observe que l’ensemble des variables sont relativement proches du cercle, on considere donc qu’ellessont bien representees. On remarque que les 3 indicateurs de performance de la methode sont evidemmentfortement correles.

• CH-DCPLB : deviation par rapport a la valeur du chemin critique (en %)• CH-DBEST : deviation par rapport a la meilleure solution (en %)• CH-DBLB : deviation par rapport a la meilleure borne inferieure (en %)

En ce qui concerne les indicateurs des instances, on observe uniquement la variable #UFS qui sembleetre correlee aux differentes deviations par rapport au premier axe factoriel. On peut donc penser quejouer sur cette variable peut influencer les deviations par rapport au chemin critique, meilleure solution, etmeilleure borne inferieure.

14 Etude de relations (RCPSP)

Page 15: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes

Methode PRITSKER

4.3 Methode PRITSKER

Pour la methode Pritsker, on obtient cette fois 3 axes factoriels grace a l’ACP. On obtient donc 3 plansfactoriels (Axe 1 et 2, Axe 1 et 3 et Axe 2 et 3) dans lesquelles on represente les differentes variables.

Fig. 4.3 – 3 plans factorielles, methode PRITSKER

On obtient un peu pres les memes resultat que la methode Christophides, c’est a dire un regroupementdes 3 indicateurs de performance de la methode avec l’indicateur #UFS en ce qui concerne le premier axefactoriel. Concernant le 3eme plan factoriel, les indicateurs de performance sont places plutot vers le centredu repere, on considere donc que ces indicateurs sont mal representes vis a vis des axes factoriels 2 et 3.On ne peut donc rien deduire de ce 3eme plan factoriel pour la methode PRISTKER.

Etude de relations (RCPSP) 15

Page 16: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes

Conclusion

En conclusion de ce projet, le traitement des donnees sous R n’a pas ete evident mais a finalement finipar donner un resultat plus que satisfaisant. Ensuite nous avons realise une ACP a la main sous R (sachantqu’il existe une commande tout faite pour la realiser : prcomp()) a l’aide du cours d’analyse de donnees,cela nous a permis de mieux comprendre certaines parties du cours qui nous avaient echappe. Dans notrecas nous avons realise le probleme dual de l’ACP pour projeter les variables. Cependant les resultats nenous paraissent pas tres exploitables, et les interpretations ne sont pas fiables a 100%.

16 Etude de relations (RCPSP)

Page 17: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes

ANNEXE A

Code sous R

A.1 Analyse du fichier

main <- function(){X=read.csv("analyse-j30.csv",h=T) # Chagement du fichier .csv (non formate)taille = length(X) # Nombre de colonnes de Xdimension=dim(X)dime=dimension[1] # Nombre de lignes de X

(Y<-X[1,]) #recuperation des noms des colonnes(variables)Y=as.matrix(Y)

recupmeth <- function(X){ #recupere les noms des methodesj = 1Meth=0Posi=0namecol = colnames(X)for (i in seq(from = 1, to = length(namecol))){res = charmatch("X",namecol[i])if (is.na(res)){Meth[j] = namecol[i]Posi[j] = ij=j+1

}}M <- matrix(c(Meth, Posi),nrow=2,ncol=length(Posi),byrow=T)

}

Mmeth = recupmeth(X) #MMeth est un tableau contenant le nom des methodes

X <- X[-c(1),] # Suppresion de la premiere ligne

#############Debut de la suppression des elements en trop#############

add <- function(X){ #Fonction qui renvoie 1 si le premier caractere de la premiere colonneest un "/"

res = charmatch("/",X[1])if (is.na(res)){r=1

}else{r=0

}}

TMP = apply(X, 1,add) # Application de la fonction a toutes les lignes de XTMP = as.matrix(TMP)nbr <- findInterval(0,TMP)X <- X[1:nbr,]

Etude de relations (RCPSP) 17

Page 18: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes

Annexe A. Code sous R

X2<-X #X2 nous sevira a la fin pour recuperer les donnees a garder

#############Fin de la suppression des elements en trop#############

#############Debut de la selection des indicateurs#############

selec_var_entree <- function(Mmeth,Y){ #affichage des indicateurs de baselong = type.convert(Mmeth[2,1], na.strings = "NA", as.is = FALSE, dec = ".")for(i in seq(from = 2, to = long - 1)){cat(i,":",Y[i], "\n")

}}

selec_var_entree(Mmeth,Y)

fun <- function() { #demande a l utilisateur les indicateurs a gardernum_indic <- readline("Numeros des indicateurs a garder? (a separer par des virgules) (

si vous ne tapez rien, #7,8,9,10,11,12,14 de base)")}

num_indic = fun() #7,8,9,10,11,12,14 de base

if (num_indic==""){print("Les indicateurs selectionnes sont 3,7,8,9,10,11,12,14")list_indic<-(c(’7’,’8’,’9’,’10’,’11’,’12’,’14’))print(list_indic)}

elselist_indic<-unlist(strsplit(num_indic, ",")) # on decoupe la chaine recuperee en entree

avec comme separateur ",", afin de recuperer les numeros des indicateurs

#for(i in seq(from = 1, to = length(list_indic)))# {# temp=type.convert(list_indic[i], na.strings = "NA", as.is = FALSE, dec = ".")# cat(temp,":",Y[temp], "\n")# }#nb_indic<-length(list_indic)

#############Fin de la selection des indicateurs#############

#############Debut de recuperation de la methode#############

selec_meth <- function(Mmeth,Y){ # Affichage des methodes et des numeros correspondantsfor(i in seq(from = 1, to = length(Mmeth[1,]))){

cat(i,":",Mmeth[1,i], "\n")}

}

selec_meth (Mmeth,Y)

18 Etude de relations (RCPSP)

Page 19: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes

Analyse du fichier

fun2 <- function() { # Demande de la methode souhaitenum_meth <- readline("Numero de la methode demandee ? ")

}

num_meth = fun2()num_meth=type.convert(num_meth, na.strings = "NA", as.is = FALSE, dec = ".") # on

convertit num_meth en entier

#############Fin de recuperation de la methode#############

#############Debut de recuperation des sous methodes#############

selec_ss_meth <- function(num_meth,Mmeth,Y){ # Affichage des sous methodes et des numeroscorrespondants

temp=type.convert(Mmeth[2,num_meth+1], na.strings = "NA", as.is = FALSE, dec = ".")temp=temp-1for(i in seq(from = Mmeth[2,num_meth], to = temp)){cat(i,":",Y[i],"\n")

}}

selec_ss_meth(num_meth,Mmeth,Y)

fun3 <- function() {num_ss_meth <- readline("Numeros des indicateurs de performances de la methode choisie ?

(a separer par des virgules) ")}

num_ss_meth = fun3()

list_ss_meth<-unlist(strsplit(num_ss_meth, ","))

#############Fin de recuperation des sous methodes#############

nb_indic<-length(list_indic)+length(list_ss_meth) #nombre d indicateurs a garder dans lamatrice

header = c(1:nb_indic)

for(i in seq(from = 1, to = length(list_indic))) #pour chaque indicateur, on garde sacolonne de valeurs

{temp=type.convert(list_indic[i], na.strings = "NA", as.is = FALSE, dec = ".")X2[,i]<-X[,temp]header[i] <- Y[1,temp]

}

for(i in seq(from = 1, to = length(list_ss_meth))) #On fait de meme avec les indicateursde performances

{temp=type.convert(list_ss_meth[i], na.strings = "NA", as.is = FALSE, dec = ".")X2[,length(list_indic)+i]<-X[,temp]header[length(list_indic)+i] <- Y[1,temp]

}

Etude de relations (RCPSP) 19

Page 20: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes

Annexe A. Code sous R

X2=as.matrix(X2)

i=taillewhile(i!=nb_indic) #On supprime les colonnes qui ne nous servent plus{X2<-X2[,-i]i=i-1

}

multi <- nbr * nb_indicX3 <- matrix(c(1:multi),ncol=nb_indic,nrow=nbr,byrow=T)for(j in seq(from = 1, to = nbr)){for(i in seq(from = 1, to = nb_indic)){X3[j,i] = type.convert(X2[j,i], na.strings = "NA", as.is = FALSE, dec = ",")

}}

colnames(X3) <- header\#au final X2 contient toutes les donnees que l’on garde pour l’ACPreturn (X3)}

20 Etude de relations (RCPSP)

Page 21: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes

ANNEXE B

Liens utiles

B.1 Webographie

– Site du projet R http://www.r-project.org/

Etude de relations (RCPSP) 21

Page 22: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes
Page 23: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes
Page 24: Etude des relations / indicateur performance pour le RCPSP ... · De nombreux chercheurs ont d´evelopp´e au cours des ann´ees des ... est la transpos´ee de la matrice A ... Syst`emes

Etude des relations / indicateurperformance pour le RCPSP (borne sup)

Departement Informatique4eme annee 2007-2008

Rapport du projet d’analyse de donnees

Resume: Le but de ce projet etait de realiser une ACP sur differents indicateurs pour determiner lescorrelations qui existent entre eux.

Mots clefs: Analyse de donnees, Analyse en composantes principales, ACP, RCPSP, Borne superieure

Abstract : The goal of this project was to realize an PCA in differents informers to determine thecorrelations which exist beetween them.

Keywords : Data Analysis, Principal components analysis, PCA, RCPSP, Superior border

Etudiants :Lulu [email protected] [email protected]

Encadrants :Emmanuel Neron

[email protected] T’Kindt

[email protected] Francois-Rabelais, Tours