III. BÚSQUEDA Y RESOLUCIÓN DE PROBLEMAS. III.3.

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "III. BÚSQUEDA Y RESOLUCIÓN DE PROBLEMAS. III.3."

Transcripción

1 III. BÚSQUEDA Y RESOLUCIÓN DE PROBLEMAS. III.3. Búsquedas con retroceso. III.3.1. Búsquedas con retroceso a ciegas. III Procedimientos con retroceso. La búsqueda con retroceso, o backtracking, es una estrategia tentativa. El procedimiento lleva la cuenta de las reglas aplicadas. Si en el transcurso de la búsqueda se llega a un punto muerto, puede olvidar o "deshacer" la última regla aplicada y probar una nueva alternativa. Esto permite, en principio, explorar todos los caminos de un grafo a partir de un nodo inicial, siempre que sea finito y se compruebe la aparición de ciclos. El procedimiento RETROCESO recibe un estado inicial y devuelve: bien el camino de estados que lleva a un estado objetivo; o bien 'FRACASO' si no pudo encontrarse ningún camino solución. Aunque la idea de base es sencilla, pueden considerarse distintas implementaciones de la búsqueda con retroceso. Concretamente analizaremos dos versiones: La primera, que denominaremos backtrack, es una versión recursiva en la que la secuencia de nodos examinados se guarda en los entornos de las sucesivas llamadas recursivas. La segunda, que denominaremos retroceso, es una versión recursiva por la cola que manipula explícitamente una estructura de datos donde se guarda explícitamente el camino que se está examinando. a) Procedimiento BACKTRACK El procedimiento BACKTRACK recibe un estado e intenta encontrar un camino solución partiendo de él. Para ello genera un único sucesor y realiza una llamada recursiva. Si esta fracasa, se genera otro sucesor y se vuelve a realizar una llamada recursiva. Si las llamadas correspondientes a todos los sucesores fracasan, entonces se termina devolviendo FRACASO. Si en algún momento se encuentra un estado final, se termina con éxito, y la secuencia de retornos de las distintas llamadas construyen una lista con el camino solución. PROCEDIMIENTO BACKTRACK backtrack(e) Si finalp(e) entonces devolver (cons(e, NIL)); en otro caso, Para cada regla R aplicable a E E2 aplicar-regla(r,e); SOLUCION backtrack(e2); Si SOLUCION <> FRACASO entonces devolver (cons(e,solucion)); fin/para devolver ( FRACASO ); fin backtrack; b) Procedimiento RETROCESO El procedimiento RETROCESO realiza una exploración similar a la de BACKTRACK. La diferencia está en la implementación, que en el caso de RETROCESO responde a una función recursiva por la cola más versátil, y que permite la comprobación de ciclos. Para llevar la cuenta de los estados y reglas considerados, RETROCESO utiliza una lista de nodos. Cada nodo estará formado por dos elementos: un estado; una lista de las reglas aplicables a dicho estado y que aún no han sido probadas. Supondremos definidas las operaciones: hacer-nodo(e, LR), que recibe un estado E y una lista de reglas LR y devuelve un nodo. estado(n), que recibe un nodo N y devuelve el estado asociado. lista-reglas (N), que recibe un nodo N y devuelve la lista de reglas asociada. También supondremos que NIL denota la lista vacía, y que están definidas las operaciones sobre listas: añadir(x,l), que recibe un elemento X y una lista L, y devuelve una nueva lista cuyo primer elemento es X, y a continuación todos los de la lista L, es decir, en notación Prolog, la lista [X L]. cabeza(l), que recibe una lista L y devuelve su primer elemento. resto(l), que recibe una lista L y devuelve una lista igual que L tras eliminar su primer elemento. Apuntes IAlC 25/26 III.1 Dpto. Leng.Ciencias Comp., Univ.Málaga

2 vacío(l), que recibe una lista L y devuelve 'cierto' si L es la lista vacía, y 'falso' en otro caso. PROCEDIMIENTO RETROCESO retroceso(e); LR reglas-aplicables(e); N hacer-nodo(e, LR); CAMINO añadir(n, NIL); devolver(rtr(camino)); fin-retroceso. PROCEDIMIENTO RTR rtr(camino); NODO cabeza (CAMINO); E estado (NODO); LR lista-reglas (NODO); R cabeza (LR); según: vacío (CAMINO) : devolver ('FRACASO'); es-objetivo (E): devolver (CAMINO); vacío (LR): devolver (rtr (resto (CAMINO))); otro-caso: LR2 resto (LR); NODO2 hacer-nodo (E, LR2); fin-según; fin-rtr. NUEVO-CAM añadir(nodo2, resto (CAMINO)); devolver (rtr (avanzar (E,R, NUEVO-CAM))); Las cuatro condiciones de la estructura 'según' corresponden al fracaso, éxito, retroceso y avance respectivamente. Las dos primeras suponen la terminación de la búsqueda, mientras que las restantes la continúan. Nótese que cuando se prueba una regla de un nodo, la lista de reglas correspondiente debe ser actualizada. Nótese también que 'rtr' es una función recursiva por la cola. La función 'avanzar (E,R, CAM)' recibe un estado E, una regla R aplicable a E, y un camino CAM, y devuelve un camino igual que CAM, pero que además tiene a la cabeza el estado resultante de aplicar R a E. Según la naturaleza del problema que se pretenda resolver puede realizarse o no la comprobación de ciclos. Si los ciclos son imposibles, entonces comprobarlos es una pérdida de tiempo. Si los ciclos son posibles, no comprobarlos puede ser nefasto. Veamos versiones para ambas posibilidades: AVANZAR(E,R,CAMINO) ;versión que no comprueba ciclos E2 aplicar (R, E); LR2 reglas-aplicables (E2); NODO hacer-nodo (E2, LR2); devolver (añadir (NODO, CAMINO)); AVANZAR(E,R,CAMINO) ;versión que sí comprueba ciclos E2 aplicar (R, E); Si repetido(e2,camino) entonces devolver(camino); si-no LR2 reglas-aplicables (E2); NODO hacer-nodo (E2, LR2); devolver (añadir (NODO, CAMINO)); Apuntes IAlC 25/26 III.2 Dpto. Leng.Ciencias Comp., Univ.Málaga

3 donde la función 'repetido(e,camino)' devuleve: 'cierto' si el estado de algún nodo del CAMINO es igual a E; o 'falso' en otro caso. Ejemplo: Sea el grafo de la figura. El estado inicial es el etiquetado como E1, y el final el etiquetado como E4. Supongamos que las reglas se prueban siempre en el orden creciente (R1, R2, R3, R4, R5, R6). En este grafo (un árbol, en realidad) no se presentan ciclos, por lo que puede utilizarse sin peligro la primera versión de 'avanzar'. E 1 R 1 R 3 R 2 E 2 E 3 E 6 R 4 R 5 R 6 E 4 E 5 E 7 La llamada a 'retroceso(e1)' construye una lista formada por un único nodo: E1 (R1, R2, R3) A continuación se realiza la primera llamada a rtr, donde: NODO es E1 (R1, R2, R3) E es E1 LR es (R1, R2, R3) R es R1 El resultado es una segunda llamada recursiva a rtr con la lista: E2 ( ) E1 (R2, R3) y donde: NODO es E2 ( ) E es E2 LR es ( ) R no toma valor El resultado es una tercera llamada a rtr con la lista: Apuntes IAlC 25/26 III.3 Dpto. Leng.Ciencias Comp., Univ.Málaga

4 E1 (R2, R3) El resultado es una cuarta llamada a rtr con la lista: E3 (R4, R5) E1 (R3) El resultado es una quinta llamada a rtr con la lista: E4 ( ) E3 (R5) E1 (R3) Como E4 es el estado final, la búsqueda termina con éxito devolviendo el camino resultante. Apuntes IAlC 25/26 III.4 Dpto. Leng.Ciencias Comp., Univ.Málaga

5 III BÚSQUEDA CON PROFUNDIZACION PROGRESIVA. Consideremos un espacio de estados cuyo nodo s representa el estado inicial de un problema de búsqueda. El algoritmo de backtacking con profundización progresiva BID (Backtracking Iterative Deepening) se puede enunciar como sigue, dependiendo de la implementación de la búsqueda con retroceso empleada. a) BID (versión 1) Desarrollaremos primero una versión de BID partiendo del procedimiento BACKTRACK estudiado anteriormente: PROCEDIMIENTO BID (versión 1) bid (s) COTA ; Repetir SOLUCION backtrack-acotado(s, COTA, ); COTA COTA+1; hasta que SOLUCION <> FRACASO ; devolver (SOLUCION); fin-bid; PROCEDIMIENTO BACKTRACK-ACOTADO backtrack-acotado (E, COTA, PROF) Si finalp(e) entonces devolver (cons(e, NIL)); en otro caso, si PROF COTA entonces devolver ( FRACASO ); en otro caso, Para cada regla R aplicable a E E2 aplicar-regla(r,e); SOLUCION backtrack-acotado(e2, COTA, PROF+1); Si SOLUCION <> FRACASO entonces devolver (cons(e,solucion)); fin/para devolver ( FRACASO ); fin-backtrack-acotado; Nótese que 'backtrack-acotado' incorpora una nueva condición de retroceso respecto a 'backtrack': cuando la longitud del camino explorado supera un cierto límite. Es decir, primero se exploran todos los caminos de longitud 1; si ninguno lleva a un estado objetivo, se exploran los de longitud 2; y así hasta encontrar algún estado objetivo. Nótese que los nodos generados en un ciclo de profundización no se almacenan; en cada ciclo se vuelven a generar los nodos anteriormente generados. b) BID (versión 2) Desarrollaremos ahora una versión de BID aprovechando el procedimiento RTR descrito anteriormente. Nótese que la exploración realizada será la misma que con la versión anterior, siempre que no se comprueben ciclos. PROCEDIMIENTO BID (versión 2) bid(s); LR reglas-aplicables(s); N hacer-nodo(s, LR); CAMINO añadir(n, NIL); D ; repetir SOLUCION rtr-acotado(d, CAMINO, 1); D D+1 hasta que SOLUCION <> 'FRACASO'; devolver(solucion); fin-bid. Apuntes IAlC 25/26 III.5 Dpto. Leng.Ciencias Comp., Univ.Málaga

6 PROCEDIMIENTO RTR-ACOTADO rtr-acotado(lim_prof, CAMINO, PROF); NODO cabeza (CAMINO); E estado (NODO); LR lista-reglas (NODO); R cabeza (LR); según: vacío (CAMINO) : devolver ('FRACASO'); /*FRACASO*/ es-objetivo (E): devolver (CAMINO); /*ÉXITO*/ (PROF LIM-PROF) or (vacío (LR)): /*RETROCESO*/ devolver (rtr-acotado (LIM_PROF, resto(camino), PROF-1)); otro-caso: LR2 resto (LR); /*AVANCE*/ NODO2 hacer-nodo (E, LR2); NUEVO-CAM añadir(nodo2, resto (CAMINO)); devolver (rtr-acotado (LIM_PROF, avanzar (E,R, NUEVO-CAM) PROF+1)); fin-según; fin-rtr-acotado. Nótese que 'rtr-acotado' incorpora una nueva condición de retroceso respecto a 'rtr': cuando la longitud del camino explorado supera un cierto límite. Es decir, primero se exploran todos los caminos de longitud 1; si ninguno lleva a un estado objetivo, se exploran los de longitud 2; y así hasta encontrar algún estado objetivo. Nótese que los nodos generados en un ciclo de profundización no se almacenan; en cada ciclo se vuelven a generar los nodos anteriormente generados. c) Propiedades Ambas versiones de BID realizan la misma exploración (suponiendo que ninguno comprueba ciclos). Por tanto las propiedades son aplicables a ambos. Prop. Si hay una solución, el algoritmo BID acaba y encuentra una solución. Dem. Supongamos que hay una solución. Sea D el mínimo número de arcos que la conectan con s en el grafo. Es evidente que cada ciclo de profundización acaba, luego se llegará a alcanzar el ciclo con profundidad d=d, y en él se encontrará la solución y el algoritmo acabará. Consideremos ahora que el grafo es un árbol con factor de ramificación constante b. Prop. El número máximo Nm de nodos mantenidos en memoria simultáneamente por BID en función de la profundidad D a la que se encuentra el estado objetivo más superficial es de la forma O(D). Dem. El algoritmo de backtracking mantiene una sóla rama de búsqueda. La máxima longitud de esta rama es D, y a cada nivel de profundidad se ha generado 1 sucesor del nodo en el nivel anterior, luego en total se mantienen en el peor caso D nodos, que es de la forma O(D). Prop. El número máximo Ng de nodos generados por BID en función de la profundidad D a la que se encuentra el estado objetivo más superficial es de la forma O(b D ). Dem. Cada nodo a profundidad D se generará una sola vez (en el último ciclo de profundización); los nodos a profundidad D-1 se generarán 2 veces (en el último y el penúltimo ciclo);...; los nodos a profundidad 1 se generarán D veces, luego en total se generan o sea b D + 2b D-1 + 3b D (D-1)b 2 + Db nodos b D (1 + 2b b (D-1)b 1-(D-1) + Db 1-D ) y llamando x = 1/b b D (1 + 2x + 3x (D-1)x D-2 + Dx D-1 ) que es menor que la serie infinita b D Σ n x n y recordando que para -1 < x < 1 es Σ n x n = 1/(1-x) 2 Apuntes IAlC 25/26 III.6 Dpto. Leng.Ciencias Comp., Univ.Málaga

7 tenemos que el número de nodos es a lo sumo b D /(1-x) 2 o sea b D b 2 /(b-1) 2 que es de la forma O(b D ) Figura 1. 5 Ejemplo: Sea el grafo de la figura 1. El estado inicial es el etiquetado con y el objetivo el etiquetado con 5. Supongamos que los sucesores se generan siempre de izquierda a derecha y que no se comprueba la aparición de ciclos. En estas circunstancias, el algoritmo BID genera la siguiente sucesión de caminos (por simplicidad se muestran sólo los estados): d=; d=1; d= solución. Nótese que el algoritmo acaba pese a la existencia de un ciclo en el grafo. Ejercicio propuesto: Nótese que las versiones presentadas de BID no terminan en grafos finitos cuando no hay solución. Realizar las modificaciones necesarias para que BID termine con fracaso en un número finito de pasos en tales situaciones. Apuntes IAlC 25/26 III.7 Dpto. Leng.Ciencias Comp., Univ.Málaga

8 III SATISFACCION DE RESTRICCIONES. III a Definiciones. Un problema de satisfacción de restricciones queda definido por los siguientes elementos: -un conjunto finito de variables {X1,..., Xn}. -para cada variable Xi, un conjunto finito Di llamado dominio. -un conjunto finito de restricciones {C1,..., Cp}. Cada restricción Cj se define mediante una lista sin repeticiones de variables [Xj1,..., Xja(j)] y un subconjunto Vj del producto cartesiano Dj1... Dja(j). El valor a(j) es la aridad de la restricción Cj y el subconjunto Vj es el conjunto de asignaciones permitidas por la restricción Cj. Habitualmente, una restricción Cj no viene dada explícitamente por enumeración de sus asignaciones permitidas, sino por una expresión booleana que para cada asignación de sus variables dará el valor verdadero o el valor falso. El planteamiento del problema es el siguiente: encontrar un valor vi para cada variable Xi tal que: i) vi Di ii) (vj1,..., vja(j)) Vj para toda restricción Cj cuyas variables sean [Xj1,..., Xja(j)], y cuyo conjunto de asignaciones permitidas sea Vj. EJEMPLO: Sean 3 variables X1, X2, X3, con el mismo dominio D1=D2=D3={1,2,3}. Supongamos dos restricciones C1, C2 dadas por las expresiones X1<X2, X2<X3. Más explícitamente, serán C1: [X1, X2], V1= {(1,2), (1,3), (2,3)} C2: [X2, X3], V2= {(1,2), (1,3), (2,3)} Es evidente que la única solución a este problema viene dada por la asignación (X1 1), (X2 2), (X3 3) III b Búsqueda en árbol. Es posible plantear un problema de satisfacción de restricciones como una búsqueda en cierto espacio de estados, definido de la siguiente forma: -los estados son las asignaciones parciales admisibles de valores a un subconjunto de variables {X1,..., Xk}, k n. Una asignación parcial {(X1, v1)..., (Xk, vk)} (k n) es admisible cuando para toda restricción C cuyas variables (Xc1,..., Xcj) están todas en {X1,..., Xk}, las correspondientes tuplas (vc1,..., vcj) C. -el estado inicial es la asignación vacía. -Sea un estado s en el que se han asignado valores hasta la variable Xi. Los sucesores de s son las asignaciones admisibles en las que además de las variables consideradas en s, se ha dado un valor a la variable Xi+1. -los estados objetivo son las asignaciones en las cuales toda variable ha recibido un valor. El espacio así definido es un árbol, cuyas hojas serán todas las asignaciones de variables que satisfacen todas las restricciones. EJEMPLO: Con el ejemplo anterior, el espacio de estados es el de la figura 3. X1 1 X1 2 X1 3 X2 2 X2 3 X2 3 X3 3 Figura 3. Apuntes IAlC 25/26 III.8 Dpto. Leng.Ciencias Comp., Univ.Málaga

9 Es claro que una estrategia de búsqueda con retroceso permitirá generar de forma completa el árbol anterior. El algoritmo puede ser como sigue: Supongamos definidas una ordenación de las variables en una lista variables, y según ella las siguientes definidicones de las funciones variable(n), dominio(var) y la constante NUM-VAR variable(n) la variable n-ésima dominio(var) el dominio de la variable var NUM-VAR el número de variables del problema Representaremos las asignaciones por listas de pares (variable, valor). Supongamos también una función test(asignaciones) que, dada una asignación parcial de valores, devuelve verdadero, si es admisible, y falso en otro caso. La llamada inicial será RA(()), es decir, con la lista de asignaciones vacía. Supondremos también definidas las siguientes operaciones sobre listas: long(l) longitud de la lista L primero(l) primer elemento de la lista L resto(l) una lista como L, pero sin su primer elem. lista(a,b) una lista de la forma [A,B] añadir(e,l) una lista de la forma [E L] RA2(lista-asigs); ALGORITMO RA. si no test(lista-asigs) /*no se cumple alguna restr. */ entonces, devolver(fracaso); si long(lista-asigs) = NUM-VAR entonces, devolver(lista-asigs); num 1 + long(lista-asigs); /*num. orden de la sig. var */ var variable(num); valores dominio(var); loop si valores = [] entonces, devolver(fracaso); valor primero(valores); valores resto(valores); sig-asig lista(var, valor); sig-lista añadir(sig-asig, lista-asigs); resultado RA2(sig-lista); si resultado FRACASO entonces, devolver(resultado); fin-loop; fin-ra2; Cuando en una llamada se cumple la condición test(asignaciones), pero ninguna de las llamadas posteriores se llega a completar una solución, decimos que esa llamada es una llamada improductiva a RA. Ello corresponde a generar una asignación parcial admisible que no se puede completar de forma admisible. Por ello, a su nivel no se produce inmediatamente retroceso; sin embargo, ninguna de las llamadas que se originen a partir de ella producirá una salida. Por ejemplo, el el árbol anterior el nodo (X1, 2) se origina en una llamada improductiva; por el contrario, el nodo (X1, 1) se origina en una llamada productiva. III c. Consistencia en arcos. Otro enfoque para el problema de satisfacción de restricciones viene dado por los algoritmos de consistencia en arcos, también llamados de filtrado o relajación. En estos algoritmos se realiza un procesamiento de los dominios Di previamente a la búsqueda en un árbol de asignaciones parciales. Consideramemos únicamente el caso de restricciones binarias (que afectan a dos variables). El caso más general se puede abordar mediante un procedimiento análogo (consistencia en hiperarcos). Un conjunto de restricciones binarias define un grafo de restricciones en el cual los nodos son las variables con sus dominios y existe un arco (i,j) siempre que haya una restricción binaria C que afecta a las variables Xi y Xj. Al aplicar un algoritmo de consistencia en arcos, se comienza considerando el grafo con todos los dominios completos. En cada paso se intenta eliminar algún elemento de algún dominio. En efecto, si existe una restricción C que Apuntes IAlC 25/26 III.9 Dpto. Leng.Ciencias Comp., Univ.Málaga

10 afecta a las variables Xi y Xj con un conjunto de asignaciones permitidas V, y el valor vk Di es tal que para ningún elemento vm Dj se tiene (vk, vm) V, entonces podremos eliminar vk de Di, ya que no puede formar parte de ninguna solución. En el mejor de los casos, la búsqueda en árbol no será necesaria pues los dominios quedarán reducidos de forma que su producto cartesiano genere todas las soluciones, y precisamente éstas. Si no es así, al menos se habrá reducido el tamaño original de los dominios, y la búsqueda será más sencilla. 1, 2, 3 X1 X3 x1<x2 X2 1, 2, 3 1, 2 X1 X3 x1<x2 X2 1, 2, 3 1, 2, 3 x2<x3 1, 2, 3 x2<x3 1, 2 X1 X3 x1<x2 X2 2, 3 1 X1 X3 x1<x2 X2 2, 3 1, 2, 3 x2<x3 3 x2<x3 1 X1 X3 x1<x2 2 X2 3 x2<x3 Figura 4. Aclaremos el procedimiento aplicándolo al ejemplo anterior (figura 4). Representaremos cada dominio por una caja en cuyo interior figuren todos los posibles valores. Comenzamos llenando cada caja con todos los elementos del dominio. Consideremos el arco (1,2); el valor 3 de X1 es incompatible con todos los valores de X2, pues es 3<1, 3<2, 3<3. Por tanto, eliminamos el valor 3 de la caja de X1. De la misma forma, considerando el mismo arco en sentido contrario, el valor 1 de X2 es incompatible con todos los valores de X1, por lo que se puede eliminar. Considerando de nuevo el arco (1,2) vemos que el valor 2 de X1 es incompatible con los valores que quedan en X2, así que también lo eliminamos. Por otra parte, si atendemos al arco (2,3) en sentido inverso, los valores 1 y 2 de X3 son incompatibles con los valores de X2. Por último, observamos que el valor 2 de X2 es incompatible con el único valor que queda en X3. El procesamiento ha acabado y la única solución es la que queda en el grafo: (X1 1), (X2 2), (X3 3). Nótese que no hemos definido por completo un algoritmo, pues no se ha dicho el orden en que se realizan las comprobaciones ni el paso en el que dejan de realizarse. Una posibilidad es la siguiente: Llamemos Q al conjunto de pares (r,s) tales que existe una restricción C que afecta a [Xr, Xs] (lógicamente tambien pertenecerá a Q el par (s, r) si exite restricción que afecte a [Xs, Xr]). Para cada elemento (r,s) Q llamemos Vrs al conjunto de pares (v,w) que satisfacen la restricción correspondiente al arco C. Apuntes IAlC 25/26 III.1 Dpto. Leng.Ciencias Comp., Univ.Málaga

11 ALGORITMO AC DE CONSISTENCIA DE ARCOS. repetir cambio falso para todo arco (i,j) Q para todo valor v Di eliminación verdadero; para todo w Dj si (v,w) Vij eliminación falso; salir para-todo w fin-si fin-para todo; si eliminación Di Di - {v}; cambio verdadero; fin-si fin-para todo fin-para todo hasta que cambio = falso Prop. El algoritmo AC termina. Efectivamente, se parte de conjuntos finitos de valores en un conjunto finito de dominios. En cada ejecución del ciclo repetir (única fuente posible de no terminación) se eliminan uno o más valores, salvo en la última, donde no se elimina ninguno. Por tanto, el ciclo repetir se ejecutará a lo sumo un número de veces igual al producto de los cardinales de cada dominio inicial. Cuando se alcanza la condición de terminación, para todo valor v de un dominio D y para todo dominio D conectado con D, existe al menos un valor w D tal que (v,w) satisface la restricción correspondiente al arco. Esta condición es la denominada 2-consistencia o consistencia en arcos. Prop. Si el grafo de restricciones es un árbol, y las variables se enumeran según el preorden del árbol, y los dominios son 2-consistentes, entonces la llamada inicial al algoritmo RA no produce ninguna llamada improductiva. Dem: se omite. EJEMPLO: Sean tres subconjuntos de N, X={5, 2, 4, 6}, Y={2, 4, 6, 1}, Z={5, 2, 4, 6}. Se pide escoger un número de cada conjunto de forma que el número escogido de Z divida tanto al escogido de X como al escogido de Y. El grafo de restricciones puede representarse por un árbol, por ejemplo 5, 2, 4, 6 X Z 5, 2, 4, 6 2, 4, 6, 1 Y El preorden del árbol considerado es (Z, X, Y). Aplicando el procedimiento AC comprobamos que el grafo es 2-consistente. Por tanto, si realizamos una búsqueda comenzando las asignaciones por la variable Z, el árbol generado no tendrá nodos improductivos: Apuntes IAlC 25/26 III.11 Dpto. Leng.Ciencias Comp., Univ.Málaga

12 Z= X= Y= Por el contrario, si realizamos la búsqueda con la ordenación (X, Y, Z), que no corresponde a ningún preorden del grafo de restricciones, el árbol tiene nodos improductivos: X= Y= Z= Existen otros algoritmos que no realizan todas las comprobaciones que efectúa AC (algoritmos de retroceso con precomprobación y de retroceso con previsión parcial). También los hay que realizan más comprobaciones (algoritmos de k-consistencia). Apuntes IAlC 25/26 III.12 Dpto. Leng.Ciencias Comp., Univ.Málaga

13 III.3.2. Búsquedas heurísticas con retroceso: IDA* El algoritmo IDA* (Iterative Deepening A* - A* con Profundización Iterativa) es un algoritmo de búsqueda con retroceso que admite el mismo tipo de información heurística que el algoritmo de búsqueda con árbol A*. Consideremos un grafo G cuya raíz s representa el estado inicial de un problema de búsqueda. El algoritmo A* con profundización progresiva IDA* se puede enunciar como sigue: PROCEDIMIENTO IDA* poda f(s); sig-poda ; Camino [s]; REPETIR si Camino=[] y sig-poda = devolver('fracaso') en otro casi si Camino=[] poda sig-poda; empezar de nuevo; en otro caso si f(último(camino)) > poda actualizar sig-poda; retroceder; en otro caso si último(camino) Objetivos devolver(camino); en otro caso si otros-sucesores(último(camino))=[] retroceder; en otro caso avanzar; HASTA QUE FALSO. donde avanzar y retroceder tienen el significado habitual de la búsqueda con retroceso; empezar de nuevo supone volver al nodo inicial y emprender una nueva búsqueda con una nueva cota (sig-poda) para la poda; y sig-poda se va tomando como el menor de los valores encontrados que superan la actual cota de poda. Es decir, primero se exploran todos los caminos de coste hasta f(s); si ninguno lleva a un estado objetivo, se exploran los de coste c menor o igual que el menor de los costes anteriormente hallados que rebasaban la anterior cota de coste; y así hasta encontrar algún estado objetivo. Nótese que los nodos generados en un ciclo de profundización no se almacenan; en cada ciclo se vuelven a generar los nodos anteriormente generados. A diferencia del algoritmo A*, IDA* no mantiene las listas CERRADOS y ABIERTOS, ya que realiza una búsqueda con retroceso. Propiedades Prop. Admisibilidad. Si hay una solución y la función h(n) es una estimación optimista de h*(n), el algoritmo IDA* acaba y encuentra una solución de mínimo coste. Demostración. La cota de poda inicial es h(s) h*(s)=f*(s)=c*. Además, en cada nuevo ciclo de búsqueda la cota de poda es el mínimo valor que excedió la anterior cota, y siempre algún nodo n que yace en el camino solución tiene f(n) C*. Por tanto, la cota de poda llegará a ser exactamente C*, y en el correpondiente ciclo de búsqueda se encontrará un camino con coste C*. Prop. El número máximo Nm de nodos mantenidos en memoria simultáneamente por IDA* en función del coste óptimo C* y del coste mínimo de un arco c es de la forma O(C*/c). Llamemos factor de ramificación heurístico de un problema al factor B correspondiente a la aplicación de A* a dicho problema. Prop. Si el factor de ramificación heurístico es mayor que 1 y el espacio de estados es un árbol, entonces cuando crece la longitud de la solución el número de nodos generados por IDA* tiende asintóticamente al número de nodos generados por A*. Demostración. En el peor caso, el último ciclo de búsqueda de IDA* expande los mismos nodos que A*. Si el espacio es un árbol, cada nodo se expande a lo sumo una vez. Por otra parte, un argumento análogo al del algoritmo BID muestra que los nodos expandidos por IDA* en anteriores ciclos de búsqueda no afectan al valor asintótico del número total de nodos expandidos. Apuntes IAlC 25/26 III.13 Dpto. Leng.Ciencias Comp., Univ.Málaga

14 EJEMPLO. Sea el grafo de la figura 2. El estado inicial es el, el objetivo el 5, los costes de los arcos son los indicados. La función h toma los valores h()=2, h(1)=1, h(2)=1, h(3)=2, h(4)=1, h(5)=. 1 3, , , La aplicación de IDA* genera los caminos: Figura 2. poda= f()=2; f()=2 f(1)=2 f()=4 sig-poda se actualiza a 4. 2 f(2)=2,5 sig-poda se actualiza a 2,5. 3 f(3)=4 4 f(4)=5,4 2 f(2)=4 poda=2,5 f()=2 f(1)=2 f()=4 sig-poda se actualiza a 4. 2 f(2)=2,5 24 f(4)=4, f(5)=2,5 solución. Apuntes IAlC 25/26 III.14 Dpto. Leng.Ciencias Comp., Univ.Málaga

Búsqueda heurística Prof. Constantino Malagón

Búsqueda heurística Prof. Constantino Malagón Búsqueda heurística Prof. Constantino Malagón Area de Computación e Inteligencia Artificial 1 Búsqueda heurística Los métodos de búsqueda heurística disponen de alguna información sobre la proximidad de

Más detalles

Restricciones. Inteligencia Artificial. Ingeniería Superior en Informática, 4º Curso académico: 2011/2012 Profesores: Ramón Hermoso y Matteo Vasirani

Restricciones. Inteligencia Artificial. Ingeniería Superior en Informática, 4º Curso académico: 2011/2012 Profesores: Ramón Hermoso y Matteo Vasirani Restricciones Ingeniería Superior en Informática, 4º Curso académico: 2011/2012 Profesores: Ramón Hermoso y Matteo Vasirani 1 Tema 2: Agentes basados en Búsqueda Resumen: 2. Agentes basados en búsqueda

Más detalles

Resolución de Problemas

Resolución de Problemas Introducción Resolución de Problemas La resolución de problemas es una capacidad que consideramos inteligente Somos capaces de resolver problemas muy diferentes Encontrar el camino en un laberinto Resolver

Más detalles

Arboles Binarios de Búsqueda

Arboles Binarios de Búsqueda Arboles Binarios de Búsqueda Algoritmos y Estructuras de Datos Departamento de Electricidad y Electrónica (UPV/EHU) Arboles Binarios de Búsqueda p.1/52 Arboles Binarios Arbol binario: árbol ordenado de

Más detalles

Tema 3: Problemas de Satisfacción de Restricciones

Tema 3: Problemas de Satisfacción de Restricciones Tema 3: Problemas de Satisfacción de Restricciones Universidad de Granada Tema 3: Satisfacción de Restricciones Contenido Problemas de satisfacción de restricciones Métodos de búsqueda Búsqueda local para

Más detalles

Un grafo G es un par (V,E) donde V es un conjunto (llamado conjunto de vértices) y E un subconjunto de VxV (conjunto de aristas).

Un grafo G es un par (V,E) donde V es un conjunto (llamado conjunto de vértices) y E un subconjunto de VxV (conjunto de aristas). TEMA 5.- GRAFOS 5.1.- DEFINICIONES BÁSICAS Un grafo G es un par (V,E) donde V es un conjunto (llamado conjunto de vértices) y E un subconjunto de VxV (conjunto de aristas). Gráficamente representaremos

Más detalles

Fundamentos de Investigación de Operaciones Asignación y Vendedor Viajero

Fundamentos de Investigación de Operaciones Asignación y Vendedor Viajero Fundamentos de Investigación de Operaciones y Vendedor Viajero 23 de mayo de 2004 Si bien la resolución del problema de transporte mediante tableau parece ser muy expedita, existen ciertos tipos de problemas

Más detalles

3. Consideremos el puzzle-8 descrito en clase y sea el estado objetivo, como de costumbre,

3. Consideremos el puzzle-8 descrito en clase y sea el estado objetivo, como de costumbre, E.T.S.I. INFORMÁTICA 4º CURSO. INTELIGENCIA ARTIFICIAL. UNIVERSIDAD DE MÁLAGA Dpto. Lenguajes y Ciencias de la Computación RELACIÓN DE PROLEMAS. ÚSQUEDAS CON ÁROL.. Un móvil puede situarse en los nodos

Más detalles

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores Árboles Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Introducción Árbol genérico Definición y representación Árboles binarios Definición, implementación,

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

GRAFOS. Prof. Ing. M.Sc. Fulbia Torres

GRAFOS. Prof. Ing. M.Sc. Fulbia Torres ESTRUCTURAS DE DATOS 2006 Prof. DEFINICIÓN Un grafo consta de un conjunto de nodos(o vértices) y un conjunto de arcos (o aristas). Cada arco de un grafo se especifica mediante un par de nodos. Denotemos

Más detalles

Sistemas de producción y búsqueda de soluciones. Area de Computación e Inteligencia Artificial 1

Sistemas de producción y búsqueda de soluciones. Area de Computación e Inteligencia Artificial 1 Sistemas de producción y búsqueda de soluciones Area de Computación e Inteligencia Artificial 1 Técnicas de búsqueda Resolución de problemas en Inteligencia Artificial. En general, podemos afirmar que

Más detalles

Estructuras de Datos. Montículos. Montículos. Montículos. Tema 3. Montículos. Definiciones básicas: Definiciones básicas:

Estructuras de Datos. Montículos. Montículos. Montículos. Tema 3. Montículos. Definiciones básicas: Definiciones básicas: Estructuras de Datos Tema. 1. Definiciones básicas 2. Implementación. Operaciones con montículos 4. Definiciones básicas: En un árbol binario completo todos los niveles del árbol (excepto tal vez el último)

Más detalles

Estructuras de datos: Árboles binarios de

Estructuras de datos: Árboles binarios de Estructuras de datos: Árboles binarios de búsqueda, Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge santiago.jorge@udc.es Árboles binarios de búsqueda, Table of Contents

Más detalles

árbol como un conjunto de nodos y líneas

árbol como un conjunto de nodos y líneas ÁRBOLES CAPÍTULO 6 ÁRBOLES Desde el punto de vista conceptual, un árbol es un objeto que comienza con una raíz (root) y se extiende en varias ramificaciones o líneas (edges), cada una de las cuales puede

Más detalles

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006 ARBOLES ESTRUCTURAS DE DATOS 2006 DEFINICION Un árbol (tree) es un conjunto finito de nodos. Es una estructura jerárquica aplicable sobre una colección de elementos u objetos llamados nodos; uno de los

Más detalles

Apuntes de Matemática Discreta 6. Relaciones

Apuntes de Matemática Discreta 6. Relaciones Apuntes de Matemática Discreta 6. Relaciones Francisco José González Gutiérrez Cádiz, Octubre de 2004 Universidad de Cádiz Departamento de Matemáticas ii Lección 6 Relaciones Contenido 6.1 Generalidades.....................................

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

Satisfacción de Restricciones

Satisfacción de Restricciones Satisfacción de Restricciones Introducción Componentes del estado: Variables Dominios (valores posibles para las variables) Restricciones binarias entre las variables Objetivo: Encontrar un estado que

Más detalles

Resumen de técnicas para resolver problemas de programación entera. 15.053 Martes, 9 de abril. Enumeración. Un árbol de enumeración

Resumen de técnicas para resolver problemas de programación entera. 15.053 Martes, 9 de abril. Enumeración. Un árbol de enumeración 5053 Martes, 9 de abril Ramificación y acotamiento () Entregas: material de clase Resumen de técnicas para resolver problemas de programación entera Técnicas de enumeración Enumeración completa hace una

Más detalles

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009 Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier

Más detalles

Tema 2. Recursividad. Fundamentos de Programación II. Luís Rodríguez Baena (luis.rodriguez@upsam.net)

Tema 2. Recursividad. Fundamentos de Programación II. Luís Rodríguez Baena (luis.rodriguez@upsam.net) Fundamentos de Programación II Tema 2. Recursividad Luís Rodríguez Baena (luis.rodriguez@upsam.net) Universidad Pontificia de Salamanca (campus Madrid) Escuela Superior de Ingeniería y Arquitectura Naturaleza

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

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

Tema III. Capítulo 2. Sistemas generadores. Sistemas libres. Bases.

Tema III. Capítulo 2. Sistemas generadores. Sistemas libres. Bases. Tema III Capítulo 2 Sistemas generadores Sistemas libres Bases Álgebra Lineal I Departamento de Métodos Matemáticos y de Representación UDC 2 Sistemas generadores Sistemas libres Bases 1 Combinación lineal

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

Capítulo 1. MANUAL DE USUARIO

Capítulo 1. MANUAL DE USUARIO Capítulo 1. MANUAL DE USUARIO 1.1 SUCESIONES GRÁFICAS Lo primero que se hará es mostrar la pantalla que se encontrará el usuario cuando ejecute la aplicación, indicando las zonas en las que se divide esta:

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

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

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

EJERCICIOS DE FUNCIONES REALES

EJERCICIOS DE FUNCIONES REALES EJERCICIOS DE FUNCIONES REALES.- La ley que relaciona el valor del área de un cuadrado con la longitud de su lado es una función. Sabemos que la epresión que nos relacionas ambas variables es. Observa

Más detalles

El modelo relacional

El modelo relacional El modelo relacional El modelo relacional constituye una alternativa para la organización y representación de la información que se pretende almacenar en una base de datos. Se trata de un modelo teórico

Más detalles

Analisis de algoritmos

Analisis de algoritmos Analisis de algoritmos Eficiencia Es la capacidad de disponer de un recurso. En el caso de los algoritmos, la eficiencia se logra haciendo el mejor uso posible de los recursos del sistema. Recursos Qué

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

Problemas de Satisfacción de Restricciones

Problemas de Satisfacción de Restricciones Problemas de Satisfacción de estricciones José Luis uiz eina José Antonio Alonso Jiménez Franciso J. Martín Mateos María José Hidalgo Doblado Dpto. Ciencias de la Computación e Inteligencia Artificial

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

3. Modelo relacional: Estructura e integridad.

3. Modelo relacional: Estructura e integridad. Modelo relacional: Estructura e integridad 47 3. Modelo relacional: Estructura e integridad. 3.1. Introducción. El modelo de datos relacional es posterior a los modelos jerárquicos y de red. Nació como

Más detalles

Análisis amortizado El plan:

Análisis amortizado El plan: Análisis amortizado El plan: Conceptos básicos: Método agregado Método contable Método potencial Primer ejemplo: análisis de tablas hash dinámicas Montículos agregables (binomiales y de Fibonacci) Estructuras

Más detalles

Este es un ejemplo muy sencillo, un esquema de empleados que trabajan en proyectos, en una relación muchos a muchos.

Este es un ejemplo muy sencillo, un esquema de empleados que trabajan en proyectos, en una relación muchos a muchos. 28/04/2012 La teoría de la normalización va perdiendo peso con el paso de los años como herramienta de diseño de bases de datos relacionales en favor de modelos de datos más ricos en su representación,

Más detalles

Problemas Resueltos del Tema 1

Problemas Resueltos del Tema 1 Tema 1. Probabilidad. 1 Problemas Resueltos del Tema 1 1- Un estudiante responde al azar a dos preguntas de verdadero o falso. Escriba el espacio muestral de este experimento aleatorio.. El espacio muestral

Más detalles

Hoja de Problemas Tema 6 Búsqueda con estados estructurados: Restricciones

Hoja de Problemas Tema 6 Búsqueda con estados estructurados: Restricciones Ejercicio 1: 1.1. Si se resuelve un problema de satisfacción de restricciones mediante búsqueda con asignaciones parciales, entonces (a) (b) (c) (d) (e) Un estado siempre asigna un valor a todas las variables

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

Métodos Heurísticos en Inteligencia Artificial

Métodos Heurísticos en Inteligencia Artificial Métodos Heurísticos en Inteligencia Artificial Javier Ramírez rez-rodríguez Ana Lilia Laureano-Cruces Universidad Autónoma Metropolitana Métodos Heurísticos en Inteligencia Artificial Los problemas de

Más detalles

BASES DE DATOS TEMA 4 DISEÑO DE BASES DE DATOS RELACIONALES

BASES DE DATOS TEMA 4 DISEÑO DE BASES DE DATOS RELACIONALES BASES DE DATOS TEMA 4 DISEÑO DE BASES DE DATOS RELACIONALES El modelo relacional se basa en dos ramas de las matemáticas: la teoría de conjuntos y la lógica de predicados de primer orden. El hecho de que

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

Registro (record): es la unidad básica de acceso y manipulación de la base de datos.

Registro (record): es la unidad básica de acceso y manipulación de la base de datos. UNIDAD II 1. Modelos de Bases de Datos. Modelo de Red. Representan las entidades en forma de nodos de un grafo y las asociaciones o interrelaciones entre estas, mediante los arcos que unen a dichos nodos.

Más detalles

1 Agencia de viajes: enunciado

1 Agencia de viajes: enunciado 1 AGENCIA DE VIAJES: ENUNCIADO 1 1 Agencia de viajes: enunciado Una agencia de viajes mantiene una base de datos con exactamente N clientes y M destinos turísticos. En una situación real, estos valores

Más detalles

Función exponencial y Logaritmos

Función exponencial y Logaritmos Eje temático: Álgebra y funciones Contenidos: Función exponencial y Logaritmos Nivel: 4 Medio Función exponencial y Logaritmos 1. Funciones exponenciales Existen numerosos fenómenos que se rigen por leyes

Más detalles

Tipos Abstractos de Datos

Tipos Abstractos de Datos Objetivos Repasar los conceptos de abstracción de datos y (TAD) Diferenciar adecuadamente los conceptos de especificación e implementación de TAD Presentar la especificación algebraica como método formal

Más detalles

EJERCICIOS RESUELTOS SOBRE ERRORES DE REDONDEO

EJERCICIOS RESUELTOS SOBRE ERRORES DE REDONDEO EJERCICIOS RESUELTOS SOBRE ERRORES DE REDONDEO 1º) Considérese un número estrictamente positivo del sistema de números máquina F(s+1, m, M, 10). Supongamos que tal número es: z = 0.d 1 d...d s 10 e Responde

Más detalles

Relaciones entre conjuntos

Relaciones entre conjuntos Relaciones entre conjuntos Parejas ordenadas El orden de los elementos en un conjunto de dos elementos no interesa, por ejemplo: {3, 5} = {5, 3} Por otra parte, una pareja ordenada consiste en dos elementos,

Más detalles

Árboles AVL. Laboratorio de Programación II

Árboles AVL. Laboratorio de Programación II Árboles AVL Laboratorio de Programación II Definición Un árbol AVL es un árbol binario de búsqueda que cumple con la condición de que la diferencia entre las alturas de los subárboles de cada uno de sus

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

DEPARTAMENTO DE INGENIERÍA EN SISTEMAS Y COMPUTACIÓN OPCIÓN I

DEPARTAMENTO DE INGENIERÍA EN SISTEMAS Y COMPUTACIÓN OPCIÓN I 1INSTITUTO TECNOLÓGICO DE CIUDAD MADERO DEPARTAMENTO DE INGENIERÍA EN SISTEMAS Y COMPUTACIÓN OPCIÓN I TESIS: Desarrollo de Algoritmos de Retroceso Aplicados a la solución del Problema del Diseño de la

Más detalles

March 25, 2010 CAPÍTULO 2: LÍMITES Y CONTINUIDAD DE FUNCIONES EN EL ESPACIO EUCLÍDEO

March 25, 2010 CAPÍTULO 2: LÍMITES Y CONTINUIDAD DE FUNCIONES EN EL ESPACIO EUCLÍDEO March 25, 2010 CAPÍTULO 2: LÍMITE Y CONTINUIDAD DE FUNCIONE EN EL EPACIO EUCLÍDEO 1. Producto Escalar en R n Definición 1.1. Dado x = (x 1,..., x n ), y = (y 1,..., y n ) R n, su producto escalar está

Más detalles

1. (2 puntos) En la V Caminata Madrileño Manchega, los participantes caminan de Madrid

1. (2 puntos) En la V Caminata Madrileño Manchega, los participantes caminan de Madrid Matemática Discreta Segundo de Ingeniería Informática UAM Curso 2006-2007 Solucionario del examen final del 26-1-2007 Nota bene: A continuación exhibimos algunas de las distintas maneras de abordar los

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

El proyecto realizado consiste en un resolutor de sudokus mediante CSP.

El proyecto realizado consiste en un resolutor de sudokus mediante CSP. Introducción El proyecto realizado consiste en un resolutor de sudokus mediante CSP. El problema del sudoku fue inventado por Howard Garns en 1979 y se volvió muy popular en Japón en 1986. En España ha

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

PROGRAMACIÓN DECLARATIVA: LÓGICA Y RESTRICCIONES Grado en Ingeniería Informática / Grado en Matemáticas e Informática

PROGRAMACIÓN DECLARATIVA: LÓGICA Y RESTRICCIONES Grado en Ingeniería Informática / Grado en Matemáticas e Informática Nombre: PROGRAMACIÓN DECLARATIVA: LÓGICA Y RESTRICCIONES Nº de Matrícula: INSTRUCCIONES: El examen consta de 3 ejercicios. Todas las preguntas deben comenzar a contestarse en su hoja correspondiente. Pueden

Más detalles

Restricciones sobre dominios finitos con Gprolog

Restricciones sobre dominios finitos con Gprolog Autores: Rubén García Portal Nikolai Smirnov Restricciones sobre dominios finitos con Gprolog Introducción. Este documento explicará brevemente las funciones que se utilizan en Gprolog para resolución

Más detalles

Capítulo 6. ÁRBOLES.

Capítulo 6. ÁRBOLES. 67 Capítulo 6. ÁRBOLES. 6.1 Árboles binarios. Un árbol binario es un conjunto finito de elementos, el cual está vacío o dividido en tres subconjuntos separados: El primer subconjunto contiene un elemento

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

ESCUELA SUPERIOR DE INFORMATICA Prácticas de Estadística UNA SESIÓN EN SPSS

ESCUELA SUPERIOR DE INFORMATICA Prácticas de Estadística UNA SESIÓN EN SPSS UNA SESIÓN EN SPSS INTRODUCCIÓN. SPSS (Statistical Product and Service Solutions) es un paquete estadístico orientado, en principio, al ámbito de aplicación de las Ciencias sociales, es uno de las herramientas

Más detalles

Algoritmos sobre Grafos

Algoritmos sobre Grafos Sexta Sesión 27 de febrero de 2010 Contenido Deniciones 1 Deniciones 2 3 4 Deniciones sobre Grafos Par de una lista de nodos y una lista de enlaces, denidos a su vez como pares del conjunto de nodos.

Más detalles

Problemas de satisfacción de restricciones.

Problemas de satisfacción de restricciones. Problemas de satisfacción de restricciones. In whitch we see how treating states as more than just little black boxes leads to the invention of a range of powerful new search methods and a deeper understanding

Más detalles

Universidad Nacional de Quilmes Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Universidad Nacional de Quilmes Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005 Extracción de Frontera (Boundary Extraction) La frontera de un conjunto A, escrita como β(a), se puede obtener erosionando A por B y luego calcular la diferencia entre A y su erosión. Esto es β ( A) =

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

Proyecto Septiembre. Escuela Politécnica Superior Universidad Autónoma de Madrid 1

Proyecto Septiembre. Escuela Politécnica Superior Universidad Autónoma de Madrid 1 Proyecto Septiembre A. Organización de la práctica 1) Para promediar con la parte teórica de la asignatura es necesario aprobar independientemente prácticas y teoría. 2) La práctica de Septiembre se debe

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

Aplicaciones abiertas y cerradas

Aplicaciones abiertas y cerradas 44 3. POSICIÓN DE UN PUNTO CON RESPECTO A UN CONJUNTO Tema 7. Aplicaciones abiertas y cerradas Hasta ahora nos hemos centrado en propiedades de puntos con respecto a conjuntos, y las únicas propiedades

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

Problemas indecidibles

Problemas indecidibles Capítulo 7 Problemas indecidibles 71 Codificación de máquinas de Turing Toda MT se puede codificar como una secuencia finita de ceros y unos En esta sección presentaremos una codificación válida para todas

Más detalles

Apuntes de Grafos. 1. Definiciones

Apuntes de Grafos. 1. Definiciones Apuntes de Grafos Un grafo es una entidad matemática introducida por Euler en 736 para representar entidades (vértices) que pueden relacionarse libremente entre sí, mediante el concepto de arista Se puede

Más detalles

Ecuaciones Diferenciales Tema 2. Trasformada de Laplace

Ecuaciones Diferenciales Tema 2. Trasformada de Laplace Ecuaciones Diferenciales Tema 2. Trasformada de Laplace Ester Simó Mezquita Matemática Aplicada IV 1 1. Transformada de Laplace de una función admisible 2. Propiedades básicas de la transformada de Laplace

Más detalles

1.3 Números racionales

1.3 Números racionales 1.3 1.3.1 El concepto de número racional Figura 1.2: Un reparto no equitativo: 12 5 =?. Figura 1.3: Un quinto de la unidad. Con los números naturales y enteros es imposible resolver cuestiones tan simples

Más detalles

Codd propuso estos tres lenguajes como base teórica de cualquier lenguaje que quisiera cumplir con los requisitos formales del modelo.

Codd propuso estos tres lenguajes como base teórica de cualquier lenguaje que quisiera cumplir con los requisitos formales del modelo. 16/05/2012 1 Todo modelo de datos debe definir un lenguaje de definición de datos para crear las estructuras donde se almacenará la información y un lenguaje de manipulación de datos con el que acceder

Más detalles

Cualquier lenguaje de contexto libre, L, puede ser generado por medio de una GCL, G, que cumpla las siguientes condiciones:

Cualquier lenguaje de contexto libre, L, puede ser generado por medio de una GCL, G, que cumpla las siguientes condiciones: Teoría de Autómatas y Lenguajes Formales Boletín de Autoevaluación 5: Cómo se simplifica una Gramática de Contexto Libre?. 1. Objetivos. El objetivo de este boletín es ilustrar cómo proceder para simplificar

Más detalles

Tecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014

Tecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014 Tecnologías en la Educación Matemática jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR 1 Datos Los algoritmos combinan datos con acciones. Los datos de entrada

Más detalles

Tema 3: Variables aleatorias y vectores aleatorios bidimensionales

Tema 3: Variables aleatorias y vectores aleatorios bidimensionales Estadística 38 Tema 3: Variables aleatorias y vectores aleatorios bidimensionales El concepto de variable aleatoria surge de la necesidad de hacer más manejables matemáticamente los resultados de los experimentos

Más detalles

DESIGUALDADES E INECUACIONES

DESIGUALDADES E INECUACIONES DESIGUALDAD DESIGUALDADES E INECUACIONES Para hablar de la NO IGUALDAD podemos utilizar varios términos o palabras. Como son: distinto y desigual. El término "DISTINTO" (signo ), no tiene apenas importancia

Más detalles

Proyecto Unico Interpretador de SetCalc

Proyecto Unico Interpretador de SetCalc Universidad Simón Bolívar Dpto. de Computación y Tecnología de la Información CI3721 - Traductores e Interpretadores Abril-Julio 2008 Proyecto Unico Interpretador de SetCalc A continuación se describe

Más detalles

y los conos serán todos los diagramas (acá usamos la palabra en el sentido habitual, no en el que acabamos de definir) de la forma

y los conos serán todos los diagramas (acá usamos la palabra en el sentido habitual, no en el que acabamos de definir) de la forma (Novena clase: Límites y colímites) Las definiciones de obeto terminal, producto binario, ecualizador y pullback, son casos particulares de un concepto general, llamado límite, que presentaremos a continuación.

Más detalles

Aplicaciones Lineales y Multilineales Continuas

Aplicaciones Lineales y Multilineales Continuas Capítulo 4 Aplicaciones Lineales y Multilineales Continuas La conexión entre las estructuras vectorial y topológica de los espacios normados, se pone claramente de manifiesto en el estudio de las aplicaciones

Más detalles

Parte I. Iniciación a los Espacios Normados

Parte I. Iniciación a los Espacios Normados Parte I Iniciación a los Espacios Normados Capítulo 1 Espacios Normados Conceptos básicos Sea E un espacio vectorial sobre un cuerpo K = R ó C indistintamente. Una norma sobre E es una aplicación de E

Más detalles

H E R R A M I E N T A S D E A N Á L I S I S D E D A T O S HERRAMIENTAS DE ANÁLISIS DE DATOS

H E R R A M I E N T A S D E A N Á L I S I S D E D A T O S HERRAMIENTAS DE ANÁLISIS DE DATOS H E R R A M I E N T A S D E A N Á L I S I S D E D A T O S HERRAMIENTAS DE ANÁLISIS DE DATOS Una situación que se nos plantea algunas veces es la de resolver un problema hacia atrás, esto es, encontrar

Más detalles

EJERCICIOS RESUELTOS PROGRAMACIÓN III

EJERCICIOS RESUELTOS PROGRAMACIÓN III EJERCICIOS RESUELTOS PROGRAMACIÓN III Curso 2008 2009 Ejercicios resueltos de programación 3 Tema 3. Notación asintótica. Alumna: Alicia Sánchez Centro: UNED-Las Rozas (Madrid) El índice de los ejercicios

Más detalles

Tema 10: Funciones de varias variables. Funciones vectoriales. Límites y continuidad

Tema 10: Funciones de varias variables. Funciones vectoriales. Límites y continuidad Tema 10: Funciones de varias variables. Funciones vectoriales. Límites y continuidad 1 Funciones de varias variables Observación 1.1 Conviene repasar,enestepunto,lodadoeneltema8paratopología en R n : bolas,

Más detalles

= x + x + x + 1 por definición de exponente 2

= x + x + x + 1 por definición de exponente 2 Equivalencia de expresiones algebraicas En este documento exploramos un concepto simple, en apariencia, enseñado en escuelas de nivel secundaria: la equivalencia de dos expresiones algebraicas Empecemos

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

Operaciones Morfológicas en Imágenes Binarias

Operaciones Morfológicas en Imágenes Binarias Operaciones Morfológicas en Imágenes Binarias Introducción La morfología matemática es una herramienta muy utilizada en el procesamiento de i- mágenes. Las operaciones morfológicas pueden simplificar los

Más detalles

Tema IV Programación lógica con estructuras

Tema IV Programación lógica con estructuras Tema IV Programación lógica con estructuras Programación Lógica - E.T.S.I. Informática - Málaga 1 Términos La estructura de datos básica en PROLOG es el término. Los términos se clasifican en : variables

Más detalles

Primer Parcial de Programación 3 (1/10/2009)

Primer Parcial de Programación 3 (1/10/2009) Primer Parcial de Programación (/0/009) Instituto de Computación, Facultad de Ingeniería Este parcial dura horas y contiene carillas. El total de puntos es 0. En los enunciados llamamos C* a la extensión

Más detalles

Normalización. El diseño que hemos recibido está compuesto de estas dos relaciones:

Normalización. El diseño que hemos recibido está compuesto de estas dos relaciones: Normalización 1. Introducción Nuestro departamento de informática ha recibido el encargo de diseñar una base de datos para llevar el control de las piezas, proveedores y proyectos que realiza nuestra empresa.

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

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

Grupos. Subgrupos. Teorema de Lagrange. Operaciones.

Grupos. Subgrupos. Teorema de Lagrange. Operaciones. 1 Tema 1.-. Grupos. Subgrupos. Teorema de Lagrange. Operaciones. 1.1. Primeras definiciones Definición 1.1.1. Una operación binaria en un conjunto A es una aplicación α : A A A. En un lenguaje más coloquial

Más detalles

Introducción a la Teoría de Grafos

Introducción a la Teoría de Grafos Introducción a la Teoría de Grafos Flavia Bonomo fbonomo@dc.uba.ar do. Cuatrimestre 009 Árboles Un árbol es un grafo conexo y acíclico (sin ciclos). Un bosque es un grafo acíclico, o sea, una unión disjunta

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

El modelo relacional y el álgebra relacional

El modelo relacional y el álgebra relacional El modelo relacional y el álgebra relacional Introducción Esta unidad didáctica está dedicada al estudio del modelo de datos relacional y del álgebra relacional. El concepto de modelo de datos se ha presentado

Más detalles