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

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

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

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

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

Á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

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

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

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

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

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

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

Á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

á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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sistemas de numeración

Sistemas de numeración Sistemas de numeración Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar datos numéricos. Los sistemas de numeración actuales son sistemas posicionales, que se caracterizan

Más detalles

Complejidad - Problemas NP-Completos. Algoritmos y Estructuras de Datos III

Complejidad - Problemas NP-Completos. Algoritmos y Estructuras de Datos III Complejidad - Problemas NP-Completos Algoritmos y Estructuras de Datos III Teoría de Complejidad Un algoritmo eficiente es un algoritmo de complejidad polinomial. Un problema está bien resuelto si se conocen

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

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

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas. El primer paso en el diseño de una base de datos es la producción del esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para representar las distintas visiones que los

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

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

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

DETERMINACIÓN DEL VOLUMEN DE PEDIDO.

DETERMINACIÓN DEL VOLUMEN DE PEDIDO. Lote económico de compra o Lote Optimo DETERMINACIÓN DEL VOLUMEN DE PEDIDO. Concepto que vemos en casi todos libros de aprovisionamiento, habitualmente la decisión de la cantidad a reaprovisionar en las

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

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

Introducción a los Autómatas Finitos

Introducción a los Autómatas Finitos Teoría de Introducción a los Un modelo de Computación. Universidad de Cantabria Esquema Introducción Teoría de 1 Introducción 2 Teoría de 3 4 5 El Problema Introducción Teoría de Nuestro objetivo en este

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

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

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

1. SOLUCIONES A LOS EJERCICIOS PROPUESTOS

1. SOLUCIONES A LOS EJERCICIOS PROPUESTOS 1 1. SOLUCIONES A LOS EJERCICIOS PROPUESTOS 1.1. ESPACIOS VECTORIALES 1. Analizar cuáles de los siguientes subconjuntos de R 3 son subespacios vectoriales. a) A = {(2x, x, 7x)/x R} El conjunto A es una

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

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA Perfil Entidad Proveedora El objetivo del módulo de Gestión de Solicitudes vía Internet es facilitar el trabajo

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

Una (muy) breve introducción a la teoría de la computación

Una (muy) breve introducción a la teoría de la computación Una (muy) breve introducción a la teoría de la computación Marcelo Arenas M. Arenas Una (muy) breve introducción a la teoría de la computación 1 / 48 Ciencia de la computación Cuál es el objeto de estudio

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

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

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

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

forma de entrenar a la nuerona en su aprendizaje.

forma de entrenar a la nuerona en su aprendizaje. Sistemas expertos e Inteligencia Artificial,Guía5 1 Facultad : Ingeniería Escuela : Computación Asignatura: Sistemas expertos e Inteligencia Artificial Tema: SISTEMAS BASADOS EN CONOCIMIENTO. Objetivo

Más detalles

Estructuras de Datos y Algoritmos. Árboles de Expresión

Estructuras de Datos y Algoritmos. Árboles de Expresión Estructuras de Datos y Algoritmos Árboles de Expresión Año 2014 Introducción Los avances tecnológicos producen día a día una gran cantidad de información que debe ser almacenada y procesada en forma eficiente.

Más detalles

TEMA 9: EFECTOS COMERCIALES A COBRAR

TEMA 9: EFECTOS COMERCIALES A COBRAR TEMA 9: EFECTOS COMERCIALES A COBRAR 1- LOS EFECTOS COMERCIALES A COBRAR 2- LOS EFECTOS COMERCIALES EN CARTERA 3- EL DESCUENTO DE EFECTOS 4- LOS EFECTOS COMERCIALES EN GESTIÓN DE COBRO 5- LOS EFECTOS COMERCIALES

Más detalles

SOLUCIÓN CASO GESTIÓN DE PERSONAL I

SOLUCIÓN CASO GESTIÓN DE PERSONAL I SOLUCIÓN CASO GESTIÓN DE PERSONAL I Empezaremos abriendo un nuevo libro de trabajo que podemos guardar como Nóminas e introducimos los datos que nos proporciona el enunciado relativos a coste por hora

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

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

Tablas. Estas serán las tablas que usaremos en la mayoría de ejemplos. Empleado

Tablas. Estas serán las tablas que usaremos en la mayoría de ejemplos. Empleado Álgebra Relacional Un álgebra es un sistema matemático constituido por Operandos: objetos (valores o variables) desde los cuales nuevos objetos pueden ser construidos. Operadores: símbolos que denotan

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

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

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

Es de aplicación a todas aquellas situaciones en las que se necesita desplegar un objetivo para obtener una visión clara de cómo debe ser alcanzado.

Es de aplicación a todas aquellas situaciones en las que se necesita desplegar un objetivo para obtener una visión clara de cómo debe ser alcanzado. DIAGRAMA DE AÁRBOL 1.- INTRODUCCIÓN Este documento describe el proceso de construcción de un Diagrama de Árbol, mediante el cual se dispone de una metodología simple y sistemática para la identificación

Más detalles

CURSO BÁSICO DE MATEMÁTICAS PARA ESTUDIANTES DE ECONÓMICAS Y EMPRESARIALES

CURSO BÁSICO DE MATEMÁTICAS PARA ESTUDIANTES DE ECONÓMICAS Y EMPRESARIALES INECUACIONES NOTA IMPORTANTE: El signo de desigualdad de una inecuación puede ser,, < o >. Para las cuestiones teóricas que se desarrollan en esta unidad únicamente se utilizará la desigualdad >, siendo

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

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

4.Diseño de Bases de Datos (I)

4.Diseño de Bases de Datos (I) 4.Diseño de Bases de Datos (I) 4.1 Anomalías. Se denominan así en teoría de Bases de Datos a ciertos problemas que aparecen con frecuencia en el manejo de las mismas cuando el diseño no ha sido realizado

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

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

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

MODELOS DE RECUPERACION

MODELOS DE RECUPERACION RECUPERACIÓN Y ORGANIZACIÓN DE LA INFORMACIÓN INGENIERÍA INFORMÁTICA RECUPERACIÓN Y ACCESO A LA INFORMACIÓN MODELOS DE RECUPERACION AUTOR: Rubén García Broncano NIA 100065530 grupo 81 1 INDICE 1- INTRODUCCIÓN

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

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

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

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS ARCHIVOS ANEXOS Son los documentos, hojas de cálculo o cualquier archivo que se anexa a las carpetas, subcarpetas, hallazgos u otros formularios de papeles de trabajo. Estos archivos constituyen la evidencia

Más detalles

Programación Genética

Programación Genética Programación Genética Programación Genética consiste en la evolución automática de programas usando ideas basadas en la selección natural (Darwin). No sólo se ha utilizado para generar programas, sino

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

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

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

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

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

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

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

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

DOMINIO Y RANGO página 89. Cuando se grafica una función existen las siguientes posibilidades:

DOMINIO Y RANGO página 89. Cuando se grafica una función existen las siguientes posibilidades: DOMINIO Y RANGO página 89 3. CONCEPTOS Y DEFINICIONES Cuando se grafica una función eisten las siguientes posibilidades: a) Que la gráfica ocupe todo el plano horizontalmente (sobre el eje de las ). b)

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

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

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

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

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

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

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

Con esta nueva versión, si un artículo que está incluido dentro de un Paquete de Ventas tiene precio 0,00, significará gratis.

Con esta nueva versión, si un artículo que está incluido dentro de un Paquete de Ventas tiene precio 0,00, significará gratis. NOVEDADES Y MEJORAS Continuando con nuestra política de mejora, innovación y desarrollo, le presentamos la nueva versión 9.50 de datahotel que se enriquece con nuevas funcionalidades que aportan soluciones

Más detalles

Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A)

Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A) aprenderaprogramar.com Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A) Sección: Cursos Categoría: Curso Bases de la programación

Más detalles

SINAUTO. (Captura Requirimientos) GRUPO 03

SINAUTO. (Captura Requirimientos) GRUPO 03 SINAUTO (Captura Requirimientos) GRUPO 03 Iker Jauregi ikerjauregivicente@hotmail.com Iñigo Arregui bateman2012@gmail.com Javier Arce arcjav@hotmail.com Jorge García. jgfand@gmail.com Patxi Campos.patxi948@wanadoo.es

Más detalles