Foros del Web » Programación para mayores de 30 ;) » Programación General »

Problema con prolog

Estas en el tema de Problema con prolog en el foro de Programación General en Foros del Web. Saludos, Necesito una ayuda con prolog, resulta que necesito una función en Prolog que me cuente los nodos de un grafo etiquetado. El grafo es ...
  #1 (permalink)  
Antiguo 02/03/2007, 20:54
 
Fecha de Ingreso: febrero-2007
Mensajes: 4
Antigüedad: 17 años, 2 meses
Puntos: 0
Problema con prolog

Saludos,

Necesito una ayuda con prolog, resulta que necesito una función en Prolog que me cuente los nodos de un grafo etiquetado. El grafo es de la forma:

nodo(2,[arista(1,nodo(3,[]))])

El 2 se refiere a la etiqueta del primer nodo, el 1 es la etiqueta de la arista que une al nodo 2 con el 3.

Hasta ahora lo que llevo es esto, sin embargo no me esta dando el resultado deseado:
contarNodos(nodo(_,[]),N) :- N is 1.
contarNodos(nodo(_,[X|XS]),N) :- contarNodos(X,N1), contarNodos(XS,N1), N is N1 + 1.
contarNodos(arista(_,X),N) :- contarNodos(X,N1), N is N1.

Ademas del caso base, este caso me da las respuestas que quiero:

?-contarNodos1(nodo(2,[arista(3,nodo(1,[]))]),N).
N=2 (2 nodos)

Al probar este caso de prueba no me da los nodos que quiero:
contarNodos1(nodo(2,[arista(3,nodo(1,[])),arista(2,nodo(3,[arista(3,nodo(4,[arista(3,nodo(4,[]))]))]))]),N).
N=3 (NO !!!!)

Quisiera saber si me pueden ayudar, se los agradecería enormemente, gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:56.