Originally posted by: SystemAdmin
>
> The following is from CPLEX Manual for V12.2 (CPLEX > User's Manual for CPLEX > Continuous optimization > Solving network-flow problems > Choosing an optimizer: network considerations): "On a pure network problem, performance has been measured as 100 times faster with the network optimizer."
Interesting. I confess I'm surprised the difference remains that large.
> Yet 10x-100x improvements have persisted in literature dating back 3-4 decades as well as now (going by the CPLEX manual). I am just scratching my head about the source of such improvements (given that ordinary simplex has benefited from fundamental advances mentioned above, while network simplex has not.) Is everything due to coding skill/efficiencies and coding optimization alone?
Well, I suspect that network simplex may also have benefited from improvements in the handling of sparse matrices. The other thing to keep in mind is that, IIRC, network simplex uses only addition and subtraction. Prior to the era of floating point processors, multiplication and division were
much more expensive in CPU cycles than were addition and subtraction. It's tough to make a blanket statement like that any more when you have dedicated floating point processors with multiple registers -- here's an
interesting thread about that -- but I think that divisions are still fairly expensive. Googling around, I found some charts that seem to indicate that on Intel i86 type chips the FDIV (floating point divide) operation at double precision has a latency at least 6 times longer than that of FSUB (floating subtract). That still doesn't get us anywhere near 100x, but if what passes for a basis update in network simplex takes a lot fewer operations than a pivot in primal simplex, we may have at least a partial explanation for the continued performance gap.
>
> My coding skills are pretty ordinary...I (like you, may be) use coding as a tool to just get by.
Indeed ... and I barely get by at that. :-)
/Paul
Mathematicians are like Frenchmen: whenever you say something to them, they translate it into their own language, and at once it is something entirely different. (Goethe)
#CPLEXOptimizers#DecisionOptimization