miércoles, 4 de junio de 2014

INSTALACION PROLOG.


INTRODUCCIÓN

Prolog, proveniente del francés Programmation en Logique, es un lenguaje de programación de paradigma declarativo, muy popular entre los usuarios cuyos trabajos se enfocan en el campo de la inteligencia artificial.
 Fue introducido en la Universidad de Aix Marseille al inicio de la década de los setenta por los profesores Alain Colmerauer y Phi-lippe Roussel.

OBJETIVO

v  Instalación del Prolog para el desarrollo de futuras aplicaciones en el lenguaje.

REQUERIMIENTOS

  • *     Máquina con Linux o Windows XP y Mac OSX en adelante
  • *      Acceso a internet


DESARROLLO

·         El primer paso es descargar el instalador dependiendo el sistema operativo del equipo desde la página oficial.



·         .Descargado el archivo, se ejecuta y comienza el proceso de instalación en el que será necesario aceptar los términos de uso y elegir el tipo de complementos (típico, completo al gusto)



·      En las siguientes ventanas se especifica la ruta donde se almacenarán los archivos, la extensión relacionada a la aplicación, y la instalación exitosa hasta completar la barra descarga



·   Al presionar el botón para finalizar, Prolog, en una nueva ventana, se ofrecerá a mostrar la documentación. En caso de aceptar, se abrirá una página en el navegador donde es posible familiarizarse con su uso.




TAMBIÉN UN VÍDEO DE COMO INSTALAR PROLOG PASO A PASO:





CONCLUSIÓN

Lo necesario para comenzar a desarrollar aplicaciones en Prolog ha quedado listo. En Windows, la instalación es un proceso sencillo que, en la mayoría de los casos, sólo se traduce en dar clics de siguiente para completarlo. No se requiere de algún editor en específico. Desarrollar en Prolog requiere únicamente del bloc de notas para comenzar a escribir código. Lo importante es guardar el archivo con la extensión.pl y automáticamente se lanzará la consola del lenguaje para comprobar la validez y permitir al usuario hacer las consultas que requiera.


 BIBLIOGRAFIA

  • v  Juganaru, M. (2010).
  • v  Lenguaje PROLOG.
  • v  Recuperado el 20 de Febrero de 2014, de Universidad Autónoma Metropolitana Azcapotzalco http://ce.azc.uam.mx/profesores/mjm/pub/prolog.pdf.
  • v  http://www.swi-prolog.org/download/stable
  • v  http://es.scribd.com/doc/213405095/PLF-Practica-Instalacion-de-Prolog



martes, 18 de marzo de 2014

HEURÍSTICAS Y EL PROBLEMA DEL AGENTE VIAJERO.

                 HEURÍSTICAS Y EL PROBLEMA DEL AGENTE VIAJERO.

HEURÍSTICAS.

Las heurísticas son métodos inteligentes que buscan una buena solución en un tiempo de cómputo razonable, pero sin garantizar que ésta sea la óptima (Johnson et al., 2002).

Existen diferentes tipos de heurísticas (Glover, Gutin, Yeo y Zverovich, 2001):

· Heurísticas constructivas. Procedimientos que se encargan de obtener una solución a partir de un criterio inicial, esto es, construyen una solución factible.

· Heurísticas de búsqueda local. Procedimientos para mejorar soluciones ya encontradas. Tratan de optimizar localmente alrededor de una solución, ubicando mínimos locales.

· Heurísticas combinadas: Procedimientos que constan de una heurística constructiva y una heurística de búsqueda local.

Algunas heurísticas para el Problema del Agente Viajero Asimétrico son las siguientes (Cirasella, Lyle, McGeoch y Zhang, 2000):

·        *El vecino más cercano (heurística constructiva).
Esta heurística se basa en la idea de moverse de una ciudad a la siguiente.

·        * Inserción aleatorizada (heurística constructiva).
La idea central de esta heurística está basada en el algoritmo de inserción aleatorizada, y consiste en crear una ruta inicial de la forma más económica posible.

·         *Búsqueda local (2-opt).
El movimiento 2-Opt consiste en eliminar dos aristas rompiendo una ruta inicial en dos caminos.

·        * Experimentación computacional
Los algoritmos de las heurísticas descritas se implementaron computacionalmente, y se resolvieron tanto instancias pequeñas como de la librería electrónica TSPLIB4.

La palabra heurística procede del término griego ερίσκειν, que significa «hallar, inventar» (etimología que comparte con eureka ).

La palabra «heurística» aparece en más de una categoría gramatical.

Cuando se usa como sustantivo, identifica el arte o la ciencia del descubrimiento, una disciplina susceptible de ser investigada formalmente.

Cuando aparece como adjetivo, se refiere a cosas más concretas, como estrategias heurísticas, reglas heurísticas o silogismos y conclusiones heurísticas.

Claro está que estos dos usos están íntimamente relacionados ya que la heurística usualmente propone estrategias heurísticas que guían el descubrimiento.

El término fue utilizado por Albert Einstein en la publicación sobre efecto fotoeléctrico (1905), con el cual obtuvo el premio Nobel en Física en el año 1921 y cuyo título traducido al idioma español es:

Heurística de la generación y conversión de la luz”

Actualmente se han hecho adaptaciones al término en diferentes áreas, así definen la Heurística como un arte, técnica o procedimiento práctico o informal, para resolver problemas.
Según el matemático George Pólya la base de la heurística está en la experiencia de resolver problemas y en ver cómo otros lo hacen. Consecuentemente se dice que hay búsquedas ciegas, búsquedas heurísticas (basadas en la experiencia) y búsquedas racionales.
Una heurística es un algoritmo que abandona uno o ambos objetivos; por ejemplo, normalmente encuentran buenas soluciones, aunque no hay pruebas de que la solución no pueda ser arbitrariamente errónea en algunos casos; o se ejecuta razonablemente rápido, aunque no existe tampoco prueba de que siempre será así. 

En computación, dos objetivos fundamentales son encontrar algoritmos con buenos tiempos de ejecución y buenas soluciones, usualmente las óptimas.

*Heurísticas en la inteligencia artificial.

Muchos algoritmos en la inteligencia artificial son heurísticos por naturaleza, o usan reglas heurísticas.

Un ejemplo reciente es SpamAssassin que usa una amplia variedad de reglas heurísticas para determinar cuando un correo electrónico es spam.

Cualquiera de las reglas usadas de forma independiente pueden llevar a errores de clasificación, pero cuando se unen múltiples reglas heurísticas, la solución es más robusta y creíble.

Esto se llama alta credibilidad en el reconocimiento de patrones (extraído de las estadísticas en las que se basa). 

Cuando se usa la palabra heurística en el procesamiento del lenguaje basado en reglas, el reconocimiento de patrones o el procesamiento de imágenes, es usada para referirse a las reglas.

Heurísticas en antivirus.

En los productos antivirus se conoce como heurística a las técnicas que emplean para reconocer códigos maliciosos (virus, gusanos, troyanos, etc.)


EL PROBLEMA DEL AGENTE VIAJERO.

El Problema del Agente Viajero (Traveling Salesman Problem, TSP, por sus siglas en inglés) es quizá el más estudiado de los problemas de optimización combinatoria.

Su popularidad se debe a que es fácil de plantear, pero difícil de resolver.

Se puede describir de la siguiente forma:

Dadas n ciudades y el costo Cij que se tiene al viajar de una ciudad a otra, se debe encontrar la ruta de costo mínimo para visitarlas todas pasando sólo una vez por cada una de ellas, y regresando a la de partida. A cada ruta se le llama tour o ciclo hamiltoniano.
Entre sus amplias aplicaciones (Applegate, Bixby, Chvatal y Cook, 2007), se encuentran:

· Reparto de productos. Donde se puede mejorar una ruta
de entrega para seguir la más corta.
· Transporte. Mejorando la distribución del camino seguido usando el de menor longitud.
· Robótica. Permite resolver problemas de fabricación para minimizar el número de desplazamientos al realizar una serie de perforaciones en una plancha o en un circuito impreso.

· Turismo y agencias de viajes. Aun cuando los agentes de viajes no tienen un conocimiento explícito del Problema del Agente Viajero, las compañías dedicadas a este giro utilizan un software que hace todo el trabajo.

· Horarios de transportes laborales y/o escolares. Estandarizar los horarios de los transportes es claramente una de sus aplicaciones, tanto que existen empresas que se especializan en ayudar a las escuelas a programarlos para optimizarlos en base a una solución del TSP.

· Inspecciones a sitios remotos. .
· Secuencias. Donde se refiere al orden en el cual n trabajos tienen que ser procesados de tal forma que se minimice el costo total de producción.

En el Problema del Agente Viajero, la solución es una permutación de las N ciudades dadas, y se divide en dos tipos:


· TSP simétrico (STSP): En este caso, la matriz de costos Cij es simétrica, es decir, el costo que genera viajar de la iudad i a la ciudad j es el mismo que el que se tiene al viajar de la ciudad j a la ciudad i.

· TSP asimétrico (ATSP): En este caso, la matriz de costos Cij no es simétrica, es decir, el costo que se genera de viajar de la ciudad i a la ciudad j, en general, no es el mismo que el que se tiene de viajar de la ciudad j a la ciudad i


El Problema del Agente Viajero en su forma asimétrica tiene (n-1)! rutas posibles, esto es, (n-1)! posible soluciones. La forma simétrica tiene tours, porque al cambiar la dirección de la ruta ésta no cambia y sigue siendo la misma.

En general, la parte simétrica ha sido más explorada en cuanto a investigación y desarrollo de algoritmos para resolver el TSP.

Modelo matemático

Si se considera una matriz de distancias Cij, un grafo G=(V,A) completo y las variables de decisión Xij como variables binarias,

donde 



se tiene que el modelo matemático del TSP es el siguiente.





















BIBLIOGRAFIA:

http://www.postgradoeinvestigacion.uadec.mx/CienciaCierta/CC30/3.html
Applegate, D., Bixby,R., Chvatal V., Cook,W. “On the solution of the Traveling Salesman Problem”. DocumentaMathematica-Extra Volume ICM III. 1998. 645-656.





SISTEMAS DE PRODUCCION

SISTEMAS DE PRODUCCIÓN

Una de las definiciones de la teoría general de sistemas dice que los sistemas son
Conjuntos de componentes que interaccionan unos con otros, de tal forma que cada conjunto se comporta como una unidad completa.

Un sistema de producción es aquel sistema que proporciona una estructura que agiliza la descripción, ejecución y el planteamiento de un proceso industrial.

También los sistemas se identifican como conjuntos de elementos o entidades que guardan estrechas relaciones entre sí y que mantienen al sistema directo o indirectamente unido de modo más o menos estable y cuyo comportamiento global persigue, normalmente, algún tipo de objetivo, por ejemplo, optimizar la producción.

·       *Un sistema puede ser abierto.

Los sistemas cerrados (o mecánicos) funcionan de acuerdo con predeterminadas relaciones de causa y efecto y mantienen un intercambio predeterminado también con el ambiente, donde determinadas entradas producen determinadas salidas.

·      *Un sistema abierto (orgánico).

Funcionan dentro de relaciones causa-efectos desconocidas e indeterminadas y mantienen un intercambio intenso con el ambiente.


TIPOS DE SISTEMAS DE PRODUCCIÓN.

Existen diferentes tipos de sistemas de producción, pero haremos hincapié en los ocho sistemas más importantes que son: producción por montaje, producción por trabajos o sobre pedido, producción por lotes, producción continua, producción para stock, Just in Time, producción por Celdas y Kanban.

Estos tipos de sistemas no están necesariamente asociados con el volumen de producción, aunque si es una característica más.

Cada tipo de producción tiene características específicas y requieren condiciones diferentes para que sea eficaz su implantación y operación, lo que veremos a continuación en este trabajo.  



a) PRODUCCIÓN POR TRABAJOS O BAJO PEDIDO

Es el utilizado por la empresa que produce solamente después de haber recibido un encargo o pedido de sus productos.

Este análisis del trabajo involucra:

1) Una lista de todos los materiales necesarios para hacer el trabajo encomendado.
2) Una relación completa del trabajo a realizar, dividido en número de horas para cada tipo de trabajo especializado.
3) Un plan detallado de secuencia cronológica, que indique cuando deberá trabajar cada tipo de mano de obra y cuándo cada tipo de material deberá estar disponible para poder ser utilizado.

Las características esenciales del control de la producción por proyectos parecen ser:

·        Definición clara de los objetivos.
·        Acuerdo sobre resultados cuantificables a intervalos especificados.
·        Un comité administrativo que este facultado para tomar decisiones relativas a las necesidades de los trabajos, a la mano de obra y otros recursos.

b) PRODUCCIÓN POR LOTES

Es en la producción por lotes donde el departamento de control de producción puede producir los mayores beneficios, pero es también en este tipo de producción donde se encuentran las mayores dificultades para organizar el funcionamiento efectivo del departamento de control de producción.




BIBLIOGRAFIA:


·         Niebel, B. Ingeniería Industrial "Métodos, estándares y diseño del trabajo". 12a. edición. McGraw Hill
·         Monks, J. Administración de operaciones. McGraw Hil







domingo, 9 de marzo de 2014

PROBLEMAS Y ESPACIO DE ESTADOS


PROBLEMAS Y ESPACIO DE ESTADOS.


Un problema típico de la Inteligencia Artificial consiste en buscar un estado concreto entre un conjunto determinado, al que se le llama espacio de estados.

Un problema se define por:

ü  Estado inicial, conjunto de operadores, predicado meta, función de coste del camino
 Solución:
ü  Camino del estado inicial a un estado que satisface el predicado meta.

Imaginemos, por ejemplo, una habitación con estantes en la que hay un libro. Un robot se desea desplazar por la habitación con el fin de llegar a dicho libro. ¿De qué manera lo hará? En este punto es donde entran en juego las estrategias y los algoritmos de búsqueda.

 El primer paso para diseñar un programa que resuelva un problema es crear una descripción formal y manejable del propio problema. Sería adecuado contar con programas que produzcan descripciones formales a partir de descripciones informales, proceso denominado operaciónalización. Dado que por ahora no se conoce la forma de construir estos programas este proceso debe hacerse manualmente.

 Hay problemas que por ser artificiales y estructurados son fáciles de especificar (por ej. el ajedrez, el problema de las jarras de agua, etc.). Otros problemas naturales, como por ej. la comprensión del lenguaje, no son tan sencillos de especificar.


Para producir una especificación formal de un problema se deben definir:

·         Espacio de estados.
·         Estado inicial del problema.
·         Espacio de estados;- estado inicial del problema.
·         Reglas que se pueden aplicar para pasar de un estado a otro.

EJEMPLO

Por ejemplo, en el problema de jugar al ajedrez:

·         El espacio de estados son la totalidad de tableros que se puede generar en un juego de ajedrez;
·         El estado inicial es el tablero de 8 x 8 donde cada celda contiene un símbolo de acuerdo a las piezas situadas.
·         El objetivo o estado final se define como cualquier posición de tablero en la que el contrario no puede realizar ningún movimiento legal y su rey esté amenazado.
·         Las reglas son los movimientos legales, que pueden describirse mediante una parte patrón para ser contrastado con la posición actual de tablero y otra parte que describe el cambio que debe producirse en el tablero.


Problemas lógicos:

El hallazgo de la solución de un problema mediante un “espacio” de estado y los métodos de búsqueda en este espacio de solución.

·         Estado: la representación de un problema en un instante dado.
·          Espacio de estado: se trata de definir el problema mediante estados posibles.

Es necesario hacer cambios en el espacio de estado para que pase a otro estado (movimiento), el cual también sufrirá nuevas transformaciones. Por lo cual hay que definir una serie de operadores.
Operador: convierte un estado en otro.
Pero hace falta definir el conjunto de acciones para llevar a cabo las transformaciones entre estados. 
No todos los estados son admisibles a partir del estado inicial.

Debe existir un conjunto de transferencias que lleve al estado final:

E0 ~ E1 ~ E2 ~......En

Al conjunto de transferencias también se le llaman reglas del tipo:

Antecedente y Acción.

Que sirven para realizar todos los estados.

Para definir el espacio de estados no es necesario hacer una enumeración exhaustiva de todos los estados válidos, sino que es posible definirlo de manera más general.

Así uno de los métodos de búsqueda de soluciones para problemas poco estructurados (no existe un algoritmo bien definido), son los espacios de estado.

Su estructura se corresponde con la resolución de problemas porque:-permite definir formalmente el problema, mediante la necesidad de convertir una situación dada en una situación deseada mediante un conjunto de operaciones permitidas.

Permite definir el proceso de resolución de un problema como una combinación de técnicas conocidas y búsqueda (la técnica general de exploración del espacio intenta encontrar alguna ruta desde el estado actual hasta un estado objetivo).

Existen diferentes formas de representar problemas para resolverlos de manera automática.

·         Representaciones generales
ü  Espacio de estados: un problema se divide en un conjunto de pasos de resolución desde el inicio hasta el objetivo.
·         Reducción a subproblemas: un problema se puede descomponer en una jerarquía de subproblemas.
·         Representaciones para problemas específicos.

ü  Resolución de juegos.

ESPACIOS DE ESTADOS:


ü  Espacio de Estados: Conjunto de todos los estados alcanzables desde el estado inicial por cualquier secuencia de operadores.
·   Los estados y su relación de accesibilidad conforman lo que se denomina espacio de estados.
·         Representa todos los caminos que hay entre todos los estados posibles de un problema.
·         Podría asimilarse con un mapa de carreteras de un problema.
·         La solución de nuestro problema está dentro de ese mapa.

·     Solución: Secuencia de pasos que llevan del estado inicial al final (secuencia de operadores) o también el estado final
·         Tipos de solución: una cualquiera, la mejor, todas
·         Coste de una solución: Gasto en recursos de la aplicación de los operadores a los estados. Puede ser importante o no según el problema y que tipo de solución busquemos.

v  Descripción de un problema en Espacio de Estados.

·         Definir el conjunto de estados del problema (explícita o implícitamente)
·         Especificar el estado inicial.
·         Especificar el estado final o las condiciones que cumple.
·         Especificar los operadores de cambio de estado (condiciones de aplicabilidad y función de transformación).
·         Especificar el tipo de solución:
ü  La secuencia de operadores o el estado final.
ü  Una solución cualquiera, la mejor (definición de coste).

Espacios de estados es un modelo matemático de un sistema físico descrito mediante un conjunto de entradas, salidas y variables de estado relacionadas por ecuaciones diferenciales de primer orden que se combinan en una ecuación diferencial matricial de primer orden.

 La representación de espacios de estado (también conocida como aproximación en el dominio del tiempo) provee un modo compacto y conveniente de modelar y analizar sistemas con múltiples entradas y salidas. Con P entradas y Q salidas, tendríamos que escribir Q*P veces la transformada de Laplace para procesar toda la información del sistema.