Prolog - buscador de vuelos

 
Vista:

buscador de vuelos

Publicado por Luz (3 intervenciones) el 20/11/2007 06:49:20
Hola,

necesito ayuda urgente, porque tengo que entregar una práctica en la universidad y no sé mucho prolog, he intentado hacerla buscando ayuda en internet y con tutoriales, pero no me sale. Aquí dejo el enunciado por si alguien me puede ayudar y gracias de antemano.

Enunciado:

Práctica de Programación en PROLOG: buscador de vuelos general

Objetivos
1. practicar la definición de predicados sencillos en PROLOG.
2. aprender a aprovechar el motor de inferencia como motor de búsqueda.

Desarrollo
Mediante un conjunto de hechos se definirán los vuelos directos disponibles, especificando para cada uno: origen, destino, fecha de salida, hora de salida, fecha de llegada, hora de llegada, duración y precio. Mediante un interfaz, el usuario especificará origen, destino, y precio máximo del vuelo buscado. El programa responderá proporcionando todos los vuelos (posiblemente con escalas) válidos. Informará de la siguiente manera sobre cada vuelo válido: origen, destino, escalas, duración total, precio total. En un vuelo con escalas el momento de salida de un vuelo debe ser entre 1h y 12h posterior a la llegada del precedente.

Un saludo, Luz
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:buscador de vuelos

Publicado por Pedro (1 intervención) el 11/12/2007 08:41:16
Hola luz, te escribo porque me han mandado el mismo ejercicio del buscador de vuelos . Estoy de erasmus en suecia y me gustaria saber si encontraste la solucion y, sobre tod, si podrias enviarmela por correo a [email protected]. Muchas gracias de antemano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

buscador de vuelos

Publicado por luis pineda (1 intervención) el 01/06/2019 02:27:07
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
vuelo(nueva_york,denver,1000).
vuelo(chicago,denver,900).
vuelo(toronto,calgary,1500).
vuelo(toronto,los_angeles,1800).
vuelo(toronto,chicago,500).
vuelo(denver,urbana,1100).
vuelo(denver,houston,1200).
vuelo(houston,los_angeles,1300).
:-dynamic(visitado/1).
 
encontrar_ruta:-
    write("Ciudad de origen: "),nl,
    read(A),nl,nl,
    write("Ciudad de destino: "),nl,
    read(B),nl,nl,
    ruta(A,B,D),
    write("La distancia es de "),nl,
    write(D),nl,
    not(displayruta).
 
ruta(A,B,D):-
     es_vuelo(A,B,D).
 
ruta(_,_,D):-
    write("No se encontro la ruta"),nl,nl,
    D=0,
    purgar.
 
es_vuelo(T,T2,D):-
    vuelo(T,T2,D),
    añadir_a_ruta(T).
 
es_vuelo(T,T2,D):-
    vuelo(T,X,D2),
    X\=T2,
    añadir_a_ruta(T),
    es_vuelo(X,T2,D3),
    D is D2+D3.
 
es_vuelo(T,_,D):-
    write("Punto sin salida en "),nl,
    write(T),nl,nl,
    D=0,
    fail.
 
añadir_a_ruta(T):-
    not(visitado(T)),
    assert(visitado(T)),!.
 
añadir_a_ruta(_).
 
purgar:-
    retract(visitado(_)),
    fail,!.
 
displayruta:-
    write("La ruta es: "),nl,
    visitado(A),
    write("-->"),
    write(A),nl,nl,
    fail,!.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar