semana 14 problema de emparejamiento bipartito complejidad

102
Semana 14 Problema de emparejamiento bipartito Complejidad computacional Programación 3 Instituto de Computación Facultad de Ingeniería – Universidad de la República 2021

Upload: others

Post on 01-Aug-2022

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Semana 14 Problema de emparejamiento bipartito Complejidad

Semana 14

Problema de emparejamiento bipartitoComplejidad computacional

Programación 3

Instituto de ComputaciónFacultad de Ingeniería – Universidad de la República

2021

Page 2: Semana 14 Problema de emparejamiento bipartito Complejidad

Contenido

1 Problema de flujo máximo - Algoritmo de Ford-FulkersonProblema de emparejamiento bipartito

2 Complejidad computacionalIntroducciónReducción de problemas en tiempo polinomialProblemas de cobertura y empaqueProblema de Satisfacibilidad BooleanaEjercicio sobre el Sistema Nacional de Areas Protegidas (SNAP)

Page 3: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Problema de emparejamiento bipartito

Un grafo G = (V,E) es bipartito si el conjunto de vértices V puede serparticionado en los conjuntos X e Y , tal que cada arista en E tiene un vérticeen X y el otro en Y .

(¿Cómo determinar si un grafo es bipartito?)Un emparejamiento en G es un subconjunto de aristas M ⊆ E tal que cadavértice aparece en a lo sumo una arista de M.El problema consiste en determinar un emparejamiento M de tamaño máximo.Resolver el problema para la instancia de G:

x1 y1

x2 y2

x3 y3

x4

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 3 / 31

Page 4: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Problema de emparejamiento bipartito

Un grafo G = (V,E) es bipartito si el conjunto de vértices V puede serparticionado en los conjuntos X e Y , tal que cada arista en E tiene un vérticeen X y el otro en Y . (¿Cómo determinar si un grafo es bipartito?)

Un emparejamiento en G es un subconjunto de aristas M ⊆ E tal que cadavértice aparece en a lo sumo una arista de M.El problema consiste en determinar un emparejamiento M de tamaño máximo.Resolver el problema para la instancia de G:

x1 y1

x2 y2

x3 y3

x4

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 3 / 31

Page 5: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Problema de emparejamiento bipartito

Un grafo G = (V,E) es bipartito si el conjunto de vértices V puede serparticionado en los conjuntos X e Y , tal que cada arista en E tiene un vérticeen X y el otro en Y . (¿Cómo determinar si un grafo es bipartito?)Un emparejamiento en G es un subconjunto de aristas M ⊆ E tal que cadavértice aparece en a lo sumo una arista de M.

El problema consiste en determinar un emparejamiento M de tamaño máximo.Resolver el problema para la instancia de G:

x1 y1

x2 y2

x3 y3

x4

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 3 / 31

Page 6: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Problema de emparejamiento bipartito

Un grafo G = (V,E) es bipartito si el conjunto de vértices V puede serparticionado en los conjuntos X e Y , tal que cada arista en E tiene un vérticeen X y el otro en Y . (¿Cómo determinar si un grafo es bipartito?)Un emparejamiento en G es un subconjunto de aristas M ⊆ E tal que cadavértice aparece en a lo sumo una arista de M.El problema consiste en determinar un emparejamiento M de tamaño máximo.

Resolver el problema para la instancia de G:

x1 y1

x2 y2

x3 y3

x4

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 3 / 31

Page 7: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Problema de emparejamiento bipartito

Un grafo G = (V,E) es bipartito si el conjunto de vértices V puede serparticionado en los conjuntos X e Y , tal que cada arista en E tiene un vérticeen X y el otro en Y . (¿Cómo determinar si un grafo es bipartito?)Un emparejamiento en G es un subconjunto de aristas M ⊆ E tal que cadavértice aparece en a lo sumo una arista de M.El problema consiste en determinar un emparejamiento M de tamaño máximo.Resolver el problema para la instancia de G:

x1 y1

x2 y2

x3 y3

x4

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 3 / 31

Page 8: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Algoritmo de resolución del problema de emparejamiento bipartitoMediante reducción al problema de flujo máximo

Dado el grafo G(X ∪ Y,E) del problema del emparejamiento bipartito, seconstruye el grafo dirigido G′(V ′,E′) de una red de flujo. Por cada arista E seconstruye un arco en G′ de X a Y . Se agrega un vértice fuente s y un arco de sa cada vértice de X. Se agrega un vértice sumidero t y un arco de cada vérticede Y a t. Se asigna capacidad uno a cada arco de G′.

Formular para la instancia G:

x1 y1

x2 y2

x3 y3

x4

Se obtiene el flujo s-t máximo en G′ aplicando el alg. de Ford-Fulkerson.El valor del flujo en G′ es igual al tamaño del emparejamiento en G. El flujounitario en los arcos de X a Y en G′ determina el emparejamiento en G.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 4 / 31

Page 9: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Algoritmo de resolución del problema de emparejamiento bipartitoMediante reducción al problema de flujo máximo

Dado el grafo G(X ∪ Y,E) del problema del emparejamiento bipartito, seconstruye el grafo dirigido G′(V ′,E′) de una red de flujo. Por cada arista E seconstruye un arco en G′ de X a Y . Se agrega un vértice fuente s y un arco de sa cada vértice de X. Se agrega un vértice sumidero t y un arco de cada vérticede Y a t. Se asigna capacidad uno a cada arco de G′.Formular para la instancia G:

x1 y1

x2 y2

x3 y3

x4

Se obtiene el flujo s-t máximo en G′ aplicando el alg. de Ford-Fulkerson.El valor del flujo en G′ es igual al tamaño del emparejamiento en G. El flujounitario en los arcos de X a Y en G′ determina el emparejamiento en G.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 4 / 31

Page 10: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Algoritmo de resolución del problema de emparejamiento bipartitoMediante reducción al problema de flujo máximo

Dado el grafo G(X ∪ Y,E) del problema del emparejamiento bipartito, seconstruye el grafo dirigido G′(V ′,E′) de una red de flujo. Por cada arista E seconstruye un arco en G′ de X a Y . Se agrega un vértice fuente s y un arco de sa cada vértice de X. Se agrega un vértice sumidero t y un arco de cada vérticede Y a t. Se asigna capacidad uno a cada arco de G′.Formular para la instancia G:

x1 y1

x2 y2

x3 y3

x4

Se obtiene el flujo s-t máximo en G′ aplicando el alg. de Ford-Fulkerson.El valor del flujo en G′ es igual al tamaño del emparejamiento en G. El flujounitario en los arcos de X a Y en G′ determina el emparejamiento en G.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 4 / 31

Page 11: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Algoritmo de resolución del problema de emparejamiento bipartitoMediante reducción al problema de flujo máximo

Dado el grafo G(X ∪ Y,E) del problema del emparejamiento bipartito, seconstruye el grafo dirigido G′(V ′,E′) de una red de flujo. Por cada arista E seconstruye un arco en G′ de X a Y . Se agrega un vértice fuente s y un arco de sa cada vértice de X. Se agrega un vértice sumidero t y un arco de cada vérticede Y a t. Se asigna capacidad uno a cada arco de G′.Formular para la instancia G:

x1 y1

x2 y2

x3 y3

x4

Se obtiene el flujo s-t máximo en G′ aplicando el alg. de Ford-Fulkerson.

El valor del flujo en G′ es igual al tamaño del emparejamiento en G. El flujounitario en los arcos de X a Y en G′ determina el emparejamiento en G.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 4 / 31

Page 12: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Algoritmo de resolución del problema de emparejamiento bipartitoMediante reducción al problema de flujo máximo

Dado el grafo G(X ∪ Y,E) del problema del emparejamiento bipartito, seconstruye el grafo dirigido G′(V ′,E′) de una red de flujo. Por cada arista E seconstruye un arco en G′ de X a Y . Se agrega un vértice fuente s y un arco de sa cada vértice de X. Se agrega un vértice sumidero t y un arco de cada vérticede Y a t. Se asigna capacidad uno a cada arco de G′.Formular para la instancia G:

x1 y1

x2 y2

x3 y3

x4

Se obtiene el flujo s-t máximo en G′ aplicando el alg. de Ford-Fulkerson.El valor del flujo en G′ es igual al tamaño del emparejamiento en G. El flujounitario en los arcos de X a Y en G′ determina el emparejamiento en G.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 4 / 31

Page 13: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Corrección del algoritmo de resol. del prb. de emparejamiento bipartito

Los flujos integrales en G′ formulan los emparejamientos en G.

Por un lado. Sea el emparejamiento de k aristas en G, (xi1 , yi1), ..., (xik , yik).Entonces el flujo f envía una unidad en cada camino s, xij , yij , t. Se puedecomprobar que las condiciones de capacidad y conservación se cumplen y quef es un flujo s-t de valor k.Por el contrario. Sea el flujo f de valor k en G′. Por el teorema de integralidaddel flujo máximo (KT 7.14) se tiene que el flujo f es un entero de valor k.Debido a que todas las capacidades son unitarias, el flujo de cada arco es ceroo uno. Sea el conjunto de arcos M′ de la forma (x, y) en el cual el valor delflujo es uno. Se cumplen las propiedades:

M′ contiene k arcos

Cada vértice en X es la cola de a lo sumo un arco en M′

Cada vértice en Y es la cabeza de a lo sumo un arco en M′

A partir de estas se tiene que M′ es un conjunto de aristas en el grafo bipartitoG, es decir un emparejamiento de tamaño k.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 5 / 31

Page 14: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Corrección del algoritmo de resol. del prb. de emparejamiento bipartito

Los flujos integrales en G′ formulan los emparejamientos en G.Por un lado. Sea el emparejamiento de k aristas en G, (xi1 , yi1), ..., (xik , yik).Entonces el flujo f envía una unidad en cada camino s, xij , yij , t. Se puedecomprobar que las condiciones de capacidad y conservación se cumplen y quef es un flujo s-t de valor k.

Por el contrario. Sea el flujo f de valor k en G′. Por el teorema de integralidaddel flujo máximo (KT 7.14) se tiene que el flujo f es un entero de valor k.Debido a que todas las capacidades son unitarias, el flujo de cada arco es ceroo uno. Sea el conjunto de arcos M′ de la forma (x, y) en el cual el valor delflujo es uno. Se cumplen las propiedades:

M′ contiene k arcos

Cada vértice en X es la cola de a lo sumo un arco en M′

Cada vértice en Y es la cabeza de a lo sumo un arco en M′

A partir de estas se tiene que M′ es un conjunto de aristas en el grafo bipartitoG, es decir un emparejamiento de tamaño k.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 5 / 31

Page 15: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Corrección del algoritmo de resol. del prb. de emparejamiento bipartito

Los flujos integrales en G′ formulan los emparejamientos en G.Por un lado. Sea el emparejamiento de k aristas en G, (xi1 , yi1), ..., (xik , yik).Entonces el flujo f envía una unidad en cada camino s, xij , yij , t. Se puedecomprobar que las condiciones de capacidad y conservación se cumplen y quef es un flujo s-t de valor k.Por el contrario. Sea el flujo f de valor k en G′. Por el teorema de integralidaddel flujo máximo (KT 7.14) se tiene que el flujo f es un entero de valor k.Debido a que todas las capacidades son unitarias, el flujo de cada arco es ceroo uno. Sea el conjunto de arcos M′ de la forma (x, y) en el cual el valor delflujo es uno. Se cumplen las propiedades:

M′ contiene k arcos

Cada vértice en X es la cola de a lo sumo un arco en M′

Cada vértice en Y es la cabeza de a lo sumo un arco en M′

A partir de estas se tiene que M′ es un conjunto de aristas en el grafo bipartitoG, es decir un emparejamiento de tamaño k.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 5 / 31

Page 16: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Tiempo del algoritmo de resol. del prb. de emparejamiento bipartito

Sea la instancia con |X| = |Y| = n y m la cantidad de aristas en G. Se asumeque existe al menos una arista incidente a cada nodo, por lo que m ≥ n/2.¿Cuál es el tiempo empleado en generar G′ a partir de G?

El tiempo está dominado por el cálculo del flujo máximo en G′. Para estainstancia se tiene la capacidad

C =∑xi∈X

csxi = |X| = n

dado que cada arco saliente de s tiene capacidad uno.

El algoritmo de Ford-Fulkerson emplea tiempo O(mC) por lo que pararesolver el problema de emparejamiento bipartito se emplea tiempo O(mn).

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 6 / 31

Page 17: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Tiempo del algoritmo de resol. del prb. de emparejamiento bipartito

Sea la instancia con |X| = |Y| = n y m la cantidad de aristas en G. Se asumeque existe al menos una arista incidente a cada nodo, por lo que m ≥ n/2.¿Cuál es el tiempo empleado en generar G′ a partir de G?

El tiempo está dominado por el cálculo del flujo máximo en G′. Para estainstancia se tiene la capacidad

C =∑xi∈X

csxi = |X| = n

dado que cada arco saliente de s tiene capacidad uno.

El algoritmo de Ford-Fulkerson emplea tiempo O(mC) por lo que pararesolver el problema de emparejamiento bipartito se emplea tiempo O(mn).

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 6 / 31

Page 18: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Tiempo del algoritmo de resol. del prb. de emparejamiento bipartito

Sea la instancia con |X| = |Y| = n y m la cantidad de aristas en G. Se asumeque existe al menos una arista incidente a cada nodo, por lo que m ≥ n/2.¿Cuál es el tiempo empleado en generar G′ a partir de G?

El tiempo está dominado por el cálculo del flujo máximo en G′. Para estainstancia se tiene la capacidad

C =∑xi∈X

csxi = |X| = n

dado que cada arco saliente de s tiene capacidad uno.

El algoritmo de Ford-Fulkerson emplea tiempo O(mC) por lo que pararesolver el problema de emparejamiento bipartito se emplea tiempo O(mn).

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 6 / 31

Page 19: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Taxonomía jerárquica del problema en optimización

Programación Lineal

Flujo en Red

Flujo Máximo

Emparejamiento Bipartito

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 7 / 31

Page 20: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Problema de relacionamiento tripartito

El problema de emparejamiento bipartito se puede definir mediante relaciónentre conjuntos (alternativa a modelar mediante grafos).

Sean los conjuntos finitos y disjuntos X e Y , y sea E ⊆ X × Y .Se dice que el conjunto M ⊆ E es un emparejamiento bipartito si para todopar de duplas diferentes (xi, yi), (xj, yj) ∈ M se tiene que xi 6= xj e yi 6= yj.

El problema se puede extender a tripletas de tres conjuntos.Sean los conjuntos finitos y disjuntos X, Y y Z, y sea E ⊆ X × Y × Z. Elconjunto M ⊆ E es un relacionamiento tripartito si para todo par de trípletasdiferentes (xi, yi, zi), (xj, yj, zj) ∈ M se tiene que xi 6= xj, yi 6= yj, y zi 6= zj.

El problema consiste en determinar un relacionamiento M de mayor tamañoposible.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 8 / 31

Page 21: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Problema de relacionamiento tripartito

El problema de emparejamiento bipartito se puede definir mediante relaciónentre conjuntos (alternativa a modelar mediante grafos).Sean los conjuntos finitos y disjuntos X e Y , y sea E ⊆ X × Y .Se dice que el conjunto M ⊆ E es un emparejamiento bipartito si para todopar de duplas diferentes (xi, yi), (xj, yj) ∈ M se tiene que xi 6= xj e yi 6= yj.

El problema se puede extender a tripletas de tres conjuntos.Sean los conjuntos finitos y disjuntos X, Y y Z, y sea E ⊆ X × Y × Z. Elconjunto M ⊆ E es un relacionamiento tripartito si para todo par de trípletasdiferentes (xi, yi, zi), (xj, yj, zj) ∈ M se tiene que xi 6= xj, yi 6= yj, y zi 6= zj.

El problema consiste en determinar un relacionamiento M de mayor tamañoposible.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 8 / 31

Page 22: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Problema de relacionamiento tripartito

El problema de emparejamiento bipartito se puede definir mediante relaciónentre conjuntos (alternativa a modelar mediante grafos).Sean los conjuntos finitos y disjuntos X e Y , y sea E ⊆ X × Y .Se dice que el conjunto M ⊆ E es un emparejamiento bipartito si para todopar de duplas diferentes (xi, yi), (xj, yj) ∈ M se tiene que xi 6= xj e yi 6= yj.

El problema se puede extender a tripletas de tres conjuntos.

Sean los conjuntos finitos y disjuntos X, Y y Z, y sea E ⊆ X × Y × Z. Elconjunto M ⊆ E es un relacionamiento tripartito si para todo par de trípletasdiferentes (xi, yi, zi), (xj, yj, zj) ∈ M se tiene que xi 6= xj, yi 6= yj, y zi 6= zj.

El problema consiste en determinar un relacionamiento M de mayor tamañoposible.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 8 / 31

Page 23: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Problema de relacionamiento tripartito

El problema de emparejamiento bipartito se puede definir mediante relaciónentre conjuntos (alternativa a modelar mediante grafos).Sean los conjuntos finitos y disjuntos X e Y , y sea E ⊆ X × Y .Se dice que el conjunto M ⊆ E es un emparejamiento bipartito si para todopar de duplas diferentes (xi, yi), (xj, yj) ∈ M se tiene que xi 6= xj e yi 6= yj.

El problema se puede extender a tripletas de tres conjuntos.Sean los conjuntos finitos y disjuntos X, Y y Z, y sea E ⊆ X × Y × Z. Elconjunto M ⊆ E es un relacionamiento tripartito si para todo par de trípletasdiferentes (xi, yi, zi), (xj, yj, zj) ∈ M se tiene que xi 6= xj, yi 6= yj, y zi 6= zj.

El problema consiste en determinar un relacionamiento M de mayor tamañoposible.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 8 / 31

Page 24: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Problema de relacionamiento tripartito

El problema de emparejamiento bipartito se puede definir mediante relaciónentre conjuntos (alternativa a modelar mediante grafos).Sean los conjuntos finitos y disjuntos X e Y , y sea E ⊆ X × Y .Se dice que el conjunto M ⊆ E es un emparejamiento bipartito si para todopar de duplas diferentes (xi, yi), (xj, yj) ∈ M se tiene que xi 6= xj e yi 6= yj.

El problema se puede extender a tripletas de tres conjuntos.Sean los conjuntos finitos y disjuntos X, Y y Z, y sea E ⊆ X × Y × Z. Elconjunto M ⊆ E es un relacionamiento tripartito si para todo par de trípletasdiferentes (xi, yi, zi), (xj, yj, zj) ∈ M se tiene que xi 6= xj, yi 6= yj, y zi 6= zj.

El problema consiste en determinar un relacionamiento M de mayor tamañoposible.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 8 / 31

Page 25: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Instancia de problema de relacionamiento tripartito

Resolver la instancia con tripletas E coloreadas:

x1 y1 z1

x2 y2 z2

x3 y3 z3

¿Qué pares de tripletas son excluyentes en las posibles soluciones?¿Es posible formular como problema de flujo máximo y resolver estemediante Ford-Fulkerson?

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 9 / 31

Page 26: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Instancia de problema de relacionamiento tripartito

Resolver la instancia con tripletas E coloreadas:

x1 y1 z1

x2 y2 z2

x3 y3 z3

¿Qué pares de tripletas son excluyentes en las posibles soluciones?

¿Es posible formular como problema de flujo máximo y resolver estemediante Ford-Fulkerson?

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 9 / 31

Page 27: Semana 14 Problema de emparejamiento bipartito Complejidad

Problema de flujo máximo - Algoritmo de Ford-Fulkerson Problema de emparejamiento bipartito

Instancia de problema de relacionamiento tripartito

Resolver la instancia con tripletas E coloreadas:

x1 y1 z1

x2 y2 z2

x3 y3 z3

¿Qué pares de tripletas son excluyentes en las posibles soluciones?¿Es posible formular como problema de flujo máximo y resolver estemediante Ford-Fulkerson?

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 9 / 31

Page 28: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Introducción

Problema computacional, instancia del problema y algoritmo deresolución

Se denomina problema computacional a la descripción abstracta, segúnentidades, de una cuestión que puede resolverse mediante algoritmos.A las entidades se les puede aplicar una métrica (medir tamaño).

Una instancia de un problema se define a partir de datos que la especifican.Estas tienen determinado el tamaño de las entidades del problema.(El problema comprende la colección de todas sus instancias).

Un algoritmo de resolución es un conjunto finito y ordenado de instruccionesque se diseña para un problema pero se aplica a sus instancias.Los algoritmos emplean los recursos tiempo y espacio (memoria).El uso de los recursos depende de la dificultad y tamaño de las instancias.(En este curso solo se analiza el uso del tiempo.)

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 10 / 31

Page 29: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Introducción

Problema computacional, instancia del problema y algoritmo deresolución

Se denomina problema computacional a la descripción abstracta, segúnentidades, de una cuestión que puede resolverse mediante algoritmos.A las entidades se les puede aplicar una métrica (medir tamaño).

Una instancia de un problema se define a partir de datos que la especifican.Estas tienen determinado el tamaño de las entidades del problema.(El problema comprende la colección de todas sus instancias).

Un algoritmo de resolución es un conjunto finito y ordenado de instruccionesque se diseña para un problema pero se aplica a sus instancias.Los algoritmos emplean los recursos tiempo y espacio (memoria).El uso de los recursos depende de la dificultad y tamaño de las instancias.(En este curso solo se analiza el uso del tiempo.)

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 10 / 31

Page 30: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Introducción

Problema computacional, instancia del problema y algoritmo deresolución

Se denomina problema computacional a la descripción abstracta, segúnentidades, de una cuestión que puede resolverse mediante algoritmos.A las entidades se les puede aplicar una métrica (medir tamaño).

Una instancia de un problema se define a partir de datos que la especifican.Estas tienen determinado el tamaño de las entidades del problema.(El problema comprende la colección de todas sus instancias).

Un algoritmo de resolución es un conjunto finito y ordenado de instruccionesque se diseña para un problema pero se aplica a sus instancias.

Los algoritmos emplean los recursos tiempo y espacio (memoria).El uso de los recursos depende de la dificultad y tamaño de las instancias.(En este curso solo se analiza el uso del tiempo.)

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 10 / 31

Page 31: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Introducción

Problema computacional, instancia del problema y algoritmo deresolución

Se denomina problema computacional a la descripción abstracta, segúnentidades, de una cuestión que puede resolverse mediante algoritmos.A las entidades se les puede aplicar una métrica (medir tamaño).

Una instancia de un problema se define a partir de datos que la especifican.Estas tienen determinado el tamaño de las entidades del problema.(El problema comprende la colección de todas sus instancias).

Un algoritmo de resolución es un conjunto finito y ordenado de instruccionesque se diseña para un problema pero se aplica a sus instancias.Los algoritmos emplean los recursos tiempo y espacio (memoria).El uso de los recursos depende de la dificultad y tamaño de las instancias.(En este curso solo se analiza el uso del tiempo.)

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 10 / 31

Page 32: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Introducción

Tipos de problemas computacionales a tratar

Dado un problema general compuesto por un conjunto de posibles soluciones,F en dominio X, y una función de costo sobre las soluciones, c(·) : F → R,

se pueden derivar los problemas de:

factibilidad: determinar x ∈ F ⊆ X (caso F no es explícito)

optimización: determinar x ∈ F que minimiza c(x)

evaluación: determinar minx∈F c(x) (solo el valor del óptimo)

reconocimiento o decisión: dado un número L, determinar si minx∈F c(x)es menor o igual que L.

Las variantes están vinculadas en el grado de dificultad de resolución.La dificultad en resolver el problema de reconocimiento es un indicador de ladificultad de resolver las otras variantes.Si el costo óptimo puede tomar uno de n valores, entonces se pude realizaruna búsqueda por bipartición y resolver el problema de evaluación realizandodlog ne resoluciones del problema de reconocimiento.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 11 / 31

Page 33: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Introducción

Tipos de problemas computacionales a tratar

Dado un problema general compuesto por un conjunto de posibles soluciones,F en dominio X, y una función de costo sobre las soluciones, c(·) : F → R,se pueden derivar los problemas de:

factibilidad: determinar x ∈ F ⊆ X (caso F no es explícito)

optimización: determinar x ∈ F que minimiza c(x)

evaluación: determinar minx∈F c(x) (solo el valor del óptimo)

reconocimiento o decisión: dado un número L, determinar si minx∈F c(x)es menor o igual que L.

Las variantes están vinculadas en el grado de dificultad de resolución.La dificultad en resolver el problema de reconocimiento es un indicador de ladificultad de resolver las otras variantes.Si el costo óptimo puede tomar uno de n valores, entonces se pude realizaruna búsqueda por bipartición y resolver el problema de evaluación realizandodlog ne resoluciones del problema de reconocimiento.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 11 / 31

Page 34: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Introducción

Tipos de problemas computacionales a tratar

Dado un problema general compuesto por un conjunto de posibles soluciones,F en dominio X, y una función de costo sobre las soluciones, c(·) : F → R,se pueden derivar los problemas de:

factibilidad: determinar x ∈ F ⊆ X (caso F no es explícito)

optimización: determinar x ∈ F que minimiza c(x)

evaluación: determinar minx∈F c(x) (solo el valor del óptimo)

reconocimiento o decisión: dado un número L, determinar si minx∈F c(x)es menor o igual que L.

Las variantes están vinculadas en el grado de dificultad de resolución.La dificultad en resolver el problema de reconocimiento es un indicador de ladificultad de resolver las otras variantes.Si el costo óptimo puede tomar uno de n valores, entonces se pude realizaruna búsqueda por bipartición y resolver el problema de evaluación realizandodlog ne resoluciones del problema de reconocimiento.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 11 / 31

Page 35: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Introducción

Tipos de problemas computacionales a tratar

Dado un problema general compuesto por un conjunto de posibles soluciones,F en dominio X, y una función de costo sobre las soluciones, c(·) : F → R,se pueden derivar los problemas de:

factibilidad: determinar x ∈ F ⊆ X (caso F no es explícito)

optimización: determinar x ∈ F que minimiza c(x)

evaluación: determinar minx∈F c(x) (solo el valor del óptimo)

reconocimiento o decisión: dado un número L, determinar si minx∈F c(x)es menor o igual que L.

Las variantes están vinculadas en el grado de dificultad de resolución.La dificultad en resolver el problema de reconocimiento es un indicador de ladificultad de resolver las otras variantes.Si el costo óptimo puede tomar uno de n valores, entonces se pude realizaruna búsqueda por bipartición y resolver el problema de evaluación realizandodlog ne resoluciones del problema de reconocimiento.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 11 / 31

Page 36: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Introducción

Tipos de problemas computacionales a tratar

Dado un problema general compuesto por un conjunto de posibles soluciones,F en dominio X, y una función de costo sobre las soluciones, c(·) : F → R,se pueden derivar los problemas de:

factibilidad: determinar x ∈ F ⊆ X (caso F no es explícito)

optimización: determinar x ∈ F que minimiza c(x)

evaluación: determinar minx∈F c(x) (solo el valor del óptimo)

reconocimiento o decisión: dado un número L, determinar si minx∈F c(x)es menor o igual que L.

Las variantes están vinculadas en el grado de dificultad de resolución.La dificultad en resolver el problema de reconocimiento es un indicador de ladificultad de resolver las otras variantes.Si el costo óptimo puede tomar uno de n valores, entonces se pude realizaruna búsqueda por bipartición y resolver el problema de evaluación realizandodlog ne resoluciones del problema de reconocimiento.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 11 / 31

Page 37: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Introducción

Tipos de problemas computacionales a tratar

Dado un problema general compuesto por un conjunto de posibles soluciones,F en dominio X, y una función de costo sobre las soluciones, c(·) : F → R,se pueden derivar los problemas de:

factibilidad: determinar x ∈ F ⊆ X (caso F no es explícito)

optimización: determinar x ∈ F que minimiza c(x)

evaluación: determinar minx∈F c(x) (solo el valor del óptimo)

reconocimiento o decisión: dado un número L, determinar si minx∈F c(x)es menor o igual que L.

Las variantes están vinculadas en el grado de dificultad de resolución.La dificultad en resolver el problema de reconocimiento es un indicador de ladificultad de resolver las otras variantes.

Si el costo óptimo puede tomar uno de n valores, entonces se pude realizaruna búsqueda por bipartición y resolver el problema de evaluación realizandodlog ne resoluciones del problema de reconocimiento.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 11 / 31

Page 38: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Introducción

Tipos de problemas computacionales a tratar

Dado un problema general compuesto por un conjunto de posibles soluciones,F en dominio X, y una función de costo sobre las soluciones, c(·) : F → R,se pueden derivar los problemas de:

factibilidad: determinar x ∈ F ⊆ X (caso F no es explícito)

optimización: determinar x ∈ F que minimiza c(x)

evaluación: determinar minx∈F c(x) (solo el valor del óptimo)

reconocimiento o decisión: dado un número L, determinar si minx∈F c(x)es menor o igual que L.

Las variantes están vinculadas en el grado de dificultad de resolución.La dificultad en resolver el problema de reconocimiento es un indicador de ladificultad de resolver las otras variantes.Si el costo óptimo puede tomar uno de n valores, entonces se pude realizaruna búsqueda por bipartición y resolver el problema de evaluación realizandodlog ne resoluciones del problema de reconocimiento.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 11 / 31

Page 39: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Introducción

Complejidad computacional

El grado de dificultad de resolución de un problema es intrínseco al problema.Los algoritmos empleados en resolver instancias de un problema permitenclasificar la dificultad.

Los problemas se pueden clasificar según tengan o no resolución eficiente.

La noción de eficiencia se basa en que el tiempo empleado en la resoluciónsea polinomial en el tamaño de las instancias.

Hay problemas que no se han podido resolver eficientemente, pero tampoco seha podido demostrar que no se pueden resolver eficientemente (desde 1960’s).

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 12 / 31

Page 40: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Introducción

Complejidad computacional

El grado de dificultad de resolución de un problema es intrínseco al problema.Los algoritmos empleados en resolver instancias de un problema permitenclasificar la dificultad.

Los problemas se pueden clasificar según tengan o no resolución eficiente.

La noción de eficiencia se basa en que el tiempo empleado en la resoluciónsea polinomial en el tamaño de las instancias.

Hay problemas que no se han podido resolver eficientemente, pero tampoco seha podido demostrar que no se pueden resolver eficientemente (desde 1960’s).

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 12 / 31

Page 41: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Introducción

Complejidad computacional

El grado de dificultad de resolución de un problema es intrínseco al problema.Los algoritmos empleados en resolver instancias de un problema permitenclasificar la dificultad.

Los problemas se pueden clasificar según tengan o no resolución eficiente.

La noción de eficiencia se basa en que el tiempo empleado en la resoluciónsea polinomial en el tamaño de las instancias.

Hay problemas que no se han podido resolver eficientemente, pero tampoco seha podido demostrar que no se pueden resolver eficientemente (desde 1960’s).

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 12 / 31

Page 42: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Introducción

Complejidad computacional

El grado de dificultad de resolución de un problema es intrínseco al problema.Los algoritmos empleados en resolver instancias de un problema permitenclasificar la dificultad.

Los problemas se pueden clasificar según tengan o no resolución eficiente.

La noción de eficiencia se basa en que el tiempo empleado en la resoluciónsea polinomial en el tamaño de las instancias.

Hay problemas que no se han podido resolver eficientemente, pero tampoco seha podido demostrar que no se pueden resolver eficientemente (desde 1960’s).

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 12 / 31

Page 43: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Introducción

Introducción a NP-Completitud

Desde entonces se ha caracterizado a los problemas que no se han podidoresolver eficient. en una clase de equivalencia denominada NP-completo.

Si se lograra resolver eficientemente a un problema de NP-completo entoncesse lograría resolver a todos ellos.

Si se lograra demostrar que algún problema de NP-completo no tieneresolución eficiente entonces ninguno la tendría. (Conjetura actual)

Debido a la evidencia acumulada. Si se determina que un problema pertenecea NP-completo entonces se disuade la búsqueda de un algoritmo eficiente pararesolverlo.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 14 / 31

Page 44: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Introducción

Introducción a NP-Completitud

Desde entonces se ha caracterizado a los problemas que no se han podidoresolver eficient. en una clase de equivalencia denominada NP-completo.

Si se lograra resolver eficientemente a un problema de NP-completo entoncesse lograría resolver a todos ellos.

Si se lograra demostrar que algún problema de NP-completo no tieneresolución eficiente entonces ninguno la tendría. (Conjetura actual)

Debido a la evidencia acumulada. Si se determina que un problema pertenecea NP-completo entonces se disuade la búsqueda de un algoritmo eficiente pararesolverlo.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 14 / 31

Page 45: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Introducción

Introducción a NP-Completitud

Desde entonces se ha caracterizado a los problemas que no se han podidoresolver eficient. en una clase de equivalencia denominada NP-completo.

Si se lograra resolver eficientemente a un problema de NP-completo entoncesse lograría resolver a todos ellos.

Si se lograra demostrar que algún problema de NP-completo no tieneresolución eficiente entonces ninguno la tendría. (Conjetura actual)

Debido a la evidencia acumulada. Si se determina que un problema pertenecea NP-completo entonces se disuade la búsqueda de un algoritmo eficiente pararesolverlo.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 14 / 31

Page 46: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Introducción

Introducción a NP-Completitud

Desde entonces se ha caracterizado a los problemas que no se han podidoresolver eficient. en una clase de equivalencia denominada NP-completo.

Si se lograra resolver eficientemente a un problema de NP-completo entoncesse lograría resolver a todos ellos.

Si se lograra demostrar que algún problema de NP-completo no tieneresolución eficiente entonces ninguno la tendría. (Conjetura actual)

Debido a la evidencia acumulada. Si se determina que un problema pertenecea NP-completo entonces se disuade la búsqueda de un algoritmo eficiente pararesolverlo.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 14 / 31

Page 47: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Reducción de problemas en tiempo polinomial

Reducción de problemas en tiempo polinomial

Para clasificar los problemas según su grado de dificultad se utiliza lacomparación:

“El problema X es al menos tan difícil como el problema Y”.

Reducción. Sea un problema X al menos tan difícil como otro problema Y .Si se dispone de una “caja opaca” para resolver X y se puede reducir(codificar) Y en términos de X entonces se puede resolver Y usando la caja.

Reducción en tiempo polinomial. Si cualquier instancia del problema Ypuede ser resuelta realizando una cantidad polinomial de pasos más unacantidad polinomial de invocaciones a la caja opaca que resuelve el problemaX, entonces se dice que

“Y es reducible en tiempo polinomial a X” y se denota Y ≤P X.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 15 / 31

Page 48: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Reducción de problemas en tiempo polinomial

Reducción de problemas en tiempo polinomial

Para clasificar los problemas según su grado de dificultad se utiliza lacomparación:

“El problema X es al menos tan difícil como el problema Y”.

Reducción. Sea un problema X al menos tan difícil como otro problema Y .Si se dispone de una “caja opaca” para resolver X y se puede reducir(codificar) Y en términos de X entonces se puede resolver Y usando la caja.

Reducción en tiempo polinomial. Si cualquier instancia del problema Ypuede ser resuelta realizando una cantidad polinomial de pasos más unacantidad polinomial de invocaciones a la caja opaca que resuelve el problemaX, entonces se dice que

“Y es reducible en tiempo polinomial a X” y se denota Y ≤P X.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 15 / 31

Page 49: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Reducción de problemas en tiempo polinomial

Reducción de problemas en tiempo polinomial

Para clasificar los problemas según su grado de dificultad se utiliza lacomparación:

“El problema X es al menos tan difícil como el problema Y”.

Reducción. Sea un problema X al menos tan difícil como otro problema Y .Si se dispone de una “caja opaca” para resolver X y se puede reducir(codificar) Y en términos de X entonces se puede resolver Y usando la caja.

Reducción en tiempo polinomial. Si cualquier instancia del problema Ypuede ser resuelta realizando una cantidad polinomial de pasos más unacantidad polinomial de invocaciones a la caja opaca que resuelve el problemaX, entonces se dice que

“Y es reducible en tiempo polinomial a X” y se denota Y ≤P X.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 15 / 31

Page 50: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Reducción de problemas en tiempo polinomial

Propiedades de la reducción en tiempo polinomial

Proposición (1)Sea Y ≤P X. Si X puede resolverse en tiempo polinomial, entoncesY puede resolverse en tiempo polinomial.

¿Cómo se puede aplicar al Problema de emparejamiento bipartito?¿Cómo se podría demostrar?

Proposición (2)Sea Y ≤P X. Si Y no puede resolverse en tiempo polinomial, entoncesX no puede resolverse en tiempo polinomial.

¿Qué relación hay entre (1) y (2)?Se denomina problema difícil al que no se puede resolver eficientemente.Si se tiene un problema Y que se conoce que es difícil y se demuestra queY ≤P X entonces X debe ser difícil o puede ser usado para resolver Y .

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 16 / 31

Page 51: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Reducción de problemas en tiempo polinomial

Propiedades de la reducción en tiempo polinomial

Proposición (1)Sea Y ≤P X. Si X puede resolverse en tiempo polinomial, entoncesY puede resolverse en tiempo polinomial.

¿Cómo se puede aplicar al Problema de emparejamiento bipartito?

¿Cómo se podría demostrar?

Proposición (2)Sea Y ≤P X. Si Y no puede resolverse en tiempo polinomial, entoncesX no puede resolverse en tiempo polinomial.

¿Qué relación hay entre (1) y (2)?Se denomina problema difícil al que no se puede resolver eficientemente.Si se tiene un problema Y que se conoce que es difícil y se demuestra queY ≤P X entonces X debe ser difícil o puede ser usado para resolver Y .

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 16 / 31

Page 52: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Reducción de problemas en tiempo polinomial

Propiedades de la reducción en tiempo polinomial

Proposición (1)Sea Y ≤P X. Si X puede resolverse en tiempo polinomial, entoncesY puede resolverse en tiempo polinomial.

¿Cómo se puede aplicar al Problema de emparejamiento bipartito?¿Cómo se podría demostrar?

Proposición (2)Sea Y ≤P X. Si Y no puede resolverse en tiempo polinomial, entoncesX no puede resolverse en tiempo polinomial.

¿Qué relación hay entre (1) y (2)?Se denomina problema difícil al que no se puede resolver eficientemente.Si se tiene un problema Y que se conoce que es difícil y se demuestra queY ≤P X entonces X debe ser difícil o puede ser usado para resolver Y .

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 16 / 31

Page 53: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Reducción de problemas en tiempo polinomial

Propiedades de la reducción en tiempo polinomial

Proposición (1)Sea Y ≤P X. Si X puede resolverse en tiempo polinomial, entoncesY puede resolverse en tiempo polinomial.

¿Cómo se puede aplicar al Problema de emparejamiento bipartito?¿Cómo se podría demostrar?

Proposición (2)Sea Y ≤P X. Si Y no puede resolverse en tiempo polinomial, entoncesX no puede resolverse en tiempo polinomial.

¿Qué relación hay entre (1) y (2)?Se denomina problema difícil al que no se puede resolver eficientemente.Si se tiene un problema Y que se conoce que es difícil y se demuestra queY ≤P X entonces X debe ser difícil o puede ser usado para resolver Y .

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 16 / 31

Page 54: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Reducción de problemas en tiempo polinomial

Propiedades de la reducción en tiempo polinomial

Proposición (1)Sea Y ≤P X. Si X puede resolverse en tiempo polinomial, entoncesY puede resolverse en tiempo polinomial.

¿Cómo se puede aplicar al Problema de emparejamiento bipartito?¿Cómo se podría demostrar?

Proposición (2)Sea Y ≤P X. Si Y no puede resolverse en tiempo polinomial, entoncesX no puede resolverse en tiempo polinomial.

¿Qué relación hay entre (1) y (2)?

Se denomina problema difícil al que no se puede resolver eficientemente.Si se tiene un problema Y que se conoce que es difícil y se demuestra queY ≤P X entonces X debe ser difícil o puede ser usado para resolver Y .

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 16 / 31

Page 55: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Reducción de problemas en tiempo polinomial

Propiedades de la reducción en tiempo polinomial

Proposición (1)Sea Y ≤P X. Si X puede resolverse en tiempo polinomial, entoncesY puede resolverse en tiempo polinomial.

¿Cómo se puede aplicar al Problema de emparejamiento bipartito?¿Cómo se podría demostrar?

Proposición (2)Sea Y ≤P X. Si Y no puede resolverse en tiempo polinomial, entoncesX no puede resolverse en tiempo polinomial.

¿Qué relación hay entre (1) y (2)?Se denomina problema difícil al que no se puede resolver eficientemente.Si se tiene un problema Y que se conoce que es difícil y se demuestra queY ≤P X entonces X debe ser difícil o puede ser usado para resolver Y .

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 16 / 31

Page 56: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problemas de cobertura y empaque

Problema Independent Set

Independent Set (optimización) Dado un grafo G = (V,E) se dice que unconjunto de vértices S ⊆ V es independiente si ningún par de vértices en Scomparten arista. Se requiere encontrar el conjunto independiente más grande.

Resolver la instancia:

1 2

3 4 5

6 7

Su problema de reconocimiento asociado es:Independent Set (reconocimiento) Dados un grafo G y un número k,determinar si G contiene un conjunto independiente de tamaño al menos k.

No se conoce como resolver el problema en tiempo polinomial.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 17 / 31

Page 57: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problemas de cobertura y empaque

Problema Independent Set

Independent Set (optimización) Dado un grafo G = (V,E) se dice que unconjunto de vértices S ⊆ V es independiente si ningún par de vértices en Scomparten arista. Se requiere encontrar el conjunto independiente más grande.Resolver la instancia:

1 2

3 4 5

6 7

Su problema de reconocimiento asociado es:Independent Set (reconocimiento) Dados un grafo G y un número k,determinar si G contiene un conjunto independiente de tamaño al menos k.

No se conoce como resolver el problema en tiempo polinomial.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 17 / 31

Page 58: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problemas de cobertura y empaque

Problema Independent Set

Independent Set (optimización) Dado un grafo G = (V,E) se dice que unconjunto de vértices S ⊆ V es independiente si ningún par de vértices en Scomparten arista. Se requiere encontrar el conjunto independiente más grande.Resolver la instancia:

1 2

3 4 5

6 7

Su problema de reconocimiento asociado es:Independent Set (reconocimiento) Dados un grafo G y un número k,determinar si G contiene un conjunto independiente de tamaño al menos k.

No se conoce como resolver el problema en tiempo polinomial.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 17 / 31

Page 59: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problemas de cobertura y empaque

Problema Independent Set

Independent Set (optimización) Dado un grafo G = (V,E) se dice que unconjunto de vértices S ⊆ V es independiente si ningún par de vértices en Scomparten arista. Se requiere encontrar el conjunto independiente más grande.Resolver la instancia:

1 2

3 4 5

6 7

Su problema de reconocimiento asociado es:Independent Set (reconocimiento) Dados un grafo G y un número k,determinar si G contiene un conjunto independiente de tamaño al menos k.

No se conoce como resolver el problema en tiempo polinomial.InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 17 / 31

Page 60: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problemas de cobertura y empaque

Problema Vertex Cover

Vertex Cover (optimización) Dado un grafo G = (V,E) se dice que unconjunto de vértices S ⊆ V es una cobertura [de aristas] por vértices si cadaarista tiene al menos un vértice en S. Se requiere encontrar el conjunto decobertura más pequeño.

Resolver la instancia:

1 2

3 4 5

6 7

Vertex Cover (reconocimiento) Dados un grafo G y un número k, determinarsi G contiene una cobertura por vértices de tamaño a lo sumo k?

No se conoce como resolver el problema en tiempo polinomial.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 18 / 31

Page 61: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problemas de cobertura y empaque

Problema Vertex Cover

Vertex Cover (optimización) Dado un grafo G = (V,E) se dice que unconjunto de vértices S ⊆ V es una cobertura [de aristas] por vértices si cadaarista tiene al menos un vértice en S. Se requiere encontrar el conjunto decobertura más pequeño.Resolver la instancia:

1 2

3 4 5

6 7

Vertex Cover (reconocimiento) Dados un grafo G y un número k, determinarsi G contiene una cobertura por vértices de tamaño a lo sumo k?

No se conoce como resolver el problema en tiempo polinomial.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 18 / 31

Page 62: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problemas de cobertura y empaque

Problema Vertex Cover

Vertex Cover (optimización) Dado un grafo G = (V,E) se dice que unconjunto de vértices S ⊆ V es una cobertura [de aristas] por vértices si cadaarista tiene al menos un vértice en S. Se requiere encontrar el conjunto decobertura más pequeño.Resolver la instancia:

1 2

3 4 5

6 7

Vertex Cover (reconocimiento) Dados un grafo G y un número k, determinarsi G contiene una cobertura por vértices de tamaño a lo sumo k?

No se conoce como resolver el problema en tiempo polinomial.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 18 / 31

Page 63: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problemas de cobertura y empaque

Problema Vertex Cover

Vertex Cover (optimización) Dado un grafo G = (V,E) se dice que unconjunto de vértices S ⊆ V es una cobertura [de aristas] por vértices si cadaarista tiene al menos un vértice en S. Se requiere encontrar el conjunto decobertura más pequeño.Resolver la instancia:

1 2

3 4 5

6 7

Vertex Cover (reconocimiento) Dados un grafo G y un número k, determinarsi G contiene una cobertura por vértices de tamaño a lo sumo k?

No se conoce como resolver el problema en tiempo polinomial.InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 18 / 31

Page 64: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problemas de cobertura y empaque

Independent Set y Vertex Cover son equivalentes en dificultad

Proposición (3)

Sea el grafo G = (V,E). S ⊆ V es un conjunto independiente si y solo si sucomplemento V \ S es una cobertura por vértices.

Proposición (4)Independent Set ≤P Vertex Cover.

Prueba.Según (3). Si se tiene una caja opaca para resolver Vertex Cover, entonces se puededecidir si G tiene una conjunto independiente de tamaño al menos k consultando a lacaja opaca si G tiene una cobertura por vértice de tamaño a lo sumo n− k.

Proposición (5)Vertex Cover ≤P Independent Set.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 19 / 31

Page 65: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problemas de cobertura y empaque

Independent Set y Vertex Cover son equivalentes en dificultad

Proposición (3)

Sea el grafo G = (V,E). S ⊆ V es un conjunto independiente si y solo si sucomplemento V \ S es una cobertura por vértices.

Proposición (4)Independent Set ≤P Vertex Cover.

Prueba.Según (3). Si se tiene una caja opaca para resolver Vertex Cover, entonces se puededecidir si G tiene una conjunto independiente de tamaño al menos k consultando a lacaja opaca si G tiene una cobertura por vértice de tamaño a lo sumo n− k.

Proposición (5)Vertex Cover ≤P Independent Set.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 19 / 31

Page 66: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problemas de cobertura y empaque

Independent Set y Vertex Cover son equivalentes en dificultad

Proposición (3)

Sea el grafo G = (V,E). S ⊆ V es un conjunto independiente si y solo si sucomplemento V \ S es una cobertura por vértices.

Proposición (4)Independent Set ≤P Vertex Cover.

Prueba.Según (3). Si se tiene una caja opaca para resolver Vertex Cover, entonces se puededecidir si G tiene una conjunto independiente de tamaño al menos k consultando a lacaja opaca si G tiene una cobertura por vértice de tamaño a lo sumo n− k.

Proposición (5)Vertex Cover ≤P Independent Set.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 19 / 31

Page 67: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problemas de cobertura y empaque

Independent Set y Vertex Cover son equivalentes en dificultad

Proposición (3)

Sea el grafo G = (V,E). S ⊆ V es un conjunto independiente si y solo si sucomplemento V \ S es una cobertura por vértices.

Proposición (4)Independent Set ≤P Vertex Cover.

Prueba.Según (3). Si se tiene una caja opaca para resolver Vertex Cover, entonces se puededecidir si G tiene una conjunto independiente de tamaño al menos k consultando a lacaja opaca si G tiene una cobertura por vértice de tamaño a lo sumo n− k.

Proposición (5)Vertex Cover ≤P Independent Set.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 19 / 31

Page 68: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problemas de cobertura y empaque

Casos de cobertura y empaque de conjuntos

Dados los conjuntos M = {1, ...,m} y N = {1, ..., n}.Sean los subconjuntos Mi de M con i ∈ N.

Dado S subconjunto de N,

S se dice cobertura de M si ∪i∈SMi = M,

S se dice empaque de M si Mi ∩Mj = ∅, para todo i, j ∈ S, tal que i 6= j,

S se dice partición de M si es cobertura y empaque.

En el problema de cobertura se busca S de menor tamaño.En el problema de empaque se busca S de mayor tamaño.

Proposición (6)Vertex Cover ≤P Set Cover.

Proposición (7)Independent Set ≤P Set Packing.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 20 / 31

Page 69: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problemas de cobertura y empaque

Casos de cobertura y empaque de conjuntos

Dados los conjuntos M = {1, ...,m} y N = {1, ..., n}.Sean los subconjuntos Mi de M con i ∈ N.Dado S subconjunto de N,

S se dice cobertura de M si ∪i∈SMi = M,

S se dice empaque de M si Mi ∩Mj = ∅, para todo i, j ∈ S, tal que i 6= j,

S se dice partición de M si es cobertura y empaque.

En el problema de cobertura se busca S de menor tamaño.En el problema de empaque se busca S de mayor tamaño.

Proposición (6)Vertex Cover ≤P Set Cover.

Proposición (7)Independent Set ≤P Set Packing.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 20 / 31

Page 70: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problemas de cobertura y empaque

Casos de cobertura y empaque de conjuntos

Dados los conjuntos M = {1, ...,m} y N = {1, ..., n}.Sean los subconjuntos Mi de M con i ∈ N.Dado S subconjunto de N,

S se dice cobertura de M si ∪i∈SMi = M,

S se dice empaque de M si Mi ∩Mj = ∅, para todo i, j ∈ S, tal que i 6= j,

S se dice partición de M si es cobertura y empaque.

En el problema de cobertura se busca S de menor tamaño.En el problema de empaque se busca S de mayor tamaño.

Proposición (6)Vertex Cover ≤P Set Cover.

Proposición (7)Independent Set ≤P Set Packing.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 20 / 31

Page 71: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problemas de cobertura y empaque

Casos de cobertura y empaque de conjuntos

Dados los conjuntos M = {1, ...,m} y N = {1, ..., n}.Sean los subconjuntos Mi de M con i ∈ N.Dado S subconjunto de N,

S se dice cobertura de M si ∪i∈SMi = M,

S se dice empaque de M si Mi ∩Mj = ∅, para todo i, j ∈ S, tal que i 6= j,

S se dice partición de M si es cobertura y empaque.

En el problema de cobertura se busca S de menor tamaño.En el problema de empaque se busca S de mayor tamaño.

Proposición (6)Vertex Cover ≤P Set Cover.

Proposición (7)Independent Set ≤P Set Packing.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 20 / 31

Page 72: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problema de Satisfacibilidad Booleana

Problema de Satisfacibilidad Booleana (SAT)

Es un problema de reconocimiento en álgebra Booleana.

Sea un conjunto de variables Booleanas X = {x1, x2, ..., xn}.Se denomina término, t, sobre X a la expresión de una variable xi o sunegación xi, t ∈ {x1, x2, ..., xn, x1, x2, ..., xn}.Se denomina cláusula a la disyunción de diferentes términos C = t1∨ t2...∨ t`.Se plantea la conjunción de un conjunto de cláusulas diferentes,C1 ∧ C2... ∧ Ck.

Dado un conjunto de cláusulas sobre un conjunto de variables.El problema requiere determinar una asignación de valores a las variables quesatisface la conjunción de las cláusulas.

El problema contiene las propiedades fundamentales de los problemasdifíciles.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 21 / 31

Page 73: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problema de Satisfacibilidad Booleana

Problema de Satisfacibilidad Booleana (SAT)

Es un problema de reconocimiento en álgebra Booleana.Sea un conjunto de variables Booleanas X = {x1, x2, ..., xn}.Se denomina término, t, sobre X a la expresión de una variable xi o sunegación xi, t ∈ {x1, x2, ..., xn, x1, x2, ..., xn}.

Se denomina cláusula a la disyunción de diferentes términos C = t1∨ t2...∨ t`.Se plantea la conjunción de un conjunto de cláusulas diferentes,C1 ∧ C2... ∧ Ck.

Dado un conjunto de cláusulas sobre un conjunto de variables.El problema requiere determinar una asignación de valores a las variables quesatisface la conjunción de las cláusulas.

El problema contiene las propiedades fundamentales de los problemasdifíciles.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 21 / 31

Page 74: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problema de Satisfacibilidad Booleana

Problema de Satisfacibilidad Booleana (SAT)

Es un problema de reconocimiento en álgebra Booleana.Sea un conjunto de variables Booleanas X = {x1, x2, ..., xn}.Se denomina término, t, sobre X a la expresión de una variable xi o sunegación xi, t ∈ {x1, x2, ..., xn, x1, x2, ..., xn}.Se denomina cláusula a la disyunción de diferentes términos C = t1∨ t2...∨ t`.Se plantea la conjunción de un conjunto de cláusulas diferentes,C1 ∧ C2... ∧ Ck.

Dado un conjunto de cláusulas sobre un conjunto de variables.El problema requiere determinar una asignación de valores a las variables quesatisface la conjunción de las cláusulas.

El problema contiene las propiedades fundamentales de los problemasdifíciles.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 21 / 31

Page 75: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problema de Satisfacibilidad Booleana

Problema de Satisfacibilidad Booleana (SAT)

Es un problema de reconocimiento en álgebra Booleana.Sea un conjunto de variables Booleanas X = {x1, x2, ..., xn}.Se denomina término, t, sobre X a la expresión de una variable xi o sunegación xi, t ∈ {x1, x2, ..., xn, x1, x2, ..., xn}.Se denomina cláusula a la disyunción de diferentes términos C = t1∨ t2...∨ t`.Se plantea la conjunción de un conjunto de cláusulas diferentes,C1 ∧ C2... ∧ Ck.

Dado un conjunto de cláusulas sobre un conjunto de variables.El problema requiere determinar una asignación de valores a las variables quesatisface la conjunción de las cláusulas.

El problema contiene las propiedades fundamentales de los problemasdifíciles.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 21 / 31

Page 76: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problema de Satisfacibilidad Booleana

Problema de Satisfacibilidad Booleana (SAT)

Es un problema de reconocimiento en álgebra Booleana.Sea un conjunto de variables Booleanas X = {x1, x2, ..., xn}.Se denomina término, t, sobre X a la expresión de una variable xi o sunegación xi, t ∈ {x1, x2, ..., xn, x1, x2, ..., xn}.Se denomina cláusula a la disyunción de diferentes términos C = t1∨ t2...∨ t`.Se plantea la conjunción de un conjunto de cláusulas diferentes,C1 ∧ C2... ∧ Ck.

Dado un conjunto de cláusulas sobre un conjunto de variables.El problema requiere determinar una asignación de valores a las variables quesatisface la conjunción de las cláusulas.

El problema contiene las propiedades fundamentales de los problemasdifíciles.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 21 / 31

Page 77: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problema de Satisfacibilidad Booleana

Problema de Satisfacibilidad Booleana (3-SAT)

Resolver la instancia:

(x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2)

¿Qué estrategia se usó para resolverla?¿Cuán difícil es verificar la solución obtenida?¿Cuál es el tiempo de ejecución de la verificación?

Resolver la instancia:

(x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2)

¿Cuán difícil es verificar que no tiene solución?

Existe un caso minimal de SAT (equivalentemente difícil) en el que cadacláusula tiene 3 términos, denominado 3-SAT.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 22 / 31

Page 78: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problema de Satisfacibilidad Booleana

Problema de Satisfacibilidad Booleana (3-SAT)

Resolver la instancia:

(x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2)

¿Qué estrategia se usó para resolverla?

¿Cuán difícil es verificar la solución obtenida?¿Cuál es el tiempo de ejecución de la verificación?

Resolver la instancia:

(x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2)

¿Cuán difícil es verificar que no tiene solución?

Existe un caso minimal de SAT (equivalentemente difícil) en el que cadacláusula tiene 3 términos, denominado 3-SAT.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 22 / 31

Page 79: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problema de Satisfacibilidad Booleana

Problema de Satisfacibilidad Booleana (3-SAT)

Resolver la instancia:

(x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2)

¿Qué estrategia se usó para resolverla?¿Cuán difícil es verificar la solución obtenida?

¿Cuál es el tiempo de ejecución de la verificación?

Resolver la instancia:

(x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2)

¿Cuán difícil es verificar que no tiene solución?

Existe un caso minimal de SAT (equivalentemente difícil) en el que cadacláusula tiene 3 términos, denominado 3-SAT.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 22 / 31

Page 80: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problema de Satisfacibilidad Booleana

Problema de Satisfacibilidad Booleana (3-SAT)

Resolver la instancia:

(x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2)

¿Qué estrategia se usó para resolverla?¿Cuán difícil es verificar la solución obtenida?¿Cuál es el tiempo de ejecución de la verificación?

Resolver la instancia:

(x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2)

¿Cuán difícil es verificar que no tiene solución?

Existe un caso minimal de SAT (equivalentemente difícil) en el que cadacláusula tiene 3 términos, denominado 3-SAT.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 22 / 31

Page 81: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problema de Satisfacibilidad Booleana

Problema de Satisfacibilidad Booleana (3-SAT)

Resolver la instancia:

(x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2)

¿Qué estrategia se usó para resolverla?¿Cuán difícil es verificar la solución obtenida?¿Cuál es el tiempo de ejecución de la verificación?

Resolver la instancia:

(x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2)

¿Cuán difícil es verificar que no tiene solución?

Existe un caso minimal de SAT (equivalentemente difícil) en el que cadacláusula tiene 3 términos, denominado 3-SAT.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 22 / 31

Page 82: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problema de Satisfacibilidad Booleana

Problema de Satisfacibilidad Booleana (3-SAT)

Resolver la instancia:

(x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2)

¿Qué estrategia se usó para resolverla?¿Cuán difícil es verificar la solución obtenida?¿Cuál es el tiempo de ejecución de la verificación?

Resolver la instancia:

(x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2)

¿Cuán difícil es verificar que no tiene solución?

Existe un caso minimal de SAT (equivalentemente difícil) en el que cadacláusula tiene 3 términos, denominado 3-SAT.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 22 / 31

Page 83: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problema de Satisfacibilidad Booleana

Problema de Satisfacibilidad Booleana (3-SAT)

Resolver la instancia:

(x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2)

¿Qué estrategia se usó para resolverla?¿Cuán difícil es verificar la solución obtenida?¿Cuál es el tiempo de ejecución de la verificación?

Resolver la instancia:

(x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2) ∧ (x1 ∨ x2)

¿Cuán difícil es verificar que no tiene solución?

Existe un caso minimal de SAT (equivalentemente difícil) en el que cadacláusula tiene 3 términos, denominado 3-SAT.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 22 / 31

Page 84: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problema de Satisfacibilidad Booleana

Reducción de 3-SAT a Independent Set (1/3)

Proposición (8)3-SAT ≤P Independent Set.

Prueba.Se cuenta con una caja opaca para resolver Independent Set y se requiereresolver una instancia de 3-SAT con X = {x1, ..., xn} y cláusulas C1, ...,Ck.Una técnica de resolución de 3-SAT es elegir un término de cada cláusula ytratar de que sea verdadero. Para la selección se busca que cada par detérminos no contengan uno de ellos una variable y el otro la negación de lavariable.Se construye un grafo G = (V,E) con 3k vértices agrupados en k triángulos.Para cada i = 1, ..., k se construyen los vértices vi1, vi2, vi3 conectados poraristas.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 23 / 31

Page 85: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problema de Satisfacibilidad Booleana

Reducción de 3-SAT a Independent Set (1/3)

Proposición (8)3-SAT ≤P Independent Set.

Prueba.Se cuenta con una caja opaca para resolver Independent Set y se requiereresolver una instancia de 3-SAT con X = {x1, ..., xn} y cláusulas C1, ...,Ck.Una técnica de resolución de 3-SAT es elegir un término de cada cláusula ytratar de que sea verdadero. Para la selección se busca que cada par detérminos no contengan uno de ellos una variable y el otro la negación de lavariable.Se construye un grafo G = (V,E) con 3k vértices agrupados en k triángulos.Para cada i = 1, ..., k se construyen los vértices vi1, vi2, vi3 conectados poraristas.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 23 / 31

Page 86: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problema de Satisfacibilidad Booleana

Reducción de 3-SAT a Independent Set (2/3)

Prueba (cont.)Solo se puede seleccionar un vértice de cada triángulo, lo que corresponde aseleccionar un término con valor 1 en cada cláusula. Para representar losconflictos entre las variables de los términos se agrega una arista entre lasvariables.La instancia de 3-SAT se satisface si y solo si el grafo G tiene un conjuntoindependiente de tamaño al menos k.

Por una parte, si la instancia de 3-SAT se satisface, entonces cada triángulocontiene al menos un vértices cuya variable vale 1. Sea S un conjuntocompuesto por los vértices cuyas variables valen 1. El conjunto S esindependiente, dado que si hubiera una arista entre un par de vértices de Sentonces sus variables estarían en conflicto, lo cual no es posible.Por la contraria, se supone que G tiene un conjunto independiente S detamaño al menos k. Entonces el tamaño de S es exactamente k y consiste deun vértice de cada triángulo.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 24 / 31

Page 87: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problema de Satisfacibilidad Booleana

Reducción de 3-SAT a Independent Set (2/3)

Prueba (cont.)Solo se puede seleccionar un vértice de cada triángulo, lo que corresponde aseleccionar un término con valor 1 en cada cláusula. Para representar losconflictos entre las variables de los términos se agrega una arista entre lasvariables.La instancia de 3-SAT se satisface si y solo si el grafo G tiene un conjuntoindependiente de tamaño al menos k.Por una parte, si la instancia de 3-SAT se satisface, entonces cada triángulocontiene al menos un vértices cuya variable vale 1. Sea S un conjuntocompuesto por los vértices cuyas variables valen 1. El conjunto S esindependiente, dado que si hubiera una arista entre un par de vértices de Sentonces sus variables estarían en conflicto, lo cual no es posible.

Por la contraria, se supone que G tiene un conjunto independiente S detamaño al menos k. Entonces el tamaño de S es exactamente k y consiste deun vértice de cada triángulo.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 24 / 31

Page 88: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problema de Satisfacibilidad Booleana

Reducción de 3-SAT a Independent Set (2/3)

Prueba (cont.)Solo se puede seleccionar un vértice de cada triángulo, lo que corresponde aseleccionar un término con valor 1 en cada cláusula. Para representar losconflictos entre las variables de los términos se agrega una arista entre lasvariables.La instancia de 3-SAT se satisface si y solo si el grafo G tiene un conjuntoindependiente de tamaño al menos k.Por una parte, si la instancia de 3-SAT se satisface, entonces cada triángulocontiene al menos un vértices cuya variable vale 1. Sea S un conjuntocompuesto por los vértices cuyas variables valen 1. El conjunto S esindependiente, dado que si hubiera una arista entre un par de vértices de Sentonces sus variables estarían en conflicto, lo cual no es posible.Por la contraria, se supone que G tiene un conjunto independiente S detamaño al menos k. Entonces el tamaño de S es exactamente k y consiste deun vértice de cada triángulo.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 24 / 31

Page 89: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problema de Satisfacibilidad Booleana

Reducción de 3-SAT a Independent Set (3/3)

Prueba (cont.)Existe una asignación de las variables de la instancia de 3-SAT tal quecorresponde con los vértices de S. Para cada variable xi, si ni xi ni x̄i

corresponde con un vértice en S entonces se asigna arbitrariamente xi = 1. Delo contrario, exactamente xi o x̄i corresponderían con un vértice en S, porquesi un vértice en S estuviera estiquetado xi y otro etiquetado x̄i, entonces habríauna arista entre estos dos vértices, contradiciendo la suposición de que S es unconjunto independiente. Por tanto, si xi es una etiqueta de un nodo en S, seestablece xi = 1, y de lo contrario xi = 0. Al construir la asignación de estamanera, todas las etiquetas de los vértices en S se evaluarán a 1.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 25 / 31

Page 90: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problema de Satisfacibilidad Booleana

Transitividad de reducciones en tiempo polinomial

La reducción en tiempo polinomial es una relación transitiva.

Proposición (9)Si Z ≤P Y y Y ≤P X entonces Z ≤P X

Prueba.Dada una caja opaca para X, se requiere resolver una instancia de Z. Secomponen los dos algoritmos asociados a Z ≤P Y y Y ≤P X. Se ejecuta elalgoritmo para Z usando una caja opaca para Y; cada vez que la caja opacapara Y es invocada, se lo hace en una cantidad polinomial de pasos invocandoel algoritmo que resuelve instancias de Y usando la caja opaca para X.

Ejemplo

3-SAT ≤P Independent Set ≤P Vertex Cover ≤P Set Cover

⇒3-SAT ≤P Set Cover

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 26 / 31

Page 91: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problema de Satisfacibilidad Booleana

Transitividad de reducciones en tiempo polinomial

La reducción en tiempo polinomial es una relación transitiva.

Proposición (9)Si Z ≤P Y y Y ≤P X entonces Z ≤P X

Prueba.Dada una caja opaca para X, se requiere resolver una instancia de Z. Secomponen los dos algoritmos asociados a Z ≤P Y y Y ≤P X. Se ejecuta elalgoritmo para Z usando una caja opaca para Y; cada vez que la caja opacapara Y es invocada, se lo hace en una cantidad polinomial de pasos invocandoel algoritmo que resuelve instancias de Y usando la caja opaca para X.

Ejemplo

3-SAT ≤P Independent Set ≤P Vertex Cover ≤P Set Cover

⇒3-SAT ≤P Set Cover

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 26 / 31

Page 92: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Problema de Satisfacibilidad Booleana

Transitividad de reducciones en tiempo polinomial

La reducción en tiempo polinomial es una relación transitiva.

Proposición (9)Si Z ≤P Y y Y ≤P X entonces Z ≤P X

Prueba.Dada una caja opaca para X, se requiere resolver una instancia de Z. Secomponen los dos algoritmos asociados a Z ≤P Y y Y ≤P X. Se ejecuta elalgoritmo para Z usando una caja opaca para Y; cada vez que la caja opacapara Y es invocada, se lo hace en una cantidad polinomial de pasos invocandoel algoritmo que resuelve instancias de Y usando la caja opaca para X.

Ejemplo

3-SAT ≤P Independent Set ≤P Vertex Cover ≤P Set Cover

⇒3-SAT ≤P Set Cover

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 26 / 31

Page 93: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Ejercicio sobre el Sistema Nacional de Areas Protegidas (SNAP)

Ejercicio sobre el Sistema Nacional de Areas Protegidas (SNAP)

El SNAP busca conciliar el cuidado del ambiente, entre otros a especiesautóctonas, con el desarrollo económico y social. Para ello se han identificadolas especies y las áreas donde estas habitan. Se conoce que subconjunto de lasespecies habitan cada una de las áreas. El problema del SNAP (PSNAP)consiste en determinar el subconjunto de áreas de menor tamaño, tales quecada especie se encuentre en al menos una de las áreas.

Definir las variantes de decisión de los problemas Vertex Cover y PSNAP.

Demostrar que Vertex Cover ≤P PSNAP.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 27 / 31

Page 94: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Ejercicio sobre el Sistema Nacional de Areas Protegidas (SNAP)

Ejercicio sobre el Sistema Nacional de Areas Protegidas (SNAP)

El SNAP busca conciliar el cuidado del ambiente, entre otros a especiesautóctonas, con el desarrollo económico y social. Para ello se han identificadolas especies y las áreas donde estas habitan. Se conoce que subconjunto de lasespecies habitan cada una de las áreas. El problema del SNAP (PSNAP)consiste en determinar el subconjunto de áreas de menor tamaño, tales quecada especie se encuentre en al menos una de las áreas.

Definir las variantes de decisión de los problemas Vertex Cover y PSNAP.

Demostrar que Vertex Cover ≤P PSNAP.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 27 / 31

Page 95: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Ejercicio sobre el Sistema Nacional de Areas Protegidas (SNAP)

Ejercicio sobre el Sistema Nacional de Areas Protegidas (SNAP)Definición de problemas de decisión e instancias

Sea la variante de decisión del problema Vertex Cover: dado un grafo G(V,E)y un número k, determinar si G contiene una cobertura (de aristas) porvértices de tamaño a lo sumo k.Donde una instancia queda definida por 〈G = (V,E), k〉.

Sea la variante de decisión del problema PSNAP: dada una colección desubconjuntos de las especies Sa según área a ∈ A y un número k′, determinarsi la colección contiene a lo sumo k′ áreas tales que cada especie se encuentreen al menos una de las áreas.Donde una instancia queda definida por 〈{Sa}a∈A, k′〉.Se asume que se dispone de algoritmo (caja opaca) para resolver PSNAP.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 28 / 31

Page 96: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Ejercicio sobre el Sistema Nacional de Areas Protegidas (SNAP)

Ejercicio sobre el Sistema Nacional de Areas Protegidas (SNAP)Reducción de instancia arbitraria de Vertex Cover en instancia de PSNAP

Se reduce una instancia arbitraria de Vertex Cover en una instancia de PSNAPcodificando los vértices como áreas y las aristas como especies.

1. Cada vértice v ∈ V se codifica como un área a ∈ A.

2. Para cada vértice v ∈ V y arista ev incidente a v, se codifica ev como unaespecie del conjunto Sa, donde a corresponde al vértice v de lacodificación del paso previo.

3. Se codifica k′ como k′.

La reducción es de tiempo polinomial en el tamaño de los conjuntos V y E, yel número k. El paso 2 requiere tiempo de orden O(|V||E|) y los pasos 1 y 3requieren orden constante.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 29 / 31

Page 97: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Ejercicio sobre el Sistema Nacional de Areas Protegidas (SNAP)

Ejercicio sobre el Sistema Nacional de Areas Protegidas (SNAP)Reducción de instancia arbitraria de Vertex Cover en instancia de PSNAP

Se reduce una instancia arbitraria de Vertex Cover en una instancia de PSNAPcodificando los vértices como áreas y las aristas como especies.

1. Cada vértice v ∈ V se codifica como un área a ∈ A.

2. Para cada vértice v ∈ V y arista ev incidente a v, se codifica ev como unaespecie del conjunto Sa, donde a corresponde al vértice v de lacodificación del paso previo.

3. Se codifica k′ como k′.

La reducción es de tiempo polinomial en el tamaño de los conjuntos V y E, yel número k. El paso 2 requiere tiempo de orden O(|V||E|) y los pasos 1 y 3requieren orden constante.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 29 / 31

Page 98: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Ejercicio sobre el Sistema Nacional de Areas Protegidas (SNAP)

Ejercicio sobre el Sistema Nacional de Areas Protegidas (SNAP)Reducción de instancia arbitraria de Vertex Cover en instancia de PSNAP

Se reduce una instancia arbitraria de Vertex Cover en una instancia de PSNAPcodificando los vértices como áreas y las aristas como especies.

1. Cada vértice v ∈ V se codifica como un área a ∈ A.

2. Para cada vértice v ∈ V y arista ev incidente a v, se codifica ev como unaespecie del conjunto Sa, donde a corresponde al vértice v de lacodificación del paso previo.

3. Se codifica k′ como k′.

La reducción es de tiempo polinomial en el tamaño de los conjuntos V y E, yel número k. El paso 2 requiere tiempo de orden O(|V||E|) y los pasos 1 y 3requieren orden constante.

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 29 / 31

Page 99: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Ejercicio sobre el Sistema Nacional de Areas Protegidas (SNAP)

Ejercicio sobre el Sistema Nacional de Areas Protegidas (SNAP)Prueba de equivalencia de soluciones de las instancias

Se requiere probar que G tiene una cobertura por vértices de a lo sumo kvértices si y solo si en PSNAP existe un subconjunto de a lo sumo k′ áreastales que cada especie se encuentra en al menos una de las áreas.

Por una parte, se asume que G tiene una cobertura por vérticesC = {va1 , va2 , . . . , var}, con r ≤ k. Se tiene que el conjunto de áreasT = {a1, a1, . . . , ar}, de tamaño r no supera k′ (k′ = k), cubre todas lasespecies. Para una especie s arbitraria, que C sea una cobertura por vérticesimplica que la arista correspondiente e es incidente a algún vértice vaq ∈ C.Por lo tanto, por la codificación de Saq , se cumple que la especie s es cubiertapor el área aq de T .

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 30 / 31

Page 100: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Ejercicio sobre el Sistema Nacional de Areas Protegidas (SNAP)

Ejercicio sobre el Sistema Nacional de Areas Protegidas (SNAP)Prueba de equivalencia de soluciones de las instancias

Se requiere probar que G tiene una cobertura por vértices de a lo sumo kvértices si y solo si en PSNAP existe un subconjunto de a lo sumo k′ áreastales que cada especie se encuentra en al menos una de las áreas.

Por una parte, se asume que G tiene una cobertura por vérticesC = {va1 , va2 , . . . , var}, con r ≤ k. Se tiene que el conjunto de áreasT = {a1, a1, . . . , ar}, de tamaño r no supera k′ (k′ = k), cubre todas lasespecies. Para una especie s arbitraria, que C sea una cobertura por vérticesimplica que la arista correspondiente e es incidente a algún vértice vaq ∈ C.Por lo tanto, por la codificación de Saq , se cumple que la especie s es cubiertapor el área aq de T .

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 30 / 31

Page 101: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Ejercicio sobre el Sistema Nacional de Areas Protegidas (SNAP)

Ejercicio sobre el Sistema Nacional de Areas Protegidas (SNAP)Prueba de equivalencia de soluciones de las instancias y conclusión

Por la otra parte, se asume que T = {a1, a2, . . . , ar} es un conjunto de r áreas,con r ≤ k, tal que cada especie se encuentra en al menos una de sus áreas. Setiene que C = {va1 , va2 , . . . , var} es una cobertura por vértices en G. Sea e unaarista arbitraria de G, existe q con 1 ≤ q ≤ r, tal que el área aq de T contiene ala especie correspondiente a e, es decir, se tiene que e ∈ Saq . Por lo tanto, porla definición de Saq en el paso 2, se cumple que e es incidente a vaq , que es unvértice perteneciente a C. Por lo tanto C es una cobertura por vértices en G.

Por lo tanto es posible resolver Vertex Cover mediante una reducción detiempo polinomial a PSNAP y una invocación al algoritmo que resuelvePSNAP. �

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 31 / 31

Page 102: Semana 14 Problema de emparejamiento bipartito Complejidad

Complejidad computacional Ejercicio sobre el Sistema Nacional de Areas Protegidas (SNAP)

Ejercicio sobre el Sistema Nacional de Areas Protegidas (SNAP)Prueba de equivalencia de soluciones de las instancias y conclusión

Por la otra parte, se asume que T = {a1, a2, . . . , ar} es un conjunto de r áreas,con r ≤ k, tal que cada especie se encuentra en al menos una de sus áreas. Setiene que C = {va1 , va2 , . . . , var} es una cobertura por vértices en G. Sea e unaarista arbitraria de G, existe q con 1 ≤ q ≤ r, tal que el área aq de T contiene ala especie correspondiente a e, es decir, se tiene que e ∈ Saq . Por lo tanto, porla definición de Saq en el paso 2, se cumple que e es incidente a vaq , que es unvértice perteneciente a C. Por lo tanto C es una cobertura por vértices en G.

Por lo tanto es posible resolver Vertex Cover mediante una reducción detiempo polinomial a PSNAP y una invocación al algoritmo que resuelvePSNAP. �

InCo - Fac.Ingeniería - UdelaR Programación 3 - Teórico semana 14 2do. Semestre 2021 31 / 31