Algoritmos de Aproximación, Algoritmos Randomizados Flashcards

1
Q

Expliqué qué son los algoritmos de aproximación y qué se debe tener para probar el resultado.

A

Los algoritmos de aproximación son algoritmos que corren en tiempo polinomial y encuentran soluciones cercanas al óptimo.

Para probar que es cercano al óptimo se debe conocer el óptomo en sí, que en general es muy difícil de encontrar.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Explique el problema de Balanceo de Cargas. ¿Qué tipo de problema es?

A

Se tienen:

  • Un conjunto de m máquinas M1, ..., Mn y un conjunto de n trabajos.
  • Cada trabajo j tiene un tiempo de procesamiento tj

Se busca asignar cada trabajo a una de las máquinas de forma tal que la carga de todas las máquinas esté lo más balanceada posible.

A(i) es el conjunto de trabajos asignados a la máquina Mi. Bajo esta asignación, la máquina necesita trabajar un tiempo total a la sumatoria de todos sus trabajos asignados. A esto se le llama “carga”.

Se quiere minimizar la cantidad conocida como ‘ makespan’, que es la carga máxima de cualquier máquina T = max1 Ti.

El problema tiene complejidad NP-Hard.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Explique el algoritmo para Balanceo de Carga

A

Ordenar los trabajos de mayor a menor duración.
Se hace una pasada por los trabajos. Cuando llega al trabajo j, le asigna el mismo a la máquina cuya carga sea la menor hasta el momento.

Si hay m o menos tareas, la solución es optima.
Si hay más de m tareas, entonces T* ≥ 2tm+1.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Balanceo de Carga: ¿Cómo podemos mostrar que la carga máxima T de cualquier máquina no es mucho más grande que la cantidad máxima posible T*?

A

Para mostrar que la carga máxima T de cualquier máquina no es mucho más grande que la cantidad máxima posible T*, usamos una cota inferior al óptimo. De esta forma, no importa qué tan bueno sea el óptimo, no puede ser menor que esta cota.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Balanceo de Carga: ¿Cuál es la carga que produce el algoritmo greedy?

A

El algoritmo greedy de balanceo produce una asignación de trabajos a máquinas con una carga de T <= 2T*.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Explique el Problema de Selección Central

A

Se tienen:

  • Número entero k
  • Conjunto S de n ciudades
  • Una función distancia

Sea C un conjunto de centros, asumismo que la pobalción de una ciudad va a ir a comprar al centro más cercano. Esto requiere que la distancia de un sitio a los centros sea la distancia entre el centro más cercano y el sitio.

Decimos que Cforma un r-cubrimiento si cada sitio está a una distancia a lo sumo r de los centros.

Queremos seleccionar un conjunto de k centros para los cuales r(C) sea lo menor posible.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Explique el algoritmo de Selección Central

A

Conocer el radio óptimo es de ayuda.

  • Sabemos que existe un conjunto de k centros con radio r.
  • Debemos encontrar algún conjunto de k centros de C cuyo radio de cubrimiento no sea mucho mayor a r.

Podemos encontrar un conjunto de k centros con un radio de cobertura de a lo sumo 2r.

Tiene que existir un centro c* que cubra el sitio s y que esté a distancia de a lo sumo r de s. Tomamos ese sitio como el centro, en vez de a c*: buscamos que s cubra todos los sitios que c* cubre, expandiendo el radio de r a 2r.

Todos los sitios que estaban a distancia a lo sumo r del centro de c* ahora están a distancia (a lo sumo) 2r de s, por desigualdad triangular.

Cualquier conjunto de centros C retornado por el algoritmo tiene un radio de cubrimiento r(C) <= 2r

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Selección Central: ¿Cómo se ajusta el radio en el algoritmo?

A
  • Si se encuentra un conjunto de k centros con un radio de cobertura de a lo sumo 2r, se puede ir bajando la aproximación, buscando la solución óptima.
  • Si no se encuentra, necesitamos elevar el tamaño del radio.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Selección Central: Explique el algoritmo greedy. ¿Qué devuelve?

A
  1. Asumo que k <= |s|, sino, definir C = S.
  2. Seleccionar cualquier sitio s, tal que C = {s}
  3. Mientras |C| < k:
    a. Seleccionar un sitio s en S que maximice dist(s,C)
    b. Agregar el sitio s al conjunto C
  4. Devolver C como el conjunto seleccionado de sitios.

Este algoritmo devuelve un conjunto C de k puntos tal que r(C) <= 2r(C*), donde C* es un conjunto òptimo de k puntos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Explique el problema de Set Cover

A

Tenemos una serie de conjuntos, donde cada conjunto Si tiene un peso asociado wi mayor o igual a cero.

El objetivo es encontrar un cubrimiento por conjuntos C de tal forma que el peso total sea minimizado.

Este problema es al menos tan difícil como el problema de decisión de Set Cover: si seteamos todos los wi en 1, entonces el peso mínimo de un cubrimiento de conjuntos es a lo sumo k si y sólo si existe una colección de a lo sumo k conjuntos que cubren U.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Explique el algoritmo greedy del problema de Set Cover con peso wi

A
  1. R = U, ningún conjunto seleccionado.
  2. Mientras R no esté vacío:
    a. Seleccionar el conjunto Si que minimiza wi / |Si ∩ R|
    b. Borrar el conjunto Si de R
  3. Retornar los conjuntos seleccionados.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Set Cover: ¿Cuánto más grande será el peso de este cubrimiento que el peso de un cubrimiento de conjuntos óptimo w*?

A

El cubrimienot por conjuntos seleccionado por el algoritmo greedy pesa a lo sumo H(d*)veces el óptimo w*, donde H(x) es la función armónica.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Vertex Cover: Explique el problema del Método de precios para minizar costos

A
  • El peso de un vértice es el costo por el uso del mismo en el cubrimiento
  • La arista es un agente separado que va a pagar algo al nodo que cubrirá.
  • El algoritmo no sólo encontrará un cubrimiento por vértices S, sino que también determinará los precios pe >= 0para cada arista, de forma tal que la suma sea de ellas cubra al precio total aproximadamente.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Vertex Cover: Método de precios para minizar costos: ¿A qué se le llama “precio justo”?

A

Se le llama precio justo pe si para cada vértice, las aristas adyacentes al mismo no tienen que pagar más que el costo del vértice.

La suma de todos los precios de los ejes (pe) es menor al costo del vértice (wi).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Vertex Cover: Método de precios para minimizar costos: explique el algoritmo. ¿Qué retornar?

A
  1. Seteamos pe = 0 para todos los ejes
  2. Mientras exista una arista e=(i,j) tal que ni i ni j está pagado

a. Seleccionar esa arista e
b. Incrementar pe sin violar un precio justo

  1. Siendo S el conjunto de todos los nodos ajustados: retornar S

El conjunto y los precios retornados satisfacen que la suma de los precios de todas las aristas es mayor o igual al costo del conjunto.

El conjunto retornado por el algoritmo es un cubrimiento por vértices, y su costo es a lo sumo el doble del costo mínimo de cualquier cubrimiento por vértices.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Explique el Problema de la Mochila Aproximada

A

Se quiere maximizar la suma de todos los valores, sujeto a la condición de que la suma de todos los pesos debe ser igual o menor a la capacidad de la mochila.

17
Q

Problema de la Mochila Aproximada: Explique el algoritmo

A

Además de pesos y valores, se tomará el parámetro extra de la precisión deseada e.

Se encontrará un subconjunto tal que no exceda a lo sumo un factor de (1+e) de máximo posible.

  1. Setear b = (e * v_max) / 2n
  2. Calcular vi' para cada elemento vi, usando vi' = vi/ b
  3. Resolver el problema de la mochila con los valores vi’, sabiendo que: vi <= vi' <= vi + b y usando programación dinámica.
  4. Devolver el conjunto S de ítems encontrado.

El algoritmo de la mochila aproximada corre en tiempo polinomial para cada e>0 fijado.

18
Q

Algoritmos randomizados: ¿Qué beneficio ofrecen?

A

Permitir que un algoritmo haga decisiones aleatorias hace a nuestro modelo más poderoso.

19
Q

Resolver Rivalidades: explique el problema

A

Se tienen n procesos P1, .., Pn compitiendo por acceder a una única base de datos compartida.

La base puede ser accedida por a lo sumo un proceso al mismo tiempo. Si dos o más intentan acceder al mismo tiempo, quedan bloqueados por la duración de ese turno.

Se quiere buscar la forma de dividir los turnos entre lso procesos en una forma equitativa tal que todos los procesos puedan acceder a la base de datos.

20
Q

Resolver Rivalidades: Explique el algoritmo

A

Para algún número p > 0 , cada proceso intentará acceder a la base de datos en cada turno con probabilidad p.

Si exactamente un proceso decide hacerlo en el turno dado, va a poder hacerlo. Si dos o más intentan, todos van a quedar bloqueados. Si ninguno intenta, el turno se pierde.

Este es el paradigma del rompimiento de simetría: si todos los procesos operan al mismo tiempo, no hay progreso.

21
Q

Encontrar el Corte Mínimo Global: explique el problema

A

No existe fuente ni sumidero, se quiere encontrar el corte mínimo global.

22
Q

Encontrar el Corte Mínimo Global: explique el algoritmo (polinomial de menor complejidad)

A

Se usa un algoritmo de contracción que corre en tiempo polinomial (existen optimizaciones con mejor tiempo).

Se trabaja con un multigrafo conexo, que es un grafo no dirigido que permite que tenga múltiples aristas paralelas entre el mismo par de nodos.

  1. Se elige una arista aleatoria y se contrae
  2. Se produce un nuevo grafo en el cual ha sido identificada la arista en un sólo nodo. Todos los otros nodos conservan su identidad.
  3. Se continúa recursivamente eligiendo una arista aleatoria y contrayendo, hasta que sólo queden dos nodos unidos por un conjunto de aristas. Ese será el corte global.

La complejidad es O(V^2)

23
Q

Encontrar el Corte Mínimo Global: ¿Qué probabilidad tiene al menos el algoritmo de contracción de devolver el corte mínimo?

A

El algoritmo de contracción devuelve un corte mínimo de G con probabilidad de al menos 1 / combinatoria(n, 2).

24
Q

Algoritmo Randomizado Aproximado para Máximo 3SAT: explique el problema

A

Dada una instancia de 3SAT, lo convertimos en un problema de optimización: Dado un conjunto de cláusulas, queremos encontrar una asignación verdadera que satisface la mayor cantidad posible. A este problema lo llamaremos Máximo 3SAT.

25
Q

Algoritmo Randomizado Aproximado para Máximo 3SAT: explique el algoritmo

A
  1. Z es una variable aleatoria igual al número de cláusulas satisfechas. Descomponemos a Z en una suma de variables aleatorias tal que cada una toma valores de 0 o 1.
  2. La sumatoria de todos los Zi es igual a la probabilidad de que Ci sea satisfecho, y esto puede ser computado fácilmente:

a. Para que Ci no sea satisfecho, cada una de sus variables debe ser asignada al valor que no satisface.
b. Como las variables son seteadas independientemente, la probabilidad de esto es (1/2)^3. La cláusula satisface con probabilidad 1 - (1/2)^3 = 7/8.

26
Q

Dividir y Conquistar Aleatorio: Encontrar la Mediana. Explique el problema

A

Supongamos que nos dan un conjunto S de n números, queremos encontrar la mediana. La mediana es el número que estaría en la posición media si estuviesen ordenados.

27
Q

Dividir y Conquistar Aleatorio: Encontrar la Mediana. Explique el algoritmo

A

Dado un conjunto de n números y un número k entre 1 y n, consideramos la función seleccionar(S,k). La función devuelve el k-ésimo elemento más grande de S.

La función dice:

  1. Elegir un partidor a de S
  2. Por cada elemento, si es mayor a a, lo agregamos a S+. Si es menor, lo agregamos a S-.
  3. Si la cantidad de elementos en S- es igual a k-1, entonces el partidor a elegido era la respuesta deseada.
  4. Si la cantidad de elementos en S- es mayor o igual a k, entonces el k-ésimo elemento más grande se encuentra en S-, y llamamos de forma recursiva a seleccionar(S-,k)
  5. Sino, entonces la cantidad de elementos S- es L, y es menor a k-1. En ese caso:

a. El k-ésimo elemento más grande se encuentra en S+
b. Llamar recursivamente a seleccionar(S+,k-1-L)

No importa cómo esté elegido el partidor, el algoritmo devuelve el k-ésimo elemento de S. Hay que elegir el partidor de forma uniforme aleatoria.

28
Q

Dividir y Conquistar Aleatorio: Encontrar la Mediana. ¿Cómo es el tiempo de corrida?

A

El tiempo de corrida es lineal

29
Q

Dividir y Conquistar Aleatorio: Encontrar la Mediana. ¿Cómo se aplica para Quicksort?

A

Si la cantidad de elementos es menor a 3, se ordena y se devuelve.

Sino, se elige un partidor y para cada elemento, lo pone en S- o S+ respectivamente según si son mayores o menores al partidor.
Se vuelve a llamar quicksort tanto para S+ como S-.
Se retorna el conjunto ordenado de S-, el partidor a, y el conjunto ordenado S+.