5 votos

Aplicaciones interesantes de max-flow y programación lineal

Max y de flujo de programación lineal son las dos grandes martillos en el diseño del algoritmo: cada uno se expresiva suficiente para representar a muchos de poli-tiempo de solución de problemas. Algunos problemas son evidentes aplicaciones de max-flow: como encontrar a un máximo de coincidencia en un gráfico. Lo que estoy buscando son ejemplos de problemas que pueden ser resueltos a través de la inteligente codificaciones de los problemas de flujo o LP problemas -- que no son obvias. Estoy buscando preguntas a un nivel apropiado para una tarea problema para una avanzados de pregrado o de postgrado a partir del curso de algoritmos.

Alguna idea?

9voto

Zach Burlingame Puntos 7232

Determinar si un equipo deportivo ha sido eliminado matemáticamente de la clasificación para los playoffs es una bonita aplicación de max-flow min-cut:

http://www.cs.princeton.edu/courses/archive/spr03/cs226/assignments/baseball.html

7voto

Doug Puntos 858

Echa un vistazo en el libro:

Flujos de red: teoría, algoritmos y aplicaciones

por: R. Ahuja, T. Magnanti y J. Orlin

Prentice-Hall, 1993.

Allí encontrarás muchos ejemplos del tipo que estás pidiendo.

7voto

Hugo Puntos 2156

El libro de algoritmos de Kleinberg y Tardos tiene varios ejemplos, incluido el de eliminación de béisbol. Tiene un ejemplo de programación de vuelo que he usado en clase: el ejemplo de corte de gráficos también es fácil de explicar. Los problemas tienen muchos más.

Los ejemplos funcionan, ya que los estudiantes tienden a tener momentos 'aha' (o eso me dicen).

4voto

user3035 Puntos 91

No seguro qué no es evidente se trata, pero gráfico cortes y flujo máximo se han utilizado en visión por computador para problemas tales como la segmentación de la imagen o encontrar correspondencias estéreas. Aquí está una página wiki y un papel (pdf).

1voto

Teflon Ted Puntos 2823

Usted puede probar la Birkhoff-von Neumann teorema directamente con la programación lineal. Dependiendo de su gusto, se trata de una elegante manera de probar que el resultado. Básicamente, hay dos maneras - para utilizar las condiciones para un vértice de un polytope dado por las restricciones para demostrar que una doblemente estocástica de la matriz, la cual es un vértice de la Birkhoff polytope debe tener una fila o columna con sólo uno distinto de cero de la entrada, entonces inducen. Esto no utilizan la totalidad de la "teorema fundamental de la programación lineal".

El otro enfoque es observar que en un vértice de un conjunto de dimensiones lineales objetivos para los que el vértice es la óptima, formular el programa doble y, a continuación, mostrar que el 2n sin restricciones de doble variables mentira en un espacio de dimensión n; holgura complementaria, a continuación, muestra que la principal variable tiene sólo n distinto de cero elementos, el doble de la estocasticidad garantiza debe haber uno en cada fila, en cada columna, y cada uno debe ser la unidad - por lo tanto, una matriz de permutación. Obviamente este enfoque realmente hace explotar el lineal de la estructura del programa, si es que eso es lo que quieren enseñar.

Se me ocurrió esto a mí mismo, así que no sé de una referencia real, pero no debe ser esa novela.

También puede probar Birkhoff-von Neumann son un max de flujo/min corte teorema (que es bastante conocido) pero no me parece que igual de elegante. Sin embargo, si usted está haciendo hincapié max flujo/min corte frente a la programación lineal de la estructura, entonces usted puede ser que desee hacer que uno.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X