5. MODELO A IMPLEMENTAR.

Tamaño: px
Comenzar la demostración a partir de la página:

Download "5. MODELO A IMPLEMENTAR."

Transcripción

1 5. MODELO A IMPLEMENTAR. La motivación principal del modelo propuesto es la planificación de la ejecución de pruebas funcionales, de manera que ésta se pueda realizar en el menor tiempo posible. Para planificar la ejecución de las pruebas se tendrán que tener en cuenta una serie de restricciones, conformando finalmente un modelo de optimización, en este caso lineal, con variables enteras (como se verá posteriormente). El resultado será un modelo de programación lineal mixta-entera perteneciente a la familia de problemas de planificación / scheduling, que han sido ampliamente estudiados en la literatura. Este tipo de problemas son resolubles de manera exacta mediante técnicas de exploración dirigida (Branch and bound) mezcladas con generación de cortes (Branch and cut) o utilizando otras aproximaciones como técnicas de descomposición o relajación lagrangiana. En casos en que es preciso disponer de buenas soluciones de forma rápida se suelen utilizar metaheurísticas como Búsqueda Tabú y Algoritmos Genéticos. Otra posibilidad comúnmente usada es el desarrollo de heurísticos específicos que renunciando de entrada al óptimo del problema consiguen soluciones en segundos o escasos minutos. En el caso que nos ocupa, la programación de pruebas funcionales, bastaría con disponer de buenas soluciones en el orden de varios minutos, ya que en definitiva, una vez planificada la ejecución de las pruebas, ésta será repetitiva para cada una de las unidades que se vayan a fabricar. Evidentemente es habitual que se produzcan perturbaciones en el desarrollo de las pruebas y que sea preciso realizar un re-scheduling para solventar los problemas que se presenten. Éste, sin embargo, no es el objetivo de este trabajo de fin de carrera, constituyendo un problema de mayor dificultad que podrá ser objeto de posteriores investigaciones, si así fuese necesario. Como se verá posteriormente, los modelos resultantes para un caso real tienen una dimensión importante. Para resolver estos problemas se han usado fundamentalmente dos herramientas: Por una parte, el prototipado del modelo se ha realizado en LINGO. Se conoce que LINGO no es tal vez la mejor herramienta para la resolución de problemas de gran envergadura, de hecho no se ha usado para la resolución, sino para el desarrollo del modelo abstracto. LINGO dispone de un lenguaje de programación muy simple que 67

2 aun no disponiendo de la potencialidad de GAMS o de AMPL, es más que suficiente para la construcción de los modelos que aquí se han de usar. Por otra parte, es muy sencillo exportar los modelos generados para su resolución con CPLEX o con GUROBI. Éste ha sido el mecanismo utilizado. En definitiva, se ha modelado en LINGO, se ha utilizado LINGO para la realización de pruebas en modelo de pequeño tamaño y una vez construidos los modelos de mayor tamaño, se han resuelto haciendo uso de CPLEX v Breve estado del arte. Para abordar el problema de la optimización en la ejecución de pruebas funcionales, es fundamental, el estudio del estado del arte de los temas relacionados. Gracias a ello, conseguimos la formación adecuada, podemos conocer las debilidades y fortalezas de otros trabajos, reutilizar ideas que nos ayuden en nuestra investigación, etc. En los siguientes apartados se presentan brevemente algunas ideas básicas de posibles enfoques de resolución. Concretamente se presenta un resumen de las técnicas clásicas de programación matemática y de novedosas técnicas de programación con restricciones Scheduling Introducción. El área denominada Scheduling engloba a multitud de problemas que tienen en común la necesidad de planificar la ejecución de un conjunto de operaciones o tareas en el tiempo. En general, las tareas están sujetas a relaciones de precedencia, de forma que, por ejemplo, el comienzo de una tarea debe ser posterior a la finalización de otra(s). Por otro lado, se cuenta con un conjunto limitado de recursos compartidos, necesarios para la ejecución de las tareas. Para solucionar este tipo de problemas se debe tener en cuenta tanto las restricciones de precedencia como las de recursos, para dar lugar así a un plan de ejecución viable. 68

3 Un caso concreto de Scheduling es el denominado Job Shop, en el que las tareas se organizan en trabajos, a través de los cuales se establecen las relaciones de precedencia entre ellas. De esta forma, con el término trabajo se hace referencia a una secuencia de operaciones que deben ejecutarse en un orden determinado, existiendo una relación de precedencia entre ellas que establece que una operación puede comenzar sólo cuando ha terminado la ejecución de todas sus predecesoras. Por operación se hace referencia a una tarea que debe ser ejecutada, normalmente sin interrupción (preemptive scheduling), durante un tiempo determinado y haciendo uso de unos recursos específicos. Uno de los objetivos fundamentales de este tipo de problemas es generar un plan de ejecución optimizando una función objetivo determinada, que suele estar relacionada con el tiempo de procesado de todos los trabajos que forman parte del problema. A la hora de generar el plan, es necesario tener en cuenta tanto las restricciones de precedencia existentes entre las operaciones del mismo trabajo como las restricciones de recursos, que obligan a establecer un orden de ejecución entre las operaciones que comparten recursos. Estas últimas restricciones son la fuente de la complejidad NP-dura de este tipo de problemas. Existen muchas variantes que se engloban dentro de este tipo de problemas, entre las que se encuentran: Job Shop: Cada operación sólo puede ejecutarse en una máquina. Puede ser que cada trabajo sólo utilice una vez cada máquina o bien que contenga varias operaciones que deban ser ejecutadas en la misma máquina (en este caso se denomina Job Shop sujeto a recirculación). Flow Shop: En cada trabajo hay exactamente una operación a ser ejecutada en cada una de las máquinas, por tanto cada uno de los trabajos pasa por cada una de las máquinas una sola vez. Además, todos ellos pasan por cada una de las máquinas en el mismo orden. Job Shop Flexible: Existen varios centros de trabajo, cada uno de los cuales contienen el mismo conjunto de máquinas. De esta forma, una operación puede ser 69

4 ejecutada en cualquier centro de trabajo en la máquina adecuada. Se puede encontrar una información más detallada en. Job Shop Acumulativo: es una generalización del job shop en la que los recursos tienen una capacidad finita y las operaciones pueden requerir varias unidades de varios tipos de recursos. Esta sección se centra en el JSSP (Job Shop Scheduling Problem), que aunque es un modelo simplificado, a partir de su estudio se pueden obtener muchas conclusiones para problemas reales. Por otro lado, es un problema muy estudiado y referenciado, por lo que es fácil realizar estudios comparativos. Esta sección se organiza como sigue: en primer lugar se muestra la definición formal del Job Shop Scheduling Problem (JSSP), problema en el que se basa el artículo de (I. Barba). Posteriormente se tratará la definición del camino crítico de una solución, que es uno de los conceptos fundamentales en la búsqueda de soluciones óptimas para el JJSP. Tras esto, se detallan las propuestas de resolución del JJSP consideradas más relevantes y referenciadas, incluyendo la programación matemática, heurística basada en cuellos de botella, programación con restricciones y métodos heurísticos Definición del Job Shop Scheduling Problem. El problema de Job Shop Scheduling (JSSP) puede ser formulado como sigue: se tiene un conjunto de n trabajos J 1, J 2,, J n y un conjunto de m máquinas M 1, M 2,, M m. Cada trabajo J i está formado por una secuencia de n i operaciones op i1, op i2,, op i,ni, que deben ser procesadas en este orden. Cada operación op ij debe ser procesada durante p ij unidades de tiempo, sin interrupción, en la máquina µ ij Є (M 1,, M m ). Cada máquina sólo puede procesar una operación en cada momento. Una consideración típica consiste en suponer que n i = m, i. Teniendo en cuenta todo esto, se definen dos tipos de restricciones: Restricciones de precedencia: Cada trabajo está formado por un conjunto de operaciones que deben ser ejecutadas en un orden determinado, de forma que una operación no puede comenzar hasta que no hayan finalizado todas las operaciones predecesoras. 70

5 Restricciones de recurso: En cada momento sólo una operación puede ocupar una máquina, lo que fuerza a seleccionar un orden para la ejecución de todas las operaciones que se realizan en la misma máquina. Realmente consiste en seleccionar una de entre todas las permutaciones posibles de dichas operaciones, lo que dota al problema de complejidad NP-dura. Grafo disyuntivo Una de las representaciones más claras y utilizadas para este tipo de problemas es el denominado grafo disyuntivo. Un grafo disyuntivo G = (V, C, D) contiene los siguientes elementos: Un conjunto V de nodos, cada uno de los cuales representa una operación, excepto dos de ellos, el nodo fuente y el nodo sumidero, que son nodos virtuales de duración 0 y representan el comienzo y el final del plan respectivamente. Un conjunto de aristas que unen los distintos nodos. Podemos distinguir dos tipos: Aristas de precedencia C (conjunciones) correspondientes a las restricciones de precedencia. Son arcos dirigidos que unen operaciones correspondientes al mismo trabajo. Aristas de recurso D (disyunciones) correspondientes a las restricciones de recurso. Son arcos no dirigidos que unen operaciones que se ejecutan en la misma máquina. Cada una de las aristas tiene asociada una longitud igual a la duración de la operación origen de dicha arista. Una solución para el problema consiste en establecer una dirección en cada una de las aristas de recurso, siendo factible la solución si no da lugar a la formación de ciclos en el grafo. Cada operación del JSSP puede empezar cuando haya terminado la ejecución de sus operaciones predecesoras (en caso de que existan). En un grafo disyuntivo, la dirección de las flechas marca las relaciones de precedencia, de forma que si aparece una flecha dirigida de la operación p a q, esto indica que p precede a q. Es por esto que en el caso de que existan ciclos en el grafo, la solución no es válida. En la Figura 24 se muestra un grafo disyuntivo que representa un problema simple con n = 3 y n i = 3, i. El nodo fuente está representado por la etiqueta U y el nodo sumidero por V. Las 71

6 aristas de precedencia están representadas mediante flechas unidireccionales de trazado continuo, mientras las de recurso aparecen como flechas bidireccionales de trazado discontinuo. Figura 24 Un grafo disyuntivo para problemas Job Shop. Funciones objetivo. En general, el objetivo más perseguido en este tipo de problemas es encontrar una solución factible, es decir, que satisfaga todas las restricciones, minimizando un valor denominado makespan, C max. El makespan se define como el tiempo en el que termina la ejecución de todos los trabajos, C max = max i=1 n (C i ), donde C i es el tiempo de finalización del trabajo J i, es decir, el tiempo de finalización ct i,ni de la operación op i,ni. Teniendo en cuenta la definición del grafo disyuntivo realizada anteriormente, y dada una solución, el makespan se puede definir como la longitud del camino más largo que existe desde el nodo fuente hasta el nodo sumidero. Dicho camino está formado por un conjunto de operaciones en las que la primera comienza en tiempo 0 y la última finaliza en un tiempo igual a makespan. El problema de minimizar el makespan se reduce a encontrar una dirección para cada arista no dirigida que minimice la longitud del camino más largo Camino Crítico. Una vez establecida una solución para un problema JJS, es decir, establecida la dirección en cada una de las aristas no dirigidas correspondientes a relaciones de recursos, existen varias posibilidades para dar lugar a un plan de ejecución. El plan de ejecución óptimo para esa solución se obtiene actuando de forma que una operación 72

7 comience justo cuando han terminado sus operaciones predecesoras (tanto en trabajo como en máquina). De esta forma, se define el tiempo de comienzo (o start time) st ij para una operación op ij, con una operación predecesora en máquina op kl (en caso de que exista), de la siguiente forma: Si es la primera en su máquina y la primera en su trabajo, st ij = 0. Si es la primera en su máquina, pero no en su trabajo, st ij = ct i, j-1. Si no es la primera en su máquina, pero sí en su trabajo, st ij = ct k,l. Si no es la primera en su máquina, ni en su trabajo, st ij = max (ct i,j-1 ; ct k,l ). Para todas las operaciones, el tiempo de finalización ct ij es igual a: ct ij = st ij + p ij. Así se consigue uno de los planes óptimos, pero existen diversas alternativas, algunas de las cuales dan lugar a planes con el mismo makespan (C max ). De hecho, dado un plan, existen planes alternativos que mantienen el mismo orden de ejecución de las operaciones y el mismo makespan, retrasando el comienzo de algunas operaciones. Teniendo en cuenta esto se define el tiempo de comienzo más tardío st ij de una operación como el tiempo máximo en el que una operación puede comenzar sin provocar un aumento en el makespan. De la misma forma el tiempo de finalización más tardío ct ij es el tiempo máximo en el que una operación puede finalizar sin provocar un aumento en el makespan (ct ij = st ij + p ij ). Sea op rs la operación sucesora de op ij en máquina. Se definen st ij y ct ij de la siguiente forma: Si es la última en su máquina y la última en su trabajo, ct ij = C max. Si es la última en su máquina, pero no en su trabajo, ct ij = st i,j+1. Si no es la última en su máquina, pero sí en su trabajo, ct ij = st r, s. Si no es la última en su máquina, ni en su trabajo, ct ij = min (st i,j+1, st rs ). Teniendo en cuenta todo esto, para una solución a un problema JJS, se pueden distinguir dos tipos de operaciones: Operaciones críticas: Son aquéllas que cumplen que st = st, es decir, un retraso en su tiempo de comienzo provocaría un aumento en el makespan. Operaciones con holgura: Son aquéllas que cumplen que st < st, es decir, un retraso en su tiempo de comienzo de no más de st - st unidades no provoca ningún cambio en el makespan. 73

8 De forma similar, se define el camino crítico sobre un grafo solución, como un camino formado exclusivamente por operaciones críticas que comienza en el nodo fuente y termina en el nodo sumidero. Pueden existir varios caminos críticos, y algunos de ellos pueden solaparse parcialmente. Existe otro concepto relacionado denominado bloque crítico, que se define como un conjunto de operaciones críticas consecutivas que se ejecutan en la misma máquina. Teniendo en cuenta estas definiciones, existe un conjunto de teoremas que se comentan a continuación: Dada una solución factible, cambiar el sentido de una de las aristas dirigidas perteneciente al camino crítico, da lugar a una solución también factible. Dada una solución factible, si el cambio en el sentido de una arista no perteneciente a ningún camino crítico da lugar a una solución factible, ésta tendrá un coste igual o mayor que la solución inicial. Dada una solución factible, cambiar el orden de ejecución de dos operaciones internas a un bloque crítico da lugar a una solución con un coste mayor o igual que la inicial. Intercambiar las dos primeras operaciones del primer bloque crítico, si la segunda de las operaciones es interna, da lugar a una solución con un coste mayor o igual que la inicial. De la misma forma, intercambiar las dos últimas operaciones del último bloque crítico, si la primera de las operaciones es interna, da lugar a una solución con un coste mayor o igual que la inicial. Resumiendo, dada una solución a partir de la cual se desea obtener otra sólo cambiando el sentido de una arista, las únicas opciones que permiten mejorar el makespan, son el intercambio de las dos primeras o las dos últimas operaciones de cada bloque crítico, teniendo en cuenta que si se trata del primer y último bloque crítico las dos primeras y las dos últimas, respectivamente, sólo se intercambian si dicho bloque posee exactamente dos operaciones Programación matemática. Existen diversas formulaciones de programación matemática para problemas JJS, sin embargo, la formulación más utilizada es la denominada programación disyuntiva. Dicha formulación está muy relacionada con la representación del problema mediante 74

9 el grafo disyuntivo. Sea st ij el tiempo de comienzo de la operación op ij, O ps el conjunto de todas las operaciones, C el conjunto de aristas de precedencia opij op i, j+1 y µ ij la máquina en la que op ij debe ser ejecutada. El siguiente modelo matemático plantea la minimización del makespan: Minimizar C max sujeto a: En esta formulación, el primer tipo de restricciones asegura que las operaciones que suceden a otras en un trabajo no pueden comenzar antes de que éstas hayan terminado. El tercer tipo establece que dos operaciones no pueden estar utilizando la misma máquina al mismo tiempo (restricciones disyuntivas). Es por esto que esta formulación recibe el nombre de programación disyuntiva. El hecho de que el problema JJS pueda ser formulado matemáticamente de forma sencilla no implica que existan procedimientos sencillos para conseguir el óptimo. Conseguir el óptimo en problemas JSS tiene un coste muy alto y los procedimientos de resolución suelen estar basados en enumeraciones o heurísticas Heurística basada en cuellos de botella (Shifting Bottleneck Heuristic). La heurística basada en cuellos de botella es un método para resolver problemas JJS basado en realizar la planificación de cada una de las máquinas en un orden determinado en función de la máquina que esté actuando como cuello de botella. El algoritmo consta de M (nº de máquinas) iteraciones, en cada una de las cuales se planifica una máquina, es decir, se establece el orden de todas las operaciones que se ejecutan en dicha máquina. En cada momento se trabaja con un conjunto de máquinas ya planificadas (M 0 ), que irá incrementando a medida que avanza el algoritmo. Se trabaja también con un grafo G que contiene todas las operaciones, pero no todos los arcos. 75

10 Inicialmente G contiene todas las aristas de precedencia y ninguna de recurso. El conjunto de aristas del grafo también irá incrementando a medida que avance el algoritmo. Se puede calcular el makespan C max (C 0 ) para dicho grafo como la longitud del camino más largo desde el nodo fuente hasta el nodo sumidero. Una vez calculado C max (C 0 ) para el grafo G, para cada operación se puede determinar el tiempo de liberación rt ij como el camino más largo en G desde el nodo fuente hasta op ij, y tiempo de finalización esperado dt ij que es igual a C max (C 0 ) menos el camino más largo desde op ij hasta el nodo sumidero, más p ij. En cada iteración, las operaciones correspondientes a una misma máquina forman un problema independiente con una solución también independiente. De esta forma, para cada máquina no planificada (M - M 0 ), en función de los tiempos rt y dt de cada operación de esta máquina, se realiza la planificación óptima para dichas operaciones, obteniendo así L max (i) como la mínima longitud del camino más largo en el subproblema formado por las operaciones ejecutadas en la máquina i, teniendo en cuenta G. Este problema de optimización es NP-duro, pero existen procedimientos para resolverlo que funcionan razonablemente bien. Una vez realizados estos cálculos, la máquina h con la mayor tardanza L max (h) es seleccionada para ser incluida en el conjunto M 0 y ser planificada. Además, los arcos correspondientes a dicha máquina son añadidos en el grafo G en función del plan óptimo obtenido anteriormente. Ahora es necesario calcular el nuevo makespan, que será al menos L max (h) unidades mayor: C max (M 0 h) C max (M 0 ) + L max (h). Las operaciones que estaban anteriormente en M 0, deben ser replanificadas teniendo en cuenta la inclusión en el grafo de las operaciones correspondientes a la máquina h. El algoritmo correspondiente a este procedimiento se muestra a continuación: 1. Condiciones iniciales. M 0 = El grafo G es el grafo formado por todos los arcos de precedencia y ningún arco disyuntivo. 76

11 C max igual a la longitud del camino más largo en G. 2. Análisis de máquinas a planificar. Para cada máquina i del conjunto M - M 0 se realiza: Formular un problema para esa única máquina con todas sus operaciones teniendo en cuenta los tiempos de liberación y de finalización esperados. Minimizar L max en cada uno de dichos subproblemas. Sea L max (i) el mínimo L max en el subproblema correspondiente a la máquina i. 3. Selección del cuello de botella y secuenciación. Sea Secuenciar la máquina h acorde a la secuencia generada en el paso 2. Insertar en G todos los arcos disyuntivos correspondientes a la máquina h. Insertar la máquina h en M Resecuenciación de todas las máquinas planificadas anteriormente. Para cada máquina l Є M 0 - h, realizar: Eliminar los arcos disyuntivos correspondientes de G, formular un subproblema para la máquina l con los tiempos de liberación y finalización determinados por el cálculo del camino más largo en G. Encontrar la secuencia que minimice L max (l) e insertar los correspondientes arcos disyuntivos en G. 5. Criterio de parada. Si M 0 = M, entonces FIN, en otro caso volver al paso Programación con Restricciones Introducción. La programación con restricciones (Constraint Programming, CP) es una tecnología software que se utiliza para modelar y resolver gran cantidad de problemas de diversa naturaleza y que persiguen objetivos diferentes. Existen multitud de 77

12 trabajos relacionados con dicha tecnología que comprenden distintas áreas, entre las que se encuentran parte de la inteligencia artificial, la investigación operativa, las bases de datos o los sistemas expertos. La programación con restricciones se basa en el modelado de un problema a través de un conjunto de variables y restricciones que establecen relaciones ente ellas, para posteriormente obtener una solución que satisfaga dichas restricciones. En el caso de problemas de optimización (Constraint Optimization Problem, COP) se persigue encontrar una solución que, además de satisfacer las restricciones, optimice una determinada función objetivo. La complejidad de la resolución de un problema de satisfactibilidad es, en general, NP-completa, mientras que en el caso de problemas de optimización es NP-dura. Para resolver un problema mediante programación con restricciones, (Constraint Satisfaction Problem, CSP), el proceso se divide en dos etapas claramente diferenciadas: 1. Modelado del problema como un problema de satisfacción de restricciones, siendo necesaria la definición de variables, dominios para dichas variables y restricciones que las relacionan. 2. Búsqueda de solución o soluciones al CSP modelado anteriormente. Esta etapa se puede realizar haciendo uso de diversas estrategias, entre las que se encuentran algoritmos de búsqueda, técnicas de consistencia y técnicas híbridas. La idea fundamental de la programación con restricciones es separar o desvincular el modelado del problema de la resolución del mismo, de forma que el problema se especifica completamente con un modelo claro, que se puede resolver siguiendo diversas estrategias Modelado del Problema como un CSP. Como se ha comentado en la introducción, cuando se desea resolver un problema mediante programación con restricciones, el primer paso es definir un modelado de restricciones adecuado para dicho problema. La elección de un modelado u otro es fundamental, ya que influye, en la mayoría de los casos, de manera determinante tanto en la estrategia a seguir durante la búsqueda de la solución, como en el tiempo de ejecución requerido en la obtención de la misma. 78

13 El modelado CSP para un problema está formado por una terna (X, D, C) donde: X: es el conjunto de variables CSP del problema, (x 1,..., x n ), para n variables. D: es el conjunto de los dominios de cada una de las variables, < D 1,..., D n >, siendo D i el dominio para la variable x i. C: es un conjunto finito de restricciones. Cada restricción C j involucra a m variables y restringe el valor que pueden tomar dichas variables de forma simultánea. De esta forma, una asignación de un valor para una variable es un par variablevalor (x, a), a Є D a. Una solución para el CSP consiste en una asignación de valores permitidos a cada una de las variables que forman parte del CSP de forma que se satisfagan todas las restricciones establecidas. Un problema es consistente, si existe, al menos, una solución factible para el mismo. Una vez modelado un problema como un CSP, se pueden perseguir diferentes objetivos, entre los que se encuentran: Encontrar una solución cualquiera para el problema. Encontrar algunas soluciones para el problema. Encontrar todas las soluciones existentes para el problema. Encontrar la solución óptima (o una buena solución) para el problema teniendo en cuenta un criterio establecido a partir de una función objetivo (en la mayoría de los casos conseguir una solución que minimice o maximice dicha función) Resolución del CSP. Una vez se ha realizado el modelado de un problema como un CSP (Constraint Satisfaction Problem), es necesario aplicar algún mecanismo de resolución para conseguir la solución o soluciones requeridas. Existen multitud de estrategias para llevar a cabo este cometido, la mayoría de las cuales se pueden englobar en alguna de las siguientes técnicas: Algoritmos de búsqueda. Se basan en la exploración del espacio de soluciones hasta encontrar una solución o probar que no existe tal solución. La búsqueda puede ser completa si el recorrido del espacio de soluciones es sistemático, o incompleta en 79

14 el caso de que se utilicen algoritmos de búsqueda local en los que sólo se exploran ciertas regiones del espacio de soluciones. Técnicas de consistencia. También se denominan técnicas de inferencia, y consisten en eliminar del dominio de las variables los valores inconsistentes. Una forma de realizar esto es evolucionando desde un problema P hacia un problema P 0 equivalente cuyo espacio de soluciones es menor, siendo por tanto más fácil de resolver. La inferencia puede ser completa si al final se llega a un problema P 0 que tiene una solución directa, o incompleta si es necesario realizar una búsqueda para obtener la solución. Técnicas híbridas. Son técnicas que se basan en la búsqueda de la solución mediante la combinación de algoritmos de búsqueda y técnicas de inferencia. Algoritmos de búsqueda. Una de las formas más naturales de resolver un CSP es mediante la búsqueda en el espacio de estados del problema, que es el conjunto de todas las asignaciones posibles de las variables. Existen varias clasificaciones para los algoritmos de búsqueda. En el presente trabajo se ha optado por la división en dos grandes bloques, algoritmos de búsqueda sistemática y algoritmos de búsqueda local, aunque algunos autores distinguen entre búsqueda completa e incompleta. Se detallan a continuación. Búsqueda sistemática. La búsqueda sistemática consiste en recorrer el espacio de estados hasta que se encuentre una solución o se pruebe que no existe solución. Las posibles combinaciones de la asignación de valores a las variables en un CSP dan lugar a un espacio de estados que puede ser representado como un árbol o grafo de búsqueda. Cada nodo del árbol de búsqueda representa una asignación parcial de valores a un conjunto de variables. El nodo raíz del árbol de búsqueda representa el caso en el que ninguna variable se encuentra instanciada, y los nodos hojas el caso en el que todas las variables se encuentran instanciadas. Existen varios algoritmos de búsqueda sistemática, la mayoría de los cuales se basan en backtracking cronológico. En Backtracking Cronológico se realiza un recorrido (parcial o completo) en profundidad sobre el árbol, de forma que en cada uno de los nodos se comprueba si la 80

15 asignación parcial realizada hasta el momento es consistente con todas las restricciones del CSP. En el caso de que en un nodo no se detecte ninguna inconsistencia, prosigue la búsqueda en profundidad. En cambio, si en un nodo se detecta alguna inconsistencia, se cambia el valor de la última variable que ha sido instanciada a otro valor no probado. En el caso que para dicha variable todos los valores den lugar a inconsistencia (situación sin salida o dead-end), se vuelve al nivel superior para proceder de la misma forma. Si estamos buscando una solución cualquiera, el algoritmo termina cuando ha llegado a un nodo hoja (solución completa), o bien cuando ha explorado todas las combinaciones posibles variable-valor sin éxito (no existe solución). En problemas de optimización, se suelen añadir restricciones que impliquen una mejora de la mejor solución obtenida hasta el momento. En el proceso de búsqueda, en general, el orden en el que se estudian las variables tiene una gran influencia, así como el orden de selección de valores para cada una de ellas, ya que un orden adecuado de ambas cosas puede mejorar notablemente la eficiencia. Existen diferentes tipos de heurísticas tanto para la ordenación de variables como para la selección de valores. Uno de los problemas que presenta el backtracking, es que en cada nodo sólo se estudian las relaciones entre la variable actual y las anteriores, ignorando las variables futuras. Otra deficiencia es la carencia de memoria que posee, de forma que se puede llevar a cabo el análisis innecesario de la misma situación repetidamente. Para paliar dichas deficiencias existen variantes, que se engloban principalmente en algoritmos look-back y look-ahead. Búsqueda local. La búsqueda local consiste en explorar sólo algunas regiones del espacio de estados de forma que, en general, no se garantiza el hallazgo de una solución o de la solución óptima. Los algoritmos de búsqueda local son algoritmos incompletos muy utilizados debido al alto coste que requiere una búsqueda completa. En los algoritmos de búsqueda local normalmente se suele trabajar con soluciones completas (todas las variables se encuentran instanciadas) de forma que se desea llegar a una solución que 81

16 cumpla todas las restricciones (en el caso de CSP) u optimice una determinada función objetivo (en el caso de COP). Inicialmente se parte de una solución inicial, y se itera repetidas veces dirigiéndose hacia otras soluciones que intentan mejorar el valor de la función objetivo y/o reducir el número de inconsistencias. En la mayoría de los casos, estos algoritmos finalizan tras una serie de intentos o iteraciones, o cuando encuentran el óptimo (si son capaces de detectarlo). Existen muchos algoritmos de búsqueda local, cada uno de los cuales consta de un conjunto de elementos que se describen a continuación: Función objetivo: Es una función que se aplica sobre una solución completa del problema para devolver un valor numérico que indica la bondad de dicha solución. Este valor se denomina coste o beneficio de la solución, y es lo que se desea optimizar. Vecindad: Para cada una de las soluciones (completas o incompletas) se determina un conjunto de soluciones vecinas. Normalmente dicho conjunto suele estar formado por pequeñas variaciones de la solución actual que se espera mejoren la función objetivo. Criterio de selección: Es necesario seleccionar un vecino de entre todos los posibles. Esto se realiza según el criterio de selección, que suele basarse en heurísticas para seleccionar así el vecino más prometedor. Para aplicar búsqueda local a CSPs sin optimización se pueden considerar los siguientes puntos: Cada variable puede tomar cualquier valor de su dominio. Se va iterando sobre soluciones intermedias no consistentes con las restricciones existentes. Se asocia un coste a cada restricción que no se cumpla, de forma que el óptimo (solución consistente con las restricciones), se obtiene cuando el coste es igual a 0. Existen diferentes estrategias para algoritmos de búsqueda local, destacando las siguientes: Algoritmos genéticos. Parten de una población inicial formada por un conjunto de individuos, que pueden ser generados aleatoriamente o mediante técnicas heurísticas, a partir de la cual se lleva a cabo una serie de pasos. En general, se busca 82

17 que la evolución sea hacia una nueva población mejor que la actual, es decir, que posea individuos con un mejor coste para la función objetivo. El paso de una población a la inmediatamente posterior se realiza mediante tres tipos de operaciones: De Selección: sólo los mejores individuos de la población sobreviven. De Cruce: combinación de individuos para dar lugar a uno o varios nuevos. De Mutación: pequeña modificación en un individuo para dar lugar a otro. En cada una de estas operaciones existen muchas alternativas posibles. Si el algoritmo converge adecuadamente, se van obteniendo mejores soluciones. La solución que devuelve este algoritmo es el mejor individuo encontrado tras una serie de generaciones. Simulated annealing. La idea básica de este algoritmo es la posibilidad de moverse a estados con peor coste dependiendo de una probabilidad p que depende de varios factores, entre los que se encuentran: Empeoramiento de la solución tras el cambio. Mientras más se empeore la solución, menos probabilidad hay de aceptar el cambio. Número de iteración en el que se encuentre el algoritmo, de forma que mientras más avanzada esté la búsqueda, menor es la posibilidad de permitir soluciones peores. Si la nueva solución mejora la actual, siempre se realiza el movimiento. Búsqueda tabú. Propone mantener durante el proceso de búsqueda una lista con los últimos k movimientos realizados (lista tabú), de forma que dichos movimientos no son permitidos (movimientos prohibidos). Esto da lugar a un algoritmo en el que el mismo movimiento no puede ser repetido o revertido, al menos, hasta k iteraciones después. Dicha lista se va actualizando en cada iteración de forma que se produce pérdida de memoria estratégica de los movimientos realizados anteriores al (k - 1)-ésimo. Para el éxito de la búsqueda tabú en la resolución del problema, es muy importante determinar de forma adecuada el tamaño de la lista tabú y la información almacenada. Junto con la búsqueda tabú, en algunos casos, se 83

18 utiliza el criterio de aspiración, que consiste en seleccionar como próxima solución, si existe, aquella solución que mejore a la actual, se encuentre o no en la lista tabú. Técnicas de consistencia. Las técnicas de consistencia se basan en la inferencia de nuevas restricciones a partir de las existentes en una red, de forma que las restricciones añadidas no incorporan conocimiento nuevo pero sí hacen explícitas relaciones que estaban presentes de forma implícita. En general, estas nuevas restricciones pueden englobar a algunas restricciones anteriores, de forma que el número de restricciones puede ir reduciéndose en cada paso. La inferencia llevada al extremo da lugar a una sola restricción que engloba todas las restricciones iniciales, de forma que las tuplas que cumplen dicha restricción son soluciones directas al problema. Todas las redes de restricciones por las que se pasa durante el proceso de inferencia son equivalentes, es decir, todas tienen el mismo conjunto de soluciones. Mediante inferencia conseguimos redes de restricciones equivalentes pero más sencillas de resolver, intentando obtener redes con un espacio de estados menor o que se puedan explorar de forma más eficiente. Cuando se sintetizan todas las restricciones en una única se denomina inferencia completa o consistencia global, y dicho proceso es, en general, muy costoso. Por el contrario, cuando la inferencia es incompleta (consistencia local) se añaden restricciones que hacen explícitas relaciones que anteriormente se encontraban implícitas sin necesidad de llegar a una única restricción. En este caso y una vez realizada la inferencia, es necesario algún método de búsqueda que actúe sobre la nueva red de restricciones. Inferencia completa. Son técnicas en las que se van generando redes de restricciones cada vez más pequeñas hasta llegar a una única restricción que engloba a todas las adaptativa. iniciales. Un ejemplo de esta técnica es el algoritmo de consistencia Esto se realiza, en general, mediante la eliminación de variables, que tiene un gran coste computacional. Las restricciones son consideradas relaciones sobre un 84

19 conjunto de variables, cada una de ellas compuesta por tuplas. Sobre dichas relaciones se definen las operaciones de proyección y join para llevar a cabo la inferencia. Inferencia incompleta. Debido al alto coste computacional de la inferencia completa, existen alternativas de inferencia incompleta o consistencia local, ya que realizar un estudio del subproblema que sólo contempla un número pequeño de variables, lleva asociado un coste computacional aceptable. Las técnicas de inferencia incompleta se basan en el estudio de subredes de restricciones del problema. Gracias al estudio de subredes de restricciones que sólo consideran ciertas variables se pueden obtener diferentes resultados: Si se detectan valores o combinaciones de valores que no aparecen en ninguna solución de la subred, dichos valores tampoco aparecerán en la solución de la red, ya que las restricciones de la subred aparecen en la red global. Si la subred no tiene solución, la red global tampoco la tendrá. En cambio, que la subred tenga solución no implica que la red global también la tenga, ya que sólo se realiza un estudio local del problema. De esta forma, en general, no se encuentran soluciones globales al problema pero se añaden nuevas restricciones que aceleran la búsqueda al reducir el espacio de estados y mejorar la detección de inconsistencias. Existen varios algoritmos de consistencia local (68), algunos de los cuales están basados en consistencia de nodo (1- consistencia), consistencia de arco (2-consistencia) o consistencia de caminos (3- consistencia). La consistencia de arco es una de las formas más usuales de realizar la propagación de restricciones. Una de las razones es que es un concepto muy simple y natural que garantiza que todos los valores de un dominio son consistentes con todas las restricciones existentes. La propuesta de algoritmos eficientes que trabajan con la arco consistencia se ha considerado siempre una de las cuestiones centrales dentro de la comunidad de razonamiento con restricciones por varias razones. La primera de ellas es que la arco consistencia es el mecanismo de propagación básico que usan la mayoría de los programas existentes. Otra razón es que las nuevas ideas que permiten mejorar la eficiencia en la arco consistencia se pueden aplicar normalmente a algoritmos para mejorar otros tipos de consistencias locales. Se han propuesto múltiples algoritmos 85

20 para conseguir arco-consistencia, todos polinómicos. Uno de los más conocidos es el AC3, propuesto por Mackworth. Técnicas híbridas. Como se ha comentado en apartados anteriores, las técnicas híbridas son una combinación de procesos de búsqueda junto con técnicas de inferencia, intentando combinar los aspectos más positivos de cada una de ellas para llegar a un buen mecanismo de resolución. Los algoritmos híbridos se pueden dividir en dos grandes bloques: Combinación de búsqueda sistemática e inferencia incompleta. En cada nodo del subárbol de búsqueda se lleva a cabo la consistencia local del subproblema representado por dicho nodo, de forma que se detectan las tuplas parciales inconsistentes. Dichas tuplas son eliminadas, reduciendo el espacio de estados e incluso detectando una situación sin salida si el dominio queda vacío. Algoritmos look-back. Los algoritmos look-back son variantes del backtracking cronológico en las que, al igual que el backtracking, sólo se tiene en cuenta la información acerca de las variables anteriores a la actual. La diferencia es que dichos algoritmos cuando llegan a una situación sin salida realizan un estudio, más o menos profundo, de las variables instanciadas hasta el momento (variables anteriores), de forma que actúan intentando evitar caer en una situación sin salida por la misma razón repetidas veces. Existen varios algoritmos basados en esta idea, entre los que se encuentran: Backjumping: La forma en la que se actúa cuando se llega a una situación sin salida es saltando a la variable que se considera responsable de haber llegado a dicha situación, no a la inmediatamente anterior como en el caso del backtracking cronológico. Conflict-directed Backjumping: La idea es similar a Backjumping, sólo que en este caso el salto hacia atrás se efectúa teniendo en cuenta más información. A medida que se va construyendo el árbol de búsqueda, para cada variable x i analizada se va asociando un conjunto conflictivo que está formado por todas las 86

21 variables anteriores a x i que entran en conflicto con ella. De esta forma, cuando se llega a una situación sin salida para la variable x i, se salta a la variable más profunda x j que se encuentra en el conjunto conflictivo de xi. Además, todas las variables que están en el conjunto conflictivo de x i se incorporan al conjunto conflictivo de x j. Con esto se consigue conservar toda la información sobre conflictos acerca de las variables estudiadas anteriormente. La ventaja con respecto al backjumping es que realiza la vuelta atrás de forma más inteligente, teniendo en cuenta información que antes se perdía. El aspecto negativo es que es necesario trabajar con estructuras de datos más complejas y almacenar más información para cada variable. Learning: Consiste en realizar un aprendizaje de las situaciones sin salida, en función del cual se realiza poda en el árbol de búsqueda. Mantiene en cada momento restricciones implícitas resultantes de la búsqueda que utiliza para evitar repetir situaciones sin éxito. Algoritmos look-ahead. Los algoritmos look-back sólo realizan el estudio de las variables anteriores, sin tener en cuenta las variables futuras (variables todavía no instanciadas). Los algoritmo look-ahead realizan un estudio tanto de las variables pasadas como de las variables futuras, lo que da lugar a la detección de situaciones sin salida antes de que tengan lugar. La técnica look-ahead más conocida y usada es la denominada Forward Checking. Dicha técnica consiste en ir eliminando temporalmente valores del dominio de variables futuras en el caso de que dichos valores presenten inconsistencia con respecto a la variable actual. De esta forma, si el dominio de alguna variable todavía no instanciada se queda vacío, se debe a que la asignación parcial que se lleva hasta el momento no puede formar parte de una solución. Cuando ocurre dicha situación, se selecciona el siguiente valor para la variable actual. En caso de que la variable actual se quede sin valores consistentes por explorar, se salta a la variable anterior (al igual que en backtracking cronológico). Manteniendo arco consistencia (MAC). El algoritmo MAC va generando una sucesión de subproblemas arco-consistentes, de forma que cada nuevo subproblema generado, tiene en cuenta todas las restricciones para mantener la arco-consistencia. 87

22 Combinación de búsqueda sistemática e inferencia completa. En general, la inferencia completa es muy costosa debido al gran esfuerzo computacional que requiere. Sin embargo, teniendo en cuenta el valor de algunos parámetros, existen ciertas situaciones en las que su aplicación es adecuada dentro de un algoritmo de búsqueda. Búsqueda y eliminación de variables (Variable Elimination Search, VES). La idea fundamental de las técnicas de inferencia es la eliminación sucesiva de variables. Esto tiene un coste exponencial en función de la anchura de la variable a eliminar, definiendo la anchura de una variable como el número de variables anteriores en el árbol más el número de variables que están relacionadas con ella en alguna restricción. Si la anchura de una variable tiene un valor alto, el coste de eliminar dicha variable es prohibitivo. En cambio, para variables con un valor de anchura bajo, se puede asumir el coste computacional de eliminarla a cambio de la reducción de complejidad que implica dicha eliminación. Además, tras la instanciación de una variable, se consigue una reducción en el árbol de búsqueda con la consiguiente reducción en la anchura de otras variables Heurísticas. Cuando se resuelve un CSP haciendo uso de un algoritmo de búsqueda, hay dos factores que pueden mejorar de manera considerable la eficiencia del proceso, que son los siguientes: Ordenación de variables. En general, las heurísticas de ordenación de variables suelen instanciar las variables más restringidas en primer lugar, de forma que se intenta detectar una solución sin salida lo antes posible, para disminuir así el número de saltos hacia atrás. La ordenación de variables se puede clasificar de la siguiente forma: Heurísticas de ordenación de variables estáticas: Desde el primer momento de la búsqueda se establece un orden de selección de las variables que permanece fijo durante todo el proceso. Para dar lugar a esta ordenación se hace uso de la información global del problema, derivada de la topología del grafo de restricciones original que representa al CSP. Algunas heurísticas de este tipo son: 88

23 Maximum degree (MD), que define el grado de un nodo como el número de nodos que son adyacentes a él y ordena las variables en un orden decreciente de su grado en el grafo de restricciones. Maximum cardinality (MC), que selecciona de forma aleatoria la primera variable, tras lo cual va seleccionando en cada paso la variable que es adyacente al conjunto más grande de las variables ya seleccionadas. Heurísticas de ordenación de variables dinámicas: abordan el problema del tratamiento dinámico del dominio de las variables, que va cambiando durante el proceso de búsqueda con la propagación de restricciones. Una de las más utilizadas es la heurística first fail principle, que indica que para obtener buenos resultados, es bueno intentar buscar primero donde exista una mayor probabilidad de fallo. Ordenación de valores. Existen menos trabajos en cuanto a heurísticas de ordenación de valores que a heurísticas de ordenación de variables. La mayoría de estos trabajos se basan en seleccionar primero los valores de cada una de las variables que tengan mayor probabilidad de llevarnos a una solución válida (valores menos restringidos en general), es decir, exploran en primer lugar las ramas del árbol consideradas más prometedoras. Una de las heurísticas más conocidas de este tipo es la heurística minconflicts, que ordena los valores de forma decreciente en función del número de conflictos en los que estén involucrados con las variables no instanciadas aún Programación con restricciones en el problema de Scheduling. La programación con restricciones puede ser aplicada a problemas job shop que tienen como función objetivo el makespan de la siguiente forma: suponemos que tenemos que encontrar un plan con C max menor o igual que un valor determinado d. Un algoritmo de satisfacción de restricciones debe producir para cada máquina una secuencia de operaciones de forma que el tiempo de procesamiento final de cada máquina no supere d. En primer lugar es necesario realizar un paso de inicialización, que consiste en realizar los cálculos adecuados para obtener el tiempo de comienzo más temprano y el tiempo de finalización más tardío de cada una de las operaciones en su máquina. Tras 89

24 esto se realiza una comparación entre las ventanas temporales de todas operaciones asociadas a las mismas máquina, de forma que si las ventanas temporales de dos operaciones asociadas a la misma máquina no se solapan, es posible establecer una relación de precedencia entre ellas: en cualquier plan factible, la operación con la ventana temporal más temprana debe ser predecesora de la operación con la ventana temporal más tardía. Realmente es posible establecer relaciones de precedencia incluso cuando las ventanas temporales se solapan. Sea st ij (st ij ) el tiempo posible de comienzo más temprano (más tardío) de la operación op ij y ct ij (ct ij ) el tiempo posible de finalización más temprano (más tardío) de la operación op ij teniendo en cuenta el conjunto de restricciones de precedencia dado. El tiempo posible de comienzo más temprano st ij de la operación op ij puede ser considerado el tiempo de liberación rt ij de dicha operación, mientras que el tiempo posible de finalización más tardío ct ij puede ser considerado como el tiempo de finalización esperado, dt ij. Se define la holgura entre el procesamiento de las operaciones op ij y op rs, ambas ejecutadas en la misma máquina, como: Entonces, bajo el conjunto de restricciones de precedencia actual, no existe ningún plan factible en el que la operación op ij preceda a la operación op rs. De esta forma se puede establecer una restricción de precedencia que implique que la operación op rs se ejecute antes que la op ij. En el paso de inicialización todos los pares de ventanas temporales son comparados entre ellos de forma que se obtienen las restricciones de precedencia y se añaden al grafo disyuntivo. Debido a las nuevas restricciones de precedencia, las ventanas temporales de cada una de las operaciones pueden ser ajustadas, es decir, tiene lugar de nuevo el cálculo de los tiempos de liberación y de finalización esperados de cada operación. 90

25 Las técnicas de satisfacción de restricciones a menudo confían en la propagación de restricciones. Una técnica de satisfacción de restricciones típicamente intenta, en cada paso, añadir nuevas restricciones de precedencia (arcos disyuntivos) que a su vez han sido implicados por restricciones de precedencia insertadas anteriormente. Una vez las nuevas restricciones han sido añadidas, tiene lugar el cálculo de las ventanas temporales de todas las operaciones. Existen otras alternativas de resolución, como instanciar variables en cada paso, etc. Para cada par de operaciones que tienen que ser procesadas en la misma máquina se cumple uno de los siguientes 4 casos: - Caso 1: Si, entonces se puede añadir la restricción de precedencia op ij op rs. - Caso 2: Si, entonces se puede añadir la restricción de precedencia op rs op ij. - Caso 3: Si, entonces no existe un plan que satisfaga las restricciones actuales. - Caso 4: Si, entonces cualquier orden entre las dos operaciones es posible Métodos heurísticos generales. En muchos de los problemas englobados dentro de planificación y scheduling, encontrar la solución que optimice una determinada función objetivo puede dotar al problema de una complejidad NP-dura. Algunas veces es necesario resolver problemas de gran tamaño en un tiempo "pequeño", aunque a cambio no se asegure el óptimo, siempre que las soluciones sean presumiblemente de calidad (cercanas al óptimo). En este apartado se describe un conjunto de reglas que resuelven problemas NPduros en tiempo polinómico, no garantizando la solución óptima, pero dando lugar a una solución aceptable en un tiempo de ejecución relativamente pequeño. Tras esto se comenta un método denominado beam search, que es una variante de técnicas de ramificación y poda. Otros métodos heurísticos ampliamente aplicados a problemas de scheduling son simulated annealing, búsqueda tabú y algoritmos genéticos, los cuales han sido explicados previamente en la sección anterior. 91

Inicio. Cálculos previos GRASP. Resultados. Fin. Figura 5.1: Diagrama de flujo del algoritmo.

Inicio. Cálculos previos GRASP. Resultados. Fin. Figura 5.1: Diagrama de flujo del algoritmo. 5. DISEÑO FUNCIONAL En este apartado vamos a detallar los diagramas funcionales que han constituido la base para la posterior implantación informática de la metaheurística. 5.1. Diseño funcional del algoritmo

Más detalles

El TAD Grafo. El TAD Grafo

El TAD Grafo. El TAD Grafo ! Esta representación resulta útil cuando el número de vértices se conoce previamente y permanecerá fijo durante la resolución del problema, pero resulta ineficiente si necesitamos añadir o eliminar vértices

Más detalles

C a l ses P P y y NP C a l se P C a l se N P N P [No N n o -De D te t rmin i i n s i ti t c i Polynomial-tim i e]

C a l ses P P y y NP C a l se P C a l se N P N P [No N n o -De D te t rmin i i n s i ti t c i Polynomial-tim i e] Análisis y Diseño de Algoritmos Introducción Análisis y Diseño de Algoritmos Concepto de algoritmo Resolución de problemas Clasificación de problemas Algorítmica Análisis de la eficiencia de los algoritmos

Más detalles

Algoritmos para CSP 1

Algoritmos para CSP 1 Algoritmos para CSP 1 1. Técnicas de Consistencia, o Inferenciales I. Inferencia, o consistencia completa Proceso que permite la síntesis de todas las restricciones de un problema en una única restricción

Más detalles

Algoritmos de planificación basados en restricciones para la sustitución de componentes defectuosos Irene Barba Rodríguez, 48861238S irenebr@us.

Algoritmos de planificación basados en restricciones para la sustitución de componentes defectuosos Irene Barba Rodríguez, 48861238S irenebr@us. Algoritmos de planificación basados en restricciones para la sustitución de componentes defectuosos Irene Barba Rodríguez, 48861238S irenebr@us.es Supervised by Prof. Dr. Carmelo del Valle Sevillano Thesis

Más detalles

RELACIÓN DE PROBLEMAS DE CLASE DE PROGRAMACIÓN LINEAL ENTERA

RELACIÓN DE PROBLEMAS DE CLASE DE PROGRAMACIÓN LINEAL ENTERA RELACIÓN DE PROBLEMAS DE CLASE DE PROGRAMACIÓN LINEAL ENTERA SIMPLEX Y LINEAL ENTERA a Resuelve el siguiente problema con variables continuas positivas utilizando el método simple a partir del vértice

Más detalles

(d) Puede haber estrategias que funcionan mejor que Minimax si el contrincante es

(d) Puede haber estrategias que funcionan mejor que Minimax si el contrincante es Universidad Rey Juan Carlos Curso 2014 2015 Hoja de Problemas Tema 5 1. Cuáles de las siguientes afirmaciones acerca del algoritmo Minimax son ciertas (a) El algoritmo Minimax realiza una exploración primero

Más detalles

CAPITULO 6. Análisis Dimensional y Semejanza Dinámica

CAPITULO 6. Análisis Dimensional y Semejanza Dinámica CAPITULO 6. Análisis Dimensional y Semejanza Dinámica Debido a que son pocos los flujos reales que pueden ser resueltos con exactitud sólo mediante métodos analíticos, el desarrollo de la mecánica de fluidos

Más detalles

CAPÍTULO 4 TÉCNICA PERT

CAPÍTULO 4 TÉCNICA PERT 54 CAPÍTULO 4 TÉCNICA PERT Como ya se mencionó en capítulos anteriores, la técnica CPM considera las duraciones de las actividades como determinísticas, esto es, hay el supuesto de que se realizarán con

Más detalles

(e) Con la poda alfa-beta se eliminan nodos que nunca serán alcanzados

(e) Con la poda alfa-beta se eliminan nodos que nunca serán alcanzados Universidad Rey Juan Carlos Curso 2014 2015 Hoja de Problemas Tema 5 1. Cuáles de las siguientes afirmaciones acerca del algoritmo Minimax son ciertas (a) El algoritmo Minimax realiza una exploración primero

Más detalles

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten

Más detalles

PROBLEMA 1. Considere el siguiente problema de programación lineal:

PROBLEMA 1. Considere el siguiente problema de programación lineal: PROBLEMA 1 Considere el siguiente problema de programación lineal: Sean h1 y h2 las variables de holgura correspondientes a la primera y segunda restricción, respectivamente, de manera que al aplicar el

Más detalles

JUEGOS. Área de aplicación de los algoritmos heurísticos Juegos bi-personales: oponente hostil

JUEGOS. Área de aplicación de los algoritmos heurísticos Juegos bi-personales: oponente hostil JUEGOS Área de aplicación de los algoritmos heurísticos Juegos bi-personales: oponente hostil I Oponente: Jugador: intenta mover a un estado que es el peor para Etiquetar cada nivel del espacio de búsqueda

Más detalles

PLANEACIÓN AGREGADA VARIABLES Y CONSIDERACIONES DE UN PLAN AGREGADO

PLANEACIÓN AGREGADA VARIABLES Y CONSIDERACIONES DE UN PLAN AGREGADO PLANEACIÓN AGREGADA -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Más detalles

Práctica N o 8 Desigualdades Válidas - Algoritmos de Planos de Corte - Algoritmos Branch & Cut

Práctica N o 8 Desigualdades Válidas - Algoritmos de Planos de Corte - Algoritmos Branch & Cut Práctica N o 8 Desigualdades Válidas - Algoritmos de Planos de Corte - Algoritmos Branch & Cut 8.1 Para cada uno de los siguientes conjuntos, encontrar una desigualdad válida que agregada a la formulación

Más detalles

MÉTODO DEL DUAL (TEORIA DE DUALIDAD)

MÉTODO DEL DUAL (TEORIA DE DUALIDAD) MÉTODO DEL DUAL (TEORIA DE DUALIDAD) Todo problema de programación lineal tiene asociado con él otro problema de programación lineal llamado DUAL. El problema inicial es llamado PRIMO y el problema asociado

Más detalles

Conceptos básicos estadísticos

Conceptos básicos estadísticos Conceptos básicos estadísticos Población Población, en estadística, también llamada universo o colectivo, es el conjunto de elementos de referencia sobre el que se realizan las observaciones. El concepto

Más detalles

Cristian Blanco

Cristian Blanco UNIDAD DIDÁCTICA 8. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS. DIAGRAMAS DE COMPORTAMIENTO En el siguiente enlace tienes una descripción y algunos ejemplos de todos los diagramas UML.: http://jms32.eresmas.net/tacticos/uml/umlindex.html

Más detalles

Unidad 2: Ecuaciones, inecuaciones y sistemas.

Unidad 2: Ecuaciones, inecuaciones y sistemas. Unidad 2: Ecuaciones, inecuaciones y sistemas 1 Unidad 2: Ecuaciones, inecuaciones y sistemas. 1.- Factorización de polinomios. M. C. D y m.c.m de polinomios. Un número a es raíz de un polinomio es 0.

Más detalles

Formule un modelo de programación lineal binaria que minimice la distancia máxima entre un distrito y su respectiva estación.

Formule un modelo de programación lineal binaria que minimice la distancia máxima entre un distrito y su respectiva estación. Profesores: Daniel Espinosa, Roberto Cominetti. Auxiliares: Victor Bucarey, Pablo Lemus, Paz Obrecht. Coordinador: Matías Siebert. IN3701 - Modelamiento y Optimización Auxiliar 2 22 de Marzo de 2012 P1.

Más detalles

Práctica 2: Análisis de sensibilidad e Interpretación Gráfica

Práctica 2: Análisis de sensibilidad e Interpretación Gráfica Práctica 2: Análisis de sensibilidad e Interpretación Gráfica a) Ejercicios Resueltos Modelización y resolución del Ejercicio 5: (Del Conjunto de Problemas 4.5B del libro Investigación de Operaciones,

Más detalles

4. NÚMEROS PSEUDOALEATORIOS.

4. NÚMEROS PSEUDOALEATORIOS. 4. NÚMEROS PSEUDOALEATORIOS. En los experimentos de simulación es necesario generar valores para las variables aleatorias representadas estas por medio de distribuciones de probabilidad. Para poder generar

Más detalles

TEMA 1: SISTEMAS MODELADOS POR ECUACIONES DIFERENCIALES EN INGENIERÍA QUÍMICA. CLASIFICACIÓN. GENERALIDADES.

TEMA 1: SISTEMAS MODELADOS POR ECUACIONES DIFERENCIALES EN INGENIERÍA QUÍMICA. CLASIFICACIÓN. GENERALIDADES. TEMA 1: SISTEMAS MODELADOS POR ECUACIONES DIFERENCIALES EN INGENIERÍA QUÍMICA. CLASIFICACIÓN. GENERALIDADES. 1. INTRODUCCIÓN. PLANTEAMIENTO DE PROBLEMAS EN INGENIERÍA QUÍMICA 2. PROBLEMAS EXPRESADOS MEDIANTE

Más detalles

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY ALGORITMO DEFINICIÓN: CONSISTE EN LA DESCRIPCIÓN CLARA Y DETALLADA DEL PROCEDIMIENTO A SEGUIR PARA ALCANZAR LA SOLUCIÓN A UN PROBLEMA EN DONDE SE ESTABLECE

Más detalles

Microsoft Project 2013

Microsoft Project 2013 Microsoft Project 2013 SALOMÓN CCANCE Project 2013 Salomón Ccance www.ccance.net CCANCE WEBSITE ANEXO 2. MANEJO DE VISTAS Y TABLAS. 2.1. ELEMENTOS DE VISUALIZACIÓN DE MICROSOFT OFFICE PROJECT PROFESSIONAL

Más detalles

Tema: Los Grafos y su importancia para la optimización de redes.

Tema: Los Grafos y su importancia para la optimización de redes. Tema: Los Grafos y su importancia para la optimización de redes. Qué son los Grafos? Un grafo es una dupla G= {X,U}, donde X es un conjunto finito y no vacio de elementos llamados vértices y U es el conjunto

Más detalles

Ruta más Corta con una sóla Fuente de Inicio (Single-Source Shortest Paths) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE

Ruta más Corta con una sóla Fuente de Inicio (Single-Source Shortest Paths) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Ruta más Corta con una sóla Fuente de Inicio (Single-Source Shortest Paths) 1 DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Problema de Encontrar la Ruta más Corta 2 Se requiere llegar de

Más detalles

PROCEDIMIENTO GENERAL. Gestión de Incidencias y Acciones Correctivas RAZÓN SOCIAL DE LA EMPRESA. Código PG-12 Edición 0. Índice:

PROCEDIMIENTO GENERAL. Gestión de Incidencias y Acciones Correctivas RAZÓN SOCIAL DE LA EMPRESA. Código PG-12 Edición 0. Índice: Índice: 1. TABLA RESUMEN... 2 2. OBJETO... 2 3. ALCANCE... 2 4. RESPONSABILIDADES... 3 5. ENTRADAS... 4 6. SALIDAS... 4 7. PROCESOS RELACIONADOS... 4 8. DIAGRAMA DE FLUJO... 5 9. DESARROLLO... 6 9.1. DETECCIÓN

Más detalles

Universidad Tec Milenio: Profesional HG04002 Análisis de Decisiones I

Universidad Tec Milenio: Profesional HG04002 Análisis de Decisiones I Tema # 10 El método de las M s como solución de problemas de programación lineal 1 Objetivo de aprendizaje del tema Al finalizar el tema serás capaz de: Resolver modelos de programación lineal mediante

Más detalles

4ta. Práctica. Búsqueda en árbol con contrincante: MiniMax con poda Alfa-Beta. Inteligencia Artificial Prácticas 2004/2005

4ta. Práctica. Búsqueda en árbol con contrincante: MiniMax con poda Alfa-Beta. Inteligencia Artificial Prácticas 2004/2005 4ta. Práctica Búsqueda en árbol con contrincante: MiniMax con poda Alfa-Beta Inteligencia Artificial Prácticas 2004/2005 Decisiones Perfectas en Juegos de DOS Participantes Definición de Juego Estado Inicial:

Más detalles

1. Introducción 2. Esquema básico 3. Codificación 4. Evaluación 5. Selección 6. Operadores 7. Ejemplo. Algoritmos genéticos

1. Introducción 2. Esquema básico 3. Codificación 4. Evaluación 5. Selección 6. Operadores 7. Ejemplo. Algoritmos genéticos 1. Introducción 2. Esquema básico 3. Codificación 4. Evaluación 5. Selección 6. Operadores 7. Ejemplo Algoritmos genéticos Introducción Propuestos por Holland, mediados 70, computación evolutiva Popularizados

Más detalles

PROGRAMACIÓN NO LINEAL INTRODUCCIÓN

PROGRAMACIÓN NO LINEAL INTRODUCCIÓN PROGRAMACIÓN NO LINEAL Conceptos generales INTRODUCCIÓN Una suposición importante de programación lineal es que todas sus funciones Función objetivo y funciones de restricción son lineales. Aunque, en

Más detalles

Introducción a la programación lineal

Introducción a la programación lineal Introducción a la programación lineal La programación lineal se aplica a modelos de optimización en los que las funciones objetivo y restricción son estrictamente lineales. La técnica se aplica en una

Más detalles

ALGORITMO MINIMAX. o Nodo: Representa una situación del juego. o Sucesores de un nodo: Situaciones del juego a las que se

ALGORITMO MINIMAX. o Nodo: Representa una situación del juego. o Sucesores de un nodo: Situaciones del juego a las que se ALGORITMO MINIMAX Algoritmo de decisión para minimizar la pérdida máxima aplicada en juegos de adversarios Información completa (cada jugador conoce el estado del otro) Elección del mejor movimiento para

Más detalles

Colección de Tesis Digitales Universidad de las Américas Puebla. Romero Martínez, Modesto

Colección de Tesis Digitales Universidad de las Américas Puebla. Romero Martínez, Modesto 1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto El procesamiento de consultas en un sistema multibase de datos es la pieza mas importante para la operación del

Más detalles

Análisis y síntesis de sistemas digitales combinacionales

Análisis y síntesis de sistemas digitales combinacionales Análisis Algoritmo de análisis, para un circuito lógico combinacional Síntesis. Conceptos Circuitos combinacionales bien construidos Circuitos combinacionales mal construidos Criterios de optimización

Más detalles

PROGRAMACION CONCURRENTE Y DISTRIBUIDA

PROGRAMACION CONCURRENTE Y DISTRIBUIDA PROGRAMACION CONCURRENTE Y DISTRIBUIDA V.2 Redes de Petri: Análisis y validación. J.M. Drake 1 Capacidad de modelado y capacidad de análisis El éxito de un método de modelado es consecuencia de su capacidad

Más detalles

UNIDAD 1: NÚMEROS NATURALES OBJETIVOS

UNIDAD 1: NÚMEROS NATURALES OBJETIVOS UNIDAD 1: NÚMEROS NATURALES Realizar las operaciones con números naturales (suma, resta, multiplicación y división) y operaciones combinadas de las anteriores. Diferenciar entre división exacta y entera,

Más detalles

2.5.1. Procesamiento de documentos XML.

2.5.1. Procesamiento de documentos XML. 2.5.1. Procesamiento de documentos XML. Un analizador o parser XML es una herramienta encargada de leer documentos XML [17], poder acceder a sus elementos y comprobar si el documento es sintácticamente

Más detalles

UNIDAD 6: SISTEMAS DE ECUACIONES

UNIDAD 6: SISTEMAS DE ECUACIONES UNIDAD 6: SISTEMAS DE ECUACIONES Continuamos con el estudio de la asignatura; ya hemos abordado cinco capítulos del programa de estudio: Los números reales, ecuaciones, desigualdades y algunas de las funciones

Más detalles

Inteligencia Artificial. Integrantes Equipo # 1:

Inteligencia Artificial. Integrantes Equipo # 1: INSTITUTO TECNOLÓGICO De Nuevo Laredo Especialidad: Ingeniería en Sistemas Computacionales Catedrático: Ing. Bruno López Takeyas. Asignatura: Inteligencia Artificial. Integrantes Equipo # 1: Javier Alonso

Más detalles

Algebra lineal y conjuntos convexos

Algebra lineal y conjuntos convexos Apéndice A Algebra lineal y conjuntos convexos El método simplex que se describirá en el Tema 2 es de naturaleza algebraica y consiste en calcular soluciones de sistemas de ecuaciones lineales y determinar

Más detalles

DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Y GESTIÓN DE EMPRESAS ESCUELA SUPERIOR DE INGENIEROS DE LA UNIVERSIDAD DE SEVILLA

DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Y GESTIÓN DE EMPRESAS ESCUELA SUPERIOR DE INGENIEROS DE LA UNIVERSIDAD DE SEVILLA 6. CONCLUSIONES 6.1. Introducción En este trabajo se ha intentado realizar un estudio suficientemente exhaustivo, que pudiera recopilar los métodos y técnicas más relevantes en la gestión de proyectos

Más detalles

Curso de Inducción de Matemáticas

Curso de Inducción de Matemáticas Curso de Inducción de Matemáticas CAPÍTULO 1 Funciones y sus gráficas M.I. ISIDRO I. LÁZARO CASTILLO Programa del Curso 1. Funciones y sus gráficas. 2. Límites. 3. Cálculo Analítico de Límites. 4. Derivación.

Más detalles

NOTAS TÉCNICAS SOBRE EL SIT: Comisiones Comerciales

NOTAS TÉCNICAS SOBRE EL SIT: Comisiones Comerciales NOTAS TÉCNICAS SOBRE EL SIT: Comisiones Comerciales Procedimiento Estándar...2 Alta de Comerciales o Agentes... 2 Comercial por defecto... 2...3 Introducción... 3 Pasos previos... 3 Relaciones de Mandos...

Más detalles

CAPITULO II ANÁLISIS DEL CRECIMIENTO POBLACIONAL Y CALCULO DE CAUDALES DE DISEÑO

CAPITULO II ANÁLISIS DEL CRECIMIENTO POBLACIONAL Y CALCULO DE CAUDALES DE DISEÑO 9 CAPITULO II ANÁLISIS DEL CRECIMIENTO POBLACIONAL Y CALCULO DE CAUDALES DE DISEÑO 2.1 Criterios de diseño para el predimensionamiento de los sistemas de abastecimiento de agua 2.1.1 Período de diseño

Más detalles

2. METODOLOGÍA. Los tipos fundamentales de Estudios de Investigación, como nos recuerda Bavaresco, son cuatro:

2. METODOLOGÍA. Los tipos fundamentales de Estudios de Investigación, como nos recuerda Bavaresco, son cuatro: 2. METODOLOGÍA Para llevar a cabo este estudio es necesario utilizar una metodología de investigación, debido a que el no contar con los métodos y técnicas necesarias que nos guíen a través de una investigación

Más detalles

Base de Datos de Compras. Creación de formularios.

Base de Datos de Compras. Creación de formularios. Base de Datos de Compras. Creación de formularios. Como se ha visto anteriormente la manipulación de los datos guardados en las tablas se puede realizar directamente desde éstas abriéndolas en vista Hoja

Más detalles

Agro 6998 Conferencia 2. Introducción a los modelos estadísticos mixtos

Agro 6998 Conferencia 2. Introducción a los modelos estadísticos mixtos Agro 6998 Conferencia Introducción a los modelos estadísticos mixtos Los modelos estadísticos permiten modelar la respuesta de un estudio experimental u observacional en función de factores (tratamientos,

Más detalles

La eficiencia de los programas

La eficiencia de los programas La eficiencia de los programas Jordi Linares Pellicer EPSA-DSIC Índice General 1 Introducción... 2 2 El coste temporal y espacial de los programas... 2 2.1 El coste temporal medido en función de tiempos

Más detalles

PROGRAMACIÓN LINEAL ENTERA

PROGRAMACIÓN LINEAL ENTERA PROGRAMACIÓN LINEAL ENTERA Programación lineal: hipótesis de perfecta divisibilidad Así pues decimos que un problema es de programación lineal entera, cuando prescindiendo de las condiciones de integridad,

Más detalles

Capitulo 4. DECISIONES BAJO RIESGO TEORIA DE JUEGOS

Capitulo 4. DECISIONES BAJO RIESGO TEORIA DE JUEGOS Capitulo 4. DECISIONES BAJO RIESGO TEORIA DE JUEGOS INTRODUCCIÓN En el mundo real, tanto en las relaciones económicas como en las políticas o sociales, son muy frecuentes las situaciones en las que, al

Más detalles

Inecuaciones lineales y cuadráticas

Inecuaciones lineales y cuadráticas Inecuaciones lineales y cuadráticas 0.1. Inecuaciones lineales Una inecuación lineal tiene la forma ax + b < 0 ó ax + b > 0 ó ax + b 0 ó ax + b 0. El objetivo consiste en hallar el conjunto solución de

Más detalles

DIRECCIÓN ADMINISTRATIVA

DIRECCIÓN ADMINISTRATIVA ORGANIZACIÓN ADMINISTRATIVA: FINALIDAD Y ALCANCE AUTOR: JAVIER INDARTE SALINAS INTRODUCCIÓN CONTENIDO 1. LOS CONDICIONANTES DE UN PROCESO DE ORGANIZACIÓN 2. LAS HERRAMIENTAS PARA LA MEJORA DE LA ORGANIZACIÓN

Más detalles

1. Polinomios. 2. Ecuaciones de segundo grado. 3. Soluciones de una ecuación de segundo. grado. Problemas. 4. Sistemas de ecuaciones

1. Polinomios. 2. Ecuaciones de segundo grado. 3. Soluciones de una ecuación de segundo. grado. Problemas. 4. Sistemas de ecuaciones 1. Polinomios 1.1. Suma y resta de polinomios 1.2. Producto de polinomios 1.3. División de polinomios. Regla de Ruffini 1.4. Factorización de polinomios 2. Ecuaciones de segundo grado 2.1. Ecuaciones completas

Más detalles

Técnicas Avanzadas de Control Memoria de ejercicios

Técnicas Avanzadas de Control Memoria de ejercicios Memoria de ejercicios Curso: 2007/08 Titulación: Ingeniero Técnico Industrial Especialidad: Electrónica Industrial Alumno: Adolfo Hilario Tutor: Adolfo Hilario Caballero Índice general Presentación. 2..

Más detalles

Asignación de cargas de trabajo mediante gantt:

Asignación de cargas de trabajo mediante gantt: TEMA 2: PROGRAMACIÒN DE OPERACIONES EJERCICIOS RESUELTOS Asignación de cargas de trabajo mediante gantt: 1. Encuentre un programa factible para los siguientes datos de un taller de producción intermitente:

Más detalles

Inteligencia Artificial

Inteligencia Artificial Inteligencia Artificial Tema 2 Búsquedas Ivan Olmos Pineda Contenido Estructura General de un PSA Formulación de un PSA Algoritmos de Búsqueda de Soluciones Aplicaciones BUAP Inteligencia Artificial 2

Más detalles

Tema 3: El Método Simplex. Algoritmo de las Dos Fases.

Tema 3: El Método Simplex. Algoritmo de las Dos Fases. Tema 3: El Método Simplex Algoritmo de las Dos Fases 31 Motivación Gráfica del método Simplex 32 El método Simplex 33 El método Simplex en Formato Tabla 34 Casos especiales en la aplicación del algoritmo

Más detalles

Unidad V. 5.1 Recta tangente y recta normal a una curva en un punto. Curvas ortogonales.

Unidad V. 5.1 Recta tangente y recta normal a una curva en un punto. Curvas ortogonales. Unidad V Aplicaciones de la derivada 5.1 Recta tangente y recta normal a una curva en un punto. Curvas ortogonales. Una tangente a una curva es una recta que toca la curva en un solo punto y tiene la misma

Más detalles

TEMA 12 COSTES ESTÁNDAR

TEMA 12 COSTES ESTÁNDAR TEMA 12 COSTES ESTÁNDAR 1 12.1. INTRODUCCIÓN Herramienta que se aplica en el proceso de planificación y control Planificación definición de objetivos y medios para lograrlos Parte muy importante en la

Más detalles

Universidad Tec Milenio: Profesional IO04001 Investigación de Operaciones I. Tema # 9

Universidad Tec Milenio: Profesional IO04001 Investigación de Operaciones I. Tema # 9 IO04001 Investigación de Operaciones I Tema # 9 Otras aplicaciones del método simplex Objetivos de aprendizaje Al finalizar el tema serás capaz de: Distinguir y aplicar la técnica de la variable artificial.

Más detalles

CONTENIDOS. 1. Procesos Estocásticos y de Markov. 2. Cadenas de Markov en Tiempo Discreto (CMTD) 3. Comportamiento de Transición de las CMTD

CONTENIDOS. 1. Procesos Estocásticos y de Markov. 2. Cadenas de Markov en Tiempo Discreto (CMTD) 3. Comportamiento de Transición de las CMTD CONTENIDOS 1. Procesos Estocásticos y de Markov 2. Cadenas de Markov en Tiempo Discreto (CMTD) 3. Comportamiento de Transición de las CMTD 4. Comportamiento Estacionario de las CMTD 1. Procesos Estocásticos

Más detalles

Tema 2.- Formas Cuadráticas.

Tema 2.- Formas Cuadráticas. Álgebra. 004 005. Ingenieros Industriales. Departamento de Matemática Aplicada II. Universidad de Sevilla. Tema.- Formas Cuadráticas. Definición y representación matricial. Clasificación de las formas

Más detalles

Ingeniería de Requerimientos. requiere de un Sistema de Software.

Ingeniería de Requerimientos. requiere de un Sistema de Software. Ingeniería de uestableciendo lo que el cliente requiere de un Sistema de Software. Ian Sommerville 1995 Ingeniería de Software, 5a. edición Capitulo 4 Diapositiva 1 Objetivos u Introducción a la Noción

Más detalles

Tema 3: Sistemas de ecuaciones lineales

Tema 3: Sistemas de ecuaciones lineales Tema 3: Sistemas de ecuaciones lineales 1. Introducción Los sistemas de ecuaciones resuelven problemas relacionados con situaciones de la vida cotidiana que tiene que ver con las Ciencias Sociales. Nos

Más detalles

Representación en el espacio de estado. Sistemas Control Embebidos e Instrumentación Electrónica UNIVERSIDAD EAFIT

Representación en el espacio de estado. Sistemas Control Embebidos e Instrumentación Electrónica UNIVERSIDAD EAFIT Representación en el espacio de estado Representación en espacio de estado Control clásico El modelado y control de sistemas basado en la transformada de Laplace, es un enfoque muy sencillo y de fácil

Más detalles

TEMA 5 SISTEMA DE COSTES BASADO EN LAS ACTIVIDADES 5.1. LÍMITES DE LOS SISTEMAS DE COSTES TRADICIONALES

TEMA 5 SISTEMA DE COSTES BASADO EN LAS ACTIVIDADES 5.1. LÍMITES DE LOS SISTEMAS DE COSTES TRADICIONALES TEMA 5 SISTEMA DE COSTES BASADO EN LAS ACTIVIDADES 1 5.1. LÍMITES DE LOS SISTEMAS DE COSTES TRADICIONALES A comienzos del siglo XX fueron desarrollados los sistemas convencionales de cálculo de costes,

Más detalles

Sesión No. 10. Contextualización INFORMÁTICA 1. Nombre: Gestor de Base de Datos (Access)

Sesión No. 10. Contextualización INFORMÁTICA 1. Nombre: Gestor de Base de Datos (Access) INFORMÁTICA INFORMÁTICA 1 Sesión No. 10 Nombre: Gestor de Base de Datos (Access) Contextualización Microsoft Access es un sistema de gestión de bases de datos, creado para uso personal y de pequeñas organizaciones,

Más detalles

Diseño Estructurado de Algoritmos

Diseño Estructurado de Algoritmos Diseño Estructurado de Algoritmos 1 Sesión No. 11 Nombre: Estructuras algorítmicas. Tercera parte. Objetivo de la sesión: Al concluir la sesión el estudiante aplicará las estructuras algorítmicas repetitivas

Más detalles

Z Optima X 1 + X 2 5 Z 1 -X 1 + 2X Región factible. Figura 1

Z Optima X 1 + X 2 5 Z 1 -X 1 + 2X Región factible. Figura 1 Método Gráfico El procedimiento geométrico, es únicamente adecuado para resolver problemas muy pequeños (con no más de dos variables debido al problema de dimensionalidad). Este método provee una gran

Más detalles

Se definen los siguientes objetivos que se extraen de la propuesta anteriormente planteada:

Se definen los siguientes objetivos que se extraen de la propuesta anteriormente planteada: Anexo Introducción Esta herramienta desarrollada junto con toda la información que se ha generado pertenece a un proyecto real. Este desarrollo se incluye en el proyecto MAVSEL (Minería, Análisis y Visualización

Más detalles

DEFINICIONES Y CONCEPTOS (SISTEMAS DE PERCEPCIÓN - DTE) Curso

DEFINICIONES Y CONCEPTOS (SISTEMAS DE PERCEPCIÓN - DTE) Curso DEFINICIONES Y CONCEPTOS (SISTEMAS DE PERCEPCIÓN - DTE) Curso 2009-10 1. Generalidades Instrumentación: En general la instrumentación comprende todas las técnicas, equipos y metodología relacionados con

Más detalles

ASOCIACION CIVIL MAGNUM CITY CLUB Informe de Revisión Especial sobre Procedimientos Previamente Convenidos Diagnóstico Organizacional Reportes

ASOCIACION CIVIL MAGNUM CITY CLUB Informe de Revisión Especial sobre Procedimientos Previamente Convenidos Diagnóstico Organizacional Reportes ASOCIACION CIVIL MAGNUM CITY CLUB Informe de Revisión Especial sobre Procedimientos Previamente Convenidos Diagnóstico Organizacional Reportes Financieros 2013 Resumen Ejecutivo de los Contadores Públicos

Más detalles

1. Caso no lineal: ajuste de una función potencial

1. Caso no lineal: ajuste de una función potencial 1. Caso no lineal: ajuste de una función potencial La presión (P) y el volumen (V ) en un tipo de gas están ligados por una ecuación del tipo PV b = a, siendo a y b dos parámetros desconocidos. A partir

Más detalles

Teorema Central del Límite (1)

Teorema Central del Límite (1) Teorema Central del Límite (1) Definición. Cualquier cantidad calculada a partir de las observaciones de una muestra se llama estadístico. La distribución de los valores que puede tomar un estadístico

Más detalles

Tema 14: Sistemas Secuenciales

Tema 14: Sistemas Secuenciales Tema 14: Sistemas Secuenciales Objetivos: (CONTADORES) Introducción. Características de los contadores. Contadores Asíncronos. Contadores Síncronos. 1 INTRODUCCIÓN Los contadores son sistemas secuenciales

Más detalles

Herramientas de Programación. M.C. Juan Carlos Olivares Rojas

Herramientas de Programación. M.C. Juan Carlos Olivares Rojas Herramientas de Programación M.C. Juan Carlos Olivares Rojas Febrero 2011 Temario Simbología Reglas para la construcción de Diagramas Pseudocódigo Temario Tipos de Datos y Expresiones Estructuras lógicas

Más detalles

Para poder realizar este cambio en Deporwin, hemos añadido una nueva opción, que nos permitirá realizarlo de forma simple y rápida.

Para poder realizar este cambio en Deporwin, hemos añadido una nueva opción, que nos permitirá realizarlo de forma simple y rápida. Según ha establecido la legislación, a partir del próximo día 1 de julio se produce un cambio en los tipos de iva reducido y normal, pasando del 7 al 8% y del 16 al 18% respectivamente. Para poder realizar

Más detalles

UNIDAD 12.- Estadística. Tablas y gráficos (tema12 del libro)

UNIDAD 12.- Estadística. Tablas y gráficos (tema12 del libro) UNIDAD 12.- Estadística. Tablas y gráficos (tema12 del libro) 1. ESTADÍSTICA: CLASES Y CONCEPTOS BÁSICOS En sus orígenes históricos, la Estadística estuvo ligada a cuestiones de Estado (recuentos, censos,

Más detalles

Algoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal

Algoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal Algoritmos y solución de problemas Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal Introducción Departamento de Electrónica, Sistemas e Informática En las ciencias de la computación

Más detalles

Métodos de Búsqueda para juegos humano-maquina. PROF: Lic. Ana María Huayna D.

Métodos de Búsqueda para juegos humano-maquina. PROF: Lic. Ana María Huayna D. Métodos de Búsqueda para juegos humano-maquina PROF: Lic. Ana María Huayna D. Tópicos 1. Introducción 2. Juegos 3. Estrategias de Juego 4. Algoritmo Minimax 5. Algoritmo Poda Alfa-Beta 1.- Introducción

Más detalles

Prueba, caso de prueba, defecto, falla, error, verificación, validación.

Prueba, caso de prueba, defecto, falla, error, verificación, validación. Modelos de Prueba Prueba, caso de prueba, defecto, falla, error, verificación, validación. Prueba: Las Pruebas son básicamente un conjunto de actividades dentro del desarrollo de software, es una investigación

Más detalles

Este documento enumera los diferentes tipos de Diagramas Matriciales y su proceso de construcción.

Este documento enumera los diferentes tipos de Diagramas Matriciales y su proceso de construcción. DIAGRAMA MATRICIAL 1.- INTRODUCCIÓN Este documento enumera los diferentes tipos de Diagramas Matriciales y su proceso de construcción. Muestra su potencial, como herramienta indispensable para la planificación

Más detalles

Anexo 10. Pruebas verificadas

Anexo 10. Pruebas verificadas 1 Anexo 10. Pruebas verificadas Introducción El proceso de pruebas inició con una revisión conceptual para la identificación de las pruebas por realizar, a partir de las características del proyecto. En

Más detalles

Las redes semánticas intentan trasladar esa afirmación a un formalismo Una red semántica será un grafo donde:

Las redes semánticas intentan trasladar esa afirmación a un formalismo Una red semántica será un grafo donde: Redes Semánticas Redes semánticas La lógica como lenguaje de representación tiene dificultades prácticas Son necesarios mecanismos mas intuitivos y fáciles de usar La psicología cognitiva afirma: La representación

Más detalles

ECUACIONES.

ECUACIONES. . ECUACIONES... Introducción. Recordemos que el valor numérico de un polinomio (y, en general, de cualquier epresión algebraica) se calcula sustituyendo la/s variable/s por números (que, en principio,

Más detalles

Mercedes Granda Departamento de Electrónica y Computadores. Las propiedades de las redes de Petri nos permiten

Mercedes Granda Departamento de Electrónica y Computadores. Las propiedades de las redes de Petri nos permiten 22//22 REDES DE PETRI: PROPIEDADES Y MÉTODOS DE ANÁLISIS PROGRAMACIÓN CONCURRENTE MASTER EN COMPUTACIÓN DEPARTAMENTO DE ELECTRÓNICA Y COMPUTADORES UNIVERSIDAD DE CANTABRIA CURSO 22/3 REDES DE PETRI: PROPIEDADES

Más detalles

TEMA 4. PROCESO UNIFICADO

TEMA 4. PROCESO UNIFICADO TEMA 4. PROCESO UNIFICADO Diseño El objetivo final del diseño es producir un Modelo Lógico del sistema a implementar. Diferencia entre Análisis y Diseño del Proceso Unificado Modelo de Análisis Modelo

Más detalles

Inteligencia artificial

Inteligencia artificial Inteligencia artificial Proceso de Lenguaje Natural Qué es el Lenguaje? Qué es el Lenguaje Natural? Procesamiento del lenguaje Natural (PLN) Aplicaciones PLN Niveles del Lenguaje Arquitectura de un sistema

Más detalles

RESUMEN DE LA POLÍTICA DE CONFLICTOS DE INTERÉS GRUPO CIMD

RESUMEN DE LA POLÍTICA DE CONFLICTOS DE INTERÉS GRUPO CIMD RESUMEN DE LA POLÍTICA DE CONFLICTOS DE INTERÉS GRUPO CIMD Versión 31.10.2014 I. INTRODUCCIÓN La normativa vigente, legislación comunitaria MiFID (Directiva 2004/39/CE del Parlamento Europeo y de la Comisión

Más detalles

Universidad de Oriente Núcleo de Bolívar Unidad de cursos básicos Matemáticas IV. María Palma Roselvis Flores

Universidad de Oriente Núcleo de Bolívar Unidad de cursos básicos Matemáticas IV. María Palma Roselvis Flores Universidad de Oriente Núcleo de Bolívar Unidad de cursos básicos Matemáticas IV Profesor: Cristian Castillo Bachilleres: Yessica Flores María Palma Roselvis Flores Ciudad Bolívar; Marzo de 2010 Movimiento

Más detalles

Diseño arquitectónico 1ª edición (2002)

Diseño arquitectónico 1ª edición (2002) Unidades temáticas de Ingeniería del Software Diseño arquitectónico 1ª edición (2002) Facultad de Informática objetivo Los sistemas grandes se descomponen en subsistemas que suministran un conjunto relacionado

Más detalles

A/42/10 ANEXO IV TASAS DEL PCT Y MECANISMOS RELATIVOS AL TIPO DE CAMBIO

A/42/10 ANEXO IV TASAS DEL PCT Y MECANISMOS RELATIVOS AL TIPO DE CAMBIO ANEXO IV TASAS DEL PCT Y MECANISMOS RELATIVOS AL TIPO DE CAMBIO Reseña 1. Las previsiones y los ingresos del PCT en la Oficina Internacional se expresan en francos suizos. Sin embargo, los solicitantes

Más detalles

INTRODUCCION 1.1.-PREAMBULO

INTRODUCCION 1.1.-PREAMBULO INTRODUCCION 1.1.-PREAMBULO El suelo en un sitio de construcción no siempre será totalmente adecuado para soportar estructuras como edificios, puentes, carreteras y presas. Los estratos de arcillas blanda

Más detalles

CAPÍTULO 4 RECOPILACIÓN DE DATOS Y CÁLCULO DEL VPN. En el presente capítulo se presenta lo que es la recopilación de los datos que se tomarán

CAPÍTULO 4 RECOPILACIÓN DE DATOS Y CÁLCULO DEL VPN. En el presente capítulo se presenta lo que es la recopilación de los datos que se tomarán CAPÍTULO 4 RECOPILACIÓN DE DATOS Y CÁLCULO DEL VPN En el presente capítulo se presenta lo que es la recopilación de los datos que se tomarán para realizar un análisis, la obtención del rendimiento esperado

Más detalles

PROCEDIMIENTO DE ACCIONES CORRECTIVAS Y PREVENTIVAS

PROCEDIMIENTO DE ACCIONES CORRECTIVAS Y PREVENTIVAS PÁGINA 1 DE 5 1. OBJETIVO Establecer un método unificado para identificar, analizar y tratar las causas de No conformidades reales o potenciales, observaciones, u objeto de mejora para el Sistema Integrado

Más detalles

El término productividad, con frecuencia, se confunde con el término producción. Muchas

El término productividad, con frecuencia, se confunde con el término producción. Muchas RESUMEN El término productividad, con frecuencia, se confunde con el término producción. Muchas personas piensan que a mayor producción más productividad, pero esto no es necesariamente cierto. Producción

Más detalles

Fase 2. Estudio de mercado: ESTADÍSTICA

Fase 2. Estudio de mercado: ESTADÍSTICA 1. CONCEPTO DE ESTADÍSTICA. ESTADÍSTICA DESCRIPTIVA 2. 3. TABLA DE FRECUENCIAS 4. REPRESENTACIONES GRÁFICAS 5. TIPOS DE MEDIDAS: A. MEDIDAS DE POSICIÓN B. MEDIDAS DE DISPERSIÓN C. MEDIDAS DE FORMA 1 1.

Más detalles

Matemáticas UNIDAD 5 CONSIDERACIONES METODOLÓGICAS. Material de apoyo para el docente. Preparado por: Héctor Muñoz

Matemáticas UNIDAD 5 CONSIDERACIONES METODOLÓGICAS. Material de apoyo para el docente. Preparado por: Héctor Muñoz CONSIDERACIONES METODOLÓGICAS Material de apoyo para el docente UNIDAD 5 Preparado por: Héctor Muñoz Diseño Gráfico por: www.genesisgrafica.cl LA RELACIÓN DE PROPORCIONALIDAD 1. DESCRIPCIÓN GENERAL DE

Más detalles