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.
OBS: nenhum dos mapas terá ciclos
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).
arco(a, d, 3). arco(a, b, 1). arco(d, c, 1). arco(b, c, 2).
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
Caminho
, a lista de vértices por onde o caminho passa (pode ser em qualquer sentido)Custo
a soma dos valores de cada arco ligando cada par de vértice.Para a instância 02:
caminhominimo(a, c, Caminho, Custo). >>> Caminho = [a, b, c] >>> Custo = 3