Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[AYUDA][PARADIGAMAS]
Autor Mensaje
matiii_90 Sin conexión
Empleado de Fotocopiadora
Si la suerte te da la espalda,...
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 39
Agradecimientos dados: 15
Agradecimientos: 6 en 3 posts
Registro en: Mar 2014
Mensaje: #1
[AYUDA][PARADIGAMAS] Ejercicios Paradigmas de Programación
Hola gente,

Me estoy rompiendo el coco con un ejercicio de PROLOG (lógico) que no me sale. Quizá alguien pueda darme una mano, lo dejo aca abajo. Muchas gracias de ante mano.

BASE DE CONOCIOMIENTOS:


linea(a,[plazaMayo,peru,lima,congreso,miserere,rioJaneiro,primeraJunta,nazca]).
linea(b,[alem,pellegrini,callao,gardel,medrano,malabia,lacroze,losIncas,urquiza]).
linea(c,[retiro,diagNorte,avMayo,independenciaC,plazaC]).
%etc

combinacion([lima,avMayo]).
combinacion([once,miserere]).
combinacion([pellegrini,diagNorte,nueveJulio]).
%etc



PROBLEMA: viajeFacil/2: que relaciona dos estaciones si puedo llegar facil de una a la otra, es decir si estan en la misma linea o solo se requiere una combinacion.
07-07-2016 00:10
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Mr.GG Sin conexión
Militante
Salvando 3° Año...
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 79
Agradecimientos dados: 140
Agradecimientos: 70 en 25 posts
Registro en: Mar 2015
Mensaje: #2
RE: [AYUDA][PARADIGAMAS]
Tiene logica repetida, pero funca

viajeFacil(Estacion1, Estacion2) :-
estaEn(Estacion1, Linea),
estaEn(Estacion2, Linea).
viajeFacil(Estacion1, Estacion2) :-
combinacion(Estaciones1),
combinacion(Estaciones2),
member(Estacion1, Estaciones1),
member(Estacion2, Estaciones2).
07-07-2016 13:54
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Desert69 Sin conexión
Presidente del CEIT
Sin estado :( / "Anarquia...
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 2.421
Agradecimientos dados: 208
Agradecimientos: 301 en 189 posts
Registro en: Jun 2008
Mensaje: #3
RE: [AYUDA][PARADIGAMAS]
matiii_90, ¿con qué te rompiste el coco?

Contanos qué cosas se te ocurrieron, qué probaste, qué resultados conseguiste y cuáles no, como para poder darte una mano.

Tirarte un puñado de código que funciona, así sin más, no aporta mucho :/

Por otro lado, creo que el código que tiró MrGG no funciona bien. viajeFacil(lima, diagNorte) creo que devuelve false, cuando debería funcionar.

¿Cómo definís que dos estaciones pertenecen a una misma línea en términos de "existencia"? ¿Qué cosas tienen que existir, y qué relaciones/restricciones tiene que haber entre ellas?

Arrancá con esa, y después vemos cómo cambiaría para incluir el tema de la combinación.

[Imagen: a2.php]
[Imagen: 971aa6599664453c05cb3e42d58bbc0eo.jpg]
07-07-2016 14:09
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
MelisaGodoy Sin conexión
Empleado de Fotocopiadora
Aprovecha el Dia
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 29
Agradecimientos dados: 333
Agradecimientos: 2 en 2 posts
Registro en: Apr 2014
Facebook
Mensaje: #4
RE: [AYUDA][PARADIGAMAS]
a mi tambien me rompió el coco, lo pense de una manera y nada; pudiste resolverlo?
12-07-2016 21:41
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Ivanorr1s Sin conexión
Militante
AutoMagically
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 93
Agradecimientos dados: 21
Agradecimientos: 62 en 30 posts
Registro en: Jan 2012
Mensaje: #5
RE: [AYUDA][PARADIGAMAS]
Buenas! Quizás si te damos un empujoncito podés encararlo:

La consigna establece que hay que definir un predicado viajeFacil/2 que relaciona 2 estaciones sólo si se puede viajar fácil de la primera a la segunda, es decir, que están en la misma línea, o bien, sólo es necesaria una combinación para llegar.

Desglosemos la condición compuesta en 2 simples:
  1. Si están en la misma línea de subte.
  2. Si sólo es necesaria una combinación.

Además, nos dan una base de conocimiento bastante piola y simple:


linea(a,[plazaMayo,peru,lima,congreso,miserere,rioJaneiro,primeraJunta,nazca]).
linea(b,[alem,pellegrini,callao,gardel,medrano,malabia,lacroze,losIncas,urquiza]).
linea(c,[retiro,diagNorte,avMayo,independenciaC,plazaC]).
%etc
combinacion([lima,avMayo]).
combinacion([once,miserere]).
combinacion([pellegrini,diagNorte,nueveJulio]).


Las preguntas que deberías hacerte primero son:
  1. ¿Cómo hago para saber si una estación pertenece a la misma línea de subte que otra?
  2. ¿Cómo sé si hace falta una sóla combinación para llegar de una estación a otra?

Te doy una pista: existe un predicado denominado member/2 que relaciona un elemento (1er argumento) y un conjunto (2do argumento) si y sólo si el elemento pertenece a dicho conjunto. Por ejemplo, para saber si la estación retiro pertenece a la línea c simplemente consultamos:


linea(c, Estaciones), member(retiro, Estaciones). true.


(Este mensaje fue modificado por última vez en: 12-07-2016 22:16 por Ivanorr1s.)
12-07-2016 22:14
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
MelisaGodoy Sin conexión
Empleado de Fotocopiadora
Aprovecha el Dia
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 29
Agradecimientos dados: 333
Agradecimientos: 2 en 2 posts
Registro en: Apr 2014
Facebook
Mensaje: #6
RE: [AYUDA][PARADIGAMAS]
(12-07-2016 22:14)Ivanorr1s escribió:  Buenas! Quizás si te damos un empujoncito podés encararlo:

La consigna establece que hay que definir un predicado viajeFacil/2 que relaciona 2 estaciones sólo si se puede viajar fácil de la primera a la segunda, es decir, que están en la misma línea, o bien, sólo es necesaria una combinación para llegar.

Desglosemos la condición compuesta en 2 simples:
  1. Si están en la misma línea de subte.
  2. Si sólo es necesaria una combinación.

Además, nos dan una base de conocimiento bastante piola y simple:


linea(a,[plazaMayo,peru,lima,congreso,miserere,rioJaneiro,primeraJunta,nazca]).
linea(b,[alem,pellegrini,callao,gardel,medrano,malabia,lacroze,losIncas,urquiza]).
linea(c,[retiro,diagNorte,avMayo,independenciaC,plazaC]).
%etc
combinacion([lima,avMayo]).
combinacion([once,miserere]).
combinacion([pellegrini,diagNorte,nueveJulio]).


Las preguntas que deberías hacerte primero son:
  1. ¿Cómo hago para saber si una estación pertenece a la misma línea de subte que otra?
  2. ¿Cómo sé si hace falta una sóla combinación para llegar de una estación a otra?

Te doy una pista: existe un predicado denominado member/2 que relaciona un elemento (1er argumento) y un conjunto (2do argumento) si y sólo si el elemento pertenece a dicho conjunto. Por ejemplo, para saber si la estación retiro pertenece a la línea c simplemente consultamos:


linea(c, Estaciones), member(retiro, Estaciones). true.



la parte 1 está, la parte 2 es la cuestión u.u

"¿Cómo sé si hace falta una sóla combinación para llegar de una estación a otra?"
14-07-2016 15:25
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Ivanorr1s Sin conexión
Militante
AutoMagically
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 93
Agradecimientos dados: 21
Agradecimientos: 62 en 30 posts
Registro en: Jan 2012
Mensaje: #7
RE: [AYUDA][PARADIGAMAS]
(14-07-2016 15:25)MelisaGodoy escribió:  la parte 1 está, la parte 2 es la cuestión u.u

"¿Cómo sé si hace falta una sóla combinación para llegar de una estación a otra?"

Para probar que sólo hace falta una combinación para llegar de una a otra es necesaria una consulta existencial.

Pensémoslo de manera coloquial, por ejemplo, si quiero llegar de lima a independencia:

1. Verificar que estén en la misma línea (Falso).
2. Buscar una combinación que me sirva. ¿Cuándo me sirve?

Una combinación me sirve si y sólo si:
1. En mi línea de subte existe alguna estación con la que pueda hacer combinación (Verdadero).
2. Si puedo hacer combinación:
i. Esa combinación me lleva directo a esa estación (Falso).
ii. Esa combinación me lleva a una estación de una línea de subte distinta que tiene, como estación, a independencia (Verdadero).
14-07-2016 16:03
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Ivanorr1s recibio 1 Gracias por este post
MelisaGodoy (15-07-2016)
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.