Le problème du voyageur de commerce n'est PAS de parcourir toutes les
routes, mais de passer par toutes les villes par le plus court chemin et
revenir au point de départ (une variante étant de ne pas non plus croiser
un chemin déjà parcouru, de façon à former un "anneau" sans
auto-intersection). Ce problème est le classique problème du routage de
circuits imprimés ou circuits intégrés (la contrainte de ne pas croiser un
chemin parcouru est résolue en utilisant au moins 2 couches de gravures,
mais on a un résultat plus compact avec 4 ou 6 couches, comme on le voit
sur les cartes mères de nos PC).

Passer par toutes les routes est impossible sans repasser plusieurs fois
par certaines, notamment s'il y a des intersections avec un nombre impair
de routes/rues connectées (par exemple on devra nécessairement parcourir
les impasses en faisant demi-tour par le même chemin) : la contrainte étant
seulement de trouver le chemin total le plus court.

Les heuristiques existent pour ce problème, mais sont beaucoup plus
complexes pour ce problème que pour le problème classique consistant à ne
passer qu'une seule fois dans chaque ville. Il n'y a pas d'algorithme en
temps non exponentiel, les heuristiques en temps logarithmique sont
possibles, celles considérées comme bonnes.

Pour OSM je pense qu'on a aussi les contraintes des sens uniques (à moins
que le parcours soit à faire à pied) et on peut se demander s'il faut ou
non parcourir chacune des branches des Y de raccordement aux ronds-points
(non nécessaire si la but est de parcourir tout ce qui est à portée de vue
sans obstacle obstruant ce qu'on voit sur une autre voie proche (mais là
OSM ne fournit pas toujours de données sur la visibilité réelle et si on
est au volant il n'est pas facile de voir non plus les panneaux orientés de
l'autre côté de la route en sens inverse. D'autres contraintes sont liées
au mode de transport utilisé (une voiture ne pourra pas aller sur les
chemins piétons ou cyclistes).

Je pense que pour planifier un parcours il vaut mieux se limiter au
problème classique du voyageur de commerce: passer par un certain nombre de
points reliés par des chemins autorisés, et formant un graphe connexe.
Ensuite pour compléter la visite, autoriser le stationnement et parcourir
les alentours à pied si nécessaire. Alors peu importe la distance et si on
emprunte un chemin plusieurs fois, que ce soit à pied, à vélo ou en
voiture. Autour de chaque point de stationnement, établir ensuite la liste
des chemins supplémentaires à visiter en faisant une boucle pouvant revenir
plusieurs fois au point de départ et tenter de minimiser les parcours à
pied. Là il n'y aura pas trop de combinaisons à tester autour de chaque
point d'arrêt, et on peut faire une recherche en temps exponentiel sur
chaque petit secteur.

Ce qu'on obtient alors c'est la "tournée du facteur".



Le 4 octobre 2016 à 19:14, didier2020 <didier2...@free.fr> a écrit :

> c'est le fameu probleme du voyageur de commerce mais ramené a une
> ville ...
>
> tu peu essayé ca :
> https://www.multiroute.de/?locale=fr
>
>
> Le mardi 04 octobre 2016 à 19:01 +0200, Stéphane Péneau a écrit :
> > Bonsoir tout le monde,
> >
> > Si vous deviez parcourir toutes les routes d'une commune, comment est-ce
> > que vous vous y prendriez ?
> >
> > On part du principe qu'on met de côté tout ce qui est highway=path ou
> > track pour conserver les routes adaptées aux voitures.
> >
> > Je peux facilement récupérer ces routes dans Josm avec un requête
> > overpass, puis faire quelques corrections, comme ajouter les routes qui
> > sont très légèrement au-delà des limites admin, mais ensuite, comment
> > trouver le parcours le plus court  et être guidé, depuis OsmAnd par
> exemple.
> >
> > J'avoue que je sèche.
> >
> > Le première application pourrait se faire ce week-end pour l'opération
> > libre de montreuil-en-touraine
> >
> > http://www.openstreetmap.org/relation/171408
> >
> > Stf
> >
> >
> > _______________________________________________
> > Talk-fr mailing list
> > Talk-fr@openstreetmap.org
> > https://lists.openstreetmap.org/listinfo/talk-fr
>
>
>
> _______________________________________________
> Talk-fr mailing list
> Talk-fr@openstreetmap.org
> https://lists.openstreetmap.org/listinfo/talk-fr
>
_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr

Répondre à