the out of kilter algorithm 204.302 in 2005. introduction the out of kilter algorithm is an example...

11
The Out of Kilter Algorithm 204.302 in 2005

Upload: darlene-shaw

Post on 18-Dec-2015

215 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: The Out of Kilter Algorithm 204.302 in 2005. Introduction The out of kilter algorithm is an example of a primal-dual algorithm. It works on both the primal

The Out of Kilter Algorithm

204.302 in 2005

Page 2: The Out of Kilter Algorithm 204.302 in 2005. Introduction The out of kilter algorithm is an example of a primal-dual algorithm. It works on both the primal

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.

Page 3: The Out of Kilter Algorithm 204.302 in 2005. Introduction The out of kilter algorithm is an example of a primal-dual algorithm. It works on both the primal

What do we keep track of?

We will have a variable for each node wi, 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 kij.

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.

Page 4: The Out of Kilter Algorithm 204.302 in 2005. Introduction The out of kilter algorithm is an example of a primal-dual algorithm. It works on both the primal

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.

Page 5: The Out of Kilter Algorithm 204.302 in 2005. Introduction The out of kilter algorithm is an example of a primal-dual algorithm. It works on both the primal

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 xij and the wi values for the nodes can be set to zero in this initial phase. This makes some working simple.

Page 6: The Out of Kilter Algorithm 204.302 in 2005. Introduction The out of kilter algorithm is an example of a primal-dual algorithm. It works on both the primal

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.

Page 7: The Out of Kilter Algorithm 204.302 in 2005. Introduction The out of kilter algorithm is an example of a primal-dual algorithm. It works on both the primal

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.

Page 8: The Out of Kilter Algorithm 204.302 in 2005. Introduction The out of kilter algorithm is an example of a primal-dual algorithm. It works on both the primal

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.

Page 9: The Out of Kilter Algorithm 204.302 in 2005. Introduction The out of kilter algorithm is an example of a primal-dual algorithm. It works on both the primal

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.

Page 10: The Out of Kilter Algorithm 204.302 in 2005. Introduction The out of kilter algorithm is an example of a primal-dual algorithm. It works on both the primal

The dual phase

In the dual phase we update the wi 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 wi values.

Page 11: The Out of Kilter Algorithm 204.302 in 2005. Introduction The out of kilter algorithm is an example of a primal-dual algorithm. It works on both the primal

The amount of change in wi.

If node i is in P, then wi0 = wi - .

If node i is in Q, then wi0 = wi + .

We now return to the primal phase and re-evaluate the reduced costs using the new values of wi.