0% encontró este documento útil (0 votos)
59 vistas5 páginas

Tarea 5

Este documento presenta una tarea para el curso de Seminario de sistemas basados en conocimiento. Describe los cortes rojos y verdes en Prolog, indicando que los cortes eliminan los puntos de elección y detienen el backtracking, y que los cortes rojos evitan soluciones erróneas mientras que los cortes verdes podan ramas innecesarias. También incluye referencias bibliográficas sobre cortes en Prolog.

Cargado por

Isaias Juarez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
59 vistas5 páginas

Tarea 5

Este documento presenta una tarea para el curso de Seminario de sistemas basados en conocimiento. Describe los cortes rojos y verdes en Prolog, indicando que los cortes eliminan los puntos de elección y detienen el backtracking, y que los cortes rojos evitan soluciones erróneas mientras que los cortes verdes podan ramas innecesarias. También incluye referencias bibliográficas sobre cortes en Prolog.

Cargado por

Isaias Juarez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 5

Centro Universitario de Ciencias Exactas e Ingenierías

Tarea 5

Nombre del curso: Seminario de sistemas basados en conocimiento

Nombre del profesor: Julio Esteban Valdez Lopez

Nombre de los alumnos: Isaías Juárez Esparza

Código: 216658022

Carrera: Ingeniería Informática

Clave: I5914

Sección del curso: D02

Fecha:domingo, 26 de febrero del 2023


Contenido
Cortes rojos y verdes 3

Referencias Bibliográficas 5
Cortes rojos y verdes
El corte es un predicado predefinido que no recibe argumentos. Se representa
mediante un signo de admiración. Sin duda, es el predicado más difícil de entender.
El corte tiene la propiedad de eliminar los puntos de elección del predicado que lo
contiene.

Es decir, cuando se ejecuta el corte, el resultado del objetivo (no sólo la cláusula en
cuestión) queda comprometido al éxito o fallo de los objetivos que aparecen a
continuación. Es como si a Prolog "se le olvidase" que dicho objetivo puede tener
varias soluciones. Otra forma de ver el efecto del corte es pensar que solamente
tiene la propiedad de detener el backtracking cuando éste se produce. Es decir, en
la ejecución normal el corte no hace nada. Pero cuando el programa entra en
backtracking y los objetivos se recorren marcha atrás, al llegar al corte el
backtracking se detiene repentinamente forzando el fallo del objetivo.

Algunos usos que se le dan al corte son:

❖ Para implementar algoritmos diferentes según la combinación de argumentos


de entrada. Algo similar al comportamiento de las sentencias case en los
lenguajes imperativos.
❖ Para conseguir que un predicado solamente tenga una solución. Esto nos
puede interesar en algún momento. Una vez que el programa encuentra una
solución ejecutamos un corte. Así evitamos que Prolog busque otras
soluciones aunque sabemos que éstas existen.
❖ Para optimizar la ejecución. El corte sirve para evitar que por culpa del
backtracking se exploren puntos de elección que, con toda seguridad, no
llevan a otra solución (fallan). Para los entendidos, esto es podar el árbol de
búsqueda de posibles soluciones.
❖ Para facilitar la legibilidad y comprensión del algoritmo que está siendo
programado. A veces se sitúan cortes en puntos donde, con toda seguridad,
no van a existir puntos de elección para eliminar, pero ayuda a entender que
la ejecución sólo depende de la cláusula en cuestión.

Los cortes rojos se utilizan para evitar soluciones erróneas, cuando se omite la
comprobación explícita de alguna condición que se sabe que se va a cumplir para
un determinado uso del predicado.
Los cortes rojos funcionan correctamente sólo cuando se instancia el primer
argumento; no funciona bien cuando se instancian los dos.

En el caso de los cortes verdes, no afectan al sentido declarativo del programa,


podan ramas inútiles, redundantes o infinitas; por ejemplo:

Además, se pueden utilizar en situaciones en las que queremos comprometer la


solución con una cláusula completa.
También, para terminar con una generación de valores que puede conducir a una
rama infinita del árbol de búsqueda.

Referencias Bibliográficas
❖ Castellano, E. S. P. L. (s. f.). Curso intermedio de programaciÃ3n en Prolog.

Programación en Castellano.

https://programacion.net/articulo/curso_intermedio_de_programacion_en_prol

og_88/4

❖ cut. (s. f.). http://www.cse.unsw.edu.au/%7Ebillw/dictionaries/prolog/cut.html

❖ Prolog - Examples of Cuts. (s. f.).

https://www.tutorialspoint.com/prolog/prolog_examples_of_cuts.htm

También podría gustarte