Fonction TSP

La fonction tsp est définie comme suit :

CREATE OR REPLACE FUNCTION tsp(sql text, ids varchar, source_id integer)
RETURNS SETOF path_result

Les arguments sont :

sql
un requête SQL qui devrait retourner un ensemble de lignes ayant les colonnes suivantes :

  • source_id: un int4 identifiant du noeud
  • x: la coordonée x du noeud
  • y: la coordonée y du noeud

ids
une chaîne de charactères contenant les idetifiants (int4) des noeuds séparés par une virgule.
source_id
identifiant (int4) du point de départ

La fonction renvoie un ensemble de lignes. Il y a une ligne pour chaque arc travsersé et une en plus contenant le noeud final. Les colonnes de chaques lignes sont les suivantes :

  • vertex_id: l'identidiant du noeud source de chaque arc. Il y a une ligne supplémentaire après le dernier arc qui contient l'identifiant du noeud final du chemin.
  • edge_id: innutilisé, vaut toujours 0
  • cost: innutilisé, vaut toujours 0

Exemple:

SELECT * from tsp('select distinct source as source_id,
x1::double precision as x,
y1::double precision as y from dourol
where source in (83593,66059,10549,18842,13)',
'83593,66059,10549,18842,13', 10549);
vertex_id | edge_id | cost
----------+---------+------
    10549 |       0 |     0
    83593 |       0 |     0
    66059 |       0 |     0
    18842 |       0 |     0
       13 |       0 |     0
(5 rows)

Ensuite la colonne vertex_id peut être utilisée pour le calcul du plus court chemin.

Posted in version imprimable | Vous devez vous connecter ou vous enregistrer pour écrire des commentaires | 2845 lectures

Posté par djay le 21 Août, 2006 - 12:27.

Accéder aux archives

« Janvier 2025  
Lun Mar Mer Jeu Ven Sam Dim
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Ouverture de session

Qui est en ligne

Il y a actuellement 1 utilisateur et 1525 invités en ligne.
Locations of visitors to this page
Drupal Top Sites - Ultimate Drupal Exposure