Diseño de procesos que, al ejecutarse sobre una arquitectura física, producen resultados que maximizan una cierta medida de rendimiento




descargar 468.8 Kb.
títuloDiseño de procesos que, al ejecutarse sobre una arquitectura física, producen resultados que maximizan una cierta medida de rendimiento
página6/10
fecha de publicación28.10.2015
tamaño468.8 Kb.
tipoDocumentos
b.se-todo.com > Derecho > Documentos
1   2   3   4   5   6   7   8   9   10

El Alfabeto del Lenguaje de la Lógica de Primer Orden contiene dos tipos de símbolos:

  1. Símbolos lógicos, entre los que se encuentran los símbolos de constantes proposicionales true y false; los símbolos de operadores proposicionales para la negación, la conjunción, la disyunción y las implicaciones (=>, <=); los símbolos de operadores de cuantificación como el cuantificador universal; el cuantificador existencial; y los símbolos auxiliares de escritura como corchetes [,], paréntesis (,) y coma.

  2. Símbolos no lógicos, agrupados en el conjunto de símbolos constantes; el conjunto de símbolos de variables individuales; el conjunto de símbolos de funciones n-arias; y el conjunto de símbolos de relaciones n-arias.

A partir de estos símbolos se construyen las expresiones válidas en el Lenguaje de Primer Orden: los términos y las fórmulas.

Un término es cualquiera de las tres expresiones siguientes: una constante, por ejemplo, el número "100", la palabra "alfredo" y la letra "c"; o una variable, por ejemplo, "X" o bien una expresión de la forma "f(t1,...,tn)" donde "f" es un símbolo de función n-aria y t1,...,tn son términos. Ejemplos de funciones son: f(100,X), padre(Y) y sucesor(X).

Las fórmulas atómicas o elementales son expresiones de la forma R(t1,...,tn) donde R es un símbolo de relación n-aria y t1,...,tn son términos.

Ejemplos de fórmulas son:

positivo(3),not(igual(4,doble(2))), recetar(X,aspirina)<=tiene(X,fiebre), tiene(X,cefalea).

Esta última establece una regla que dice que, si X tiene fiebre y cefalea (dolor de cabeza), X debe tomar una aspirina.

El Lenguaje de Primer Orden posee un amplio poder de expresión, los términos permiten nombrar los objetos del universo, mientras que las fórmulas permiten afirmar o negar propiedades de éstos o bien establecen las relaciones entre los objetos del universo.

Puede decirse que la Programación Lógica utiliza la Lógica de Primer Orden como lenguaje de programación. Prolog es un ejemplo de lenguaje basado en la Lógica de Primer Orden y aunque toma su nombre de este término ("PROgramming in LOGic"), no abarca toda la riqueza de la Lógica de Primer Orden para resolver problemas, pues está restringido al uso de cierta clase de fórmulas denominadas cláusulas definidas o cláusulas de Horn.

Un programa lógico está formado por un conjunto finito de cláusulas de programa que son hechos o reglas. Por ejemplo:

padre(luis,miguel). hecho
padre(miguel,jose). hecho
padre(jose,juan). hecho
abuelo(X,Y):-padre(X,Z), padre(Z,Y). regla

Este programa está formado por cuatro cláusulas de programa, las tres primeras son del tipo hecho y definen la relación padre/2 y la cuarta una regla que define la relación abuelo/2. Nótese el uso de las variables X,Y y Z en esta cláusula, las cuales permiten definir de manera general en Prolog la relación "ser abuelo de", pues la lectura declarativa de dicha cláusula es la siguiente: "Para cualesquiera X,Y,Z se cumple que: X abuelo de Y, si X padre de Z y Z padre de Y".

En Prolog es posible hacer preguntas sobre objetos y relaciones del dominio y estas preguntas se formulan como objetivos o metas, que son evaluadas por el intérprete de Prolog utilizando su mecanismo de inferencia interno, el cual determina si la meta a demostrar es una consecuencia lógica del programa, aplicando reglas de deducción para obtener la respuesta.

Por ejemplo, del programa anterior, utilizando la cláusula de tipo meta ?abuelo(X,juan), para preguntar ¿quién es el abuelo de Juan? o bien ¿quiénes son los abuelos de Juan?, es posible deducir que Luis es abuelo de Juan, aunque implícitamente no existe en el programa ningún hecho que así lo afirme.

En este caso la ejecución del programa, para dicha meta, arrojaría como resultado que X=luis.

El método de deducción utilizado por Prolog, para dar respuesta a los objetivos planteados, se basa en el uso de una única regla de inferencia: el Principio de Resolución.

Los primeros trabajos de prueba automática de teoremas utilizaban la resolución, aplicada a cláusulas cualesquiera, pero el problema de las deducciones con cláusulas generales es el gran número de combinaciones posibles para llevar a cabo las resoluciones.

Por ello Prolog restringe el conjunto de cláusulas, lo que le permite llevar a cabo una prueba dirigida y, en la mayoría de los casos, con un universo de posibilidades explorable en tiempo de ejecución.

Realmente, en Prolog se hace uso de una estrategia de refinamiento de dicho principio, denominada Resolución-SLD, la cual se aplica a cláusulas definidas.

I.3. Algoritmos.

Cuando una tarea se realiza por medio de un algoritmo perfectamente definido de almacenamiento, clasificación o cálculo, lo puede hacer un computador. Este concepto de algoritmo, secuencial, fijo y de determinadas operaciones, es incapaz de manejar problemas donde el camino del razonamiento es variable y donde deben afrontarse situaciones diversas sin haber sido especificadas.

La Inteligencia Artificial hace uso de un tipo de lenguaje diferente como es el caso de LISP y PROLOG.

En 1932, Cannon visualizó la evolución natural como un proceso de aprendizaje. Alan Turing reconoció, en 1950, que debe haber una conexión obvia entre el aprendizaje de máquina y la evolución, y señaló que se podrían desarrollar programas para jugar ajedrez usando esta técnica. Campbell conjeturó en 1960 que en todos los procesos que llevan a la expansión del conocimiento, se involucra un proceso ciego de variación y supervivencia selectiva.

Los primeros intentos de aplicar de manera formal la teoría de la evolución, a problemas prácticos de ingeniería, apareció en las áreas de control de procesos estadísticos, aprendizaje de máquina y optimización de funciones. Tal vez el primer intento serio de este tipo se dio en el trabajo que realizaron Box y sus colegas en 1957, en el desarrollo de una técnica que denominaron operación evolutiva, la cual se aplicó a una planta de manufactura, y que se implanto sobre la base de los votos de un comité de jefes técnicos. Bajo este esquema, la calidad del producto avanzaba a través de mutaciones aleatorias y la selección era determinada por el comité.

Por su parte, Friedberg intentó, en 1958, hacer que un programa en lenguaje máquina se mejorara a sí mismo, seleccionando instrucciones que se asociaran más frecuentemente con un resultado exitoso. Aunque Friedberg nunca mencionó explícitamente estar simulando la evolución natural, esa es la interpretación más comúnmente aceptada de su trabajo, y a pesar de que tuvo cierto éxito evolucionando manipuladores de bits y determinando las interconexiones de una caja negra de 1400 terminales, la comunidad de Inteligencia Artificial de la época prestó poca atención a su trabajo. Por ejemplo, Minsky lo criticó duramente, argumentando que una búsqueda puramente aleatoria era mucho mejor que el algoritmo de Friedberg.

El trabajo de Bremermann, en 1958, se enfocó más a la optimización, introduciendo el importante manejo de un valor de aptitud, y definiendo a un individuo como una cadena de símbolos binarios (unos y ceros). Bremermann advirtió, acertadamente, que la mutación jugaba un papel importante en la evolución, pues impedía el estancamiento en mínimos locales. Aunque muchas de sus ideas se usan hoy en día, Bremermann cometió el error de tratar de optimizar funciones lineales y convexas, obteniendo resultados decepcionantes, pues sus algoritmos evolutivos tenían que ser complementados con otras heurísticas para converger en una solución. Hoy sabemos que los algoritmos evolutivos difícilmente pueden competir con las técnicas tradicionales de optimización en esos dominios.

Barricelli ofreció, en 1954, una de las primeras simulaciones que usaba principios evolutivos, utilizando los mismos procedimientos generales que se usan hoy en día en la disciplina conocida como vida artificial. Sin embargo, en este trabajo, así como el que Reed realizó posteriormente en 1967, se concluyó que la cruza no parecía mejorar la velocidad de la adaptación selectiva, y el operador primordial era la mutación.

Fue Fogel el que introdujo la primera técnica evolutiva que realmente funcionó más o menos dentro de los lineamientos actuales de la computación evolutiva. Su programación evolutiva consistía en hacer evolucionar autómatas de estados finitos por medio de mutaciones. Fogel introdujo los importantes conceptos de población y selección, y aunque las revisiones iniciales de su trabajo fueron favorables, algunos investigadores, como Solomonoff, enfatizaron que el método de Fogel no debía verse en su estado actual (en 1966) como algo particularmente útil para resolver problemas, a excepción de los más simples posibles. Solomonoff vio a la programación evolutiva como una especie de búsqueda escalando la colina modelada mediante autómatas, y otros investigadores como Holland, Kieras, Rada y Lenat compartieron esa opinión.

Otra técnica evolutiva dirigida particularmente a la optimización de funciones continuas de alta complejidad se desarrolló en Alemania, en 1965, por Rechenberg y Schwefel. Esta técnica, llamada estrategia evolutiva, se utilizó inicialmente para resolver problemas de ingeniería que desafiaban a los métodos de optimización tradicionales, como el gradiente conjugado, y se basa en la modificación sistemática de un vector de números reales (representando las variables de decisión del problema) mediante operadores probabilísticos, usando ciertos criterios para decidir en qué dirección dirigir la búsqueda. La estrategia evolutiva utiliza como operador principal a la mutación, y en su versión más reciente usa la cruza como operador secundario.

Aunque el australiano Fraser propuso, desde fines de los 50, un procedimiento muy similar al que John Holland llamó planes evolutivos a fines de los 60, es al segundo al que se le suele atribuir la creación de la técnica que se conoce como algoritmo genético, a raíz de que Holland publicara el libro "Adaptation in Natural and Artificial Systems" en 1975.

La principal diferencia del algoritmo genético con las técnicas antes mencionadas, es que utiliza la cruza como operador principal y a la mutación como operador secundario (e incluso opcional). El algoritmo genético, al igual que las redes neuronales, funciona como una caja negra que recibe ciertas entradas y produce (tras una cantidad de tiempo indeterminada) las salidas deseadas. Sin embargo, a diferencia de éstas, los algoritmos genéticos no necesitan entrenarse con ejemplos de ningún tipo, sino que son capaces de generar sus propios ejemplos y contraejemplos que guíen la evolución a partir de poblaciones iniciales totalmente aleatorias.

Los mecanismos de selección del más apto y de reproducción sexual del algoritmo genético, son los encargados de preservar las características más adecuadas de cada individuo a fin de hacer converger a la población en soluciones óptimas.

Los algoritmos genéticos se distinguen también por no quedar atrapados fácilmente en mínimos locales, como la mayor parte de las técnicas de búsqueda clásicas, además de usar operadores probabilísticos más robustos que los operadores determinísticos, que las otras técnicas suelen usar.

No obstante, siendo una heurística, tampoco pueden garantizar encontrar siempre la solución óptima, si bien la experiencia acumulada hasta la fecha parece demostrar que, cuando se utilizan apropiadamente, pueden proporcionar soluciones muy aceptables y, en la mayoría de los casos, superiores a las encontradas con otras técnicas de búsqueda y optimización.

Aunque aún atacados por algunos sectores de la comunidad de Inteligencia Artificial, los algoritmos genéticos, al igual que las redes neuronales, se han ido ganando poco a poco, y sobre la base de la efectividad de sus resultados en aplicaciones prácticas, el reconocimiento de los investigadores como una técnica efectiva en problemas de gran complejidad, como lo demuestra un número creciente de conferencias y publicaciones especializadas alrededor del mundo, en los últimos años.

I.4. Base de Conocimiento. Sistemas Basados en Conocimiento.

Los métodos generales desarrollados para la resolución de problemas y técnicas de búsqueda al inicio de la era de la Inteligencia Artificial demostraron no ser suficientes para resolver los problemas orientados a las aplicaciones, ni fueron capaces de satisfacer los difíciles requerimientos de la investigación.

A este conjunto de métodos, procedimientos y técnicas, se lo conoce como Inteligencia Artificial Débil. La principal conclusión que se derivó de este trabajo inicial fue que los problemas difíciles sólo podrían ser resueltos con la ayuda del conocimiento específico acerca del dominio del problema.

La aplicación de estas ideas dio lugar al desarrollo de los denominados Sistemas Basados en Conocimiento (Knowledge Based Systems) y al aparecimiento de la Ingeniería Cognoscitiva, como una rama de la Inteligencia Artificial, que estudia los sistemas basados en el conocimiento. La definición de un sistema basado en conocimiento puede ser la siguiente:

Es un sistema computarizado capaz de resolver problemas en el dominio en el cual posee conocimiento específico.

La solución es esencialmente la misma que hubiera dado un ser humano confrontado con idéntico problema, aunque no necesariamente el proceso seguido por ambos puede ser igual.

El simple concepto dado, puede causar confusión ya que muchos sistemas basados en programas convencionales podrían ser incorrectamente categorizados como sistemas basados en conocimiento. Esta inconsistencia puede ser aclarada, sobre la base de tres conceptos fundamentales que distinguen a los sistemas basados en conocimiento de los programas algorítmicos convencionales y de los programas generales basados en búsqueda:

Inteligencia Artificial débil.

  • Primero, la separación del conocimiento y el modo en que es usado.

  • Segundo, la naturaleza del conocimiento empleado (heurística antes que algorítmica).

  • Tercero, El uso de conocimiento específico de un determinado dominio.

Las características principales son:

  • amplia difusión del conocimiento

  • fácil modificación

  • respuestas coherentes

  • disponibilidad casi completa

  • conservación del conocimiento

  • capacidad de resolver problemas disponiendo de información incompleta

  • capacidad de explicar los resultados y la forma de obtenerlos

Los principales problemas asociados a este método son:

  • las soluciones no siempre son las mejores o correctas

  • conocimiento limitado frente al dominio de un experto

  • carecen del sentido común o criterio que puede tener un experto

  • es difícil extraer todo el conocimiento que maneja un experto.

I.4.1 Experiencia, Habilidades y Conocimiento.

Los tipos de experiencia que son de interés en los sistemas basados en conocimiento, pueden ser clasificados en tres categorías: asociativa, motora y teórica.

Los sistemas basados en conocimiento son excelentes para representar conocimiento asociativo. Este tipo de experiencia refleja la habilidad heurística o el conocimiento que es adquirido mayoritariamente, a través de la observación.

Puede ser que no se comprenda exactamente lo que ocurre al interior de un sistema (caja negra), pero se pueden asociar entradas o estímulos con salidas o respuestas, para resolver problemas que han sido previamente conocidos.

La experiencia motora es más física que cognitiva. La habilidad se adquiere fundamentalmente a través del ejercicio y la práctica física constante. Los sistemas basados en conocimiento no pueden emular fácilmente este tipo de experiencia, principalmente por la limitada capacidad de la tecnología robótica.

La experiencia teórica y el conocimiento profundo permite que los humanos puedan resolver problemas que no se han visto antes, es decir, no existe una posibilidad asociativa. El conocimiento teórico y profundo se adquiere a través de estudio y entrenamiento formal, así como por medio de la resolución directa de problemas.

Debido a su naturaleza teórica, este conocimiento se puede olvidar fácilmente, a no ser que se use en forma continua. Al momento, los sistemas convencionales basados en conocimiento tienen muchas dificultades para duplicar este tipo de experiencia. Sin embargo, los Sistemas de Razonamiento Basado en Modelos representan un notable intento de encapsular este conocimiento profundo y razonar con él.
1   2   3   4   5   6   7   8   9   10

similar:

Diseño de procesos que, al ejecutarse sobre una arquitectura física, producen resultados que maximizan una cierta medida de rendimiento iconEs una disciplina que emplea organismos vivos (y de las sustancias...

Diseño de procesos que, al ejecutarse sobre una arquitectura física, producen resultados que maximizan una cierta medida de rendimiento iconP1: En el marco de resultados para el bienio 2014/15 se exponen 36...

Diseño de procesos que, al ejecutarse sobre una arquitectura física, producen resultados que maximizan una cierta medida de rendimiento iconIntroducción: Que es la Física? La palabra Física viene del término...

Diseño de procesos que, al ejecutarse sobre una arquitectura física, producen resultados que maximizan una cierta medida de rendimiento iconActúan espontáneamente y con una cierta intencionalidad

Diseño de procesos que, al ejecutarse sobre una arquitectura física, producen resultados que maximizan una cierta medida de rendimiento iconEscribir sobre Derecho comparado es un reto pues, de suyo, la materia...

Diseño de procesos que, al ejecutarse sobre una arquitectura física, producen resultados que maximizan una cierta medida de rendimiento iconResponder al concepto de un ser humano dinamico e integral y a una...

Diseño de procesos que, al ejecutarse sobre una arquitectura física, producen resultados que maximizan una cierta medida de rendimiento iconElaborar una presentación powerpoint sobre una enfermedad, con los siguientes puntos

Diseño de procesos que, al ejecutarse sobre una arquitectura física, producen resultados que maximizan una cierta medida de rendimiento iconPlantilla de diseño de una Webquest

Diseño de procesos que, al ejecutarse sobre una arquitectura física, producen resultados que maximizan una cierta medida de rendimiento iconPlantilla de diseño de una Webquest

Diseño de procesos que, al ejecutarse sobre una arquitectura física, producen resultados que maximizan una cierta medida de rendimiento iconNuestro intento de dividir en épocas la historia de la arquitectura...




Todos los derechos reservados. Copyright © 2019
contactos
b.se-todo.com