Download presentation
Presentation is loading. Please wait.
Published byDarlene Shaw Modified over 9 years ago
1
The Out of Kilter Algorithm 204.302 in 2005
2
Introduction The out of kilter algorithm is an example of a primal-dual algorithm. It works on both the primal problem (edges of the network) and the dual problem (nodes) in successive phases to find a feasible solution, and then to optimize the problem. The linear program for the dual problem is given in the notes, but does Not need to be used at all during the working.
3
What do we keep track of? We will have a variable for each node w i, and the flows through each edge of the original network. As well as these variables, each edge will be given a kilter state and a kilter number k ij. Edges are either “in kilter” or “out of kilter”. We want all edges to be in kilter, so the algorithm keeps “in kilter” edges in kilter, and brings “out of kilter” edges into kilter.
4
Kilter numbers A kilter number can be thought of as the change required to bring a flow into feasibility and eventually optimality. So we can add up all the kilter numbers to find how far from optimality we are at any given time. An in kilter edge has a kilter number of zero. Rules for kilter states and numbers appear in a table in the notes. Note that these kilter states and numbers are determined by the current flow and the reduced cost.
5
Starting the algorithm When we start we have a set of upper and lower bounds for all edges in the network and the cost of sending units of flow along each edge. We may need to add an artificial edge from the sink to the source, or even add an artificial node to handle some formulations. All flows x ij and the w i values for the nodes can be set to zero in this initial phase. This makes some working simple.
6
The primal phase The primal phase of the algorithm finds the most out of kilter edge of the network and tries to being it into kilter. We find the reduced costs of the edges of our network, and determine the kilter states and numbers for all edges. The edge with the highest kilter number is chosen and we then look to augment the flows of the network by finding a cycle through the potential changes of our network flows.
7
A residual graph Every edge in the original graph below its upper bound is mirrored in the residual graph with the amount of the potential increase in the flow along these edges marked on the edges. Any flows in the original graph that are above their lower bound are represented by edges in the other direction in our residual graph and the allowable reduction along the edge is marked on this “backward edge”. N.B. Some pairs of nodes will have a pair of edges between them in our residual graph.
8
Finding the cycle of flows We use a shortest path approach to find the cheapest cycle that includes the out of kilter edge using the residual graph. Edges are given a cost of the higher of zero or the reduced cost. Having found the cycle, we check the amount of flow that can be augmented and update the flow variables and the residual graphs.
9
When do we stop with the primal phase? When we have exhausted all possible cycles in the residual graph involving the out of kilter edge, or have brought that edge into kilter we move onto the dual phase. It is important that all nodes labelled in the shortest path search are kept in a list. We use this information in the dual phase.
10
The dual phase In the dual phase we update the w i values for the nodes. We put all nodes reached in the shortest path search into one set Q, and all others in P. We are only interested in edges that link these two groups of nodes together. The smallest change that brings the reduced cost of these edges to zero is the quantity we use to update the w i values.
11
The amount of change in w i. If node i is in P, then w i 0 = w i - . If node i is in Q, then w i 0 = w i + . We now return to the primal phase and re-evaluate the reduced costs using the new values of w i.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.