Professional Documents
Culture Documents
Unidad 4
Unidad 4
Semestre: séptimo
Alumno:
Cipriano García Daniel 19321372
Realizar un trabajo de investigación respecto a las fábricas en JavaScript, que son, como se usan,
diferencia respecto a las clases
1
ÍNDICE
Contenido
ÍNDICE.............................................................................................................2
INTRODUCCIÓN................................................................................................3
DESARROLLO....................................................................................................4
4. Modelo de programación lógica...................................................................4
4.1 Introducción al modelo de programación lógica..........................................5
4.2. Semántica de los programas lógicos..........................................................9
4.3 Representación clausada del conocimiento................................................11
4.4 Consulta de una base de cláusulas...........................................................11
4.5 Espacios de búsqueda.............................................................................12
4.6 Programación lógica con números, listas y árboles....................................13
4.7. Control de búsqueda en programas lógicos..............................................14
4.8. Manipulación de términos.......................................................................14
4.9 Predicados mitológicos............................................................................15
CONCLUSIONES...............................................................................................16
BIBLIOGRAFÍA.................................................................................................16
2
INTRODUCCIÓN
3
DESARROLLO
4. Modelo de programación lógica.
La programación lógica es un tipo de paradigmas de programación dentro del
paradigma de programación declarativa. El resto de los subparadigmas de
programación dentro de la programación declarativa son: programación funcional,
programación con restricciones, programas DSL (de dominio específico) e híbridos.
La programación funcional se basa en el concepto de función (que no es más que
una evolución de los predicados), de corte más matemático. La programación
lógica gira en torno al concepto de predicado, o relación entre elementos
La programación lógica permite formalizar hechos del mundo real, por ejemplo:
una mascota vuela si es un ave y no es un pingüino las aves vuelan los pingüinos
no vuelan "pichurri" es un ave "sandokan" es un perro "alegría" es un ave y
también reglas o restricciones:
4
4.1 Introducción al modelo de programación lógica
La Programación Lógica estudia el uso de la lógica para el planteamiento de
problemas y el control sobre las reglas de inferencia para alcanzar la solución
automática.
También se usan
5
Por ejemplo el operador suma (“+”), podemos encontrarlo en forma prefija
‘+(2,5)’ o bien infija, ‘2 + 5’.
X = Y igual
X \= Y distinto
X < Y menor
X > Y mayor
X =< Y menor o igual
X >= Y mayor o igual
Características
6
Una tarea de la semántica es investigar las condiciones de verdad de los
enunciados.
La semántica formal se ocupa únicamente de los aspectos formales o
estructurales
de las condiciones de verdad.
Un enunciado complejo será verdadero o falso en función de la forma en
que estén dispuestos los enunciados simples que lo componen.
Esta forma viene dada por la disposición de las conectivas dentro del
enunciado.
Semántica operacional
Semántica declarativa
Semántica de punto fijo
7
de Horn), es decir sus reglas tienen como consecuente una única acción y las
inferencias obte¬nidas son estrictamente lógicas (verdaderas o falsas), aunque
puede parecer una limitación, esto no es totalmente justo, ya que PROLOG permite
programar mecanismos inferenciales con lógica probabilisticas, dado que se trata
de búsquedas en árboles con acumulación de evidencias.
El PROLOG como lenguaje surgido del cálculo de predicados, tomó las siguientes
ideas de la lógica para su ejecución.
Lo más importante para Minsky son los conceptos, o sea la inter¬pretación que se
le puede dar a cada palabra en dependencia de un contexto dado.
El otro grupo encabezado por Mac Carthy (autor del LISP), afirma que la lógica
matemática es el elemento característico para la representación del razonamiento
y su implantación en la computadora, este grupo centra su atención en la
formalización y en la estructura de los conocimientos más que en el sentido de
estos.
8
que la lógica es la única senda posible para desarrollar programas capaces de
mostrar inteligencia.
9
programa P. Por ejemplo, la base de Herbrand del programa P, BP , es un modelo
de P.
10
4.3 Representación clausada del conocimiento.
Representación del conocimiento es un término para referirse a representaciones
pensadas para el procesamiento por ordenadores modernos, en particular, para
representaciones compuestas por objetos explícitos y de afirmaciones sobre ellos.
Tipos de Cláusulas
Ejemplos
11
hechos
reglas
consultas
Tipos definidos por el usuario. Las reglas para definir relaciones pueden actuar
como tipos de usuario.
SELECT select_list
FROM table_source
[WHERE search_condition]
[GROUP BY group_by_expression]
[HAVING search_condition]
[ORDER BY order_expression [ASC | DESC] ]
FROM
Especifica de dónde queremos obtener los datos, es decir, de que tabla. Se utiliza
no sólo en el comando de consulta, SELECT, sino también en los comandos
UPDATE y DELETE .
WHERE
Está clausula es donde se indican las condiciones de filtrado de los datos. Estas
condiciones se definen a través de los operadores lógicos y de comparación.
12
4.5 Espacios de búsqueda.
Cuando se resuelve un problema, se busca la mejor solución entre un conjunto de
posibles soluciones. Al conjunto de todas las posibles soluciones a un problema
concreto se llama espacio de búsqueda.
Entonces parece que buscar una solución se reduce a buscar un valor extremo
(mínimo o máximo) en el espacio de búsqueda. A veces el espacio de búsqueda
puede ser bien definido, pero en la mayoría de las ocasiones sólo se conocen
algunos puntos en el espacio de búsqueda. Cuando se usa un AG las posibles
soluciones generan otras a medida que el genético evoluciona.
Listas
13
La representación de hechos simples no es lo común en la clasificación del
elemento, sino que se agrupan los elementos de un mismo tipo en una lista. las
listas son colecciones de elementos en PROLOG. Una lista se divide en dos partes:
Árboles
El orden en que aparecen los literales dentro de una sentencia (dentro del cuerpo)
o el orden en que se introducen las sentencias en el programa son importantes en
PROLOG. El orden afecta tanto al correcto funcionamiento del programa, como al
14
recorrido del árbol de llamadas, determinando, entre otras cosas, el orden en que
PROLOG devuelve las soluciones a una pregunta dada. El orden de las sentencias
determina el orden en que se obtienen las soluciones ya que varía el orden en que
se recorren las ramas del árbol de búsqueda de soluciones.
Predicados
Meta-Lógicos
abuelo(X,Y):-novar(X)
hombre(x), progenitor(x,z), progenitor(z,y).
abuelo(x,y):-novar(y)
progenitor(z,y), progenitor(x,z), hombre(x)
abuelo(x,y):- X es abuelo de Y
X es una variable no instanciada
El predicado functor es uno de los más útiles entre la biblioteca standard Prolog.
15
Este predicado permite extraer el functor y la aridad de un término cualquiera.
Pero, al ser reversible, también permite construir nuevos términos a partir del
funtor y la aridad deseada.
Functor(+Término,-Functor,-Aridad).
Functor(-Término,+Functor,+Aridad). Predicados meta-lógicos
Ejemplo:
Predicados de Clasificación
Los predicados meta-lógicos permiten controlar el algoritmo de resolución
facilitando la meta-programación.
CONCLUSIONES
La programación lógica con su amplio rango de aplicabilidad y específicamente en
la representación de conocimiento y para implementar aplicaciones que sean
capaces de encontrar soluciones a problemas en base al conocimiento, resulta una
aproximación muy útil. Sin embargo, existe carencia de formalismos metodológicos
para apoyar al programador lógico en el desarrollo de "Descripciones" La
16
propuesta descrita presenta una serie de pasos, con una anotación y conceptos
asociados a cada paso, que conforman un enfoque sistemático para producir
aplicaciones lógicas. Se ha demostrado su aplicabilidad para desarrollar
descripciones de programas lógicos que manipulan conocimiento y resuelven
problemas en base a ese conocimiento.
BIBLIOGRAFÍA
Programación lógica | Apuntes de 4o de Ingeniería Informática. (s. f.).
github.
http://adrm.github.io/apuntes-cuarto/ico/4_programacion_logica.html
Serra, S. (2011, junio). Paradigma logico. labsys.
https://labsys.frc.utn.edu.ar/ppr-2011/Unidad%20V%20-%20Paradigma
%20Lógico/Unidad%20V%20%20Paradigma%20LOGICO.pf
Moreno, L. D. C. L., & Perfil, V. T. M. (s. f.). 4.3 Representación clausada
del conocimiento. Blogspot.
https://lucydelcarmenleonmoreno.blogspot.com/2019/05/43-
representacion-clausada
Pasarella, E. (2004, mayo). Apuntes. cs.upc.edu.
https://www.cs.upc.edu/~edelmira/ApuntesLP.pdf
Lopez, R. J. A. (2019, 11 mayo). Programacion Logica y funcional.
GoConqr.
https://www.goconqr.com/es/mindmap/9271680/programacion-logica-y-
funcional
17
https://prezi.com/s58qigggszsd/programacion-logica-con-numeros-listas-y-
arboles/
Couoh, R. (s. f.). 4.1.1 Manipulacion de terminos 4.1.2 Predicados
Metalogicos. prezi.com.
https://prezi.com/wzpdx9r407pp/411-manipulacion-de-terminos-412-
predicados-metalogicos/
18