Skip to content

Commit

Permalink
Proglogica 20241 teoria (#258)
Browse files Browse the repository at this point in the history
* Se agrega tipos de consultas y ejemplos.

* Se sube la presentación 2024-1

* Adición de descripción (así como un ejemplo) para el lenguaje Curry

* Ejemplo Prolog - Sudoku Solver

---------

Co-authored-by: Luis Mendez <81998928+LuisMendez-ING@users.noreply.github.com>
Co-authored-by: julozanoa <julozanoa@unal.edu.co>
  • Loading branch information
3 people authored Jun 12, 2024
1 parent 10b2991 commit aad1db4
Show file tree
Hide file tree
Showing 11 changed files with 201 additions and 54 deletions.
1 change: 1 addition & 0 deletions proglogica/logica_teoria/aplicaciones.html
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@
<li><a href="lenguaje.html#godel">Godel</a></li>
<li><a href="lenguaje.html#minikanren">miniKanren</a></li>
<li><a href="lenguaje.html#sequencel">SequenceL</a></li>
<li><a href="lenguaje.html#curry">Curry</a></li>
<li><a href="lenguaje.html#datalog">Datalog</a></li>
<li><a href="lenguaje.html#ejemplos">Ejemplos</a></li>
<li><a href="lenguaje.html#ejemplo_comparativo">Ejemplo comparativo</a></li>
Expand Down
Binary file added proglogica/logica_teoria/docs/2024-1.pdf
Binary file not shown.
Binary file added proglogica/logica_teoria/img/mergeSortCurry.PNG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added proglogica/logica_teoria/img/sudokusolv01.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added proglogica/logica_teoria/img/sudokusolv02.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added proglogica/logica_teoria/img/sudokusolv03.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added proglogica/logica_teoria/img/sudokusolv04.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions proglogica/logica_teoria/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@
<li><a href="lenguaje.html#godel">Godel</a></li>
<li><a href="lenguaje.html#minikanren">miniKanren</a></li>
<li><a href="lenguaje.html#sequencel">SequenceL</a></li>
<li><a href="lenguaje.html#curry">Curry</a></li>
<li><a href="lenguaje.html#datalog">Datalog</a></li>
<li><a href="lenguaje.html#ejemplos">Ejemplos</a></li>
<li><a href="lenguaje.html#ejemplo_comparativo">Ejemplo comparativo</a></li>
Expand Down
190 changes: 136 additions & 54 deletions proglogica/logica_teoria/lenguaje.html

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions proglogica/logica_teoria/presentaciones.html
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@
<li><a href="lenguaje.html#godel">Godel</a></li>
<li><a href="lenguaje.html#minikanren">miniKanren</a></li>
<li><a href="lenguaje.html#sequencel">SequenceL</a></li>
<li><a href="lenguaje.html#curry">Curry</a></li>
<li><a href="lenguaje.html#datalog">Datalog</a></li>
<li><a href="lenguaje.html#ejemplos">Ejemplos</a></li>
<li><a href="lenguaje.html#ejemplo_comparativo">Ejemplo comparativo</a></li>
Expand Down Expand Up @@ -129,6 +130,7 @@ <h2 class="title"><strong>Presentaciones de semestres anteriores</strong></h2>
<li><a href="docs/2022-2.pdf">Presentacion periodo 2022-2</a></li>
<li><a href="docs/2023-1.pdf">Presentación periodo 2023-1</a></li>
<li><a href="docs/2023-2.pdf">Presentación periodo 2023-2</a></li>
<li><a href="docs/2024-1.pdf">Presentación periodo 2024-1</a></li>
</ol>
</div>
</div>
Expand Down
61 changes: 61 additions & 0 deletions proglogica/logica_teoria/proglogica.html
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@
<li><a href="lenguaje.html#godel">Godel</a></li>
<li><a href="lenguaje.html#minikanren">miniKanren</a></li>
<li><a href="lenguaje.html#sequencel">SequenceL</a></li>
<li><a href="lenguaje.html#curry">Curry</a></li>
<li><a href="lenguaje.html#datalog">Datalog</a></li>
<li><a href="lenguaje.html#ejemplos">Ejemplos</a></li>
<li><a href="lenguaje.html#ejemplo_comparativo">Ejemplo comparativo</a></li>
Expand Down Expand Up @@ -216,6 +217,25 @@ <h2>Características del Paradigma</h2>
<p>
La programación lógica se utiliza para la inferencia de datos, que es el proceso de deducir nuevos conocimientos a partir de los datos existentes mediante la aplicación de reglas lógicas.
</p>
<li><strong>Variables lógicas</strong></li>
<p>
Las variables pueden actuar como variables de entrada y de salida.
A continuación veremos un ejemplo en Prolog:
</p>
<pre>
?- es_par(4). % Actua como variable de entrada
?- pares_en_lista([1, 2, 3, 4, 5, 6], L). % devuelve en L los números pares de la lista
</pre>

<li><strong>Inversibilidad</strong></li>
<p>
Las variables lógicas permiten usar un predicado para extraer información o para validarlo.
A continuación veremos un ejemplo en Prolog:
</p>
<pre>
?- abuelo(juan, ana). % ¿Es Juan abuelo de Ana?
?- abuelo(juan, Y). % ¿Quienes son los nietos de Juan?
</pre>
<li><strong>Resolución de problemas</strong></li>
<p>
La programación lógica se utiliza para la resolución de problemas en áreas como la inteligencia artificial, la representación del conocimiento, la inferencia de datos, la planificación y la resolución de problemas en general.
Expand All @@ -228,6 +248,10 @@ <h2>Características del Paradigma</h2>
<p>
La programación lógica se basa en la recursividad, lo que significa que una regla puede invocarse a sí misma para resolver un problema de forma repetida hasta que se alcance la solución final.
</p>
<li><strong>Múltiples soluciones (Backtracking)</strong></li>
<p>
Es posible que la invocación de un predicado devuelva múltiples soluciones, una por cada rama de éxito en el árbol de resolución SLD.
</p>
</ul>
</div>
</div>
Expand Down Expand Up @@ -658,6 +682,43 @@ <h3 class="title">Consultas</h3>
deducimos que <i>Pepito es mortal</i>.
</p>
<p style=" display: flex; justify-content: center;"><img src="img/consulta.PNG" style="width: 90%; max-width: 560px;"></p>
<h4>Tipo de consultas</h4>
<h5>1) Consultas de Verificación</h5>
<p>
Comprueban si ciertos hechos o relaciones son verdaderos según la base de conocimientos.
</p>
<pre>
?- padre(juan, maria). % ¿Es Juan padre de Maria?
</pre>
<h5>2) Consultas de Búsqueda de Variables</h5>
<p>
Buscan los valores que hacen verdadera una relación dada, resolviendo para las variables implicadas.
</p>
<pre>
?- padre(juan, X). % ¿De quién es padre Juan?
</pre>
<h5>3) Consultas de Regla Compleja</h5>
<p>
Implican múltiples relaciones y reglas, buscando comprobar hechos derivados de reglas más complejas.
</p>
<pre>
abuelo(X, Y) :- padre(X, Z), padre(Z, Y)
?- abuelo(juan, Y). % ¿De quién es abuelo Juan?
</pre>
<h5>4) Consultas con Condiciones</h5>
<p>
Se pueden hacer consultas con condiciones adicionales para restringir los resultados.
</p>
<pre>
?- padre(X, Y), madre(Y, Z). % Busca pares de valores X y Y donde X es padre de Y y Y es madre de Z
</pre>
<h5>5) Consultas de Existencia</h5>
<p>
Estas consultas verifican si existe al menos un conjunto de valores que satisfaga una condición.
</p>
<pre>
?- existe(abuelo(juan, Y)). % Verifica si existe algún Y tal que Juan sea su abuelo.
</pre>
</div>
</section>

Expand Down

0 comments on commit aad1db4

Please sign in to comment.