Está en la página 1de 8

Practica 2

Prueba con grafos

A B C
10

7
15
E F
D
17

6 12
14

G H
Hechos
conexion(a,b,10).
conexion(e,a,7).
conexion(e,f,15).
conexion(h,e,12).
conexion(g,e,14).
conexion(d,h,17).
conexion(d,g,6).
Ejercicios
• Encontrar el costo entre los nodos A y B
• Encontrar el costo entre los nodos H,E,F
• Crear un predicado camino(X,Y)
Ejercicios
• Construir una regla para determinar cual es el costo de ir de un nodo
X a un nodo Z pasando por Y (Ejemplo ir desde D a E pasando por G)
costo(X,Y,C):- conexión(X, I, C1),conexión(I,Y,C2), C IS C1+C2.
Preguntas
• Tiene conexión A con H?
conexion (a,h,_).
• Cuales son los nodos conectados con E y cual es el costo de cada
conexión
conexión(e,X,Costo).
• Determinar si un nodo tiene aristas
tieneArista(X):- conexión(X,_,_).
• %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
• %encontrar si hay un camino entre un nodo X y un nodo Y
• %caso base
• %hay camino si al menos hay conexion entre X e Y
• camino(X,Y,_):- conexion(X,Y,_).

• %caso recursivo
• %hay camino entre X y M si hay una conexion entre otro nodo Z y
• %el nodo M y a la vez exista un camino entre el nodo X y Z
• %de esta manera tiene que regresarse hasta encontrar el caso base

• camino(X,M,_):- conexion(Z,M,_),camino(X,Z,_).
• %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%
• %encontrar la suma de los costos de un camino
• %caso base
• costoruta(X,Y,C):- conexion(X,Y,C).

• %caso recursivo
• costoruta(X,M,C3):- conexion(Z,M,C1),costoruta(X,Z,C2),C3 is C1+C2.

También podría gustarte