User Tools

Site Tools


2015_2016:s3:concprogobjet:td:td4

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
2015_2016:s3:concprogobjet:td:td4 [2015/10/27 09:14]
blay [TD Réutilisation]
2015_2016:s3:concprogobjet:td:td4 [2015/10/27 10:00] (current)
blay [Ressources]
Line 46: Line 46:
 Rechercher des relations entre ses membres, revient à parcourir le graphe. Rechercher des relations entre ses membres, revient à parcourir le graphe.
  
-Pour vous aider (et c'est aussi obligatoire ;-) ) vous utiliserez les classes suivantes,​{{:​2015_2016:​s3:​concprogobjet:​td:​pourlesgraphes.zip| classes pour traiter des graphes.}}, en particulier la classe ''​GrapheSimple''​ et la classe ''​ParcoursSimple''​ pour calculer des cheminsCes codes sont basés ​dans le packahe ​GrapheX ​sur des codes fournis par Polytechnique+Pour vous aider (et c'est aussi obligatoire ;-) ) vous utiliserez les classes suivantes,​{{:​2015_2016:​s3:​concprogobjet:​td:​pourlesgraphes.zip| classes pour traiter des graphes.}}, en particulier la classe ''​GrapheSimple''​ et la classe ''​ParcoursSimple''​ pour calculer des chemins ​((Ces codes sont basés ​sur le package ​GrapheX fournis par l'"​X"​ dans ses cours, pour en savoir plus (page évolutive):​ https://​www.enseignement.polytechnique.fr/​informatique/​INF431/​X06-2007-2008/​TD/​INF431-td_6-1.php ))
  
 La figure suivante visualise une part de ces codes. ​ La figure suivante visualise une part de ces codes. ​
Line 57: Line 57:
 ===== Réutilisation par adaptation ===== ===== Réutilisation par adaptation =====
  
-  - On veut intégrer dans notre réseau social, des membres du reseau ​facebookGhost. On nous donne les classes suivantes que nous ne pouvons pas modifier+  - On veut intégrer dans notre réseau social, des membres du réseau ''​facebookGhost''​ dont vous avez déjà récupéré un "​bouchon/​proxy"​ en récupérant ​les tests
-        * on veut ajouter dans notre reseau ​des membres qui correspondent à des "​users"​ du reseau ​ facebookGhost;​ le nom du user dans le reseau facebookGhost (name) devient le nom du membre dans notre réseau (nom) et on garde la référence sur le "​User"​ pour avoir toujours une description à jour qui correspond au profil; +        * on veut ajouter dans notre réseau ​des membres qui correspondent à des "​users"​ du reseau ​ facebookGhost ​(FG); le nom du "user" ​dans le reseau facebookGhost (name) devient le nom du membre dans notre réseau (nom) et on garde la référence sur le "​User"​ pour avoir toujours une description à jour qui correspond au profil; 
-        * on veut ajouter des relations qui correspondent soit à des relations familiales, soit à des relations d'​amitiés dans le réseau ​facebook. Par défaut, une relation de famille correspond à une relation de force 2 et d'​amitié 3.  +        * on veut "​récupérer"​ dans notre réseau, les relations qui correspondent soit à des relations familiales, soit à des relations d'​amitiés dans le réseau ​FG lorsque les Users ciblés sont connus de notre réseau, c'est à dire que nous avons déjà un membre de même nom. Par défaut, une relation de famille correspond à une relation de force 2 dans notre réseau ​et celle d'​amitié ​ont une force 3.  
-        * quand on ajoute un membre correspondant au reseau ​facebookGhost, on recherche parmi ses relations directes dans facebookGhost ​s'il existe des users connus de notre propre réseau et on lui ajoute les relations si elles n'​existaient pas :  +        * quand on ajoute ​dans notre réseau ​un membre correspondant au reseau ​FG, on recherche parmi ses relations directes dans FG s'il existe des users connus de notre propre réseau et on lui ajoute les relations si elles n'​existaient pas, exemples ​:  
-             * Hercule est connu du réseau FG et se déclare comme membre de notre réseau+             * Hercule est connu du réseau FG et se déclare comme membre de notre réseau ​(''​addMembre("​Hercule",​ true)''​)
                   * On récupère du réseau FG son nom.                   * On récupère du réseau FG son nom.
                   * On récupère sa famille (Zeus, Alcmène) et ses amis (Admète)                   * On récupère sa famille (Zeus, Alcmène) et ses amis (Admète)
-                  * Seuls Zeus et Admete sont connus de notre réseau; la relation de Hercule vers Zeus est ajoutée avec une force de 2, celle entre Hercule et Admete est ajoutée avec une force de 3; Nous mettons également à jour les relations inverses.+                  * Seuls Zeus et Admete sont connus de notre réseau; la relation de Hercule vers Zeus est ajoutée avec une force de 2, celle entre Hercule et Admete est ajoutée avec une force de 3; nous mettons également à jour les relations inverses.
  
-Prevoir de leur donner un programme principal avec ce réseau... 
- 
- 
-Au début du reseau FG 
-new user ("​Zeus","​le dieu ...",​Integer.max) 
-new user ("​Alcmène",​ .., ) 
-new user ("​Hercule",​ .., ) 
-new user ("​Admète",​ .., ) 
-new user ("​Hera",​ .., ) 
-new friend("​Hercule","​Admète"​) 
-new Family("​Hercule","​Zeus"​) 
-new Family("​Hercule","​Alcmène"​) 
-new Family("​Zeus","​Hera"​) 
 ===== Réutilisation par observation ===== ===== Réutilisation par observation =====
  
-Chaque fois qu'une nouvelle relation est ajoutée dans FG, on veut vérifier ​si les "​users"​ mis en relation existent dans notre réseau et si c'est le cas créer ​les relations correspondantes dans notre réseau. ​ +Chaque fois qu'une nouvelle relation est ajoutée dans FG, on vérifie ​si les "​users"​ mis en relation existent dans notre réseau et si c'est le cas on crée les relations correspondantes dans notre réseau. ​
- +
-Plus complexe : Chaque fois qu'un nouveau user est ajouter dans FG, on veut vérifier s'il existe déjà dans notre réseau et si c'est le cas le "​connecter"​ à notre réseau...  +
- +
- +
- +
- +
- +
-===== Ressources ===== +
- +
- +
-Pour cela on vous donne les classes suivantes : +
-     - Le package {{ :​2014_2015:​s3:​concprogobjet:​td:​graphex.zip?​direct&​300 |grapheX}} duquel ont été extraits les classes utiles à notre problème; ce package a été récupéré sur le web à l'"​X"​ +
-     - Le package {{:​2014_2015:​s3:​concprogobjet:​td:​parcours.zip|parcours}} a été créé pour vous simplifier la tâche et vous permettre de gérer des graphes comportant des sommets reliés par plusieurs arcs. +
- +
-Les 2 diagrammes suivants ont été obtenus par reverse Engineering:​ +
- +
- +
- +
  
 +Pour cela nous utilisons le fait qu'un réseau FG est observable. Il suffit donc de déclarer notre réseau comme Observer du réseau FG et à chaque notification d'​ajout d'une relation, de mettre à jour notre propre réseau.
  
-Reprendre le TD de 'lan dernier, il est bon mais l'appliquer sur des reseaux sociaux... a priori je l'​avais posé en controle donc je dois l'​avoir en version très simple.+<​html>​ 
 +<!-- Plus complexe : Chaque fois qu'un nouveau user est ajouter dans FGon veut vérifier s'il existe déjà dans notre réseau et si c'est le cas le "​connecter"​ à notre réseau...  ​--!>​ 
 +</​html>​
  
  
-demande pour des graphes valués... 
  
-peut etre voir à refaire l'​évaluation des couts vue en cours pour avoir différentes manières de calculer un cout ou mieux garder cette idée pour un DP visiteur.... 
  
  
  
-https://​mbf-iut.i3s.unice.fr/​doku.php?​id=2014_2015:​s3:​concprogobjet:​td:​td5 
2015_2016/s3/concprogobjet/td/td4.1445933655.txt.gz · Last modified: 2015/10/27 09:14 by blay