Vous êtes sur la page 1sur 4

Analyse du travail

Le projet graphe comporte les classes suivantes :


Sommet
Arête,
Graphe,
Parcours et le makefile.

I- Descriptions et les modifications apportées :

1 - Description de la classe Arête et modification apportée :

Elle comporte trois constructeurs,


Arete() : Ce constructeurs initialise avec les valeurs pas défaut, Sommet
début =nul, Sommet fin = nul, coût = 1.0 et color = lineColor
Arete(Sommet début, Sommet fin, double cout) : ce constructeur initialise
avec un sommet début, un sommet fin et un coût en paramètre.
Arete(Sommet début, Sommet fin) : ce construction initialise avec un
sommet début et un sommet fin en paramètre
draw(Graphics2D g2D) : elle permet de dessiner l’arête sur le graphe
Et des accesseurs qui permettent de récupérer les valeurs privées du
graphe.
Lorsqu’on double clic sur un même sommet, nous avons implémenté la
création d’une arête sur ce même sommet (ellipse).

2 - Description de la classe Sommet et modification apportée :

La classe Sommet comporte par contre deux constructeurs :


Sommet() : qui initialise les valeurs d’un sommet avec les valeurs par
défaut (pere =nul, color = Non Visité, date début = date de fin = 0 la
forme =nul le coût = infini
Sommet(double x, double y, int numero) : qui initialise un sommet ayant
une forme d’ellipse de coordonné x et y et de numéro numero.
Elle comporte aussi des accesseurs qui permettent d’inter agir sur les
propriétés de la classe.
Nous avons crée le rang d’un sommet afin de l’utiliser plus tard.

Amah Benito d’ALMEIDA 1


3 - Description de la classe Graphe et les modifications :

La classe graphe crée la fenêtre dans la quelle l’on dessine le graphe.


Elle contient l’ensemble des sommets et des arêtes. Elle permet d’avoir un
graphe orienté ou un graphe nom orienté.
Elle possède les méthodes permettant d’inter agir avec les sommets et les
arêtes du graphe.
Nous avons crée la méthode permettant de construire un graphe non
orienté.

4 - Description de la classe Parcours et les modifications :

Cette classe permet de faire tourner le graphe.


Elle contient les méthodes majeures suivantes :
ACM() : la méthode permettant de faire l’algorithme de l’arc couvrant
minimal
CFC () : la méthode du composant fortement connexe

PL() : la parcours en largeur du graphe à partir d’un sommet

PP() le parcours en profondeur du graphe

PT() : le parcours tri du graphe

Chacune de ces méthodes utilisent des méthodes que nous allons


développés dans la suite ;

PL() : Cette méthode a été la première développé. Elle permet de faire un


parcours en largeur du graphe.

PP() : elle utilise une autre méthode appelé Visiter_pp(). Cette méthode
est souvent utilisée car elle figure dans plusieurs méthodes majeures :

PT() : le tri topologique. Il permet de trié les sommets du graphe suivants


les dates de fin de traitement.

CFC() : cette méthode, qui a été un peu plus difficile à coder puisqu’elle a
fait appelle à une grande compréhension de la classe graphe et de chaque
vector et de chaque liste chaînée de ce graphe. Elle fait appelle à la
méthode PP(), puis au tri. Et ensuite à la méthode transpositionSommet().
Cette méthode permet de retrouver le sommet des graphe G’ inclus dans

Amah Benito d’ALMEIDA 2


graphe, qui sont cyclique, et de retrouver les autres composant fortement
connexes à ce graphe G’. Les composants fortement connexes sont
coloriés en vert.
Nous avons créer transpositionSommet() qui d’une part change le sens du
graphe, (le sens des arêtes de chaque sommet) ensuite, que trie le graphe
en fonction de ses nouveaux sommets,
Et enfin que refait le parcours en profondeur de ce graphe.
En bref, nous avons créé une adjlistTrans qui contient sommetListTrans
qui contient la liste des arêtes transposées. Et ensuite nous avons modifié
adjList par adjListTrans et SommetList par SommetListTrans.
Les fonctions MiseEnForme() et MiseEnFormeSommet() remettent le
graphe dans le sens initiale.

ACM() : la complexité de cette méthode réside dans le trie des arêtes. Une
fois les arêtes triées par rapport au coût, les arêtes de sécurités sont
facilement calculées.
Le soucis q’on a eu est le coloriages du graphe.

5 – Description du makefile :

L’implémentation des package a été utilisée pour le projet. Ainsi, les


classes java doivent être dans un même répertoire ‘graphe’.
Les commandes essentielles, certaines ajoutées au makefile sont :

compil:
javac -d . *.java

prog:
java graphe.Parcours

doc: Graphe.class Parcours.class


javadoc -d ${DOCDIR} Sommet.java Arete.java Graphe.java
Parcours.java

clean:
\rm -f *class *~

Les deux commandes essentielles sont : make compil pour compiler toutes
les classes et make prog pour les exécutées.

Amah Benito d’ALMEIDA 3


II- Le plus.

Nous avons crée une fenêtre menu qui affiche les commandes (les touches
permettant de faire tourner le graphe)

III- Fonctionnement :

Dans la console, faire make compil et ensuite make prog.


Si par malveillance le make file ne marche pas, utiliser les commandes
suivantes : javac –d . *.java pour compiler les classes et java
graphe.Pavours pour l’exécution.
L’apparition de la fenêtre ‘Algorithme des graphes’ permet ensuite de
faire tourner les algorithmiques.
Apres la création des sommets, il faut cliquer sur ‘o’ pour créer un graphe
orienté et sur ‘n’ pour un graphe non orienté.
Pour le graphe orienté, appuyer sur la touche ‘a’ afin de créer les arêtes
orientées
Pour le graphe non orienté, appuyer sur la touche ‘z’. Et ensuite, suivre
les instructions
Les touches commandes (en minuscule) :

‘o’ : pour un graphe orienté, après la création des sommets


‘n’: pour un graphe non orienté, après la création des sommets
‘a’ : pour créer des arêtes orientées.
‘z ‘: pour créer des arêtes non orientées.
‘e ‘: pour avoir une nouvelle fenêtre ou un nouveau graphe
‘q ‘: pour quitter le programme
‘x ‘: pour les arcs couvrants minimums
‘c’: pour les composant fortement connexe
‘+’ : pour augmenter le coût de l’arête qui sera créer
‘-‘‘: pour diminuer le coût de l’arête qui sera créer

IV- Les défauts :

Au prime abord, nous n’avons pas pu mettre le sens de la flèche sur les
arêtes elliptiques (lorsqu’on fait un double clic sur un sommet).
Il est conseillé de créer un nouveau graphe après l’exécution de CFC(). La
restauration des graphes initiaux pose quelques problèmes.
J’ai essayé d’implémenter une méthode permettant de déplacer le disque.
Mais malheureusement, cette méthode ne marche pas.

Amah Benito d’ALMEIDA 4