Download Linear Programming (Optimization)

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Piggybacking (Internet access) wikipedia , lookup

Distributed operating system wikipedia , lookup

Network tap wikipedia , lookup

Recursive InterNetwork Architecture (RINA) wikipedia , lookup

Airborne Networking wikipedia , lookup

CAN bus wikipedia , lookup

List of wireless community networks by region wikipedia , lookup

IEEE 802.1aq wikipedia , lookup

Routing in delay-tolerant networking wikipedia , lookup

Kademlia wikipedia , lookup

Transcript
Chapter 2
Paths, Trees, and Cycles
1
1.2 Notation and Definitions
 Directed Graphs and Networks:
G = (N, A), A: set of ordered pair of distinct nodes
 Undirected Graphs and Networks:
G = (N, A) ( G = (V, E) ), A: set of unordered pair of distinct nodes
 Tails and Heads:
directed arc (i, j) : i is the tail and j is the head of arc (i, j)
 Degrees:
indegree of node i: number of incoming arcs of that node
outdegree of node i: number of outgoing arcs of that node
degree of node i: sum of the indegree and outdegree of node I
Network Theory and Applications 2010
2
 Adjacency List:
arc adjacency list A(i) of a node i: set of arcs emanating from that node, A(i)
= {(i, j)A: jN}
node adjacency list A(i) of a node i: set of nodes adjacent to that node, A(i) =
{ jN: (i, j)A}
Property 2.1 iN |A(i)| = m.
 Multiarcs and Loops:
multiarcs: two or more arcs with the same tail and head nodes.
loop: arc whose tail node is the same as its head node.
(in most cases, no multiarcs or loops)
Network Theory and Applications 2010
3
 Subgraph:
G’ = (N’, A’) is a subgraph of G = (N, A) of N’N, A’A.
G’ = (N’, A’) is a subgraph of G induced by N’ if A’ contains each arc of A
with both ends in N’ (induced subgraph)
spanning subgraph if N’ = N, A’A.
 Walk: subgraph of G consisting of a sequence of nodes and arcs i1 – a1 – i2 –
a2 - … - ir-1 – ar-1 – ir satisfying ak = (ik, ik+1)A or (ik+1, ik)A, for 1  k  r-1.
(node, arc repetition allowed)
directed walk: oriented version of a walk, (ik, ik+1)A
( trail: walk without arc repetition)
 Path: walk without any repetition of nodes (and arcs) (elementary path)
Forward arcs, backward arcs
directed path: directed walk without any repetition of nodes.
( can store a path using predecessor index pred(j) for every j in the path.
Network Theory and Applications 2010
4
 Cycle: path with i1 = ir+1
Directed cycle: directed path with arc (ir, i1)
 Acyclic network: contains no directed cycle (for undirected network, contains
no cycle. Forest)
 Connectivity:
nodes i, j connected if there exists a path from i to j.
A graph is connected if every pair of its nodes are connected. Otherwise,
disconnected
components: maximal connected subgraphs of a disconnected graph
 Strongly connected if the graph contains at least one directed path from every
node to every other node.
Network Theory and Applications 2010
5
 Cut:
A cut is a set of arcs (i, j)A such that iS, jS or jS, iS, SN. A cut is
represented by [S, S]. ( S = N-S )
(sometimes we consider directed case, iS, jS)
 s-t cut: a cut with node sS, tS
 Tree: connected graph that contains no cycle (compare with forest)
 Property 2.2
a. A tree on n nodes contains exactly n-1 arcs
b. Has at least two leaf nodes (node with degree 1)
c. There exists a unique path between any two nodes
 Forest: A graph that contains no cycle (compare with tree)
Network Theory and Applications 2010
6
 Subtree: connected subgraph of a tree
 Rooted tree: a tree with a specially designated node, called root.
predecessor-successor (or parent-child) relationships
descendants, ancestor
 Directed out-tree rooted at node s: the unique path from node s to every other
node is a directed path. (also called arborescence)
 Directed in-tree rooted at node s: the unique path from any node to node s is a
directed path.
 Spanning tree: A tree T is a spanning tree of G if T is a spanning subgraph of
G.
Network Theory and Applications 2010
7
 Fundamental cycles: adding an arc to a tree T creates a unique cycle
(fundamental cycle). Deleting an arc in a fundamental cycle makes a
spanning tree.
 Fundamental cuts: deleting an arc in a tree T creates two subtrees T1 and T2.
Arcs whose endpoints belong to the different subtrees constitute a cut
(fundamental cut of G with respect to the tree T).
 Bipartite graph: G = (N, A) such that we can partition the nodes into two sets
N1 and N2 so that for each arc (i, j) in A either (i) iN1, jN2, or (ii) iN2,
jN1.
 Property 2.3: G is a bipartite graph if and only if every cycle in G contains an
even number of arcs (even cycle).
 Definitions for undirected graph similar to the directed graph.
Network Theory and Applications 2010
8
2.3 Network Representations
 Performance of the algorithms on networks critically affected by the data
structures used and operations on intermediate results.
 Node-Arc Incidence Matrix:
coefficient matrix of the MCF formulation
For arc (i, j) (variable xij), corresponding column has one +1 for i-th position,
one -1 for j-th position, and 0 elsewhere.
(use two, +1’s for undirected graph)
 Node-Node Adjacency Matrix:
Hij =1, if (i, j)A
Symmetric for undirected graph, then maintain only upper triangular part
Appropriate for dense graph
Network Theory and Applications 2010
9
 Adjacency lists: arc, node adjacency list, use linked list
i
(cij, uij)
i
j
(15, 40)
2
(25, 30)
4
(45, 10)
(15, 30)
(35, 50)
1
(45, 60)
(35, 50)
3
5
(25, 20)
1
j
cij
uij
2 25 30
3 35 50 0
2
4 15 40 0
3
2 45 10 0
4
3 15 30
5 45 60 0
3 25 20
4 35 50 0
5
Adjacency List
Network Theory and Applications 2010
10
 Sometimes need to consider the case (i, j)A  (j, i)A. Then maintain
additional field for pointer mate ( (i, j)  (j, i) )
 Adjacency list is compact. Can add, delete arcs easily. The programming
language needs to support pointers.
Network Theory and Applications 2010
11
 Forward and Reverse Star Representations:
 Forward Star
Store the arcs in a single array instead of linked list
Assign unique sequence number to each arc
• Start with arcs emanating from node 1, then node 2, …
• Arcs emanating from the same node are numbered in an arbitrary fashion.
For each node i, maintain point(i) to point the index of the first outgoing arc from
node i.
If no outgoing arc, set point(i) = point(i+1).
 Reverse star stores incoming arcs.
Network Theory and Applications 2010
12
point
i
(cij, uij)
j
(15, 40)
2
(25, 30)
4
(45, 10)
(15, 30)
(35, 50)
1
(45, 60)
(35, 50)
3
5
Tail
head cost capacity
1
1
1
1
2
25
30
2
3
2
1
3
35
50
3
4
3
2
4
15
40
4
5
4
3
2
45
10
5
7
5
4
3
15
30
6
9
6
4
5
45
60
7
5
3
25
20
8
5
4
35
50
(25, 20)
Forward Star Representation
Network Theory and Applications 2010
13
cost capacity tail head
i
(cij, uij)
j
45
10
3
2
1
1
1
25
30
1
2
2
1
2
35
50
1
3
3
3
3
15
30
4
3
4
6
4
25
20
5
3
5
8
5
35
50
5
4
6
9
6
15
40
2
4
7
45
60
4
5
8
(15, 40)
2
(25, 30)
4
(45, 10)
(15, 30)
(35, 50)
1
(45, 60)
(35, 50)
3
5
rpoint
(25, 20)
Reverse Star Representation
Network Theory and Applications 2010
14
point
Tail
head cost capacity
trace
rpoint
1
1
1
1
2
25
30
4
1
1
1
2
3
2
1
3
35
50
1
2
1
2
3
4
3
2
4
15
40
2
3
3
3
4
5
4
3
2
45
10
5
4
6
4
5
7
5
4
3
15
30
7
5
8
5
6
9
6
4
5
45
60
8
6
9
7
5
3
25
20
3
7
8
5
4
35
50
6
6
8
Compact forward and reverse star
Network Theory and Applications 2010
15
2.4 Network Transformations
 Undirected Arcs to Directed Arcs :
cij  0, lij = 0 case
undirected case has constraints xij +xji  uij. One of xij, xji is 0 in an optimal
solution
i
(cij, uij)
(cij, uij)
j

i
j
(cij, uij)
Network Theory and Applications 2010
16
 Removing Nonzero Lower Bounds:
nonzero lower bound lij  replace xij by x’ij + lij
lij  x’ij + lij  uij  0  x’ij  uij - lij
In the mass balance eq., results in decresing b(i) by lij and increasing b(j) by lij.
b(j)
b(i)
i
(lij, uij)
j
xij
Network Theory and Applications 2010
b(i) - lij

i
(0, uij – lij )
b(j) + lij
j
x'ij = xij - lij
17
 Arc Reversal (removing negative costs):
Let uij be the capacity of upper bound if uncapacitated.
Replace xij by uij – xji (
(First send uij units of flow on (i, j), then use arc (j, i) with cost –cij. The flow
xji measures the amount of flow we ‘remove’ from the ‘full capacity’ flow of
uij )
b(j)
b(i)
i
(cij, uij)
j
xij
Network Theory and Applications 2010

b(j) + uij
b(i) - uij
(-cij , uij )
i
j
xji
18
 Removing Arc Capacities:
Introduce an additional node so that the capacity constraint on arc (i, j)
becomes the mass balance constraint of the new node.
Use slack variable: xij + sij = uij  -xij - sij = -uij (2.2)
Use (2.2) as the mass balance constraint of an additional node k.
3 appearances of xij , 1 appearance of sij  subtract (2.2) from the mass
balance constraint of node j (solutions not changed).
b(j)
b(i)
i
(cij, uij)
j
b(i)

xij
Network Theory and Applications 2010
(cij, )
i
- uij
(0, )
j
k
xij
b(j)+uij
sij
19
 Node Splitting (when nodes have capacities and costs):
1. If b(i) > 0, then b(i’’) = b(i) and b(i’) = 0
2. If b(i) < 0, then b(i’’) = 0 and b(i’) = b(i)
3. If b(i) = 0, then b(i’) = b(i’’) = 0
 When node i incurs cost ci and capacity ui  set ci, ui as cost and capacity
of arc (i’’, i’).
b(j)
b(i)
i
(cij, uij)

j
b(i)
i'
b(j)
(cij, uij)
(0, )
i’’
Network Theory and Applications 2010
j'
(0, )
j’’
20
 Working with Reduced Costs:
frequently use node potential (i) for node i to modify cost cij
reduced cost cij of arc (i, j) defined as cij = cij - (i) + (j)
define z() = (i, j)A cij xij
 Recall reduced cost for variable xj in LP : cj – y’Aj, where Aj is j-th column of
A and y is vector of dual variables.
For MCF, the reduced cost for variable xij is cij – yi + yj .
 at node k: outflow  cost change is - (k)  outflow
inflow  cost change is + (k)  inflow
total cost change: - (k)  (outflow – inflow) = - (k)  b(k)
For all nodes, cost change is - b.
Hence z() = z(0) - b, or z(0) – z() = b, which is a constant. A flow which
minimizes z() also minimizes z(0) and conversely.
Network Theory and Applications 2010
21
 Property 2.4. MCF with cij or cij have the same optimal solutions. Moreover,
z() = z(0) - b.
 Reduced cost along a directed cycle and a path
Let W be a directed cycle in G. Then
(i, j)W cij = (i, j)W (cij - (i) + (j))
= (i, j)W cij + (i, j)W ((j) - (i))
= (i, j)W cij.
Let P be a directed path from node k to node l. Then
(i, j)P cij = (i, j)P (cij - (i) + (j))
= (i, j)P cij - (i, j)P ((i) - (j))
= (i, j)W cij - (k) + (l).
Network Theory and Applications 2010
22
 Working with Residual Networks:
In network flow algorithms, frequently use incremental flow about some given
feasible flow x0  residual network
i
(cij, uij)
j
x0ij

(cij , uij – x0ij)
i
j
(-cij , x0ij)
• If both (i, j) and (j, i) exist, have parallel arcs in residual network.
For notational convenience, assume G has (i, j) or (j, i), but not both. (can use
transformation to make any graph satisfy this property.)
• In practice, network representation can handle parallel arcs.
• For max flow problem, costs are 0, hence can merge parallel arcs as one arc.
Network Theory and Applications 2010
23
 For every feasible flow x in G, define flow x’ in the residual network G(x0).
x’ij – x’ji = xij – x0ij ,
x’ij x’ji = 0
 If xij  x0ij , we set x’ij = (xij – x0ij) and x’ji = 0.
If xij < x0ij , we set x’ij = 0
and x’ji = (x0ij – xij ).
 The cost of flow on arc (i, j) in G(x0) is
c’ij x’ij + c’ji x’ji = c’ij(x’ij – x’ji) = cijxij – cijx0ij
c’x’ = cx – cx0.
Network Theory and Applications 2010
24
 Note that for MCF problem, the flow in G(x0) is a circulation.
Let x and x0 be feasible flows for MCF. Then xij = (xij’ – xji’) + xij0.
x and x0 satisfy (outflow for x) – (inflow for x) = b(i) for all iN.
(outflow for x0) – (inflow for x0) = b(i) for all iN.
Subtracting both sides, get (outflow for x-x0) - (inflow for x-x0) = 0
From xij - xij0 = (xij’ – xji’),  (out – in for (xij - xij0))
=  (out – in for (xij’ – xji’)) = 0 for each node i.
Hence the flow in G(x0) is a circulation.
Network Theory and Applications 2010
25