IIC2613-Inteligencia-Artificial-2023-1 / Syllabus

Repositorio base del curso, donde se publicarán enunciados, ayudantías y se resolverán dudas.
39 stars 1 forks source link

Duda ejercicio restricción de cardinalidad #7

Closed KainaBGR closed 1 year ago

KainaBGR commented 1 year ago

Hola :) me quedé pegada con un ejercicio que salió en el control y quise revisar cómo funciona escribiendo el programa, pero llegué a algo que me parece confuso. Escribí un word con pantallazos de vscode para darme a entender mejor. Si pudieran revisarlo y ayudarme a entender lo agradecería. Saludos. link: https://uccl0-my.sharepoint.com/:w:/g/personal/kaina_galdames_uc_cl/EQa2KQsL26NAo8t_xbzBG8IBGiq3ZNqaZvCNUxijhlrl6g?e=yzqmAt (personas @uc.cl pueden ver)

vicentevegaulloa commented 1 year ago

Hola @KainaBGR!

Disculpa la tardanza. Por lo que entendí del documento, tu no entiendes por qué el programa arroja un modelo y no muchos. La razon es la siguiente (dejo el programa de referencia):

p(1).
p(2).
b(1).
b(2).
1{ a(X) : b(X) } 2 :- p(X).

Lo que hará Clingo será reemplazar cada X por una misma instancia de p. Esto se vería así

p(1).
p(2).
b(1).
b(2).
1{ a(1) : b(1) } 2 :- p(1).
1{ a(2) : b(2) } 2 :- p(2).

Luego eso implicaría que en el modelo esté siempre al menos a(1) por la penúltima regla y a(2) por la última regla. Al estar ambas, sólo tendremos siempre un solo modelo, que es el que retorna Clingo.

De todas formas, el programa que traspasaste del control es incorrecto. Quizás quisiste pasar a clingo uno de estos dos: image

KainaBGR commented 1 year ago

yaaa, había mezclado las preguntas, my bad :S Aunque respecto a la pregunta falsa, ahora entiendo por qué solo existe una opción para cada número y porqué el único modelo contiene a ambos a(). Muchas gracias!