Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1433 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  Dominating set dans un graphe.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Dominating set dans un graphe.

n°904431
Chronoklaz​m
Posté le 22-11-2004 à 00:03:01  profilanswer
 

Salut, je m'interesse au probleme du "dominating set", (la traduction  
"ensemble dominé" me semble pas super) j'ai compris que c'était un  
sous-ensemble de sommets (dans un graphe connexe supposons) qui avec leur
voisins directs constituent tous les sommets du graphe.  
 
J'ai essayé d'ecrire un algo avec une fonction qui genere a chaque  
appel un sous-ensemble de l'ensemble des sommets et un predicat qui teste
si ce sous-ensemble nous satisfait (en gros si on a un graphe  
G=(V,E) on veut V' inclus dans V tel que pour tout u € V => v € V' pour
lequel (u,v) soit une arete donc soit € E). Donc je pense dans le pire
des cas on doit se taper toutes les generation de sous-ensemble et là
on est dans du O(2^n) donc expo, pas bon.  :pfff:  
 
Malheureusement je n'arrive pas a trouver le critere "greedy"  
pour ce probleme, si bien sur il existe. Une aide serait la bienvenue :)
 
Bon je sais que c'est du NP-complet, donc pas facile, mais une autre
approximation est surement possible. (dans les trucs que j'ai trouvé en
anglais je pige pas grand chose) On sens que c'est pas loin du  
probleme de "vertex covering" sauf que la on veut les sommets
et pas les arcs.  
 
Et puis juste pour etre sur, il n'y a pas de "domintating set" pour
un graphe a 3 sommets et a 3 aretes ?  
 
           *
          / \
         *---*
 
(sinon ca voudrait dire que l'on peut avoir des sommets seuls dans V'?)


Message édité par Chronoklazm le 22-11-2004 à 00:25:29
mood
Publicité
Posté le 22-11-2004 à 00:03:01  profilanswer
 

n°908510
Chronoklaz​m
Posté le 26-11-2004 à 14:50:13  profilanswer
 

Y-t'il vraiment personne qui touche à l'optimisation combinatoire ? :(

n°908559
fb@alphalo​g
Posté le 26-11-2004 à 15:16:39  profilanswer
 

dans un graphe complet, n'importe quel sommet pri separemment est un dominating set  
 
pour le reste , je seche

n°908576
Chronoklaz​m
Posté le 26-11-2004 à 15:28:46  profilanswer
 

Ok, ca je suis daccord. Si le graph est complet c'est trivial. (pas possible, j'ai utilisé ce mot  :lol: )


Message édité par Chronoklazm le 26-11-2004 à 15:29:56
n°908736
matafan
Posté le 26-11-2004 à 18:22:50  profilanswer
 

Et mal employé : trivial ça veut dire vulgaire.

n°908751
Chronoklaz​m
Posté le 26-11-2004 à 18:58:40  profilanswer
 

Bien entendu j'ai employé le mot trivial avec la signification de "evident" et non "vulgaire", désolé de t'avoir choqué matafan.


Message édité par Chronoklazm le 26-11-2004 à 18:59:12
n°908812
sircam
I Like Trains
Posté le 26-11-2004 à 20:48:29  profilanswer
 

matafan a écrit :

Et mal employé : trivial ça veut dire vulgaire.


Pourtant employé dans ce contexte par les profs de math  [:crosscrusher]


Message édité par sircam le 26-11-2004 à 20:48:39

---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°908954
fb@alphalo​g
Posté le 27-11-2004 à 00:08:51  profilanswer
 

a priori c un pb np complet( un nombre exponentiel de as a étudier )  
donc dans le cas général , tu vas avoir du mal résoudre , a moins de rester sur de petits graphes , ou sur des graphes particuliers

n°909027
Ace17
Posté le 27-11-2004 à 08:29:41  profilanswer
 

"Dans un graphe simple G, un sous-ensemble D de sommets est un ensemble dominant total si tout élément de G a au moins un voisin dans D"
 
Donc je ne vois pas ou est le probleme avec le graphe complet a trois aretes.
 
hors sujet : trivial c'est employe par tous les profs de maths du secondaire...

n°909062
sircam
I Like Trains
Posté le 27-11-2004 à 11:32:16  profilanswer
 

Ace17 a écrit :

Donc je ne vois pas ou est le probleme avec le graphe complet a trois aretes.


Moi non plus. Chronoklazm, tu peux expliquer ?
 

Ace17 a écrit :

hors sujet : trivial c'est employe par tous les profs de maths du secondaire...


Et aussi par des profs d'unif et du supérieur, hein. C'est peut-être un régionalisme.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
mood
Publicité
Posté le 27-11-2004 à 11:32:16  profilanswer
 

n°909121
Chronoklaz​m
Posté le 27-11-2004 à 13:52:18  profilanswer
 

Citation :


fb@alphalog:  dans un graphe complet, n'importe quel sommet pri separemment est un dominating set  
 
pour le reste , je seche


 
A partir de là, tout est devenu clair et limpide pour moi :) (concernant le graphe complet a 3 sommets)
Donc oublions les graphes complets ou ca ne sert pratiquement a rien de chercher un dominated set :)
 
Mon probleme principal (comme je l'ai dis dans le tout premier post) est de
trouver un critere greedy pour realiser un algo abstrait.
 
Recapitulons..
 
On a la formalisation suivante :
 
I (input) : G=(V,E) (ou V est l'ensemble des sommets et E l'ensemble des arretes)
 
S (la solution) : { V' inclus ou egal dans V / Pour tout u € V-V' => v € V' pour lequel (u,v) € E }
 
f (fonction de mesure de la solution) : |V'| (cardinalité de V')
 
opt (critere d'optimisation) : MIN (on veux minimiser la solution)
 
En gros on veux trouver le plus petit sous-ensemble de V qu'on appele V' tel que V' soit un dominating set.
Grace a ce sous ensemble V' on pourras avoir tous les sommets du graphe, et de plus on pourras reconstituer le graphe original en tracant les "bonnes" arretes entre les sommets.  
 
Ca peux servir a plein de choses (cryptographie, optimisation des reseaux etc..), c'est un probleme "MODELE" comme le voyageur de commerce, le subset-sum etc
 
Ce probleme est NP-dur ! Donc officielement il n'existe pas d'algorithme polynomial (dit en P) pour ce probleme.
 
Voici un algorithme generique :
 
L = tableau d'apparition des sommets ou les indices sont les numero des sommets
c'est un tableau de booleens en gros ou 1 sera present et 0 sera absent.
 
list_adj(i) = renvoi la liste d'adjacence du sommet i.
 
nextSE(L) = renvoi le sous-ensemble suivant de L
 
----------------> DSGenerique(L)
 
1. P?(L)==vrai => DSGenerique(L) = L
2. P?(L)==faux => DSGenerique(L) = DSGenerique(nextSE(L))
 
----------------> P?(L) = Dom(L, i, n)  
 
1. (i<=n)&&(L[i]==1) => Dom(L, i ,n) = Dom(L, i+1, n)
2. (i<=n)&&(L[i]==0) => Dom(L, i ,n) = alpha(L, list_adj(i), n, i)
3. (i>n)             => Dom(L, i ,n) = vrai
 
---------------> alpha(L, x*M, i, n) ; x est premier element de la liste M  
 
1. L[x]==1           => alpha(L, x*M, i, n) = Dom(L, i+1, n)
2. L[x]==0           => alpha(L, x*M, i, n) = alpha(L, M, i, n)
3. M est vide        => alpha(L, x*M, i, n) = faux
 
---------------------------------------------------------------------------
 
Bon je ne vai pas faire la trace car ce serai trop long, en tout cas on se rend compte que
au pire des cas on doit executer tout ca 2^|L| fois pur tomber sur un sous-ensemble qui nous satisfait.
Donc la complexité (sans rentrer dans les details) est clairement expo ( O(2^k) c'est pas genial comme approximation ) !    
 
Donc mon probleme est de trouver une heuristique qui permetrait d'avoir une meilleure approximation, peut etre aussi expo mais dont l'algo serait un peu plus fut-fut que ca, car l'algorithme generique ne fait que "traduire" la solution.
On pourais peut etre jouer sur la degré des sommets...
 
Voilà le probleme :pt1cable:


Message édité par Chronoklazm le 27-11-2004 à 13:57:30
n°911363
fb@alphalo​g
Posté le 30-11-2004 à 17:02:12  profilanswer
 

tu peux peut etre elaguer un peu ton probleme avec la recherche de sous graphes maximaux connexe ( sachant que les dominating set seront disjoint )  
la recherche de graphe connexe doit pouvoir se faire en  O(n) , en coloriant les noeuds par exemple

n°929576
pains-aux-​raisins
Fatal error
Posté le 21-12-2004 à 22:22:48  profilanswer
 

[:drapal] Flûte ça a l'air super intéressant mais là je dois vraiement aller dormir.

n°929582
pains-aux-​raisins
Fatal error
Posté le 21-12-2004 à 22:39:26  profilanswer
 

Bon, alors là je comprends pas comment tu as pu louper ça avec google : http://distcomp.ethz.ch/lectures/s [...] pter12.pdf
 
Il te parles de ton heuristic probabiliste que tu recherches. Dis-nous si c'est ce qu'il te fallait ;)
 
edit : dsl, j'avais pas vu la date...


Message édité par pains-aux-raisins le 21-12-2004 à 22:40:14

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  Dominating set dans un graphe.

 

Sujets relatifs
Graphe non orienté et circuitscreer un graphe en builder c++
Utilitaires pour l'arbre des sources/graphe UML ?Algo du plus court chemin avec des boucles dans le graphe
crystal report 8.5 et graphe[DirectShow] problème lorsque je détruit mon graphe
representation graphique d'un graphe[Algo]Recherche de circuits dans un graphe
[XML] Générer un graphe à partir de données XML ?[Delphi] Graphe et interpolation de courbes...
Plus de sujets relatifs à : Dominating set dans un graphe.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR