Trabalho 01 Prolog Distância Mínima

Para este trabalho você deve fazer um programa em Prolog que calcula o caminho mínimo para quaisquer dois pontos dados em um dado mapa.

Instâncias

OBS: nenhum dos mapas terá ciclos

Ancestralidade a a b b a->b 1 c c b->c 1 d d b->d 1 c->d 1 e e d->e 1 f f e->f 1 h h e->h 1 g g f->g 1 g->h 1

arco(a, b, 1).
arco(b, c, 1).
arco(b, d, 1).
arco(c, d, 1).
arco(d, e, 1).
arco(e, f, 1).
arco(e, h, 1).
arco(f, g, 1).
arco(g, h, 1).

Ancestralidade a a d d a->d 3 b b a->b 1 c c d->c 1 b->c 2

arco(a, d, 3).
arco(a, b, 1).
arco(d, c, 1).
arco(b, c, 2).

Saída

Dado um x, e um y. Para a pergunta

caminhoMinimo(x, y, Caminho, Custo).

Um caminho mínimo entre dois pontos é um caminho com a menor soma no custo dos arcos.

O seu programa deve guardar

Para a instância 02:

caminhominimo(a, c, Caminho, Custo).
>>> Caminho = [a, b, c]
>>> Custo = 3