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

  FORUM HardWare.fr
  Programmation
  Algo

  tracé de routes...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

tracé de routes...

n°923684
azubal
Posté le 15-12-2004 à 11:39:39  profilanswer
 

Bonjour,
mon probleme n'est pas directement lié a Java, mais c'est un probleme d'algo
 
je dispose dune liste de points (noeuds) (x,y) avec lequels je dois tracer des routes dans un espace graphique 2d.
 
mon probleme est que : le placement des points doit etre fait par le programme afin de simplifier au maximum le tracé des routes (minimum de route qui se croisent, pas de route en diagonal!). bref, faire un peu comme les logiciel qui tracent les routes de circuit electronique.
 
est ce que quelqu'un a des information ou un debut de piste pour realiser une telle chose ??
car j'avoue ne pas trop savoir comment m'y prendre  
 
 
ps : chaque noeud a un nombre differents de conexions (minimum 1 maximum X)

mood
Publicité
Posté le 15-12-2004 à 11:39:39  profilanswer
 

n°923847
Joel F
Real men use unique_ptr
Posté le 15-12-2004 à 14:48:51  profilanswer
 

c'est super chaud ... y a des gars qui font des théses sur ce sujets.
 
En tout cas , regarde du côté de la Recherche Opérationnelle et de la théorie des graphes.

n°924165
Rits75
to?be:!be
Posté le 15-12-2004 à 16:59:33  profilanswer
 

regarde du coté de Bellman ou Dijkstra!

n°924186
azubal
Posté le 15-12-2004 à 17:10:47  profilanswer
 

oulaa, je crois que je veux m'attaquer a plus fort que moi :s
 
jai regardé du coté des recherche operationnelles, j'y ai pas trouvé grand chose d'interressant se rapportant a mon probleme.
 
 
l'algorithme de Dijkstra est utilisé pour trouver la route la plus courte entre deux noeuds quand il existe plusieurs chemins, il est notement utilisé dans les routeurs qui supportent les protocoles de routage a état des liaisons (ospf). quant a l'algo de Bellman, il permet au contraire d'etablire la route la plus longue!
 
moi ce que je souhaite faire, c'est dessiner 'graphiquement' ma route, nayant comme element de depart uniquement les differentes routes et noeuds, et cherchant a obtenir un placement (plus ou moins) optimisé de mes noeuds sur un repere!
 
je sens que je vais pas dormir beaucoup durant mes prochaines nuits :(

n°924225
Rits75
to?be:!be
Posté le 15-12-2004 à 17:37:42  profilanswer
 

Bellman permet de trouver le plus cour chemin également, très utilisé ds les calculateur d'itinéraire!
sinon c'est un peu la meme chose mais à l'envers ;)
mais etudie bien la theorie des graphes (listes de successeur, predecessuer, connexité etc..)!
c'est à mon avis ce qu'il te faut!

n°924358
Joel F
Real men use unique_ptr
Posté le 15-12-2004 à 19:03:31  profilanswer
 

En partant de Bellman tu devrais arriver a quelque chose.
La partie chaude c'est la contrainte de non-croisement

n°924547
Chronoklaz​m
Posté le 15-12-2004 à 22:06:41  profilanswer
 

A mon avis tu devrais regarder du coté de l'optimisation combinatoire ... (tu veux minimiser qq chose... ) et à mon avis c'est du NP-complet.
 
Essaye de "formaliser" le probleme avant de penser à creer un algo, ceci dans le but de converger vers une strategie "ad-hoc" ;)
 
Voila une formalisation éventuelle:
 

Code :
  1. Entrée : { G = (V, E) , w(e) }  /* Un graphe dont les sommets (ens V) representent des villes (ou ce que tu veux en fait) et E l'ens des arretes qui representent des routes par exemple qui se croisent dans un bordel pas possible ... ET  w(e) une ponderation des arretes cad une fonction qui prend une arrete et renvoi un entier (la longueur en km par exemple) */
  2. Solution : { E' inclus dans E / Tel que pour tout couple d'arretes (Ei Ej) € de E' leurs intersection soit nulle && (ET) qu'il n'existe pas de couple (Xi Xj) € V  tel que l'arrete entre ses sommets soit Ei ET Ej (dans le cas contraire il y a deux routes directes possibles entre ces deux sommets et c'est pas bon car t'en veux le moins possible) ... enfin bon là il faut se prendre un peu le choux quoi :D }
  3. Fonction de mesure : |E'| /* nombre d'elements de E'
  4. opt : MIN /* tu veux le minimiser ! */


 
A partir de là  tu vas sur : http://www.nada.kth.se/~viggo/wwwc [...] de276.html
 
Et tu cherche comme un malade en te munissant d'un dico d'anglais et de beaucoup de patience (sur ce site il y a a peu pres tous les algos "modeles" "formalisés"  qui peuvent etre imaginés par un esprit humain :D )
 
Sinon on pourrait faire encore plus d'abstraction en considerant un graphe (en entrée) ou E est l'ensemble des arretes tel qu'il existe une arrete entre
deux sommets si et seulement si il n'y a pas de route diagonale ... regarde aussi la methode pour dire si un graphe est planaire ou pas.
 
UNDERSTAND => ABSTRACT => FORMALIZE => APPROXIMATE => WIN :hello:


Message édité par Chronoklazm le 16-12-2004 à 10:47:38
n°930653
Giz
Posté le 23-12-2004 à 02:18:27  profilanswer
 

Pour eviter les chemins qui se croisent :
1) Relient tes points à la même manière que resoudre le PVC
2) Une fois tes points tous réliés, applique l'heuristie 2-Opt ou 3-Opt et tes croisements disparaitront. Sur ce site, ils en parlent, sinon regarde sur google avec '2-Opt heuristic'

n°930655
Giz
Posté le 23-12-2004 à 03:20:01  profilanswer
 

Bon en cherchant sur google (sans vouloir, en faite c t pour autre chose le but de ma recherche :D) j'ai pensé a toi et j'ai trouvé CE link de la mort :
 
http://www.fsa.ulaval.ca/personnel [...] 0Essai.pdf
 
 
...honnêtement, tu prends a partir de la page 50 et tu peux difficilement trouver mieux comme information ;)

n°930670
vttman2
Je suis Open ...
Posté le 23-12-2004 à 08:39:54  profilanswer
 

Ya plus qu'à recroiser toutes ces infos ;-)
Juste une précision :
la recherche des plus courts chemins, c l'algorithme
de Bellman ET Kalaba, Richard et Robert quoi !
 

mood
Publicité
Posté le 23-12-2004 à 08:39:54  profilanswer
 

n°930693
frenchkiss
Posté le 23-12-2004 à 09:35:14  profilanswer
 

tu peux aussi voir du cote des algorithmes genetiques.
en plus c tres marrant comme truc... enfin je trouve.
 

n°930803
Rainbow_Ef​reet
Posté le 23-12-2004 à 11:43:06  profilanswer
 

Et la théorie des graphe ça ne peut pas t'aider ?

n°931758
pains-aux-​raisins
Fatal error
Posté le 25-12-2004 à 16:52:04  profilanswer
 

rainbow_efreet a écrit :

Et la théorie des graphe ça ne peut pas t'aider ?


Une réponse aussi vague, c'est sûr que ça ne peut pas l'aider  :heink:

n°931760
pains-aux-​raisins
Fatal error
Posté le 25-12-2004 à 16:57:07  profilanswer
 

Giz a écrit :

Bon en cherchant sur google (sans vouloir, en faite c t pour autre chose le but de ma recherche :D) j'ai pensé a toi et j'ai trouvé CE link de la mort :
 
http://www.fsa.ulaval.ca/personnel [...] 0Essai.pdf
 
 
...honnêtement, tu prends a partir de la page 50 et tu peux difficilement trouver mieux comme information ;)


Giz : one point  :sol:

n°931842
Giz
Posté le 25-12-2004 à 21:01:10  profilanswer
 


 
T1 ! c'est pas de bol ça, le lien viens juste de tomber en rad.
J'ai le fichier sur mon dur si ca interesse kk1 :D
 
EDIT : le lien google du pdf (si le link se remet a marcher)
http://www.google.fr/search?source [...] ssai%2Epdf
 
=> et la version HTML marche :)


Message édité par Giz le 25-12-2004 à 21:02:58
n°1036692
fra0
Posté le 06-04-2005 à 01:39:51  profilanswer
 

je sens qu'on oublie ce topic super important
et j'affirme (ou je confirme ^^^) qu'il y a une solution de 10-15* lignes en C++ qui donne des graphes planaires à coups sûrs et dans un temps plus qu'honorable.

n°1037145
rufo
Pas me confondre avec Lycos!
Posté le 06-04-2005 à 12:55:40  profilanswer
 

Ca pourrait m'intéresser pour un soft qui doit tracer les connexions réseaux entre des machines situées dans une salle...

n°1037897
azubal
Posté le 06-04-2005 à 18:21:00  profilanswer
 

oui, jai laissé tombé :(
mais je suis quand meme interressé par tes 10/15lignes de code :)

n°1037914
gizmo
Posté le 06-04-2005 à 18:32:54  profilanswer
 

fra0 a écrit :

je sens qu'on oublie ce topic super important
et j'affirme (ou je confirme ^^^) qu'il y a une solution de 10-15* lignes en C++ qui donne des graphes planaires à coups sûrs et dans un temps plus qu'honorable.


Je demande à voir, parce que les layouts de graphe, y en a des tas, et à part quelques uns qui sont payant très cher qui donnent des résultats intéressants, je n'ai rien vu qui soit vraiment convaincant.

n°1038233
azubal
Posté le 06-04-2005 à 23:23:59  profilanswer
 

pas le choix du language!
l'enoncé est :  
on possede un schema electronique et on souhaite realiser l'implementation sur un circuit imprimé monoface!
- pas le droit de croiser les connexions!
- utiliser le minimum d'espace possible!
- uniquement des liaisons verticale et horizontale!
- placement des composants libre (et optimisé)!


Message édité par azubal le 06-04-2005 à 23:24:28
n°1038262
gizmo
Posté le 07-04-2005 à 00:10:39  profilanswer
 

ouais enfin, le choix du langage... tu peux toujours passer par jini. :whistle:
 
Par contre, le problème de représentation de graphe est bien np-complet et ne peut se résoudre qu'avec des euristiques. Du coup, je me pose des questions sur ton énoncé: soit il y a des contraintes supplémentaires sur les graphes que tu ne nous a pas dit, soit ce sera purement et simplement impossible pour la plupart des graphes.


Message édité par gizmo le 07-04-2005 à 00:18:03
mood
Publicité
Posté le   profilanswer
 


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

  tracé de routes...

 

Sujets relatifs
Tcl-Tk: fonction trace[Struts] Je perds la stack trace avec le exception handler
Superposition d'images tracé avec CanvasDebogger, et suivi de trace d'exception
Système de trace[ASM] Comment vérifier que mon programme est en train d'être tracé ?
[Visual C++]La fonction TRACE ?trace d'une fonction en c++
Plus de sujets relatifs à : tracé de routes...


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