Basado en la experiencia personal, diría que los métodos simplex son marginalmente más fáciles de entender cómo implementar que los métodos de punto interior, basados en la experiencia personal de implementar tanto el simplex primario como un método básico de punto interior en MATLAB como parte de tomar una clase de programación lineal . Los principales obstáculos en primal simplex son asegurarse de implementar correctamente la Fase I y la Fase II, y también implementar correctamente una regla de ciclismo. Los principales obstáculos en la implementación de un método de punto interior para la programación lineal tienden a ser más sobre la implementación correcta del método iterativo y la escala del parámetro de barrera en consecuencia.
Puede encontrar una discusión más completa de los pros y los contras de cada algoritmo en un libro de texto sobre programación lineal, como Introducción a la optimización lineal de Bertsimas y Tsitsiklis. ( Descargo de responsabilidad: aprendí la programación lineal de este libro de texto, y tomé la programación lineal en el MIT de la esposa de Bertsimas). Estos son algunos de los conceptos básicos:
Pros de simplex:
- Dada variables de decisión, por lo general converge en las operaciones con pivotes.norteO ( n )O ( n )
- Aprovecha la geometría del problema: visita los vértices del conjunto factible y verifica la optimización de cada vértice visitado. (En primitivo simple, el costo reducido se puede usar para esta verificación).
- Bueno para pequeños problemas.
Contras de simplex:
- Dadas variables de decisión, siempre puede encontrar una instancia de problema donde el algoritmo requiere operaciones y pivotes para llegar a una solución.norteO ( 2norte)
- No es tan bueno para grandes problemas, porque las operaciones de pivote se vuelven caras. Algoritmos de plano de corte o algoritmos de generación de columnas retrasadas como Dantzig-Wolfe a veces pueden compensar esta deficiencia.
Ventajas de los métodos de puntos interiores:
- Tener una complejidad asintótica de tiempo polinomial de , donde es el número de bits de entrada al algoritmo.O ( n3.5L2Iniciar sesiónL logIniciar sesiónL )L
- Mejor para problemas grandes y escasos porque el álgebra lineal requerida para el algoritmo es más rápido.
Contras de los métodos de puntos interiores:
- No es tan intuitivamente satisfactorio porque tienes razón, estos métodos no visitan vértices. Vagan por la región interior, convergiendo en una solución cuando tienen éxito.
- Para pequeños problemas, el simplex probablemente será más rápido. (Puede construir casos patológicos, como el cubo Klee-Minty).