Fonction Shooting*

La fonction shortest_path_shooting_star est définie de la façon suivante :

CREATE OR REPLACE FUNCTION shortest_path_shooting_star(sql text, source_id integer, target_id integer,directed boolean, has_reverse_cost boolean)
RETURNS SETOF path_result

Les arguments sont :

sql
une requête SQL, qui doit renvoyer un ensemble de lignes ayant les mêmes colonnes que celles nécessaires à A* plus :

  • rule: une chaîne de caractère contenant une liste d'identifiants d'arcs, séparés par une virgule, qui décrit le sens giratoir (si je suis sur tel tronçon je peux aller sur tel tronçon avec le coût décrit dans la colonne to_cost)
  • to_cost : le coût d'un passage restrain (peut être très élevé dans le cas où le fait de tourner vers tel arc entraine le passage par un feu)

source_id
int4 identifiant de l'arc de départ
target_id
int4 identifiant de l'arc d'arrivé
directed
vrai si le graphe est orienté
has_reverse_cost
si sa valeur est vrai, la colonne reverse_cost du résultat SQL généré sera utilisé pour le coût de la traversé d'un arc dans la direction oposée.

La fonction renvoie un ensemble de lignes équivalent à celui renvoyé par A* mis à part que le dernier coût retourné n'est pas -1.

Exemple:

SELECT * from shortest_path_shooting_star('SELECT id, source, target, cost,
x1, y1, x2, y2, rule, to_cost FROM edges', 17, 9, true, false);
vertex_id | edge_id | cost
----------+---------+------------------------
       16 |      17 | 1
       15 |      16 | 1
        2 |       5 | 1
        3 |       4 | 1
       20 |      12 | 2
       10 |       9 | 2
(6 rows)

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

Posté par rédacteurs le 24 Avril, 2007 - 23:38.

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 94 invités en ligne.
Locations of visitors to this page
Drupal Top Sites - Ultimate Drupal Exposure