Lógica computacional

12
LOGICA COMPUTACIONAL

description

El nivel menos abstracto dentro de una computadora está constituido porcircuitos electrónicos que responden a diferentes señales eléctricas, siguiendo lospatrones de la lógica booleana; esto es, compuertas lógicas que devuelven unvalor dependiendo de las entradas que se le dan al sistema.La lógica computacional tiene el mismo principio de trabajo, entradassalidas,valores de verdad y principios matemáticos básicos o avanzados, lo cualnos indica que el razonamiento humano tiene mucha comparación con lasmaquinas que creamos ya que las computadoras son un reflejo de lo que somos anivel intelectual y aunque los niveles de procesamiento de las maquinas superanpor mucho a la velocidad con la que un ser humano realiza tareas nunca se podráncomparar con el hombre en creatividad y razonamiento debido al simple hecho quelas maquinas no trabajan si no incluyen en si mismas un programa que les indiqueque hacer y como hacerlo, programa que, por lógica, es creado por algunoshombres.

Transcript of Lógica computacional

Page 1: Lógica computacional

LOGICACOMPUTACIONAL

Page 2: Lógica computacional

Página -1-

Introducción............................................................................... 2

¿Qué es Lógica Computacional?.............................................. 3

Inteligencia Artificial................................................................... 4

Sistemas Expertos..................................................................... 5

Redes Neuronales..................................................................... 6

Análisis Léxico........................................................................... 7

Análisis Morfológico................................................................... 8

Análisis Semántico.................................................................... 9

Análisis Sintáctico..................................................................... 10

Conclusión................................................................................. 11

Contenido

LOGICA COMPUTACIONAL

Page 3: Lógica computacional

El nivel menos abstracto dentro de una computadora está constituido por circuitos electrónicos que responden a diferentes señales eléctricas, siguiendo los patrones de la lógica booleana; esto es, compuertas lógicas que devuelven un valor dependiendo de las entradas que se le dan al sistema.

La lógica computacional tiene el mismo principio de trabajo, entradas-salidas, valores de verdad y principios matemáticos básicos o avanzados, lo cual nos indica que el razonamiento humano tiene mucha comparación con las maquinas que creamos ya que las computadoras son un reflejo de lo que somos a nivel intelectual y aunque los niveles de procesamiento de las maquinas superan por mucho a la velocidad con la que un ser humano realiza tareas nunca se podrán comparar con el hombre en creatividad y razonamiento debido al simple hecho que las maquinas no trabajan si no incluyen en si mismas un programa que les indique que hacer y como hacerlo, programa que, por lógica, es creado por algunos hombres.

¿Por qué esta magnifica tecnología científica, que ahorra trabajo y nos hace la vida más fácil, nos aporta tan poca felicidad? La respuesta es está, simplemente:

porque aún no hemos aprendido a usarla con tino.

Albert Einstein.

INTRODUCCIÓN

Página -2-

LOGICA COMPUTACIONAL

Page 4: Lógica computacional

¿Qué es La lógica computacional?

La lógica computacional es la misma lógica matemática aplicada al contexto de las ciencias de la computación. Su uso es fundamental a varios niveles: en los circuitos computacionales, en la programación lógica y en el análisis y optimización (de recursos temporales y espaciales) de algoritmos.

Todo sistema computacional, por muy complejo que sea, no está compuesto por más que circuitos electrónicos que únicamente entienden un lenguaje binario. La lógica computacional se encarga de modelar y optimizar tales sistemas a este nivel.

Cibergrafía: http://es.wikipedia.org/wiki/L%C3%B3gica_computacional

Página -3-

LOGICA COMPUTACIONAL

Page 5: Lógica computacional

Inteligencia Artificial

En ciencias de la computación se denomina inteligencia artificial (IA) a las inteligencias no naturales en agentes racionales no vivos.1 2 3 John McCarthy, acuñó el término en 1956, la definió: "Es la ciencia e ingeniería de hacer máquinas inteligentes, especialmente programas de cómputo inteligentes."

Cibergrafía: http://es.wikipedia.org/wiki/Inteligencia_artificial

Página -4-

LOGICA COMPUTACIONAL

acciones o resultados que maximizan una medida de rendimiento determinada, basándose en la secuencia de entradas percibidas y en el conocimiento almacenado en tal arquitectura.Existen distintos tipos de conocimiento y medios de representación del conocimiento, el cual puede ser cargado en el agente por su diseñador o puede ser aprendido por el mismo agente utilizando técnicas de aprendizaje.También se distinguen varios tipos de procesos válidos para obtener resultados racionales, que determinan el tipo de agente inteligente. De más simples a más complejos, los cinco principales tipos de procesos son:

Ÿ Ejecución de una respuesta predeterminada por cada entrada (análogas a actos reflejos en seres vivos).

Ÿ Búsqueda del estado requerido en el conjunto de los estados producidos por las acciones posibles.

Ÿ Algoritmos genéticos (análogo al proceso de evolución de las cadenas de ADN).Ÿ Redes neuronales artificiales (análogo al funcionamiento físico del cerebro de animales y

humanos).Ÿ Razonamiento mediante una lógica formal (análogo al pensamiento abstracto humano).

Para explicar la definición anterior, entiéndase a un Agente inteligente que permite pensar, evaluar y actuar conforme a ciertos principios de optimización y consistencia, para satisfacer algún objetivo o finalidad.

De acuerdo al concepto previo, racionalidad es más general y por ello más adecuado que inteligencia para definir la naturaleza del objetivo de esta disciplina.

Por lo tanto, y de manera más específica la inteligencia artificial es la disciplina que se encarga de construir procesos que al ser ejecutados sobre una arquitectura física producen

Page 6: Lógica computacional

Sistemas Expertos

Es una aplicación informática capaz de solucionar un conjunto de problemas que exigen un gran conocimiento sobre un determinado tema. Un sistema experto es un conjunto de programas que, sobre una base de conocimientos, posee información de uno o más expertos en un área específica. Se puede entender como una rama de la inteligencia artificial, donde el poder de resolución de un problema en un programa de computadora viene del conocimiento de un dominio específico. Estos sistemas imitan las actividades de un humano para resolver problemas de distinta índole (no necesariamente tiene que ser de inteligencia artificial). También se dice que un SE se basa en el conocimiento declarativo (hechos sobre objetos, situaciones) y el conocimiento de control (información sobre el seguimiento de una acción).

Para que un sistema experto sea herramienta efectiva, los usuarios deben interactuar de una forma fácil, reuniendo dos capacidades para poder cumplirlo:

Ÿ Explicar sus razonamientos o base del conocimiento: los sistemas expertos se deben realizar siguiendo ciertas reglas o pasos comprensibles de manera que se pueda generar la explicación para cada una de estas reglas, que a la vez se basan en hechos.

Ÿ Adquisición de nuevos conocimientos o integrador del sistema: son mecanismos de razonamiento que sirven para modificar los conocimientos anteriores. Sobre la base de lo anterior se puede decir que los sistemas expertos son el producto de investigaciones en el campo de la inteligencia artificial ya que ésta no intenta sustituir a los expertos humanos, sino que se desea ayudarlos a realizar con más rapidez y eficacia todas las tareas que realiza.

Debido a esto en la actualidad se están mezclando diferentes técnicas o aplicaciones aprovechando las ventajas que cada una de estas ofrece para poder tener empresas más seguras. Un ejemplo de estas técnicas sería los agentes que tienen la capacidad de negociar y navegar a través de recursos en línea; y es por eso que en la actualidad juega un papel preponderante en los sistemas expertos.

Cibergrafía: http://es.wikipedia.org/wiki/Sistema_experto

Página -5-

LOGICA COMPUTACIONAL

Page 7: Lógica computacional

Redes Neuronales

Las redes de neuronas artificiales (denominadas habitualmente como RNA o en inglés como: "ANN"1 ) son un paradigma de aprendizaje y procesamiento automático inspirado en la forma en que funciona el sistema nervioso de los animales. Se trata de un sistema de interconexión de neuronas en una red que colabora para producir un estímulo de salida. En inteligencia artificial es frecuente referirse a ellas como redes de neuronas o redes neuronales.

Cibergrafía: http://es.wikipedia.org/wiki/Red_neuronal_artificial

Página -6-

LOGICA COMPUTACIONAL

Red neuronal artificial perceptrón simple con n neuronas de entrada, m neuronas en su capa oculta y una neurona de escape.

Una red neuronal se compone de unidades llamadas neuronas. Cada neurona recibe una serie de entradas a través de interconexiones y emite una salida. Esta salida viene dada por tres funciones:

Una función de propagación (también conocida como función de excitación), que por lo general consiste en el sumatorio de cada entrada multiplicada por el peso de su interconexión (valor neto). Si el peso es positivo, la conexión se denomina excitatoria; si es negativo, se denomina inhibitoria.

Una función de activación, que modifica a la anterior. Puede no existir, siendo en este caso la salida la misma función de propagación.

Una función de transferencia, que se aplica al valor devuelto por la función de activación. Se utiliza para acotar la salida de la neurona y generalmente viene dada por la interpretación que queramos darle a dichas salidas. Algunas de las más utilizadas son la función sigmoidea (para obtener valores en el intervalo [0,1]) y la tangente hiperbólica (para obtener valores en el intervalo [-1,1]).

Page 8: Lógica computacional

Análisis Léxico

La especificación de un lenguaje de programación a menudo incluye un conjunto de reglas que definen el léxico. Estas reglas consisten comunmente en expresiones regulares que indican el conjunto de posibles secuencias de caracteres que definen un token o lexema.

En algunos lenguajes de programación es necesario establecer patrones para caracteres especiales (como el espacio en blanco) que la gramática pueda reconocer sin que constituya un token en sí.

Un analizador léxico o analizador lexicográfico (en inglés scanner) es la primera fase de un compilador consistente en un programa que recibe como entrada el código fuente de otro programa (secuencia de caracteres) y produce una salida compuesta de tokens (componentes léxicos) o símbolos. Estos tokens sirven para una posterior etapa del proceso de traducción, siendo la entrada para el analizador sintáctico (en inglés parser), a este proceso se le conoce en el medio como Análisis Léxico.

Cibergrafía:ilg

http://es.wikipedia.org/wiki/Analizador_l%C3%A9xico

Página -7-

LOGICA COMPUTACIONAL

Analizador Léxico SQLAnalizador Léxico Visual Studio

Page 9: Lógica computacional

Análisis Morfológico

Consiste en determinar la forma, clase o categoría gramatical de cada palabra de una oración. No confundir ni mezclar con el análisis sintáctico en el que se determinan las funciones de las palabras o grupos de palabras dentro de la oración, este sería el significado literario de Análisis Morfológico. en programación el equivalente sería encontrar toda la información posible ligada a una palabra (morfemas) para lo cual en informática contamos con un gran número de aplicaciones que nos ayudan a realizar esta tarea de forma más practica y de manera casi inmediata. Estos programas permiten obtener la información morfológica ligada con una palabra: el usuario introduce una palabra y el programa la descompone en todos los posibles formantes (morfemas) presentes en la base de datos léxicos. Posteriormente, determina qué análisis pueden ser correctos, de acuerdo con las reglas de formación de palabras y utilizando la información asociada a los distintos formantes.

Algunos programas contemplan únicamente la información flexiva; otros incorporan todos o algunos fenómenos derivativos. En este segundo caso, algunos programas de análisis morfológico pueden intentar dar un análisis tentativo de palabras desconocidas por medio de diversos procedimientos (por ejemplo, tomando en cuenta los prefijos y/o sufijos involucrados, considerando el contexto de aparición o posibles antecedentes lingüísticos, etc.).

La contraparte informática de estos programas de análisis morfológico son los llamados lematizadores, que utilizan la misma base de datos léxicos. Los lematizadores permiten reconocer cuál es la palabra (i.e., el lexema) que subyace a determinada forma. Para ello realizan el procedimiento inverso al que hemos detallado antes: contrastan la forma introducida por el usuario con la base de datos hasta reconocer la/s entrada/s con la/s que podría ser compatible.

Cibergrafía: http://aportes.educ.ar/lengua/nucleo-teorico/influencia-de-las-tic/tecnologias-de-la-informacion-y-la-comunicacion-tic-y-lingueistica/analizadores_basicos.php

Página -8-

LOGICA COMPUTACIONAL

Page 10: Lógica computacional

Análisis Semántico

La fase de análisis semántico de un procesador de lenguaje es aquélla que computa la información adicional necesaria para el procesamiento de un lenguaje, una vez que la estructura sintáctica de un programa haya sido obtenida. Es por tanto la fase posterior a la de análisis sintáctico y la última dentro del proceso de síntesis de un lenguaje de programación.

Sintaxis de un lenguaje de programación es el conjunto de reglas formales que especifican la estructura de los programas pertenecientes a dicho lenguaje. Semántica de un lenguaje de programación es el conjunto de reglas que especifican el significado de cualquiersentencia sintácticamente válida. Finalmente, el análisis semántico1 de un procesador de lenguaje es la fase encargada de detectar la validez semántica de las sentencias aceptadas por el analizador sintáctico.

Ejemplo 1:Dado el siguiente ejemplo de código en C:

superficie = base * altura / 2;

La sintaxis del lenguaje C indica que las expresiones se pueden formar con un conjunto de operadores y un conjunto de elementos básicos. Entre los operadores, con sintaxis binaria infija, se encuentran la asignación, el producto y la división. Entre los elementos básicos de una expresión existen los identificadores y las constantes enteras sin signo (entre otros). Su semántica identifica que en el registro asociado al identificador superficie se le va a asociar el valor resultante del producto de los valores asociados a base y altura, divididos por dos (la superficie de un triángulo).

LOGICA COMPUTACIONAL

Página -9-

BibliografíaAlfred V. Aho, Ravi Sethi, Jeffrey D. Ullman.

Compiladores: Principios, Técnicas y Herramientas. Addison-Wesley Iberoamericana. 1990.

Page 11: Lógica computacional

Análisis Sintáctico

Un analizador sintáctico (en inglés parser) es una de las partes de un compilador que transforma su entrada en un árbol de derivación.

El análisis sintáctico convierte el texto de entrada en otras estructuras (comúnmente árboles), que son más útiles para el posterior análisis y capturan la jerarquía implícita de la entrada. Un analizador léxico crea tokens de una secuencia de caracteres de entrada y son estos tokens los que son procesados por el analizador sintáctico para construir la estructura de datos, por ejemplo un árbol de análisis o árboles de sintaxis abstracta.

El análisis sintáctico también es un estado inicial del análisis de frases de lenguaje natural. Es usado para generar diagramas de lenguajes que usan flexión gramatical, como los idiomas romances o el latín. Los lenguajes habitualmente reconocidos por los analizadores sintácticos son los lenguajes libres de contexto. Cabe notar que existe una justificación formal que establece que los lenguajes libres de contexto son aquellos reconocibles por un autómata de pila, de modo que todo analizador sintáctico que reconozca un lenguaje libre de contexto es equivalente en capacidad computacional a un autómata de pila.

Los analizadores sintácticos fueron extensivamente estudiados durante los años 70 del siglo XX, detectándose numerosos patrones de funcionamiento en ellos, cosa que permitió la creación de programas generadores de analizadores sintáticos a partir de una especificación de la sintaxis del lenguaje en forma Backus-Naur por ejemplo, tales como yacc, GNU bison y javaCC.

Página -10-

LOGICA COMPUTACIONAL

Cibergrafía:http://es.wikipedia.org/wiki/Analizador_sint%C3%A1ctico

Page 12: Lógica computacional

Conclusión:

La Lógica Computacional pretende que los estudiantes adquieran la lógica y las bases para programar en cualquier lenguaje de programación, pero, es el individuo quien a través de su propia lógica realiza dichos programas, por lo tanto, la lógica computacional termina donde la Lógica del individuo comienza, y es esto ultimo lo que ha permitido a los sistemas informáticos computarizados avanzan en pocas décadas lo que a otras tecnologías(incluyendo ciencias) les ha tomado siglos.

ilg

“En tanto las leyes de las matemáticas se refieren a la realidad, no son ciertas; en tanto son ciertas, no se refieren a la realidad”

Albert Einstein.

Página -11-

LOGICA COMPUTACIONAL