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 | 2820 lectures

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

Accéder aux archives

« Novembre 2024  
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  

Ouverture de session

Qui est en ligne

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