You are on page 1of 16

Índice

1. Marco Teorico 2
1.1. Algoritmos Voracez . . . . . . . . . . . . . . . . . . . . . . . . 2

2. Hipotesis 3

3. Aspectos Metodologicos 3
3.1. Tipo de Estudio . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.2. Metodo de Investigacion . . . . . . . . . . . . . . . . . . . . . 3
3.3. Fuentes de Informacion . . . . . . . . . . . . . . . . . . . . . . 3

4. Desarrollo 4
4.1. Teoria de Matroids . . . . . . . . . . . . . . . . . . . . . . . . 4
4.2. Relación con los algoritmos greedy . . . . . . . . . . . . . . . 6
4.3. Un problema de programacion de tareas . . . . . . . . . . . . 10
4.4. Otros Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.5. Teoria de Greedoids . . . . . . . . . . . . . . . . . . . . . . . . 12
4.6. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.7. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5. Conclusiones 15

6. Bibliografia 16

1
1. Marco Teorico
1.1. Algoritmos Voracez
Un algoritmo es un metodo efectivo para resolver un problema expre-
sado como una secuencia finita de pasos. Cada algoritmo es una lista de
instrucciones bien definidas para llevar acabo una tarea. Partiendo de un es-
tado inicial, las instrucciones describen un proceso de computo que recorre
una serie bien definida de estados sucesivos, hasta llegar a un estado final.
Hay varias formas de clasificar a los algoritmos, como por ejemplo: por im-
plementacion, por el paradigma de su diseño o por el campo de estudio al
que pertenece.
Dentro de la clasificación por el paradigma de diseño encontramos a los al-
goritmos voracez. Estos algoritmos se rigen por la heuristica de tomar la
eleccion optima local en cada paso, con la esperanza de llegar al final a un
optimo global. En general, un algoritmo voraz(greedy) esta formado por:
1. Un conjunto de candidatos, de los cuales se crea una solucion.
2. Una funcion de seleccion, que escoge el mejor candidato para ser agre-
gado a la solucion.
3. Una funcion de factibilidad, para determinar si un candidato puede ser
usado para contribuir a la solucion.
4. Una funcion objetivo, que asigna valores a la solucion (o a la solucion
parcial).
5. Una funcion de solucion, que nos indicara cuando hemos llegado a una
solucion completa.
Estos algoritmos producen buenas soluciones en algunos problemas, pero no
en otros. Los problemas en los que se llega a soluciones optimas poseen dos
propiedades:

Propiedad de la eleccion voraz


Podemos escoger el elemento optimo local (aquel que es el mejor en un
momento dado) y luego resolver los subproblemas posteriores. La eleccion
hecha por un algoritmo voraz puede depender en elecciones pasadas pero no
en elecciones futuras.

2
Subestructura optima
Un problema tiene esta propiedad si una solucion optima al problema
contiene soluciones optimas a los subproblemas.

2. Hipotesis
No todo algoritmo voraz genera una solucion optima.

La teoria de matroids permite demostrar la correctitud de los algoritmos


voracez.

La teoria de greedoids extiende la teoria de matroids y permite demos-


trar la correctitud de los algoritmos voracez.

3. Aspectos Metodologicos
3.1. Tipo de Estudio
El presente trabajo realizara un estudio descriptivo. Identificaremos ca-
racteristicas del objeto de estudio y presentaremos la teoria de matroids y
greedoids junto con aplicaciones a problemas computacionales concretos.

3.2. Metodo de Investigacion


Emplearemos el metodo deductivo. Partiremos de principios generales e
iremos avanzando hacia casos especificos, esto es, aplicaremos ciertos teo-
remas matematicos en la solucion de problemas particulares. Generaremos
conclusiones mediante la aplicacion de estos principios.

3.3. Fuentes de Informacion


Para el estudio que realizaremos usaremos fuentes secundarias (textos,
articulos, revistas, paginas web)

3
4. Desarrollo
4.1. Teoria de Matroids
Un matroid o estructura de independencia captura la esencia de la
noción de independencia. Formalmente un matroid finito M es un par (E, I),
donde E es un conjunto finito (llamado el conjunto fundamental) e I es
una colección de subconjuntos de E (llamados los conjuntos independien-
tes con las siguientes propiedades:

1. El conjunto vacio es independiente, esto es, ∅ ∈ I.

2. Todo subconjunto de un conjunto independiente es independiente, esto


es, para cada A0 ⊆ A ⊆ E, A ∈ I ⇒ A0 ∈ I (propiedad hereditaria).

3. Si A y B son dos conjuntos independientes de I y A tiene mas elemen-


tos que B, entonces existe un elemento en A que no esta en B, que
cuando es agregado a B origina un conjunto independiente (propiedad
de aumento o intercambio).

Las primeras dos propiedades definen una estructura combinacional co-


nocida como sistema de independencia.
La palabra “matroid” fue acuñada por Hassler Whitney. El estudiaba ma-
troides matriciales, en los elementos de E son las filas de una matriz dada y
un conjunto de filas es independiente si estas filas son linealmente indepen-
dientes (segun la definición del algebra lineal). Es facil demostrar que esta
estructura define un matroid. Otro ejemplo de matroids es el matroid gra-
fico MG = (EG , IG ) definido en terminos de un grafo no dirigido G = (V, C)
como sigue:

El conjunto EG es definido como C, el conjunto de aristas de G.

Si A es un subconjunto de E, entonces A ∈ IG si y solo si A es aciclico.


Esto es, un conjunto de aristas A es independiente si y solo si el subgrafo
GA = (V, A) forma un bosque (conjunto de arboles disjuntos).

El matroid grafico MG esta muy relacionado al problema del arbol de


expansión mı́nima. Ahora procederemos a demostrar que la estructura MG
es un matroid.

4
Teorema 1 Si G = (V, A) es un grafo no dirigido, entonces MG = (EG , IG )
es un matroid.
Demostracion Claramente, EG = A es un conjunto finito. Ademas, IG
es hereditario, ya que un subconjunto de un bosque sigue siendo un bosque
(remover aristas de un conjunto aciclico de aristas no puede crear ciclos).
Queda demostrar que MG satisface la propiedad del intercambio. Supon-
gamos que GP = (V, P ) y GQ = (V, Q) son bosques de G y que |Q| > |P |.
Esto es, P y Q son conjuntos aciclicos de aristas y Q contiene mas aristas que
A. Sabemos, por teoria, que un bosque con k aristas y |V | vertices contiene
exactamente |V | − k arboles. Por lo tanto, el bosque GP contiene |V | − |P |
arboles y el bosque GQ contiene |V | − |Q| arboles.
Como el bosque GQ tiene menos arboles que el bosque GP , el bosque GQ
debe contener algun arbol T con un arista (u, v) tal que los vertices u y v
estan en diferentes arboles en el bosque GP . Dado que el arista (u, v) conecta
vertices en dos arboles diferentes en el bosque GP , el arista (u, v) puede
ser agregado al bosque GA sin crear un ciclo. Por lo tanto, MG satisface la
propiedad del intercambio. Esto completa la demostracion de que MG es un
matroid.

Dado un matroid M = (E, I), denominamos a un elemento x ∈ / A una ex-


tension de A ∈ I si x puede ser agregado a A preservando su independencia,
esto es, x es una extension de A si A ∪ {x} ∈ I.
Un subconjunto del conjunto fundamental E que no es independiente es
llamado dependiente. Un conjunto independiente maximal (uno al que ya
no se le pueden agregar elementos de E) es llamado una base del matroid.
Dos bases cualesquiera del matroid M tienen el mismo número de elementos.
Este número es conocido como el rango de M .
Teorema 2 Todas las bases de un matroid tienen el mismo tamaño.
Demostracion Supongamos lo contrario, que A es una base del matroid
M y que existe otra base B de mayor tamaño. Luego, la propiedad del in-
tercambio implica que A es extensible a una base mayor A ∪ {x} para algun
x ∈ B −A, contradiciendo nuestra supocicion de que A es una base (conjunto
maximal).

Como una ilustracion de este teorema, consideremos un matroid grafico


MG para un grafo conectado no dirigido G. Toda base (conjunto indepen-
diente maximal) de G debe ser un arbol con exactamente |V | − 1 aristas

5
que conectan todos los vertices de G. Tal arbol es llamado un arbol de
expansion de G.
Decimos que un matroid M = (E, I) esta pesado si existe una funcion de
peso asociada que asigna un peso estrictamente positivo w(x) a cada elemento
x ∈ E. La funcion de peso se extiende a subconjuntos de E mediante
X
w(A) = w(x)
x∈A

para cualquier A ⊆ E. Por ejemplo, si w(e) denota la longitud de un arista e


en un matroid grafico MG , entonces w(A) es la longitud total de los aristas
en el conjunto A.

4.2. Relación con los algoritmos greedy


Muchos problemas para los cuales un algoritmo greedy brinda soluciones
optimas pueden ser formulados en terminos de encontrar un subconjunto
independiente de peso maximo en un matroid pesado. Esto es, tenemos un
matroid pesado M = (E, I), y deseamos encontrar un conjunto independiente
A ∈ I tal que w(A) es maximizado. A tal subconjunto que es independiente
y tiene el mayor peso posible lo llamaremos un subconjunto optimo del
matroid. Ya que el peso w(x) de cualquier elemento x ∈ E es positivo, un
subconjunto optimo siempre sera un subconjunto independiente maximal,
esto es, siempre sera una base del matroid.
Por ejemplo, en el problema del arbol de expansion minima, tenemos
un grafo conectado no dirigido G = (V, E) y una funcion de longitud w
tal que w(e) es la longitud (positiva) de un arista e. (Usamos el termino
“longitud” para referirnos a los pesos originales de las aristas, reservando el
termino “peso” para referirnos a los pesos en el matroid asociado.) Se nos
pide encontrar un subconjunto de aristas que conecten todos los vertices del
grafo y que tengan una longitud total minima. Para ver lo anterior como un
problema de encontrar el subconjunto optimo de un matroid, consideremos
el matroid pesado MG con funcion de peso w0 , donde w0 (e) = w0 − w(e) y
w0 es mayor que el maximo de las longitudes de las aristas. En este matroid
pesado, todos los pesos son positivos y un subconjunto optimo es un arbol
de expansion de longitud total minima en el grafo original. Especificamente,
cada base A corresponde a un arbol de expansion, y dado que

w0 (A) = (|v| − 1)w0 − w(A)

6
para cualquier base A, un subconjunto independiente que maximiza la canti-
dad w0 (A) debe minimizar w(A). Por lo tanto, cualquier algoritmo que pueda
encontrar un subconjunto optimo en un matroid cualquiera puede resolver el
problema del arbol de expansion minima.
Existen diversos algoritmos para hallar el arbol de expansion minima,
como por ejemplo el algoritmo de Kruskal o Prim. Sin embargo, usaremos un
algoritmo greedy que es correcto para cualquier matroid pesado. El algoritmo
toma como entrada un matroid pesado M = (E, I) con una funcion de peso
positiva w, y retorna un subconjunto optimo A. En el pseudocodigo que
presentaremos, denotamos los componentes de M mediante E[M ] y I[M ]
y la funcion de peso con w. El algoritmo es greedy porque considera cada
elemento x ∈ E en order decreciente de su peso e inmediatamente lo lo agrega
al conjunto A si A ∪ {x} es independiente.

Algorithm 1 Greedy(M, w)
1: A ← ∅
2: ordenar E[M ] en orden decreciente de acuerdo al peso w
3: for all x ∈ E[M ], tomado en orden decreciente de acuerdo al peso w(x)
do
4: if A ∪ {x} ∈ I[M ] then
5: A ← A ∪ {x}
6: end if
7: end for
8: return A

Los elementos de S son considerados en order decreciente de su peso. Si


el elemento x actual puede ser agregado a A manteniendo la independencia
de A, este elemento es agregado. De lo contrario, x es descartado. Ya que el
conjunto vacio es independiente (debido a la definicion de matroid), y ya que
x es añadido a A si y solo si A ∪ {x} es independiente, el subconjunto A es
siempre independiente, por induccion. Por lo tanto, el algoritmo Greedy siem-
pre retorna un subconjunto independiente de A (una base). En un momento
demostraremos que A es un subconjunto optimo.
El tiempo de ejecucion del algoritmo Greedy es facil de analizar. Sea n,
una variable que representa |E|. La parte del ordenamiento del algoritmo
(linea 2) toma un tiempo de O(n lg n). La linea 4 es ejecutada exactamente
n veces, una para cada elemento de E. Cada ejecucion de la linea 4 requiere
determinar si el conjunto A ∪ {x} es independiente o no. Si el proceso para

7
determinar lo anterior toma un tiempo de O(f (n)), el algoritmo Greedy tiene
un tiempo de ejecucion de O(n lg n + n f (n)).
Ahora pasaremos a demostrar que el algoritmo Greedy retorna un sub-
conjunto optimo.

Lema 1 Sea M = (E, I), un matroid pesado con funcion de peso w y con E
ordenado de forma decreciente con respecto al peso. Sea x el primer elemento
de E tal que {x} es independiente, si es que existe tal x. Si x existe, entonces
existe un subconjunto optimo A de E que contiene a x.

Demostracion Si tal x no existe, el unico subconjunto independiente


es el conjunto vacio y la lema se cumple. De lo contrario, sea B cualquier
subconjunto optimo no vacio. Asumamos que x ∈ / B; de lo contrario, hacemos
A = B y el lema se cumple.
Ningun elemento de B tiene un peso mayor a w(x). Construyamos el
conjunto A como sigue. Empezemos con A = {x}. Usando la propiedad
del intercambio, repetidamente eoncontramos un nuevo elemento de B que
puede ser agregado a A hasta que |A| = |B|, preservando la independencia
de A. Luego, A = B − {y} ∪ {x} para algun y ∈ B, y por lo tanto w(A) =
w(B) − w(y) + w(x) ≥ w(B).
Ya que B es optimo, A tambien debe serlo, y ya que x ∈ A, el lema queda
demostrado.

Acontinuacion, demostraremos que si un elemento no es una opcion ini-


cialmente, entonces no puede ser una opcion posteriormente.

Lema 2 Sea M = (E, I) un matroid cualquiera. Si x es un elemento de E


que es una extension de algun subconjunto independiente A de E, entonces
x tambien es una extension de ∅.

Demostracion Ya que x es una extension de A, tenemos que A ∪ {x}


es independiente, y debido a la propiedad hereditaria {x} debe ser indepen-
diente. Por lo tanto, x es una extension de ∅.

Corolario 1 Sea M = (E, I) un matroid cualquiera. Si x es un elemento


de E tal que no es una extension de ∅, entonces x no es una extension de
ningun subconjunto independiente A de E.

8
Demostracion Este corolario es simplemente la contrapositiva del lema
2.

El corolario 1 indica que cualquier elemento que no puede ser usado in-
mediatamente nunca puede ser usado. Por lo tanto, el algoritmo Greedy no
comete un error al ignorar los elementos iniciales de E que no son una ex-
tension de ∅, ya que nunca podran ser usados.

Lema 3 Sea x el primer elemento de E escogido por el algoritmo Greedy


para el matroid pesado M = (E, I). El problema restante de encontrar un
subconjunto independiente de peso maximo que contenga a x se reduce a
encontrar un subconjunto independiente de peso maximo en el matroid M 0 =
(E 0 , I 0 ) donde:
E 0 = {y ∈ E : {x, y} ∈ I},
I 0 = {B ⊆ E − {x} : B ∪ {x} ∈ I}, y
la funcion de peso para M 0 es la funcion de peso de M restringida a E 0 .
(Llamaremos a M 0 la contracción de M mediante el elemento x.)

Demostracion Si A es cualquier subconjunto independiente de peso


maximo de M conteniendo x, entonces A0 = A − {x} es un conjunto inde-
pendiente de M 0 . De la misma forma, cualquier subconjunto independiente
A0 de M 0 da origen a un conjunto independiente A = A0 ∪ {x} de M . Ya
que en ambos casos se tiene que w(A) = w(A0 ) + w(x), una solucion de peso
maximo en M conteniendo x da lugar a una solucion de peso maximo en M 0
y viceversa.

Teorema 3 Si M = (E, I) es un matroid pesado con funcion de peso w,


entonces el algoritmo Greedy(M, w) retorna un subconjunto optimo.

Demostracion Por el corolario 1, cualesquiera elementos que se igno-


ren inicialmente (porque no son extensiones de ∅) pueden ser completamente
olvidados (ignorados), ya que nunca seran utiles. Una vez que el primer ele-
mento x es seleccionado, el lema 1 implica que el algoritmo Greedy no ha
cometido un error al agregar x al conjunto A, ya que existe un subconjun-
to optimo conteniendo a x. Finalmente, el lema 3 implica que el problema
restante consiste en encontrar un subconjunto optimo en el matroid M 0 que
es la contracción de M por x. Una vez que el algoritmo Greedy asigna {x}

9
a A, todos los pasos restantes pueden ser interpretados como si estuvieran
actuando sobre el matroid M 0 = (E 0 , I 0 ). Por lo tanto, las siguiente operacion
del algoritmo Greedy encontrara un subconjunto optimo para M 0 , y todo el
proceso en si de este algoritmo encontrara un subconjunto optimo para M .

Teorema 4 Si todo algoritmo greedy para el par (E, F ) construye un ele-


mento de peso maximo de F para cualquier función de peso w : F → R+
entonces F es el conjunto de conjuntos independientes de un matroid M
cuyo conjunto fundamental es E.

4.3. Un problema de programacion de tareas


Un interesante problema que puede ser resuelto con matroides es el pro-
blema de programar tareas de una unidad de tiempo en un unico procesador
, donde cada tarea tiene una tiempo tope , y una penalidad que se tendra
que pagar si es que la fecha tope es pasada.
Cada tarea toma una unidad de tiempo en ser completada, Dado un
conjunto finito S de las tareas, una programacion de S es una permutacion
de S especificando el orden en que son desempeñadas.
El problema de programacion de tareas de una unidad de tiempo con
tiempos tope y penalidades para un unico procesador tiene las siguientes
entradas:

un conjunto S = {a1 , a2 , ..., an } de tareas.

un conjunto de tiempos tope d1 , d2 , ..., dn tal que cada di satisface


1 ≤ di ≤ n.

un conjunto no negativo de penalidades w1 , w2 , ..., wn .

Se solicita encontrar la programacion para S tal que minimize la penalidad


total ocacionada por los pases de tiempos de tope.
Ejemplo:

Dada una programacion se dira que una tarea es tardado en una progra-
macion si es que finaliza luego de su tiempo tope, En otro caso se dica que
es temprano en la programacion.
Una programacion siempre es de forma de primer temprano cuando
las tareas tempranas preceden a las tareas tardadas.

10
aj 1 2 3 4 5 6 7
di 4 2 4 3 1 4 6
wi 70 60 50 40 30 20 10

Cuadro 1: Horario primer cuatrimestre

Una propramacion siempre es de forma canonica cuando las tareas tem-


pranas precenden a las tardes y que las tareas tempranas esten en un orden
creciente.
La busqueda consiste en encontrar el conjunto A de tareas tempranas en
forma optima. Una vez que A es determinado . Diremos que A son tareas
independientes si existe una programacion de estos tal que no haya tareas
tardadas, esto producira una forma canonica.
Nt (A) denota el numero de tareas en A las cuales tienen un tiempo tope
t.

Lemma
Para cualquier conjunto de tareas A , las siguientes afirmaciones
son equivalentes:

1. El conjunto A es independiente.
2. Para t = 0, 1, 2, ..., n tenemos que Nt (A) ≤ t.
3. Si las tareas en A son programadas en orden creciente a sus
tiempos topes entonces no habran tareas tardas.

El problema de minimixar la suma de penalidades


de los tiempos tardados de la tareas es el mismo pro-
blema que maximizar la suma de penalidades de los
tiempos tempranos.

Teorema 5 Si S es un conjunto de unidades de tiempo de las


tareas con tiempos tope , y l es el conjunto de todos lo subconjun-
to independientes de tareas, entonces el correspondiente sistema
(S, l) es un matroid.

Debido al teorema 1 se puede usar un algoritmo greedy para en-


contrar un peso maximo del conjunto independiente de las tareas

11
A . Nosotros podemos entonces crear una programacion optima
teniendo las tareas en A como tareas tempranas.
El tiempo de ejecucion es O(n2 ).
La programacion optima final del ejemplo es :

/a2 , a4 , a1 , a3 , a7 , a5 , a6 . y su penalidad total es w5 + w6 = 50

4.4. Otros Ejemplos


1. (Grafos)
S: conjunto de arcos de un grafo
I : conjuntos de arcos aciclicos
2. (Matrices)
S: conjunto de filas de una matriz de tamano m ∗ n
I : conjunto de filas linealmente independientes
3. (Matching)
S: conjunto de arcos de un grafo
I : conjuntos de arcos que no comparten vertices

4.5. Teoria de Greedoids


Esta teoria es una generalizacion de la teoria de matroids. Un sistema
de conjuntos (F, E) es una colección F de subconjuntos de un conjunto
fundamental E (F es un subconjunto del conjunto potencia de E). Cuando
hablamos de greedoids, un miembro de F es llamado un conjunto factible.
Cuando hablamos de matroids, un conjunto factible tambien es llamado un
conjunto independiente. Un sistema de conjunto accesible (F, E) es un
sistema de conjunto en el cual todo conjunto factible no vacio X contiene
un elemento x tal que X \ {x} es factible; esto implica que los sistemas de
conjunto accesible contienen el conjunto vacio. Un greedoid (F, E) es un
sistema de conjunto accesible que satisface la propiedad del intercambio: pa-
ra todo X, Y ∈ F con | X | > | Y |, existe un x ∈ X tal que Y ∪ {x} ∈ F .
Para poder establecer una condicion basada en greedoids bajo la cual un
algoritmo greedy es optimo necesitamos introducir un poco mas de termino-
logia.

12
Consideremos un greedoid G = (F, E) con E finito. Una base del greedoid
es un conjunto factible maximal (no esta contenido en otro conjunto facti-
ble). Una base de un subconjunto X de E es un conjunto factible maximal
contenido en X.
El rango de un greedoid es el tamaño de una base (pueden haber varias ba-
ses). Gracias a la propiedad del intercambio todas las bases tienen el mismo
tamaño y por lo tanto el rango de un greedoid esta bien definido. El rango
de un subconjunto X de E es el tamaño de una base de X.
Un subconjunto X de E es factible por rango si la mayor interseccion de
X con cualquier conjunto factible tiene tamaño igual al rango de X.
Una funcion w : E → R es R-compatible si {x ∈ E : w(x) ≥ c} es factible
por rango para todo c ∈ R.
Una funcion objetivo f : 2S → R es lineal sobre un conjunto S si, para
todo X ⊆ S, tenemos que f (X) = x∈X w(x) para alguna funcion de peso
P

w : S → R.
Finalmente el siguiente enunciado establece una correspondencia entre la
correctitud de un algoritmo voraz y la teoria de greedoids.

Teorema 6 Un algoritmo greedy es optimo para toda funcion objetivo lineal


R-compatible sobre un greedoid.

4.6. Ejemplos
Ejemplo 1
Considerar un grafo no dirigido G. Sea el conjunto fundamental las aris-
tas de G y los conjuntos factibles el conjunto de aristas de cada f orest
(una union disjunta de arboles) de G , por ejemplo un subgrafo que no con-
tiene ningun ciclo G. Este sistema de conjuntos es llamado un ciclo matroid.
Un sistema de conjunto es ddicho un matroid grafico si es un ciclo matroid
para algun grafo. (Originalmente los ciclos matroids fueron definidos sobre
circuitos , o minimos conjuntos dependienes.De ahi el nombre ciclo).

Ejemplo 2
COnsiderear un grafo conexo, rooted, dirigido , en el cual cada arista no
dirigida tiene un numero real no negativo como peso, y sus asociados dirgidos
derivan a un greedoid . Entonces , un el camino rapido , que significa el camino
con el minimo total de peso , puede ser obtenido usando directamente el

13
algoritmodeDijkstra . O equivalentemente , podemos aplicar el algoritmo
greedy sobre la suma de los pesos negativos para cada conjunto accesible de
su greedoid asociado.

4.7. Resultados
Estos ejemplos muestran que los matroides son usualmente buenos para
situaciones en las que el orden no importa, asi en un grafo unrooted(sin raiz),
no dirigido . Sin embargo , si el orden es importante , tanto en un grafo roo-
ted o en un grafo dirigido, entonces una estructura parecida a los greedoids
es necesitada. Pero los greedoids tambien , confian en que la funcion objetivo
esta siendo lineal .

Si esta condicion no se satisface , por ejemplo si la funcion objetivo requiere


entradas extra tanto como el tiempo en adicion a pesos. entonces aun los
greedoids quedarian cortos.

Desafortunadamente , no todos los problemas de optimizacion pueden ser


resueltos con algoritmos greedy . Nuevas fronteras de problemas resolvibles
por algoritmos greedy requieren ser exploradas. Por ejemplo , un resultado
aun mas general basado en ”incrustacion de matroids”ha sido propuesto.

14
5. Conclusiones
Los algoritmos greedy operan de una forma sencilla, pero demostrar
que en efecto son correctos no lo es.

A pesar de esta sencillez, existen problemas en los que los algoritmos


greedy no construyen soluciones optimas, e incluso pueden llegar a cons-
truir soluciones muy malas.

La teoria de matroids es una hermosa teoria que permite comprender


de mejor manera los algoritmos greedy y ayuda a determinar cuando
un algoritmo greedy genera soluciones optimas.

La teoria de matroids no cubre todos los casos en los que un algoritmo


greedy es correcto.

Hemos encontrado una estructura algebraica que subyace a una tecnica


de diseño de algoritmos.

Pudimos probar propiedades generales sobre esta tecnica.

Escribimos un algoritmo general y calculamos su complejidad

Dado un problema, si lo representamos como un problema de optimi-


zacion en un matroide, tenemos todo resuelto.

Si logramos representar un problema como un matroide sabemos que


se puede seguir una estrategia greedy.

Si logramos representar un problema como un matroide ya tenemos


escrito el algoritmo que encuentra el optimo.

15
6. Bibliografia
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clif-
ford Stein. Introduction to Algorithms.

http://info.wlu.ca/ wwwmath/faculty/cameron/matroid.pdf

http://math.fau.edu/locke/Greedy.htm

http://www.math.binghamton.edu/zaslav/Pagano/Matridx.htm

http://userhome.brooklyn.cuny.edu/skingan/matroids/

http://www.cs.umass.edu/ barring/cs611/lecture/4.pdf

16

You might also like