Petit question sur les graphes

RRx

Petit question sur les graphes

Message par RRx » 07 oct. 2016 19:32

Bonjour à tous,

Je me suis posé cette question récemment :
étant donné un graphe connexe G et deux de ses noeuds (disons A et B avec A différent de B), peut-on trouver un algo (non naïf...) qui détermine le "meilleur" chemin entre A et B ?
Je m'explique : on suppose que tous les noeuds du graphe sont "notés" (de 1 à 10 par exemple) et que l'on définit la "qualité" d'un chemin comme étant la moyenne arithmétique des "notes" des noeuds de G qui composent ce chemin.
Le meilleur chemin entre deux noeuds est celui de "moyenne" maximale.

Des recommandations ? Des Pistes ? Des idées de problèmes/thèmes liés à celui-ci ?
Merci bcp pour votre aide :)

Messages : 4709

Inscription : 27 juil. 2016 19:38

Profil de l'utilisateur : Professionnel

Re: Petit question sur les graphes

Message par U46406 » 07 oct. 2016 19:39

C'est pour un TIPE d'informatique ?
« Occupez-vous d’abord des choses qui sont à portée de main. Rangez votre chambre avant de sauver le monde. Ensuite, sauvez le monde. » (Ron Padgett, dans Comment devenir parfait) :mrgreen:

RRx

Re: Petit question sur les graphes

Message par RRx » 07 oct. 2016 19:41

Oui pourquoi pas :) Mais je sais pas si c'est envisageable comme TIPE...
Je sais que le but n'est pas nécessairement d'aboutir mais c'est mieux quand même :)

Messages : 4709

Inscription : 27 juil. 2016 19:38

Profil de l'utilisateur : Professionnel

Re: Petit question sur les graphes

Message par U46406 » 07 oct. 2016 20:05

Tu veux rester en théorie - dans une étude théorique,
ou aller jusqu'au code ? et si oui, dans quel langage ?
« Occupez-vous d’abord des choses qui sont à portée de main. Rangez votre chambre avant de sauver le monde. Ensuite, sauvez le monde. » (Ron Padgett, dans Comment devenir parfait) :mrgreen:

RRx

Re: Petit question sur les graphes

Message par RRx » 07 oct. 2016 20:11

Les deux sont intéressants et méritent d'être abordés je pense dans le cadre d'un TIPE, le code c'est un peu l'"expérience physique" de l'informaticien/mathématicien
Je sais pas si c'est résoluble directement, sinon via une heuristique et je pourrai effectuer des essais

RRx

Re: Petit question sur les graphes

Message par RRx » 07 oct. 2016 20:13

Pour le langage, je me suis dit que je pourrais avoir besoin d'utiliser les matrices d'adjacence et donc partir sur du MATLAB (manipulation plus aisée des matrices)
Sinon python, j'ai vu qu'il y avait des librairies sympathiques sur les graphes...

Messages : 35

Inscription : 07 juin 2007 13:51

Profil de l'utilisateur : Élève de lycée

Re: Petit question sur les graphes

Message par The Void » 07 oct. 2016 23:12

[quote]Bonjour à tous,
Je me suis posé cette question récemment :
étant donné un graphe connexe G et deux de ses noeuds (disons A et B avec A différent de B), peut-on trouver un algo (non naïf...) qui détermine le "meilleur" chemin entre A et B ?
Je m'explique : on suppose que tous les noeuds du graphe sont "notés" (de 1 à 10 par exemple) et que l'on définit la "qualité" d'un chemin comme étant la moyenne arithmétique des "notes" des noeuds de G qui composent ce chemin.
Le meilleur chemin entre deux noeuds est celui de "moyenne" maximale.

Des recommandations ? Des Pistes ? Des idées de problèmes/thèmes liés à celui-ci ?
Merci bcp pour votre aide :)[/quote]

Bonjour,

Sauf erreur, ce problème est NP-difficile (et donc, il n'y a guère d'espoir de trouver un algorithme polynomial). En effet, si il y avait un algorithme polynomial pour ton problème, il y en aurait aussi un pour trouver un chemin Hamiltonien (qui visite tous les sommets) dans un graphe, ce qui est faux (https://fr.wikipedia.org/wiki/Graphe_hamiltonien).
Preuve: soit G un graphe à n sommets dans lequel on veut savoir si il y a un chemin Hamiltonien entre A et B. On peut mettre une note de 0 sur A et 1 à tous les autres sommets. Ainsi, plus un chemin entre A et B est long, plus sa note moyenne sera grande. Ainsi G a un chemin Hamiltonien ssi le meilleur chemin entre A et B est de moyenne (n-1)/n (un chemin avec un 0 et (n-1) 1).

Si c'est cette idée de "poids moyen min/max" qui t'intéresse, Il y a un algorithme polynomial pour calculer un cycle de poids moyen minimum dans un graphe orienté (http://www.sciencedirect.com/science/article/pii/0012365X78900110 - c'est un peu compliqué), qui est utilisé dans l'algorithme min cost max flot.
2013-2016: doctorant en théorie des graphes.
2016-?: professeur d'informatique au lycée Victor Hugo de Besançon.
www.quentinfortier.fr

RRx

Re: Petit question sur les graphes

Message par RRx » 08 oct. 2016 14:40

Merci beaucoup The void pour ta réponse, c'est très intéressant en effet, j'avais pas envisagé les choses comme ça... :)

Répondre