Trabajo Final Lic. en Ciencias de la Computación Optimización en Dominios de Planificación
|
|
- Carmelo Paz Santos
- hace 8 años
- Vistas:
Transcripción
1 Trabajo Final Lic. en Ciencias de la Computación Optimización en Dominios de Planificación Alumno: Facundo Bustos Director: Dr. Carlos Areces FaMAF Universidad Nacional de Córdoba Año
2 The ACM Computing Classification System (1998): I. Computing Methodologies. I.2. ARTIFICIAL INTELLIGENCE. I.2.8. Problem Solving, Control Methods, and Search. -Scheduling Palabras claves: -Planificación -Planificadores -Dominios -Split -Optimización Resumen: Dentro del área de la Inteligencia Artificial, el problema de la planificación consiste básicamente en, dado un conjunto finito de acciones, un estado inicial y un objetivo, decidir si existe o no una secuencia finita de tales acciones que me permita pasar del estado inicial a un estado en el cual se satisface dicho objetivo. Al conjunto de acciones de un problema de planificación se lo llama dominio. Actualmente existen algoritmos, llamados planificadores, que realizan esta tarea. Nuestro trabajo consistirá en encontrar una transformación de un problema de planificación P P en otro problema de planificación P P, tal que, los tiempos de respuesta por parte del planificador sean menores en P P que en P P, teniendo que existir la propiedad de que el conjunto de soluciones entre ambos problemas de planificación se preservan, es decir, que podamos recuperar una solución de P P a través de una solución de P P y viceversa. Vamos a explicar en detalle la técnica de transformación llamada Split y luego presentamos una formalización de la misma que nos sirva para poder demostrar formalmente propiedes deseables de nuestra técnica. Proponemos cuatro algoritmos que automatizan la técnica, analizando sus ventajas y desventajas. Finalmente analizamos y discutimos los resultados arrojados en diez dominios de planificación de prueba, comparando la performace del dominio Split con respecto al dominio original. 1
3 Índice 1. Introducción 4 2. El problema de planificación Conceptos de un problema de planificación Ejemplo de un problema de planificación El lenguaje de especificación para los problemas de planificación Formalizando el problema de planificación Noción de equivalencia entre dominios de planificación Equivalencia en sistemas de ecuaciones lineales Equivalencia en lógica proposicional Equivalencia en dominios de planificación Split de un dominio de planificación Ejemplo de Split de una acción Cómo obtenemos un Split a partir de un esquema de acción? Definición formal de Split La importancia del orden de ejecución de las subacciones del Split Preservando el conjunto de soluciones Definción formal del sistema de tokens Obteniendo la transformación de un problema de planificación Recuperando un solución de P P a través de su transformación P P y viceversa Split y equivalencia, parte formal Algoritmos de Split Analizando el espacio de búsqueda de los cubrimientos de una acción Criterios de preferencia entre cubrimientos Algoritmo de cubrimiento: Literal Fit Algoritmo de cubrimiento: Greedy Merger Algoritmo de cubrimiento: Optimized Literal Fit Algoritmo de cubrimiento: Π-Merger Algoritmo de mapeo
4 6. Pruebas y análisis de los resultados obtenidos con los algoritmos de Split Definición de la métrica Delta Gráfica Delta Literal Fit Gráfica Delta Greedy Merger Gráfica Delta Optimized Literal Fit Gráfica Delta Π-Merger Observando los diferentes Splits en los dominios d1, d5 y d Utilizando Split en modo concurrente Utilizando Split en modo off-line Resumen y Conclusiones 79 3
5 1. Introducción En computación, el problema de planificación consiste intuitivamente en decidir si existe o no una secuencia finita de acciones que me permita llegar de un estado inicial a un estado en el cual se satisface un determinado objetivo. Al conjunto de acciones de un problema de planificación se lo llama dominio. Actualmente existen algoritmos, usualmente llamados planificadores, que realizan esta tarea, tales como Graphplan [1], SatPlan, FastFoward [1] entre otros. Nuestro trabajo consistirá en encontrar una transformación de un problema de planificación P P en otro problema P P, tal que, los tiempos de respuesta por parte del planificador sean menores en P P que en P P, teniendo que existir la propiedad de que el conjunto de soluciones entre ambos problemas de planificación se preservan, es decir, que podamos recuperar una solución de P P a través de una solución de P P y viceversa. Vamos a automatizar dicha transformación y probar su funcionamiento en diferentes problemas de planificación para poder inferir empíricamente si se produce o no una optimización en el tiempo de respuesta del planificador. Los objetivos cumplidos o logros de este trabajo son: Comprendimos los conceptos básicos y la complejidad asociada al problema de planificación. Presentamos una formalización del problema de planificación que permita probar propiedades deseables de nuestra técnica de optimización. Empezamos a estudiar el concepto de equivalencia entre dominios de planificación. Presentamos una primera definición de equivalencia y probamos formalmente que dicha definición preserva el conjunto de soluciones de problemas de planificación. Presentamos en detalle la técnica Split del Dr. Carlos Areces, sus conceptos básicos y restricciones, para obtener dominios que satisfacen nuestra definición de equivalencia. Explicamos la ventaja que presenta el dominio Split con respecto al dominio original. Definimos formalmente la técnica de Split y probamos formalmente que permite obtener dominios equivalentes. Propusimos e implementamos diferentes algoritmos de Split (en lenguaje Java), estudiando sus ventajas y desventajas. 4
6 Observamos el funcionamiento o performances de los dominios obtenidos mediante los algoritmos de Split que se implementaron y lo comparamos con el performace del dominio original en un conjunto de diez dominios de prueba. Verificamos empíricamente si Split reduce o no el tiempo de respuesta del planificador. Con respecto a la estructura de este texto, en la sección 2 se presentan los conceptos básicos asociados a los problemas de planificación, así como también ejemplos concretos, su lenguaje de especificación formal (PDDL) y finalmente su formalización matemática. En la sección 3 se presenta una noción de equivalencia entre dominios de planificación y su definición formal. Luego demostramos que problemas de planificación con dominios equivalentes preservan las soluciones. En la sección 4 damos una técnica automatizable, llamada Split, para halllar dominios equivalentes, explicamos sus conceptos, detalles de su implementación y por qué esperamos que dicha técnica resulte en una optimización en los tiempos de respuestas del planificador. Finalmente formalizamos la técnica y luego probamos que efectivamente al aplicarla obtenemos un dominio equivalente. En la sección 5 se presentan ciertos algoritmos de Split que implementan diferentes heurísticas, enumerando sus ventajas y desventajas. En la seccion 6 se presentan diferentes gráficas donde se comparan las performances de los algoritmos de Split presentados en la sección 5 con respecto a la performace del dominio original sobre un conjunto de diez dominios que fueron bajados de la web de las competencias internacionales de planificación ICAPS[6]. Finalmente en la sección 7 y última de este texto, presentamos un resumen y conclusiones del trabajo realizado. 5
7 2. El problema de planificación Como dijimos en la introducción el problema de planificación consiste intuitivamente en decidir si existe o no una secuencia finita de acciones que me permita llegar de un estado inicial a un estado en el cual se satisface un determinado objetivo. Los planificadores, que así se denominan a los algoritmos que deciden si existe o no solución para un problema de planificación dado son algoritmos que operan con representaciones proposicionales explícitas de estado y acciones. Estas representaciones hacen posible la obtención de heurísticas efectivas y el desarrollo de poderosos y flexibles algoritmos para la resolución de problemas. La planificación en Inteligencia Artificial (IA) emerge de la investigación en áreas tales como búsquedas en el espacio de estados, demostración de teoremas y teoría de control, desde las necesidades prácticas en robótica, organización y otros dominios. La planificación es, actualmente, un área de gran interés dentro de la IA. Una razón de esto es que combina dos grandes áreas de IA: búsquedas y lógica. Esto es, un planificador puede ser visto tanto como un programa que busca la solución o como uno que (constructivamente) proporcione la existencia de una solución. Lo fértil del cruce de ideas desde ambas áreas ha llevado a un avance en la pasada década de varios órdenes de magnitud y un aumento del uso de planificadores en aplicaciones industriales. Desafortunadamente, no se tiene una clara comprensión de qué técnicas funcionan mejor en qué clase de problemas. La planificación es, en primer lugar, un ejercicio de control de la explosión combinatoria. Si tenemos un número p de proposiciones primitivas en un dominio tendremos 2 p estados. Para dominios complejos, p puede crecer mucho. La planificación es una tarea compleja, de hecho, se conoce que el problema de planificación pertenece al conjunto de problema de complejidad PSPACE-COMPLETO. De aquí se deduce la importancia de hallar una técnica que permita en muchos casos lograr optimizar el tiempo de respuesta del planificacador Conceptos de un problema de planificación Representación de estados. Los planificadores representan el mundo en términos de condiciones lógicas y representan un estado como un conjunto de literales positivos. Por ejemplo {P obre, Desconocido} puede representar un agente desafortunado. Tambien se utilizan literales de primer orden, como por ejemplo, {En(avion 1, ezeiza), En(avion 2, aeroparque)} que puede representar un estado en un problema de reparto de encomiendas, en donde 6
8 el avion 1 se encuentra en el aeropuerto de Ezeiza mientras que el avion 2 se encuentra en el aeropuerto de Aeroparque. La hipótesis de un mundo cerrado es asumida por lo que todas las condiciones que no son mencionadas en un estado se asumen que son falsas. Representación de objetivos. Un objetivo será un estado parcialmente especificado, representado por un conjunto de literales positivos, tales como {Rico, F amoso} o {En(avion 1, argentina)}. Un estado s satisface un objetivo g si s contiene al menos todos los elementos de g, por ejemplo, el estado {Rico, F amoso, Enf ermo} satisface el objetivo {Rico, F amoso}. Representación de acciones. Una acción es especificada en términos de las precondiciones que deben cumplirse antes de ser ejecutada y de las consecuencias que siguen cuando se ejecuta. Por ejemplo, la acción que especifica que un avión vuela de una ciudad a otra puede representarse con el siguiente esquema de acción: AccionV olar(p : Avion, Desde, Hacia : Aeropuerto) pre : {En(P, Desde)} ef ecto : { En(P, Desde), En(P, Hasta)} Para hacer más sencilla la legibilidad, algunos sistemas de planificación dividen en dos lconjuntos los efectos de las acciones, un conjunto add de literales positivos que serán interpretados como ciertos luego de ejecutada la acción y un conjunto del, también de literales positivos, que serán interpretados como falsos luego de ejecutada la acción. En consecuencia, nuestra acción anterior V olaravion se podría especificar de la siguiente manera: AccionV olar(p : Avion, Desde, Hacia : Aeropuerto) pre : {En(P, Desde) add : {En(P, Hasta)} del : {En(P, Desde)} Notar que con esta última forma de especificar una acción logramos que su definición sea sólo en terminos de literales positivos. Por otro lado, observar que el esquema de acción anterior en realidad representa varias acciones posibles, en particular una por cada instanciación posible de sus variables. Diremos que una acción instanciada es ejecutable en un estado si este satisface su precondición, en caso contrario la acción 7
9 no tiene efecto. Veamos esto con un ejemplo. Supongamos que tenemos un estado s descripto por: {En(avion 1, ezeiza), En(avion 2, aeroparque)} Dicho estado s satisface la precondición de la acción AccionV olar para la siguiente instanciación de sus variables: [P avion 1, Desde ezeiza, Hasta aeroparque]. De esta forma la acción instanciada AccionV olar(avion 1, ezeiza, aeroparque) es ejecutable en s y al ejecutar la acción pasamos del estado s al siguiente estado: {En(avion 1, aeroparque), En(avion 2, aeroparque)} En general, el resultado de ejecutar una acción instanciada a en un estado s nos lleva a un estado w, que es exactamente igual a s excepto que cualquier literal positivo en el conjunto add es agregado a w y cualquier literal positivo de la lista del es eliminado de w Ejemplo de un problema de planificación Ahora estamos en condiciones de dar una ejemplo concreto y completo de un problema de planificación [1]. Se trata de un problema de transporte de carga aéreo el cual es definido mediante tres acciones: Cargar, Descargar y Volar. Las acciones se definen principalmente en términos de dos literales: Dentro(C, P ) significa que la carga C está dentro del avión P y En(X, A) significa que X (tanto avión como carga) está en el aeropuerto A. EstadoInicial : {En(carga 1, ezeiza), En(carga 2, aeroparque), En(avion 1, ezeiza), En(avion 2, aeroparque)} Objetivo : {En(carga 1, aeroparque), En(carga 2, ezeiza)} AccionCargar(C : Carga, P : Avion, A : Aeropuerto) pre : {En(C, A), En(P, A)} add : {Dentro(C, P )} del : {En(C, A)} 8
10 AccionDescargar(C : Carga, P : Avion, A : Aeropuerto) pre : {Dentro(C, P ), En(P, A)} add : {En(C, A)} del : {Dentro(C, P )} AccionV olar(p : Avion, Desde, Hasta : Aeropuerto) pre : {En(P, Desde)} add : {En(P, Hasta)} del : {En(P, Desde)} La siguiente secuencia de acciones es un plan del problema: 1. AccionCargar(carga 1, avion 1, ezeiza) 2. AccionV olar(avion 1, ezeiza, aeroparque) 3. AccionCargar(carga 2, avion 2, aeroparque) 4. AccionV olar(avion 2, aeroparque, ezeiza) 5. AccionDescargar(carga 1, avion 1, aeroparque) 6. AccionDescargar(carga 2, avion 2, ezeiza) 2.3. El lenguaje de especificación para los problemas de planificación PDDL [3] (Planning Domain Definition Language) tiene como objetivo estandarizar la descripción de dominios y problemas de planificación dentro del área de Inteligencia Artificial. En un pricipio fue desarrollado por Drew Mc Dermott con la ayuda de algunos colegas para las competencias internacionales de planificación de los años , en donde se compararon las performances de diferentes algoritmos de planificación, por lo tanto era necesesario un lenguaje común de especificación de problemas. Una especificación PDDL consiste en dos partes: la definición del dominio y la definición del problema. A partir de ahora, hablaremos de especificaciones STRIPS [4] (Stanford Research Institute Problem Solver, desarrollado por Richard Fikes y Nils Nilsson en el año 1971), que es un sub-lenguaje de PDDL, es decir, es un lenguaje mas simple y de menor expresividad. En STRIPS, la definición del dominio contiene principalmente la definición de los predicados y las acciones. Un dominio STRIPS tiene en general el siguiente formato: 9
11 (define (domain DOMAIN_NAME) (:requirements :strips :typing) (:types NAME 1... NAME N) (:predicates (PREDICATE_1_NAME?A1 - TYPE-A1?A2 - TYPE-A2...?AN - TYPE-AN) (PREDICATE_2_NAME?A1 - TYPE-A1?A2 - TYPE-A2...?AN - TYPE-AN)...) (:action ACTION_1_NAME :parameters (?P1 - TYPE-P1?P2 - TYPE-P2...?PN - TYPE-PN) :precondition PRECOND_FORMULA :effect EFFECT_FORMULA ) (:action ACTION_2_NAME...)...) Los nombres (del dominio, predicados, acciones) son caracteres alfanuméricos, guiones, guiones bajos. Los parámetros de los predicados y acciones comienzan con el caracter?. Los parámetros usados en la declaración de los predicados no tiene otra función que especificar la cantidad y tipo que el predicado debe tener, i.e. el nombre del parámetro en sí no tiene importancia. Además los predicados pueden no tener parámetros, en cuyo caso se denota con paréntesis vacios. La precondición de una acción (la sección precondition:) puede ser una fórmula atómica (un único predicado) o una conjunción de fórmulas atómicas. Mientras que su efecto (la sección precondition:) será una fórmula atómica, la negación de una fómula atómica, o una conjunción de ellas. Cabe aclarar, que los parámetros de cada uno de los predicados que ocurren en la acción deben ser también parámetros de la acción. Por el otro lado, la definición del problema, contiene la especificación de los objetos que representan las instancias del problema, un estado inicial y la descripción de un objetivo, en el siguiente formato: (define (problem PROBLEM_NAME) (:domain DOMAIN_NAME) (:objects OBJ1 - TYPE1 OBJ2 - TYPE2... OBJM - TYPEM) (:init ATOM1 ATOM2... ATOM_N) (:goal CONDITION_FORMULA) ) 10
12 La descripción del estado inicial (la sección init:) es simplemente una lista de átomos que son verdaderos en el estado inicial mientras que cualquier otro es considerado como falso. La descripción del objetivo (la sección goal:) es una fórmula atómica o una conjunción de formulas atómicas, es decir, igual que en el caso de las precondiciones de las acciones. Por último, PDDL posee la capacidad de declarar tipos, es decir, que cada objeto o instancia declarada en el problema estará asociado a un tipo particular. Para ello debemos: 1. Declarar el requerimiento de tipos en la definición del dominio (:requirements strips, typing) 2. Definir los tipos, esto se debe realizar antes de usarlos en la definición de los predicados (:types NAME 1... NAME N) Para declarar los tipos de los parámetros tanto en los predicados como en las acciones uno escribe?x - TYPE-OF-X. Una lista de parámetros que tiene el mismo tipo se puede abreviar?x?y?z - TYPE-OF-XYZ. La sintaxis para definir los tipos de los objetos o instancias en la definición del problema es exactamente igual. Se recomienda leer [5] para más detalles sobre especificación en PDDL. Continuando con el ejemplo de la sección 2.2 sobre transporte de carga aéreo, veamos como se especifica en PDDL. Primero, la especificación del dominio: (define (domain TransporteCargaAereo) (:requirements :strips :typing) (:types Carga Avion Aeropuerto) (:predicates (Dentro?C - Carga?P - Avion) (Enc?C - Carga?A - Aeropuerto) (Enp?P - Avion?A - Aeropuerto)) (:action Cargar :parameters(?c - Carga?P - Avion?A - Aeropuerto) :precondition(and (Enc?C?A) (Enp?P?A)) :effect(and (not(enc?c?a)) (Dentro?C?P)) 11
13 ) (:action Descargar :parameters(?c - Carga?P - Avion?A - Aeropuerto) :precondition (and (Dentro?C?P) (Enp?P?A) ) :effect (and (Enc?C?A) (not (Dentro?C?P))) ) (:action Volar :parameters(?p - Avion?Desde - Aeropuerto?Hasta - Aeropuerto) :precondition (and (Enp?P?Desde) ) :effect (and (not (Enp?P?Desde)) (Enp?P?Hasta)) ) ) Finalmente la especificación del problema: (define (problem TransporteCargaAereoProblema) (:domain TransporteCargaAereo) (:objects carga_1 carga_2 - Carga avion_1 avion_2 - Avion ezeiza aeroparque - Aeropuerto ) (:init (Enc carga_1 ezeiza) (Enc carga_2 aeroparque) (Enp avion_1 ezeiza) (Enp avion_2 aeroparque) ) (:goal (and (Enc carga_1 aeroparque) (Enc carga_2 ezeiza) ) ) ) 2.4. Formalizando el problema de planificación Ahora intentaremos dar una formalización matemática del problema de planificación. Para ello pensaremos las acciones como ya instanciadas y sus efectos positivos y negativos separados en dos conjuntos diferentes para poder especificar una acción en términos sólo de literales positivos (en la Sección 2.1 ya se había hecho referencia a esta posibilidad). Una acción a será una 3-upla (pre, add, del) donde pre, add, del son conjuntos finitos de literales positivos instanciados tales que add del =. Denotaremos pre(a) = pre, add(a) = add y del(a) = del. Sea Lit(a) = pre(a) add(a) del(a), el conjunto de literales que ocurren en la acción a. Sea A conjunto finito de acciones, Lit(A) = {Lit(a) : a A} 12
14 será el espacio de literales de A, mientras que Σ A = P(Lit(A)) el espacio de estados definido por A. Un estado será cualquier s Σ A, donde los literales que pertenecen a s se asumen verdaderos mientras que los literales en Lit(A) \ s se consideran falsos. Definición 1. Un problema de planificación P P será una 3-upla (A, s 0, F ) donde A = {a 1,..., a n } un conjunto finito no vacío de acciones, llamado dominio. s 0 Σ A, llamado el estado inicial. F Σ A, llamado el conjunto de estados finales. Definimos la siguiente relación de transición: sean a A y s, w Σ A, s a w sii pre(a) s y w = (s add(a)) \ del(a). Diremos que a es ejecutable en s sii s a w para algún w Σ A. Denotaremos con A el conjunto de todas las secuencias o cadenas finitas de acciones, es decir, A = {a 1...a n : a i A, n >= 0} y con ε la cadena vacia. Sea a = a 1...a n definimos, s a a w sii s 0...s n Σ A. s 1 0 s1...s n 1 y s 0 = s, s n = w. Si s a w diremos que a lleva de s a w. a n sn Definimos el conjunto de soluciones para un problema de planificación, Sol(PP) = {a A a : s 0 sf, con s f F }. Diremos que a A es un plan de P P sii a Sol(PP). 13
15 3. Noción de equivalencia entre dominios de planificación En muchas áreas de la matemática es interesante poder observar cuándo dos objetos se comportan en forma similar con respecto a una propiedad matemática puntual. Aquí es donde nace el concepto de equivalencia entre objetos matemáticos. La idea es poder concluir ciertas propiedades de uno de ellos a través del comportamiento del otro. Vamos a comenzar repasando definiciones de equivalencia en distintas áreas de la matemática y finalmente vamos a introducir el concepto de equivalencia entre dominios de planificación Equivalencia en sistemas de ecuaciones lineales En el álgebra lineal, sabemos que dos sistemas de ecuaciones lineales son equivalentes si uno es combinación lineal del otro y viceversa [2]. Se ha demostrado que sistemas de ecuaciones lineales que cumplen con esta definición de equivalencia tienen las misma soluciones. La importancia de esto radica en que, dado un sistema de ecuaciones lineales, podemos encontrar otro sistema de ecuaciones, equivalente al primero, cuyas soluciones son exactamente las mismas que las del primer sistema pero que en el segundo son más fáciles de calcular, o computacionalemte hablando, más baratas de encontrar si es que lo hiciéramos mediante algún método numérico. Veamos con un ejemplo como esta noción de equivalencia entre sistemas de ecuaciones lineales nos es útil para encontrar las soluciones de un sistema de ecuaciones dado. Supongamos que queremos encontrar la solución del siguiente sistema de ecuaciones lineales: 2x 1 x 2 + 3x 3 + 2x 4 = 0 x 1 + 4x 2 x 4 = 0 2x 1 + 6x 2 x 3 + 5x 4 = 0 Representamos el sistema con la siguiente matriz: Sabemos que si aplicamos una secuencia de operaciones elementales de fila sobre una matriz cualquiera obtenemos otra que es combinación lineal 14
16 de la primera y viceversa. Por lo tanto, luego de aplicar ciertas operaciones elementales de fila sobre la matriz anterior, obtenemos: Esta última matriz representa el sistema: x x 4 = 0 x x 4 = 0 x x 4 = 0 Estos dos sistemas cumplen con la definición de sistemas equivalentes y por lo tanto, tienen las mismas soluciones. Ahora, está claro que si en el segundo sistema, asignamos a x 4 un valor c cualquiera, se obtiene que toda solución es de la forma ( 17 3 c, 5 3 c, 11 3 c, c), es decir, logramos obtener la solución del primer sistema mediante la solución del segundo sistema, en el cual fue más fácil hallar la solución Equivalencia en lógica proposicional Una de las definiciones de equivalencia entre fórmulas de la lógica proposicional que podemos encontrar dice que, dos fórmulas φ y ψ son equivalentes si y sólo si la fórmula φ ψ es una tautología. Se puede ver que, si dos fórmula son equivalentes, entonces todos los modelos que satisfacen una de las fórmulas también satisfacen la otra y vicerversa. Supongamos que dada una fórmula proposicional debemos decidir si es satisfacible o no (recordando que una fórmula es satisfacible si existe al menos un modelo que la satisface). Para ello podríamos encontrar otra fórmula, equivalente a la primera, para la cual, decidir si es o no satisfacible sea mucho más simple. Veamos un ejemplo. Sea φ = ( p q) (p q), debemos decidir si existe un modelo (o sea, una asignación sobre {true, f alse} de las variables proposicionales p, q) tal que φ sea verdadera. Sabemos que toda fórmula proposicional es equivalente a otra en forma normal conjuntiva donde esta última fórmula se obtiene de la primera a partir de aplicar ciertas reglas sintácticas que escapan el alcance de este texto. Aplicando dichas reglas sintácticas obtenemos que 15
17 ψ = ( p q) es la fórmula en forma normal conjuntiva equivalente a φ. Luego, vemos que cualquier modelo que asigne a la variable q el valor de verdad true satisface ψ, por lo tanto, también satisface φ, es decir, logramos ver que φ es satisfacible utilizando su equivalencia con ψ Equivalencia en dominios de planificación Nuestra intención es definir una noción de equivalencia entre dominios tal que podamos obtener un plan de uno de ellos a través de un plan del otro y viceversa. Una primer definición de equivalencia podría ser aquella tal que si dos dominios A y A son equivalentes entonces todo plan de A es también plan de A y viceversa. Una definición así tiene el defecto de que las acciones de ambos dominios deberían ser las mismas, es decir, obliga a que el espacio de soluciones de problemas de planificación que tienen a A y A como dominios sean el mismo. La idea es poder definir una noción de equivalencia entre dominios que pueden ser completamente diferentes y que además sea lo más general posible. En otras palabras, lo que nos interesa es que los dominios posean un espacio de soluciones equivalente, siempre que un problema de uno de los dominios tenga una solución, esto también ocurre en el otro y viceversa. Además para poder utilizar uno de los dominios como alternativa del otro, vamos a pedir que sea posible traducir una solución de uno de ellos en una solución del otro. Como consecuencia, necesitamos introducir el concepto de traducción de un plan de A en un plan de A y viceversa. También necesitamos una traducción de los estados que define A hacia los estados que define A. La idea de nuestra definición es que, si uno pasa de un estado s a un estado w mediante una secuencia de acciones a de A, entonces debe existir una traducción de a en una secuencia de acciones a de A tal que permita pasar del estado que es traducción de s a un estado que es traducción de w. Recíprocamente, si tenemos una secuencia de acciones a de A que me lleva de un estado que es traducción de un estado s de A a un estado que es también traducción de un estado w de A, entonces debe existir una traducción de a en una secuencia de acciones a de A que me lleve de s a w. Es importante destacar que esta condición no se necesita que se cumpla para cualesquiera dos estados s y w, sino para ciertos estados que son los que se van a configurar finalmente como estado inicial y final para un problema de planificación. Por lo tanto restringiremos la noción de equivalencia a un conjunto de pares de posibles estados iniciales y finales. Dicho todo esto, ya estamos en condiciones de enunciar la definición formal de equivalencia entre dominios de planificación que finalmente vamos a estudiar. 16
18 Definición 2. Sean A, A dominios, C Σ A Σ A un conjunto de pares de estados, T : Σ A Σ A, t : A A, t : A A. Diremos que A y A son equivalentes via T, t, t en el contexto C (notación, A T,t,t C A ) sii i. (s, w) C. a A. s a w T (s) t(a) T (w) ii. (s, w) C. a A. T (s) a T (w) s t (a ) w. Notar que la ralación T,t,t C no es una relación de equivalencia. Si bien es reflexiva (basta con tomar T, t, t como la identidad) no es necesariamente simétrica ni transitiva. Para obtener estas últimas dos propiedades deberíamos, por ejemplo, tomar C como el conjunto de todos los estados y requerir que T sea biyectiva (para asegurar que T 1 esté bien definida). Pero estos requisitos no son necesarios para asegurar equivalencia del espacio de soluciones que es lo que buscamos (ver Teorema 1) y además hacen menos general la definición. Veamos un ejemplo que nos ayude a interpretar la definición anterior. A continuación se presentan dos dominios de planificación, A = {a1, a2} y B = {b1, b2, b3, b4} que cumplirán con la definición de equivalencia propuesta. Figura 1: Dominios equivalentes. 17
19 Tomaremos las siguientes funciones de traducción, T (S1) = S1, T (S2) = S2, T (S3) = S3, t(a1)=b1b2, t(a2)=b3, t (b1b2)=a1, t (b3)=a2 y el contexto C = {(S1,S2), (S1,S3)}. Notar que los estados primados en el segundo se corresponde con las traducciones de los estados del primero. Uno puede pasar de S1 a S2 mediante a1 en el dominio A mientras que en B uno puede pasar de S1 a S2 mediante b1 seguido de b2. Similarmente, uno puede pasar de S1 a S3 mediante a2 en el dominio A mientras que en B se puede pasar de S1 a S3 mediante b3. Recíprocamente uno puede pasar de S1 a S2 en B mediante b1 seguido de b2 mientras que en A uno puede pasar de S1 a S2 con a1, finalmente vamos de S1 a S3 mediante b3, en tanto que, en A podemos pasamos de S1 a S3 mediante a2. Ahora, enunciaremos el teorema que asegura que problemas de planificación con dominios equivalentes preservan el conjunto de soluciones. Es decir, el teorema garantiza que podemos recuperar un plan de uno de los problemas de planificación a través de la traducción de un plan del otro. Teorema 1. Si A T,t,t C A, entonces tomando P P = (A, s 0, F ) y P P = (A, T (s 0 ), T (F )) problemas de planificación tales que s f F : (s 0, s f ) C, se cumple que: i. t(sol(p P )) Sol(P P ) ii. t (Sol(P P ) Sol(P P ). Demo I: veamos que si a Sol(P P ), entonces t(a) Sol(P P ). Sea a Sol(P P ) a s 0 sf con s f F T (s 0 ) t(a) T (s f ) t(a) Sol(P P ) por definición de equivalencia Demo II: veamos que si a Sol(P P ), entonces t (a ) Sol(P P ). Sea a Sol(P P ) T (s 0 ) a T (s f ) para algún s f F t s (a ) 0 s f t (a ) Sol(P P ) por definición de equivalencia 18
20 4. Split de un dominio de planificación En esta sección, nos abocaremos a lograr una transformación de un problema de planificación P P en otro P P, cuyos dominios sean equivalentes para recuperar un plan de P P mediante un plan de P P, tal que exista una optimización en el tiempo de respuesta del planificador en P P con respecto a P P. La estrategia para la transformación del problema de planificación consiste básicamente en tomar cada acción del dominio de P P y dividirla en partes o subacciones tal que al ejecutar las subacciones en forma consecutiva se tenga los mismos efectos que ejecutar la acción original. Intuitivamente, al dividir una acción en subacciones se reduce la cantidad de instanciaciones que debe realizar el planificador y por consiguiente, debería reducirse el tiempo de respuesta del mismo. Es decir, suponemos que menor cantidad de instanciaciones implica menor tiempo de respuesta. Esta estrategia de dividir las acciones de un dominio, tiene como contrapartida un incremento en la cantidad de acciones resultantes haciendo que nuestros planes sean más extensos. Es decir, si pensamos el problema de planificación como una simple búsqueda en un grafo, podemos afirmar que Split reduce el número de ramificaciones (branch) pero con el costo de generar mayor profundida(depth) en el grafo.y este será el costo que se debe asumir por aplicar dicha estrategia Ejemplo de Split de una acción Veamos con un ejemplo en qué consiste y qué se logra con la división de una acción en subacciones: Move(A, B, C : Bloque) pre : {on(a, B), clear(a), clear(c)} add : {on(a, C), clear(b)} del : {on(a, B), clear(c)} El esquema de acción Move en este caso tiene 3 variables todas del tipo Bloque. Supongamos que existen m objetos de tipo Bloque en el problema de planificación. Por lo tanto, el planificador deberá instanciar el esquema de acción para cada uno de las posibles combinaciones de estas instancias para establecer cuál de todas estas acciones concretas son ejecutables en un 19
21 Figura 2: Ejecución de la acción Move(A, B, C). estado dado. Es decir, realizará m 3 instanciaciones y chequeará la ejecutabilidad de cada una ellas. Ahora, dividamos la acción M ove en dos subacciones: Move 1 (A, B : Bloque) pre : {on(a, B), clear(a)} add : {clear(b)} del : {on(a, B)} Move 2 (A, C : Bloque) pre : {clear(c)} add : {on(a, C)} del : {clear(c)} Aquí, el esquema de acción Move de tres variables se dividió en dos subacciones Move 1 y Move 2 de dos variables cada una. Cada subacción implicaría para el planificador m 2 instanciaciones, por lo tanto, al ejecutar Move 1 seguido de Move 2 tendríamos un total de 2m 2 instanciaciones contra las m 3 que teníamos con la acción original. Veamos en una tabla que sucede para diferentes valores de m: m Instanciaciones en Move Instanciaciones en Move 1 Move Claramente a medida que m crece se observa una optimización importante en la cantidad de instanciaciones que debe realizar el planificador. Habíamos dicho que la estrategia de dividir una acción tiene como contrapartida un incremento en la cantidad de acciones resultantes. En el ejemplo, dividir una acción generó dos acciones y éste es el costo que se debe asumir por aplicar dicha técnica. 20
22 Por otra parte, analizando nuevamente el ejemplo, se observa que las condiciones en las que se puede ejecutar y los efectos de la acción Move son los mismos que para Move 1 seguido de Move 2 y viceversa. Además, Move 1 seguido de Move 2 es igual a ejecutar Move 2 seguido de Move 1. Es decir, el efecto final luego de ejecutar todas las subacciones es independiente del orden en el que se ejecutan. Sin embargo, debemos decidir (arbitrariamente o según consideremos más apropiado desde algún punto de vista) en qué orden específico se ejecutarán las subacciones, es decir, si la acción se divide en n partes habrá una primera subacción, una segunda subacción y así sucesivamente hasta una n-ésima subacción. También, debemos asegurar que las subacciones se ejecuten en forma atómica, no puede ocurrir una ejecución parcial del Split de una acción. En la Sección 4.5 veremos cómo se logra esto. En la sección 4.9, se prueba formalmente que, dado un dominio cualquiera, si obtenemos otro a partir de dividir las acciones del primero, entonces tenemos dominios equivalentes. Por lo tanto, podremos recuperar un plan del primer dominio mediante un plan del segundo que estará formado por subacciones. En definitiva, nuestro algoritmo consistirá en tomar cada uno de los esquemas de acción de un dominio dado y obtener un Split de cada uno de ellos Cómo obtenemos un Split a partir de un esquema de acción? Primero vamos a definir la interfaz de un esquema de acción a (interfaz(a)) como el conjunto formado por sus parámetros. Análogamente se define la interfaz de un literal l de un esquema de acción (interfaz(l)). Para obtener un Split de un esquema de acción, debemos realizar dos tareas. Primero obtener un cubrimiento de la interfaz del esquema de acción original. Cada uno de los elementos de dicho cubrimiento determina la interfaz de cada subaccción. La segunda tarea es tomar un mapeo entre los literales del esquema de la acción original y los elementos del cubrimiento. Veamos en detalle estas dos tareas. Definición 3. Sea a una acción, C P(interfaz(a)) es un cubrimiento de a sii i. c C c = interfaz(a) ii. c, c C. c c c = c. 21
23 iii. l Lit(a) : c C : interfaz(l) c. La definición anterior nos dice primero que la unión de los elementos de un cubrimiento debe ser la intefaz de la acción. Segundo, que ningún elemento del cubrimiento es subconjunto de algún otro y finalmente que las interfaces de los literales de la acción deben ser cubiertas por al menos un elemento del cubrimiento. En particular, en el ejemplo de la acción Move de la sección 4.1 cuya interfaz es {A, B, C}, usamos el cubrimiento C 0 = {{A, B}, {A, C}}. Notar que C 0 satisface la definición anterior, ya que la unión de sus elementos es igual a la interfaz de la acción, ninguno de sus dos elementos es subconjunto del otro y finalmente todo literal de la acción Move tiene su interfaz incluida en al menos uno de sus dos elementos. Diremos que un literal l es cubierto por c C sii la interfaz de l es un subconjunto de c. Por ejemplo, los literales clear(a) y on(a, B) son cubiertos por {A, B} mientras que el literal on(a, C) no lo es. La definición de cubrimiento asegura que todo literal en la acción original es cubierto por algún elemento de C. Por qué pedimos esto? Porque, si un literal l no fuese cubierto por alguno de los elementos de C y como cada elemento determina la interfaz de cada subacción del Split, no existiría una subacción cuya interfaz me permita mapear dicho literal en ella. Supongamos que para la acción Move tomamos el cubrimiento C = {{A}, {B, C}}. Tendríamos dos subacciones con interfaz {A} y {B, C}. Como el literal on(a, B) no es cubierto por niguno de las dos interfaces, no puede ser mapeado a ninguna de las dos subacciones del Split. Está claro que dada una acción existen muchos cubrimientos posibles. Nuestra intención es estudiar cuál es el mejor de todos los cubrimientos posibles. Ya habíamos dicho que cada elemento del cubrimiento será la interfaz de una subacción del Split. De aquí se desprende que la cantidad de elementos del cubrimiento determina la cantidad de subacciones del Split. Resta determinar qué literales de la acción original tendrá cada una de las subacciones, es para ello que definimos un mapeo entre los literales de la acción orginal y las subacciones cuyas interfaces están ya definidas por los elementos del cubrimiento. Mapearemos la ocurrencia de un literal l a la subacción a i con interfaz c C si l es cubierto por c. Notar que dado un literal este puede ser cubierto por más de un elemento de C. Es aquí donde estudiaremos políticas de mapeo. Por ejemplo, podríamos optar por elegir aleatoriamente o que se mapee a la subacción con interfaz más grande. Ob- 22
24 viamente, el mapeo respeta el lugar de ocurrencia del literal dentro de la acción original. Es decir, si un literal ocurre en la sección pre, add ó del de la acción original dicho literal ocurrirá en la sección pre, add ó del respectivamente, de la subacción a la que fue mapeado. Es muy importante que la definición del mapeo cumpla con la siguiente condición: si un literal l ocurre en la precondición y en el efecto de la acción original entonces ambas ocurrencias deben mapearse al mismo elemento de C. Esta condición tiene como objetivo que el efecto final luego de ejecutar todas las subacciones del Split sea independiente del orden en el que se ejecutaron. La condición evita concretamente estas dos situaciones: que una subacción elimine un literal que está también en la precondición de otra subacción que se va a ejecutar posteriormente conviertiendo a esta última en una subacción no ejecutable independientemente de la ejecutabilidad de la acción original. que una subacción agregue un literal que está también en la precondición de otra subacción que se va a ejecutar posteriormente conviertiendo a esta última en una subacción ejecutable independientemente de la ejecutabilidad de la acción original. Veamos un ejemplo de la primer situación: XX(A, B, C : Bloque) pre : {on(a, B), clear(a), clear(c)} add : {on(c, A)} del : {clear(a)} y la dividimos en dos: XX 1 (A, B : Bloque) XX 2 (A, C : Bloque) pre : {on(a, B)} pre : {clear(a), clear(c)} add : add : {on(c, A)} del : {clear(a)} del : Supongamos que la acción XX es ejecutable en P P en un cierto estado, por lo tanto XX 1 y XX 2 debería ser ejecutables en P P. Ahora luego de ejecutar XX 1, XX 2 no es ejecutable, pues clear(a) está en su pre y este literal fue removido por XX 1. Claramente esto se debe a que las dos ocurrencias de clear(a) en la acción original se mapearon a diferentes subacciones. 23
25 4.3. Definición formal de Split Para probar matemáticamente propiedades deseables del Split, vamos a definir formalmente el concepto de Split como un mapeo entre las acciones del dominio y una secuencia de acciones. Recordar que en las formalizaciones siempre pensamos nuestras acciones como ya instanciadas, no como esquemas de acción. Definición 4. Sea A un dominio. Una función Split sobre A será una función α : A Acciones, tal que si α(a) = a 1...a k se cumple que: 1 i. l Lit(A). l X(a)! a i : l X(a i ) con X {pre, add, del} ii. l Lit(A). l pre(a) X(a)! a i : l pre(a i ) X(a i ) con X {add, del} La primera condición dice que los literales de la acción original se mapean a una única subacción y todo literal de una subacción es literal de la acción original. Mientras que la segunda condición dice que si en una acción original un literal ocurre en la pre y en el efecto, ya sea en add ó del, entonces ambas ocurrencias se mapean a la misma subacción. De la definición de Split se desprenden las siguientes proposiciones. Proposición 1. Sea α(a) = a 1...a k una función Split y X {pre, add, del}. 1. X(a i ) X(a). 2. X(a i ) X(a j ) =, con i j. 3. X(a i ) = X(a). 4. pre(a i ) add(a j ) =, con i j. 5. pre(a i ) del(a j ) =, con i j. 6. add(a i ) del(a j ) =. 1 donde Acciones es el conjunto de todas las acciones. 24
26 4.4. La importancia del orden de ejecución de las subacciones del Split Observemos que dada una acción a y a 1,..., a k un Split de a, cualquier permutación a i1,..., a ik es un Split de a. Ahora nos preguntamos si hay en general una permutación más conveniente que otra? Supongamos que la acción a no es ejecutable en algún estado. Entonces sabemos que existe un literal en su precondición que es falso, y ese mismo literal está en la precondición de una única subacción a j. Entonces esta subacción también será no ejecutable en algún estado. Entonces si hacemos que a j sea la última de las subacciones del Split (j = i k ), el planificador instanciaría el resto de las k 1 subaccciones para darse cuenta de que esta última subacción no se puede ejecutar. En cambio si aj es la primera subacción (j = i 1 ) del Split, el planificador ahorraría las k 1 instanciaciones de las demás subacciones. Es decir, que lo más conveniente sería que la subacción que no se puede ejecutar esté lo antes posible en el orden de la permutación. En general, no sabemos de antemano cual es la subacción que será no ejecutable en caso de que la acción sea no ejecutable. Como heurística podemos considerar que mientras más literales haya en la precondición de una subacción más probabilidad tiene de ser no ejecutable. Por lo tanto, ordenaremos el Split de forma tal que las subacciones con más literales en su precondición estén al principio en la permutación Preservando el conjunto de soluciones Ya tenemos una forma de obtener un Split a partir de un esquema de acción. Ahora debemos completar el Split para asegurar las siguientes propiedades: P1. Las subacciones de un Split tienen un orden de ejecución predefinido. P2. Luego de ejecutar una subacción, únicamente es ejecutable la subacción siguiente en el Split, excepto en el caso de que la subacción que se ejecutó sea la última en el orden del Split, en cuyo caso las únicas subacciones ejecutables serán todas aquellas que son primera subacción de algún Split. P3. Si una subacción es ejecutable instanciando una de sus variables con el objeto o y luego esa misma variable es parámetro de una subacción posterior del mismo Split, esa variable debe quedar instanciada con el objeto o. 25
27 Estos tres items son necesarios para garantizar la equivalencia entre un dominio A y el dominio A que tiene por acciones los Splits de las acciones del primero. Dado que A y A son equivalentes podremos recuperar un plan del primer dominio a partir de un plan del segundo. Para garantizar P1, P2, P3 usaremos literales nuevos que implementan un sistema de tokens que se irán pasando entre las subacciones del Split. El literal procnone es tomado por la primera subacción y es liberado por la última del Split. Nos indica que comienza la ejecución de las subacciones de un Split, de esta forma no puede ejecutarse subacciones de un Split de alguna otra acción hasta que éste literal sea liberado. El literal do es el token que se pasan entre las subacciones de un Split. Nos es útil para que las subacciones se ejecuten en un orden predefinido. Por último, el literal arg es utilizado para asegurar que si una subacción del Split instancia una variable con un cierto objeto y dicha variable está en la interfaz de alguna subacción posterior en el Split, entonces ésta última subacción debe instanciar la variable al mismo objeto. Para terminar de entender el sistema de token que describimos, veamos como quedaría la acción M ove una vez colocados los mismos. Teníamos el esquema de acción: Move(A, B, C : Bloque) pre : {on(a, B), clear(a), clear(c)} add : {on(a, C), clear(b)} del : {on(a, B), clear(c)} Luego, dividíamos la acción M ove en dos subacciones: Move 1 (A, B : Bloque) pre : {on(a, B), clear(a)} add : {clear(b)} del : {on(a, B)} Move 2 (A, C : Bloque) pre : {clear(c)} add : {on(a, C)} del : {clear(c)} Ahora si colocamos los tokens como se describió anteriormenete en Move 1 y Move 2 : Move 1 (A, B : Bloque) pre : {on(a, B), clear(a), procnone} add : {clear(b), do Move 2, arg(a)} del : {on(a, B), procnone} Move 2 (A, C : Bloque) pre : {clear(c), do Move 2, arg(a)} add : {on(a, C), procnone} del : {clear(c), arg(a)} 26
28 A continuación describimos con más detalle cómo se implementa el sistema de tokens. Sea a un esquema de acción y a 1,..., a k un Split de a. Token procnone. Si el Split es más de una subacción, agregaremos el token procnone en las secciones pre y del de a 1 y en la seccción add de a k. Si el Split es una sola subacción agregaremos procnone en la sección pre de a 1. Token do. Si el Split tiene más de una subacción y la subacción a j no es la primera ni la última de las subacciones del Split, agregaremos el token do a j en sus secciones pre y del y el token do a j+1 en su sección add. Si la subacción a j es la primera subacción entonces ponemos solamente el token do a 2 en su sección add. Si a j es la última de las subacciones ponemos en la secciones pre y del el token do a k. Si el Split tiene una sola subacción no necesitaremos del token do. Token arg(). Si una subacción a j tiene como parámetro la variable v y v no es parámetro de ninguna de las subacciones anteriores a a j y v es variable de alguna subacción a r posterior de a j entonces agregamos el token arg(v) en la sección add de a j y en la sección pre de a r. Si arg(v) está en la sección pre de algún a j y ninguna de las subacciones posteriores de a j tiene como parámetro a v, entonces agregamos arg(v) a la sección del de a j 4.6. Definción formal del sistema de tokens Definimos la función que coloca los literales tokens: Γ : A A Γ(a 1...a k ) = a 1...a k donde caso k = 1: a 1 = (pre(a 1) {procnone}, add(a 1 ), del(a 1 )) caso k > 1: a 1 = (pre(a 1) {procnone}, add(a 1 ) {do a 2 }, del(a1 ) {procnone}) a j = (pre(a j) {do a j}, add(a j ) {do a j+1}, del(a j ) {do a j}) con1 < j < k 27
29 a k = (pre(a k) {do a k}, add(a k ) {procnone}, del(a k ) {do a k}) tal que, {do a i }, {procnone} / Lit(A). Notar que Lit(A ) = Lit(A) {procnone} {do a i }. Es importante aclarar que el token arg() no ocurre en la definición de la función Γ porque, recordemos, que en la formalización del problema de planificación pensamos en acciones instanciadas, no en esquemas de acción Obteniendo la transformación de un problema de planificación Hemos visto hasta ahora como dado un problema de planificación P P obtenemos un Split (con tokens) de cada una de las acciones en el dominio de P P. Nos resta especificar cómo se construye el problema de planificación P P a partir de P P el cual usaremos para recuperar una solución de P P mediante una solución de P P. Los literales en P P serán los literales de P P más los literales nuevos que se usaron como tokens. El dominio de P P estará formado por las subacciones que conforman los splits de cada una de las acciones del dominio de P P. El estado inicial de P P será el estado inicial de P P más el literal token procnone. El objetivo de P P será el objetivo de P P más el literal token procnone. Los tipos y sus instancias en P P serán los mismos que en P P (i.e la transformación preserva los tipos y sus instancias) Recuperando un solución de P P a través de su transformación P P y viceversa Si tenemos una solución de P P, una solución de P P será la secuencia de subacciones formada por los splits de cada acción de la solución en el orden en que ocurren. Formalmente, si a 1,..., a n es una solución de P P y a 1 i,..., ak i i es el Split con tokens de la acción a i que se dividió en k i subacciones, entonces a 1 1,..., ak 1 1,..., a1 n,..., a kn n será una solución en P P. 28
30 Si tenemos una solución de P P, sabemos que ésta puede ser únicamente una concatenación de splits de las acciones del dominio de P P. Tomaremos la secuencia formada por tales acciones del dominio P P en el orden en que ocurren sus splits en la solución de P P. Formalmente, si tenemos una solución de P P, tiene que ser de la forma a 1 1,..., ak 1 1,..., a1 n,..., a kn n donde a 1 i,..., ak i i es el Split con tokens de la acción a i del dominio de P P, entonces a 1,..., a n es una solución de P P Split y equivalencia, parte formal El objetivo de esta sección es demostrar que si obtenemos un dominio A a partir del Split de cada una de las acciones de un dominio A, entonces A es equivalente a A. Comencemos introduciendo un poco de notación. Denotaremos con [a] i al i-ésimo elemento de la cadena a y diremos a a cuando i : [a] i = a (sobrecargamos el operador de pertenecia). Un tramo inicial propio de una cadena a es una cadena b tal que a = b a y b ε, a. Si S, A i, B i conjuntos, con i = 1,..., n, denotaremos al conjunto (S A 1... A n ) \ B 1 \... \ B n con la expresión S i n A i \ i n B i. Por último, sea α una función Split, definimos α = Γ α. Definimos un nuevo dominio cuyas acciones serán únicamente las subacciones de las acciones del primero. Definición 5. Sea A un dominio y α una función Split sobre A. Split α (A) = {a : a A tq a α(a)}. El siguiente teorema que es el resultado principal de esta sección, nos asegura que un dominio y su split son equivalentes vía ciertas traducciones en cualquier contexto. Teorema 2. Sea A un dominio y α una función Split sobre A, entonces A T,t,t C Split α (A) con C Σ A Σ A, T (s) = s {procnone}, t(a 1...a n ) = α(a 1 )... α(a n ) y t tal que t (t(a)) = a. La demostración la dejaremos para más adelante, ya que necesitaremos para ella probar y discutir otros resultados antes. Comenzamos observando que t(a 1...a n ) = t(a 1 )...t(a n ). A continuación, un lema que nos dice que ocurre cuando se ejecuta un tramo inicial propio de un Split. 29
Trabajo Final Lic. en Ciencias de la Computación Optimización en Dominios de Planificación
Trabajo Final Lic. en Ciencias de la Computación Optimización en Dominios de Planificación Año 2013 Estudiante: Lic. Facundo Bustos Facultad de Matemática, Astronomía y Física (FaMAF) Universidad Nacional
Más detallesTema 2. Espacios Vectoriales. 2.1. Introducción
Tema 2 Espacios Vectoriales 2.1. Introducción Estamos habituados en diferentes cursos a trabajar con el concepto de vector. Concretamente sabemos que un vector es un segmento orientado caracterizado por
Más detallesTABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.
TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.
Más detallesEcuaciones de primer grado con dos incógnitas
Ecuaciones de primer grado con dos incógnitas Si decimos: "las edades de mis padres suman 120 años", podemos expresar esta frase algebraicamente de la siguiente forma: Entonces, Denominamos x a la edad
Más detallesApuntes de Matemática Discreta 9. Funciones
Apuntes de Matemática Discreta 9. Funciones Francisco José González Gutiérrez Cádiz, Octubre de 004 Universidad de Cádiz Departamento de Matemáticas ii Lección 9 Funciones Contenido 9.1 Definiciones y
Más detallesIngeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007
Enunciado Se desea efectuar el testing funcional de un programa que ejecuta transferencias entre cuentas bancarias. El programa recibe como parámetros la cuenta de origen, la de cuenta de destino y el
Más detallesTema 3. Espacios vectoriales
Tema 3. Espacios vectoriales Estructura del tema. Definición y propiedades. Ejemplos. Dependencia e independencia lineal. Conceptos de base y dimensión. Coordenadas Subespacios vectoriales. 0.1. Definición
Más detallesAproximación local. Plano tangente. Derivadas parciales.
Univ. de Alcalá de Henares Ingeniería de Telecomunicación Cálculo. Segundo parcial. Curso 004-005 Aproximación local. Plano tangente. Derivadas parciales. 1. Plano tangente 1.1. El problema de la aproximación
Más detallesDatos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina
Datos del autor Nombres y apellido: Germán Andrés Paz Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina Correo electrónico: germanpaz_ar@hotmail.com =========0========= Introducción
Más detallesApuntes de Matemática Discreta 1. Conjuntos y Subconjuntos
Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos Francisco José González Gutiérrez Cádiz, Octubre de 2004 Universidad de Cádiz Departamento de Matemáticas ii Lección 1 Conjuntos y Subconjuntos
Más detallesBase de datos en Excel
Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de
Más detallesSubespacios vectoriales en R n
Subespacios vectoriales en R n Víctor Domínguez Octubre 2011 1. Introducción Con estas notas resumimos los conceptos fundamentales del tema 3 que, en pocas palabras, se puede resumir en técnicas de manejo
Más detallesPrograma para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones
Fracciones. Las fracciones y los números Racionales Las fracciones se utilizan cotidianamente en contextos relacionados con la medida, el reparto o como forma de relacionar dos cantidades. Tenemos entonces
Más detallesDivisibilidad y números primos
Divisibilidad y números primos Divisibilidad En muchos problemas es necesario saber si el reparto de varios elementos en diferentes grupos se puede hacer equitativamente, es decir, si el número de elementos
Más detallesPara representar los conjuntos, los elementos y la relación de pertenencia, mediante símbolos, tendremos en cuenta las siguientes convenciones:
2. Conjuntos 2.1 Introducción El concepto de conjunto, de singular importancia en la ciencia matemática y objeto de estudio de una de sus disciplinas más recientes, está presente, aunque en forma informal,
Más detallesLÍMITES Y CONTINUIDAD DE FUNCIONES
Capítulo 9 LÍMITES Y CONTINUIDAD DE FUNCIONES 9.. Introducción El concepto de ite en Matemáticas tiene el sentido de lugar hacia el que se dirige una función en un determinado punto o en el infinito. Veamos
Más detallesMLM 1000 - Matemática Discreta
MLM 1000 - Matemática Discreta L. Dissett Clase 04 Resolución. Lógica de predicados c Luis Dissett V. P.U.C. Chile, 2003 Aspectos administrativos Sobre el tema vacantes: 26 personas solicitaron ingreso
Más detallesUNIDAD I: LÓGICA PROPOSICIONAL
UNIDAD I: LÓGICA PROPOSICIONAL ASIGNATURA: INTRODUCCIÓN A LA COMPUTACIÓN CARRERAS: LICENCIATURA Y PROFESORADO EN CIENCIAS DE LA COMPUTACIÓN DEPARTAMENTO DE INFORMÁTICA FACULTAD DE CIENCIAS FÍSICO MATEMÁTICA
Más detallesDiferenciabilidad. Definición 1 (Función diferenciable). Cálculo. Segundo parcial. Curso 2004-2005
Univ. de Alcalá de Henares Ingeniería de Telecomunicación Cálculo. Segundo parcial. Curso 2004-2005 Diferenciabilidad. 1. Definición de función diferenciable Después del estudio de los ites de funciones
Más detallesMatrices equivalentes. El método de Gauss
Matrices equivalentes. El método de Gauss Dada una matriz A cualquiera decimos que B es equivalente a A si podemos transformar A en B mediante una combinación de las siguientes operaciones: Multiplicar
Más detallesESTIMACIÓN. puntual y por intervalo
ESTIMACIÓN puntual y por intervalo ( ) Podemos conocer el comportamiento del ser humano? Podemos usar la información contenida en la muestra para tratar de adivinar algún aspecto de la población bajo estudio
Más detalles1. Números Reales 1.1 Clasificación y propiedades
1. Números Reales 1.1 Clasificación y propiedades 1.1.1 Definición Número real, cualquier número racional o irracional. Los números reales pueden expresarse en forma decimal mediante un número entero,
Más detallesCómo?: Resolviendo el sistema lineal homógeneo que satisfacen las componentes de cualquier vector de S. x4 = x 1 x 3 = x 2 x 1
. ESPACIOS VECTORIALES Consideremos el siguiente subconjunto de R 4 : S = {(x, x 2, x 3, x 4 )/x x 4 = 0 x 2 x 4 = x 3 a. Comprobar que S es subespacio vectorial de R 4. Para demostrar que S es un subespacio
Más detallesLección 24: Lenguaje algebraico y sustituciones
LECCIÓN Lección : Lenguaje algebraico y sustituciones En lecciones anteriores usted ya trabajó con ecuaciones. Las ecuaciones expresan una igualdad entre ciertas relaciones numéricas en las que se desconoce
Más detallesMódulo 9 Sistema matemático y operaciones binarias
Módulo 9 Sistema matemático y operaciones binarias OBJETIVO: Identificar los conjuntos de números naturales, enteros, racionales e irracionales; resolver una operación binaria, representar un número racional
Más detallesDefinición 1.1.1. Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.
Tema 1 Matrices Estructura del tema. Conceptos básicos y ejemplos Operaciones básicas con matrices Método de Gauss Rango de una matriz Concepto de matriz regular y propiedades Determinante asociado a una
Más detallesANÁLISIS DE DATOS NO NUMERICOS
ANÁLISIS DE DATOS NO NUMERICOS ESCALAS DE MEDIDA CATEGORICAS Jorge Galbiati Riesco Los datos categóricos son datos que provienen de resultados de experimentos en que sus resultados se miden en escalas
Más detallesUNIDAD 1. LOS NÚMEROS ENTEROS.
UNIDAD 1. LOS NÚMEROS ENTEROS. Al final deberás haber aprendido... Interpretar y expresar números enteros. Representar números enteros en la recta numérica. Comparar y ordenar números enteros. Realizar
Más detallesAplicaciones lineales continuas
Lección 13 Aplicaciones lineales continuas Como preparación para el cálculo diferencial, estudiamos la continuidad de las aplicaciones lineales entre espacios normados. En primer lugar probamos que todas
Más detallesCapítulo VI. Diagramas de Entidad Relación
Diagramas de Entidad Relación Diagramas de entidad relación Tabla de contenido 1.- Concepto de entidad... 91 1.1.- Entidad del negocio... 91 1.2.- Atributos y datos... 91 2.- Asociación de entidades...
Más detallesJuan Antonio González Mota Profesor de Matemáticas del Colegio Juan XIII Zaidín de Granada
FUNCIONES CONTINUAS. La mayor parte de las funciones que manejamos, a nivel elemental, presentan en sus gráficas una propiedad característica que es la continuidad. La continuidad de una función definida
Más detallesE 1 E 2 E 2 E 3 E 4 E 5 2E 4
Problemas resueltos de Espacios Vectoriales: 1- Para cada uno de los conjuntos de vectores que se dan a continuación estudia si son linealmente independientes, sistema generador o base: a) (2, 1, 1, 1),
Más detallesMÓDULO 2. LEYES FINANCIERAS DE CAPITALIZACIÓN Y DESCUENTO SIMPLE
MÓDULO 2. LEYES FINANCIERAS DE CAPITALIZACIÓN Y DESCUENTO SIMPLE Índice de contenidos: 1. Ley Financiera de capitalización a interés vencido. 1.1. Equivalencia de capitales. 1.2. Tipos de interés equivalentes.
Más detalles1.1. Introducción y conceptos básicos
Tema 1 Variables estadísticas Contenido 1.1. Introducción y conceptos básicos.................. 1 1.2. Tipos de variables estadísticas................... 2 1.3. Distribuciones de frecuencias....................
Más detallesLa nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx
La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx Resumen Se dan algunas definiciones básicas relacionadas con la divisibilidad
Más detalles342 SOBRE FORMAS TERNARIAS DE SEGUNDO GRADO.
342 SOBRE FORMAS TERNARIAS DE SEGUNDO GRADO. ALGUNAS APLICACIONES A LA TEORIA DE LAS FORMAS BINARIAS. Encontrar una forma cuya duplicación produce una forma dada del género principal. Puesto que los elementos
Más detallesEstructuras algebraicas
Tema 2 Estructuras algebraicas básicas 2.1. Operación interna Definición 29. Dados tres conjuntos A, B y C, se llama ley de composición en los conjuntos A y B y resultado en el conjunto C, y se denota
Más detallesBASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.
BASES Y DIMENSIÓN Definición: Base. Se llama base de un espacio (o subespacio) vectorial a un sistema generador de dicho espacio o subespacio, que sea a la vez linealmente independiente. β Propiedades
Más detallesSemana 08 [1/15] Axioma del Supremo. April 18, 2007. Axioma del Supremo
Semana 08 [1/15] April 18, 2007 Acotamiento de conjuntos Semana 08 [2/15] Cota Superior e Inferior Antes de presentarles el axioma del supremo, axioma de los números reales, debemos estudiar una serie
Más detallesFundamentos de Investigación de Operaciones Investigación de Operaciones 1
Fundamentos de Investigación de Operaciones Investigación de Operaciones 1 1 de agosto de 2003 1. Introducción Cualquier modelo de una situación es una simplificación de la situación real. Por lo tanto,
Más detallesESTRUCTURAS ALGEBRAICAS 1
ESTRUCTURAS ALGEBRAICAS Se da la relación entre dos conjuntos mediante el siguiente diagrama: (, ) (2, 3) (, 4) (, 2) (7, 8) (, ) (3, 3) (5, ) (6, ) (, 6)........ 5 6......... 2 5 i) Observa la correspondencia
Más detallesSubconjuntos destacados en la
2 Subconjuntos destacados en la topología métrica En este capítulo, introducimos una serie de conceptos ligados a los puntos y a conjuntos que por el importante papel que juegan en la topología métrica,
Más detallesUn problema sobre repetidas apuestas al azar
Un problema sobre repetidas apuestas al azar Eleonora Catsigeras 1 10 de marzo de 2003. Resumen En estas notas se da el enunciado y una demostración de un conocido resultado sobre la probabilidad de éxito
Más detalles1. Producto escalar, métrica y norma asociada
1. asociada Consideramos el espacio vectorial R n sobre el cuerpo R; escribimos los vectores o puntos de R n, indistintamente, como x = (x 1,..., x n ) = n x i e i i=1 donde e i son los vectores de la
Más detallesLos números racionales
Los números racionales Los números racionales Los números fraccionarios o fracciones permiten representar aquellas situaciones en las que se obtiene o se debe una parte de un objeto. Todas las fracciones
Más detallesNociones Básicas de Sémantica: Semántica Denotacional
Nociones Básicas de Sémantica: Semántica Denotacional Análisis de Lenguajes de Programación Mauro Jaskelioff 21/08/2015 Acerca de la Semántica Operacional En la semántica operacional el significado de
Más detallesCreación de Funciones de Conducción
Creación de Funciones de Conducción Requerimientos Para el desarrollo de esta actividad se requiere que: Contemos con un robot BoeBot armado con placa Arduino. Repetición En estos momentos habremos notado
Más detallesAnexo 1: Demostraciones
75 Matemáticas I : Álgebra Lineal Anexo 1: Demostraciones Espacios vectoriales Demostración de: Propiedades 89 de la página 41 Propiedades 89- Algunas propiedades que se deducen de las anteriores son:
Más detalles1.4.- D E S I G U A L D A D E S
1.4.- D E S I G U A L D A D E S OBJETIVO: Que el alumno conozca y maneje las reglas empleadas en la resolución de desigualdades y las use para determinar el conjunto solución de una desigualdad dada y
Más detalles3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)
3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.
Más detallesACCIONES Y OTROS TÍTULOS DE INVERSIÓN
ACCIONES Y OTROS TÍTULOS DE INVERSIÓN TASAS EFECTIVAS DE RENDIMIENTO ANUAL Y MENSUAL: Es aquélla que se emplea en la compraventa de algunos valores en el Mercado Bursátil o Bolsa de Valores. Estas tasas
Más detallesEspacios Vectoriales
Espacios Vectoriales Departamento de Matemáticas, CCIR/ITESM 4 de enero de 2 Índice 3.. Objetivos................................................ 3.2. Motivación...............................................
Más detallesUNIDAD 1 LAS LEYES FINANCIERAS DE CAPITALIZACIÓN DESCUENTO
- 1 - UNIDAD 1 LAS LEYES FINANCIERAS DE CAPITALIZACIÓN Y DESCUENTO Tema 1: Operaciones financieras: elementos Tema 2: Capitalización y descuento simple Tema 3: Capitalización y descuento compuesto Tema
Más detallesRelaciones binarias. ( a, b) = ( c, d) si y solamente si a = c y b = d
Relaciones binarias En esta sección estudiaremos formalmente las parejas de objetos que comparten algunas características o propiedades en común. La estructura matemática para agrupar estas parejas en
Más detallesLABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL
OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formulas en Microsoft Excel 2010. 1) DEFINICIÓN Una fórmula de Excel es un código especial que introducimos
Más detalles1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1
5.1.3 Multiplicación de números enteros. El algoritmo de la multiplicación tal y como se realizaría manualmente con operandos positivos de cuatro bits es el siguiente: 1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0
Más detallesNota 2. Luis Sierra. Marzo del 2010
Nota 2 Luis Sierra Marzo del 2010 Cada mecanismo de definición de conjuntos que hemos comentado sugiere mecanismos para definir funciones y probar propiedades. Recordemos brevemente qué son las funciones
Más detallesLos polinomios. Un polinomio es una expresión algebraica con una única letra, llamada variable. Ejemplo: 9x 6 3x 4 + x 6 polinomio de variable x
Los polinomios Los polinomios Un polinomio es una expresión algebraica con una única letra, llamada variable. Ejemplo: 9x 6 3x 4 + x 6 polinomio de variable x Elementos de un polinomio Los términos: cada
Más detallesCapitulo V Administración de memoria
Capitulo V Administración de memoria Introducción. Una de las tareas más importantes y complejas de un sistema operativo es la gestión de memoria. La gestión de memoria implica tratar la memoria principal
Más detallesA estas alturas de nuestros conocimientos vamos a establecer dos reglas muy prácticas de cómo sumar dos números reales:
ADICIÓN Y RESTA DE NUMEROS REALES ADICIÓN L a adición o suma de números reales se representa mediante el símbolo más (+) y es considerada una operación binaria porque se aplica a una pareja de números,
Más detallesEscenas de episodios anteriores
Clase 16/10/2013 Tomado y editado de los apuntes de Pedro Sánchez Terraf Escenas de episodios anteriores objetivo: estudiar formalmente el concepto de demostración matemática. caso de estudio: lenguaje
Más detallesEspacios generados, dependencia lineal y bases
Espacios generados dependencia lineal y bases Departamento de Matemáticas CCIR/ITESM 14 de enero de 2011 Índice 14.1. Introducción............................................... 1 14.2. Espacio Generado............................................
Más detallesFunciones, x, y, gráficos
Funciones, x, y, gráficos Vamos a ver los siguientes temas: funciones, definición, dominio, codominio, imágenes, gráficos, y algo más. Recordemos el concepto de función: Una función es una relación entre
Más detallesUn juego de cartas: Las siete y media
Un juego de cartas: Las siete y media Paula Lagares Federico Perea Justo Puerto * MaMaEuSch ** Management Mathematics for European Schools 94342 - CP - 1-2001 - DE - COMENIUS - C21 * Universidad de Sevilla
Más detallesUniversidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS
Especificación algebraica ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS Un tipo abstracto de datos se determina por las operaciones asociadas, incluyendo constantes que se consideran como operaciones sin
Más detallesTema 3: Producto escalar
Tema 3: Producto escalar 1 Definición de producto escalar Un producto escalar en un R-espacio vectorial V es una operación en la que se operan vectores y el resultado es un número real, y que verifica
Más detallesActividades con GeoGebra
Conectar Igualdad - "Netbooks Uno a Uno" Actividades con GeoGebra Nociones básicas, rectas Silvina Ponce Dawson Introducción. El GeoGeobra es un programa que permite explorar nociones matemáticas desde
Más detallesCAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de
CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de cualquier modelo en el software Algor. La preparación de un modelo,
Más detallesLa ventana de Microsoft Excel
Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft
Más detallesCiclo de vida y Metodologías para el desarrollo de SW Definición de la metodología
Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto
Más detallesIntroducción a la Teoría de Probabilidad
Capítulo 1 Introducción a la Teoría de Probabilidad Para la mayoría de la gente, probabilidad es un término vago utilizado en el lenguaje cotidiano para indicar la posibilidad de ocurrencia de un evento
Más detallesAmpliación de Estructuras de Datos
Ampliación de Estructuras de Datos Amalia Duch Barcelona, marzo de 2007 Índice 1. Diccionarios implementados con árboles binarios de búsqueda 1 2. TAD Cola de Prioridad 4 3. Heapsort 8 1. Diccionarios
Más detallesQUÉ ES LA RENTABILIDAD Y CÓMO MEDIRLA. La rentabilidad mide la eficiencia con la cual una empresa utiliza sus recursos financieros.
QUÉ ES LA RENTABILIDAD Y CÓMO MEDIRLA La rentabilidad mide la eficiencia con la cual una empresa utiliza sus recursos financieros. Qué significa esto? Decir que una empresa es eficiente es decir que no
Más detallesCurso de Procesamiento Digital de Imágenes
Curso de Procesamiento Digital de Imágenes Impartido por: Elena Martínez Departamento de Ciencias de la Computación IIMAS, UNAM, cubículo 408 http://turing.iimas.unam.mx/~elena/teaching/pdi-lic.html elena.martinez@iimas.unam.mx
Más detallesNúmeros Reales. MathCon c 2007-2009
Números Reales z x y MathCon c 2007-2009 Contenido 1. Introducción 2 1.1. Propiedades básicas de los números naturales....................... 2 1.2. Propiedades básicas de los números enteros........................
Más detallesIIC 2252 - Matemática Discreta
IIC 2252 - Matemática Discreta L. Dissett Clase 04 Lógica de predicados. Reglas de inferencia en lógica de predicados. Lógica de predicados Definiciones básicas: Un predicado es una afirmación que depende
Más detallesApuntes de Matemática Discreta 7. Relaciones de Orden
Apuntes de Matemática Discreta 7. Relaciones de Orden Francisco José González Gutiérrez Cádiz, Octubre de 2004 Universidad de Cádiz Departamento de Matemáticas ii Lección 7 Relaciones de Orden Contenido
Más detalles1.4.1.2. Resumen... 1.4.2. ÁREA DE FACTURACIÓN::INFORMES::Pedidos...27 1.4.2.1. Detalle... 1.4.2.2. Resumen... 1.4.3. ÁREA DE
MANUAL DE USUARIO DE ABANQ 1 Índice de contenido 1 ÁREA DE FACTURACIÓN......4 1.1 ÁREA DE FACTURACIÓN::PRINCIPAL...4 1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA...4 1.1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA::General...4
Más detallesProfr. Efraín Soto Apolinar. La función lineal. y = a 0 + a 1 x. y = m x + b
La función lineal Una función polinomial de grado uno tiene la forma: y = a 0 + a 1 x El semestre pasado estudiamos la ecuación de la recta. y = m x + b En la notación de funciones polinomiales, el coeficiente
Más detalles1. Objetivos. 2. Idea Principal. Teoría de Autómatas y Lenguajes Formales. Boletín de Autoevaluación 3: Cómo se minimiza un AFD?.
Teoría de Autómatas y Lenguajes Formales Boletín de Autoevaluación 3: Cómo se minimiza un AFD?.. Objetivos. El objetivo de este boletín es ilustrar uno de los métodos ue permiten obtener el Autómata Finito
Más detallesAdaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie.
Adaptación al NPGC Introducción Nexus 620, ya recoge el Nuevo Plan General Contable, que entrará en vigor el 1 de Enero de 2008. Este documento mostrará que debemos hacer a partir de esa fecha, según nuestra
Más detallesCurso: Teoría de la Computación. Unidad 2, Sesión 8: Complejidad computacional (2)
Curso: Teoría de la Computación. Unidad 2, Sesión 8: Complejidad computacional (2) Instituto de Computación, Facultad de Ingeniería Universidad de la República, Montevideo, Uruguay dictado semestre 2-2009
Más detallesEjemplo 1.2 En el capitulo anterior se demostró que el conjunto. V = IR 2 = {(x, y) : x, y IR}
Subespacios Capítulo 1 Definición 1.1 Subespacio Sea H un subconjunto no vacio de un espacio vectorial V K. Si H es un espacio vectorial sobre K bajo las operaciones de suma y multiplicación por escalar
Más detallesIngeniería en Informática
Departamento de Informática Universidad Carlos III de Madrid Ingeniería en Informática Aprendizaje Automático Junio 2007 Normas generales del examen El tiempo para realizar el examen es de 3 horas No se
Más detalles4 Pruebas y análisis del software
4 Pruebas y análisis del software En este capítulo se presentan una serie de simulaciones donde se analiza el desempeño de ambos sistemas programados en cuanto a exactitud con otros softwares que se encuentran
Más detallesIndicaciones específicas para los análisis estadísticos.
Tutorial básico de PSPP: Vídeo 1: Describe la interfaz del programa, explicando en qué consiste la vista de datos y la vista de variables. Vídeo 2: Muestra cómo crear una base de datos, comenzando por
Más detallesVII. Estructuras Algebraicas
VII. Estructuras Algebraicas Objetivo Se analizarán las operaciones binarias y sus propiedades dentro de una estructura algebraica. Definición de operación binaria Operaciones como la suma, resta, multiplicación
Más detalles6 M. C. J. A G U S T I N F L O R E S A V I L A
2..- DEFINICION DE LIMITES. OBJETIVO.- Que el alumno conozca el concepto de Límite, comprenda la importancia que tiene este concepto en el Cálculo y adquiera habilidad en el cálculo de los Límites más
Más detallesApuntes Recuperación ante Fallas - Logging
Lic. Fernando Asteasuain -Bases de Datos 2008 - Dpto. Computación -FCEyN-UBA 1 Apuntes Recuperación ante Fallas - Logging Nota: El siguiente apunte constituye sólo un apoyo para las clases prácticas del
Más detallesIntroducción. Metadatos
Introducción La red crece por momentos las necesidades que parecían cubiertas hace relativamente poco tiempo empiezan a quedarse obsoletas. Deben buscarse nuevas soluciones que dinamicen los sistemas de
Más detallesDiseño de bases de datos Diapositiva 1
Diseño o de bases de datos Objetivos del Diseño Principios del Diseño de BD Proceso de Diseño Normalización Diseño de Tablas: Claves Relaciones Integridad referencial Convenciones de nomenclatura Diseño
Más detallesDefinición 2.1.1. Se llama suceso aleatorio a cualquier subconjunto del espacio muestral.
Capítulo 2 Probabilidades 2. Definición y propiedades Al realizar un experimento aleatorio nuestro interés es obtener información sobre las leyes que rigen el fenómeno sometido a estudio. El punto de partida
Más detallesINTRODUCCION A LA PROGRAMACION DE PLC
INTRODUCCION A LA PROGRAMACION DE PLC Esta guía se utilizará para estudiar la estructura general de programación de um PLC Instrucciones y Programas Una instrucción u orden de trabajo consta de dos partes
Más detallesCASO PRÁCTICO. ANÁLISIS DE DATOS EN TABLAS DINÁMICAS
CASO PRÁCTICO. ANÁLISIS DE DATOS EN TABLAS DINÁMICAS Nuestra empresa es una pequeña editorial que maneja habitualmente su lista de ventas en una hoja de cálculo y desea poder realizar un análisis de sus
Más detallesObjetivos: Al inalizar la unidad, el alumno:
Unidad 7 transformaciones lineales Objetivos: Al inalizar la unidad, el alumno: Comprenderá los conceptos de dominio e imagen de una transformación. Distinguirá cuándo una transformación es lineal. Encontrará
Más detallesEjercicio de estadística para 3º de la ESO
Ejercicio de estadística para 3º de la ESO Unibelia La estadística es una disciplina técnica que se apoya en las matemáticas y que tiene como objetivo la interpretación de la realidad de una población
Más detallesEJERCICIOS DE MATEMÁTICAS I HOJA 4. Ejercicio 1. Se consideran los vectores
EJERCICIOS DE MATEMÁTICAS I HOJA 4 Ejercicio 1. Se consideran los vectores u 1 = (1, 1, 0, 1), u 2 = (0, 2, 1, 0), u 3 = ( 1, 1, 1, 1), u 4 = (2, 2, 1, 0) de R 4. Expresa, si es posible, los vectores u
Más detalles2) Se ha considerado únicamente la mano de obra, teniéndose en cuenta las horas utilizadas en cada actividad por unidad de página.
APLICACIÓN AL PROCESO PRODUCTIVO DE LA EMPRESA "F. G. / DISEÑO GRÁFICO". AÑO 2004 Rescala, Carmen Según lo explicado en el Informe del presente trabajo, la variación en la producción de páginas web de
Más detallesTransformaciones canónicas
apítulo 29 Transformaciones canónicas 29.1 Introducción onsideremos una transformación arbitraria de las coordenadas en el espacio de las fases de dimensión 2(3N k) (con el tiempo como un parámetro) Q
Más detalles