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 :

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 :

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.