Trabajo Final Lic. en Ciencias de la Computación Optimización en Dominios de Planificación

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

Download "Trabajo Final Lic. en Ciencias de la Computación Optimización en Dominios de Planificación"

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 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 detalles

Tema 2. Espacios Vectoriales. 2.1. Introducción

Tema 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 detalles

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

TABLA 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 detalles

Ecuaciones de primer grado con dos incógnitas

Ecuaciones 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 detalles

Apuntes de Matemática Discreta 9. Funciones

Apuntes 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 detalles

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Ingenierí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 detalles

Tema 3. Espacios vectoriales

Tema 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 detalles

Aproximación local. Plano tangente. Derivadas parciales.

Aproximació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 detalles

Datos 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 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 detalles

Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos

Apuntes 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 detalles

Base de datos en Excel

Base 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 detalles

Subespacios vectoriales en R n

Subespacios 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 detalles

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones

Programa 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 detalles

Divisibilidad y números primos

Divisibilidad 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 detalles

Para representar los conjuntos, los elementos y la relación de pertenencia, mediante símbolos, tendremos en cuenta las siguientes convenciones:

Para 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 detalles

LÍMITES Y CONTINUIDAD DE FUNCIONES

LÍ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 detalles

MLM 1000 - Matemática Discreta

MLM 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 detalles

UNIDAD I: LÓGICA PROPOSICIONAL

UNIDAD 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 detalles

Diferenciabilidad. Definición 1 (Función diferenciable). Cálculo. Segundo parcial. Curso 2004-2005

Diferenciabilidad. 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 detalles

Matrices equivalentes. El método de Gauss

Matrices 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 detalles

ESTIMACIÓN. puntual y por intervalo

ESTIMACIÓ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 detalles

1. Números Reales 1.1 Clasificación y propiedades

1. 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 detalles

Có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

Có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 detalles

Lección 24: Lenguaje algebraico y sustituciones

Lecció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 detalles

Módulo 9 Sistema matemático y operaciones binarias

Mó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 detalles

Definició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.

Definició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 detalles

ANÁLISIS DE DATOS NO NUMERICOS

ANÁ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 detalles

UNIDAD 1. LOS NÚMEROS ENTEROS.

UNIDAD 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 detalles

Aplicaciones lineales continuas

Aplicaciones 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 detalles

Capítulo VI. Diagramas de Entidad Relación

Capí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 detalles

Juan Antonio González Mota Profesor de Matemáticas del Colegio Juan XIII Zaidín de Granada

Juan 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 detalles

E 1 E 2 E 2 E 3 E 4 E 5 2E 4

E 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 detalles

MÓDULO 2. LEYES FINANCIERAS DE CAPITALIZACIÓN Y DESCUENTO SIMPLE

MÓ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 detalles

1.1. Introducción y conceptos básicos

1.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 detalles

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

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 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 detalles

342 SOBRE FORMAS TERNARIAS DE SEGUNDO GRADO.

342 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 detalles

Estructuras algebraicas

Estructuras 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 detalles

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

BASES 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 detalles

Semana 08 [1/15] Axioma del Supremo. April 18, 2007. Axioma del Supremo

Semana 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 detalles

Fundamentos de Investigación de Operaciones Investigación de Operaciones 1

Fundamentos 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 detalles

ESTRUCTURAS ALGEBRAICAS 1

ESTRUCTURAS 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 detalles

Subconjuntos destacados en la

Subconjuntos 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 detalles

Un problema sobre repetidas apuestas al azar

Un 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 detalles

1. Producto escalar, métrica y norma asociada

1. 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 detalles

Los números racionales

Los 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 detalles

Nociones Básicas de Sémantica: Semántica Denotacional

Nociones 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 detalles

Creación de Funciones de Conducción

Creació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 detalles

Anexo 1: Demostraciones

Anexo 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 detalles

1.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 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 detalles

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

3.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 detalles

ACCIONES Y OTROS TÍTULOS DE INVERSIÓN

ACCIONES 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 detalles

Espacios Vectoriales

Espacios Vectoriales Espacios Vectoriales Departamento de Matemáticas, CCIR/ITESM 4 de enero de 2 Índice 3.. Objetivos................................................ 3.2. Motivación...............................................

Más detalles

UNIDAD 1 LAS LEYES FINANCIERAS DE CAPITALIZACIÓN DESCUENTO

UNIDAD 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 detalles

Relaciones binarias. ( a, b) = ( c, d) si y solamente si a = c y b = d

Relaciones 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 detalles

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

LABORATORIO 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 detalles

1 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

1 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 detalles

Nota 2. Luis Sierra. Marzo del 2010

Nota 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 detalles

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

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 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 detalles

Capitulo V Administración de memoria

Capitulo 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 detalles

A estas alturas de nuestros conocimientos vamos a establecer dos reglas muy prácticas de cómo sumar dos números reales:

A 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 detalles

Escenas de episodios anteriores

Escenas 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 detalles

Espacios generados, dependencia lineal y bases

Espacios 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 detalles

Funciones, x, y, gráficos

Funciones, 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 detalles

Un juego de cartas: Las siete y media

Un 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 detalles

Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS

Universidad 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 detalles

Tema 3: Producto escalar

Tema 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 detalles

Actividades con GeoGebra

Actividades 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 detalles

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

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 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 detalles

La ventana de Microsoft Excel

La 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 detalles

Ciclo 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 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 detalles

Introducción a la Teoría de Probabilidad

Introducció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 detalles

Ampliación de Estructuras de Datos

Ampliació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 detalles

QUÉ 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É 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 detalles

Curso de Procesamiento Digital de Imágenes

Curso 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 detalles

Números Reales. MathCon c 2007-2009

Nú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 detalles

IIC 2252 - Matemática Discreta

IIC 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 detalles

Apuntes de Matemática Discreta 7. Relaciones de Orden

Apuntes 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 detalles

1.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

1.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 detalles

Profr. Efraín Soto Apolinar. La función lineal. y = a 0 + a 1 x. y = m x + b

Profr. 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 detalles

1. Objetivos. 2. Idea Principal. Teoría de Autómatas y Lenguajes Formales. Boletín de Autoevaluación 3: Cómo se minimiza un AFD?.

1. 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 detalles

Adaptació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. 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 detalles

Curso: 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) 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 detalles

Ejemplo 1.2 En el capitulo anterior se demostró que el conjunto. V = IR 2 = {(x, y) : x, y IR}

Ejemplo 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 detalles

Ingeniería en Informática

Ingenierí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 detalles

4 Pruebas y análisis del software

4 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 detalles

Indicaciones específicas para los análisis estadísticos.

Indicaciones 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 detalles

VII. Estructuras Algebraicas

VII. 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 detalles

6 M. C. J. A G U S T I N F L O R E S A V I L A

6 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 detalles

Apuntes Recuperación ante Fallas - Logging

Apuntes 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 detalles

Introducción. Metadatos

Introducció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 detalles

Diseño de bases de datos Diapositiva 1

Diseñ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 detalles

Definición 2.1.1. Se llama suceso aleatorio a cualquier subconjunto del espacio muestral.

Definició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 detalles

INTRODUCCION A LA PROGRAMACION DE PLC

INTRODUCCION 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 detalles

CASO PRÁCTICO. ANÁLISIS DE DATOS EN TABLAS DINÁMICAS

CASO 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 detalles

Objetivos: Al inalizar la unidad, el alumno:

Objetivos: 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 detalles

Ejercicio de estadística para 3º de la ESO

Ejercicio 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 detalles

EJERCICIOS 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 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 detalles

2) Se ha considerado únicamente la mano de obra, teniéndose en cuenta las horas utilizadas en cada actividad por unidad de página.

2) 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 detalles

Transformaciones canónicas

Transformaciones 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