The Hypergraph Network Simplex Algorithm & Railway Optimization - - PowerPoint PPT Presentation

โ–ถ
the hypergraph network simplex
SMART_READER_LITE
LIVE PREVIEW

The Hypergraph Network Simplex Algorithm & Railway Optimization - - PowerPoint PPT Presentation

The Hypergraph Network Simplex Algorithm & Railway Optimization Ralf Borndrfer joint work with Isabel Beckenbach and Markus Reuther 4th ISM-ZIB-IMI MODAL Workshop on Mathematical Optimization and Data Analysis Tokyo, ISM, 27.03.2019


slide-1
SLIDE 1

The Hypergraph Network Simplex Algorithm & Railway Optimization

Ralf Borndรถrfer

joint work with Isabel Beckenbach and Markus Reuther

4th ISM-ZIB-IMI MODAL Workshop on Mathematical Optimization and Data Analysis Tokyo, ISM, 27.03.2019

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 1

slide-2
SLIDE 2

Directed Hypergraphs

Definition A directed hypergraph is a pair ๐ผ = (๐‘Š, ๐’) where ๐‘Š is a finite set of vertices and ๐’ is a family of hyperarcs. A hyperarc a โˆˆ ๐’ is a pair ๐‘ = (๐‘ข, โ„Ž) of disjoint sets ๐‘ข, โ„Ž โІ ๐‘Š sets of vertices, at least one of them non-empty; ๐‘ข โІ ๐‘Š is called the tail of ๐‘, โ„Ž โІ ๐‘Š is the head.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 2

slide-3
SLIDE 3

Graph-based Hypergraphs

Definition Let ๐ธ = (๐‘Š, ๐ต) be a simple directed draph. A directed hypergraph based on ๐ธ is a pair ๐ผ = (๐‘Š, ๐’) where ๐’ โІ 2๐ต is a set of non-empty subsets ๐‘ โІ ๐ต of vertex-disjoint arcs. A directed hypergraph based on some graph ๐ธ is called graph-based. Remark A graph-based directed hypergraph is a directed hypergraph: For ๐‘ โˆˆ ๐’ let ๐‘ข ๐‘ โ‰” {๐‘ค โˆˆ ๐‘Š: โˆƒ ๐‘ค, ๐‘ฅ โˆˆ ๐‘} and โ„Ž ๐‘ โ‰” ๐‘ฅ โˆˆ ๐‘Š: โˆƒ ๐‘ค, ๐‘ฅ โˆˆ ๐‘ .

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 3

slide-4
SLIDE 4

Definition Let ๐ผ = (๐‘Š, ๐’) be a directed hypergraph based on a directed graph ๐ธ, ๐‘‘ โˆˆ โ„๐’ a vector of costs, and ๐‘ โˆˆ โ„๐‘Š of demands s.t. ๐‘๐‘ˆ1 = 0. The minimum cost hyperflow problem (MCH) is the linear program min เท

๐‘โˆˆ๐’

๐‘‘๐‘๐‘ฆ๐‘ เท

๐‘โˆˆ๐’:๐‘คโˆˆโ„Ž ๐‘

๐‘ฆ๐‘ โˆ’ เท

๐‘โˆˆ๐’:๐‘คโˆˆ๐‘ข ๐‘

๐‘ฆ๐‘ = ๐‘๐‘ค โˆ€๐‘ค โˆˆ ๐‘Š ๐‘ฆ โ‰ฅ 0. A vector ๐‘ฆ โˆˆ โ„๐’ that is feasible for this LP is a hyperflow (in ๐ผ) (actually a circulation).

The Minimum Cost Hyperflow Problem

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 4

slide-5
SLIDE 5

The Minimum Cost Hyperflow Problem

โ–บ

In contrast to the graph case, there might not exist an integral min cost hyperfow, even if all data is integral (see example later).

โ–บ

Finding a minimum cost integral hyperflow is NP-hard, even if the hyperarcs consist of at most two arcs.

โ–บ

If the underlying digraph ๐ธ is connected and ๐ต โІ ๐’, i.e., all arcs

  • f the underlying digraph are also hyperarcs, then

เท

๐‘โˆˆ๐’:๐‘คโˆˆโ„Ž ๐‘

๐‘ฆ๐‘ โˆ’ เท

๐‘โˆˆ๐’:๐‘คโˆˆ๐‘ข ๐‘

๐‘ฆ๐‘ = ๐‘๐‘ค โˆ€๐‘ค โˆˆ ๐‘Š ๐‘ฆ โ‰ฅ 0. has a solution if and only if ๐‘๐‘ˆ1 = 0.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 5

slide-6
SLIDE 6

A Hypernetwork Simplex Algorithm

Earlier work

  • R. Cambini, G. Gallo, and M. G. Scutellร : Flows on hypergraphs.

Mathematical Programming 78.2, p. 195-217 (1997). However

โ–บ

We heavily use that we work on graph-based hypergraphs.

โ–บ

The algorithm for our setting is simpler and closer to the original network simplex. Reference

  • I. Beckenbach: Matchings and Flows in Hypergraphs. PhD thesis,

Freie Universitรคt Berlin (2019).

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 6

slide-7
SLIDE 7

Characterizing the Bases

Assumption The underlying digraph ๐ธ is connected and ๐ต โІ ๐’.

โ–บ

Let ๐‘ โˆˆ 0, ยฑ1 ๐‘Šร—๐’ be the incidence matrix of ๐ผ. The minimum cost hyperflow problem can then be written as min ๐‘‘๐‘ˆ๐‘ฆ, ๐‘๐‘ฆ = ๐‘, ๐‘ฆ โ‰ฅ 0.

โ–บ

If ๐ถ = {๐‘1, โ€ฆ , ๐‘๐‘™}, then let ๐‘โ‹…๐ถ โ‰” (๐‘โ‹…๐‘1, โ€ฆ , ๐‘โ‹…๐‘๐‘™).

โ–บ

๐‘ ๐‘™ ๐‘ = ๐‘Š โˆ’ 1

โ–บ

๐ถ is a basis if and only if ๐‘ ๐‘™ ๐‘โ‹…๐ถ = ๐ถ = ๐‘Š โˆ’ 1.

โ–บ

If ๐ถ is a basis, then ๐ผ ๐ถ โˆฉ ๐ต = (๐‘Š, ๐ถ โˆฉ ๐ต) is a forest that contains ๐‘Š| โˆ’ ๐ถ โˆฉ ๐ต = ๐‘Š โˆ’ ๐ถ โˆ’ ๐ถ โˆ– ๐ต = |๐ถ โˆ– ๐ต + 1 components.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 7

slide-8
SLIDE 8

Characterizing the Bases

โ–บ

Let ๐ถ โІ ๐’ be s.t. ๐ถ = ๐‘Š โˆ’ 1, ๐ถ1 โ‰” ๐ถ โˆฉ ๐ต, ๐ถ2 โ‰” ๐ถ โˆ– ๐ต.

โ–บ

๐ผ[๐ถ1] is a forest with ๐ถ2 + 1 components.

โ–บ

For every tree of ๐ผ[๐ถ1], choose a root ๐‘  and denote its tree by ๐‘ˆ

๐‘ .

โ–บ

Let ๐‘† be the set of all such roots.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 8

slide-9
SLIDE 9

Characterizing the Bases

โ–บ

If ๐ถ is a basis and ๐‘ 

1, ๐‘  2 โˆˆ ๐‘† two roots, the system

๐‘โ‹…๐ถ๐‘” = โˆ’๐‘“๐‘ 1 + ๐‘“๐‘ 2, ๐‘ฆ โ‰ฅ 0 has a unique solution; we can send 1 unit of flow from ๐‘ 

1 to ๐‘  2.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 9

slide-10
SLIDE 10

Characterizing the Bases

โ–บ

If ๐ถ is a basis and ๐‘ 

1, ๐‘  2 โˆˆ ๐‘† two roots, the system

๐‘โ‹…๐ถ๐‘” = โˆ’๐‘“๐‘ 1 + ๐‘“๐‘ 2, ๐‘” โ‰ฅ 0 has a unique solution; we can (in a unique way) send 1 unit of flow from ๐‘ 

1 to ๐‘  2 in ๐ผ ๐ถ โˆฉ ๐ต .

โ–บ

The unique flow of 1 unit from an arbitrary fixed root ๐‘ โˆ— to some

  • ther other root ๐‘  โ‰  ๐‘ โˆ— is called elementary.

โ–บ

We can send 1 unit of flow from ๐‘ 

1 to ๐‘  2 via an arbitrary

intermediate root ๐‘ โˆ—, i.e., from ๐‘ 

1 to ๐‘ โˆ— to ๐‘  2.

โ–บ

We can also (easily) send 1 unit of flow inside of a tree.

โ–บ

Any flow in ๐ผ ๐ถ โˆฉ ๐ต is a superposition of elementary flows and flows on trees.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 10

slide-11
SLIDE 11

The Elementary Hyperflow Matrix

โ–บ

Let ๐ถ be a basis, ๐‘ˆ

๐‘ , ๐‘  โˆˆ ๐‘†, the rooted trees, ๐‘ โˆ— โˆˆ ๐‘† a fixed root.

โ–บ

For every ๐‘  โˆˆ ๐‘† โˆ– ๐‘ โˆ— there is a unique hyperflow ๐‘”

๐‘  in ๐‘Š, ๐ถ that

transports 1 unit from ๐‘ โˆ— to ๐‘ .

โ–บ

Let ๐บ โ‰” ๐‘”

๐‘  ๐‘ โˆˆ๐‘†โˆ–{๐‘ โˆ—} โˆˆ โ„๐ถร—๐‘†โˆ– ๐‘ โˆ— be the elementary hyperflow matrix

whose ๐‘ -th column contains this flow.

โ–บ

๐บ is easily reconstructed from ๐บ|๐ถ2 = ๐บ๐ถ2โ‹… by recomputing the flows on the trees (but this takes time).

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 11

slide-12
SLIDE 12

The Elementary Hyperflow Matrix

Example ๐‘ โˆ— = ๐‘ 

1,

๐‘”

๐‘ 2|๐ถ2 = 1/2

1/4

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 12

slide-13
SLIDE 13

The Elementary Hyperflow Matrix

Example ๐‘ โˆ— = ๐‘ 

1,

๐บ๐ถ2โ‹… = ๐‘”

๐‘ 2, ๐‘” ๐‘ 3 ๐ถ2โ‹… = 1/2

1/2 1/4 โˆ’1/4

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 13

slide-14
SLIDE 14

The Elementary Hyperflow Matrix

Example ๐‘ โˆ— = ๐‘ 

1,

๐น๐‘†โˆ– ๐‘ 1 โ‹… = 1 2 1 โˆ’2 , ๐บ๐ถ2โ‹… = 1/2 1/2 1/4 โˆ’1/4

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 14

เท

๐‘โˆˆ๐ถ

โˆ’ ๐‘Š ๐‘ˆ

๐‘ 2 โˆฉ โ„Ž ๐‘

โˆ’ ๐‘Š ๐‘ˆ

๐‘ 2 โˆฉ ๐‘ข ๐‘

๐‘”

๐‘ 2๐‘ = 1

เท

๐‘โˆˆ๐ถ

โˆ’ ๐‘Š ๐‘ˆ

๐‘ 3 โˆฉ โ„Ž ๐‘

โˆ’ ๐‘Š ๐‘ˆ

๐‘ 3 โˆฉ ๐‘ข ๐‘

๐‘”

๐‘ 2๐‘ = 0

slide-15
SLIDE 15

Characterizing the Bases

โ–บ

Define ๐น โˆˆ โ„ค๐‘†ร—๐ถ2 as ๐น๐‘ ๐‘ โ‰” ๐‘Š ๐‘ˆ

๐‘  โˆฉ โ„Ž ๐‘

โˆ’ ๐‘Š ๐‘ˆ

๐‘  โˆฉ ๐‘ข ๐‘ .

Lemma

โ–บ

๐น๐‘†โˆ– ๐‘ โˆ— โ‹… = ๐บ๐ถ2โ‹…

โˆ’1

โ–บ

๐ถ basis โŸบ ๐ผ ๐ถ1 forest of ๐ถ2 + 1 components โ‹€ ๐‘ ๐‘™ ๐บ๐ถ2โ‹… = ๐ถ2 โŸบ ๐ผ ๐ถ1 forest of ๐ถ2 + 1 components โ‹€ ๐‘ ๐‘™ ๐น = ๐ถ2 .

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 15

slide-16
SLIDE 16

Characterizing the Bases

Example ๐น = โˆ’2 1 2 1 โˆ’2 has rank 2 โ‡’ ๐ถ is a basis

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 16

slide-17
SLIDE 17

Characterizing the Bases

Example ๐น = โˆ’1 โˆ’1 2 2 โˆ’1 โˆ’1 has rank 1 โ‡’ ๐ถ is not a basis

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 17

slide-18
SLIDE 18

Elementary Hyperflow and Intersection Count Matrix

โ–บ

Let ๐ถ be a basis, ๐‘ˆ

๐‘ , ๐‘  โˆˆ ๐‘†, the rooted trees, ๐‘ โˆ— โˆˆ ๐‘† a fixed root.

โ–บ

For every ๐‘  โˆˆ ๐‘† โˆ– ๐‘ โˆ— there is a unique hyperflow ๐‘”

๐‘  in ๐‘Š, ๐ถ that

transports 1 unit from ๐‘ โˆ— to ๐‘ .

โ–บ

Let ๐บ โ‰” ๐‘”

๐‘  ๐‘ โˆˆ๐‘†โˆ–{๐‘ โˆ—} โˆˆ โ„๐ถร—๐‘†โˆ– ๐‘ โˆ— be the elementary hyperflow matrix

whose ๐‘ -th column contains this flow.

โ–บ

๐บ is easily reconstructed from ๐บ|๐ถ2 = ๐บ๐ถ2โ‹… by recomputing the flows on the trees.

โ–บ

Define an intersection count matrix ๐น โˆˆ โ„ค๐‘†ร—๐ถ2 as ๐น๐‘ ๐‘ โ‰” ๐‘Š ๐‘ˆ

๐‘  โˆฉ โ„Ž ๐‘

โˆ’ ๐‘Š ๐‘ˆ

๐‘  โˆฉ ๐‘ข ๐‘ .

โ–บ

๐น๐‘†โˆ– ๐‘ โˆ— โ‹… = ๐บ๐ถ2โ‹…

โˆ’1

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 18

slide-19
SLIDE 19

The Hyperflow Network Simplex Algorithm

Input: Hypergraph ๐ผ = (๐‘Š, ๐’) based on digraph ๐ธ = (๐‘Š, ๐ต), cost ๐‘‘ โ‰ฅ 0, demand ๐‘ s.t. ๐‘๐‘ˆ1 = 0, feasible basic (hyper)flow ๐‘ฆ s.t. supp ๐‘ฆ โІ ๐ต, associated basis ๐ถ and tree ๐‘ˆ

๐‘ .

Output: (Fractional) Minimum cost hyperflow ๐‘ฆ. 1. (BTRAN) Solve ๐œŒ๐‘ˆ๐‘โ‹…๐ถ = ๐‘‘๐ถ

๐‘ˆ and compute reduced costs

าง ๐‘‘๐‘ = ๐‘‘๐‘ โˆ’ ๐œŒ(๐‘Š โ„Ž ๐‘ + ๐œŒ(๐‘Š(๐‘ข ๐‘ ). 2. (PRICE) If าง ๐‘‘ โ‰ฅ 0 then output ๐‘ฆ, stop; else choose ๐‘in s.t. าง ๐‘‘๐‘๐‘—๐‘œ < 0. 3. (FTRAN) Solve ๐‘โ‹…๐ถ๐‘” = โˆ’๐‘๐‘in. 4. (CHUZR) Choose ๐‘out โˆˆ argmin โˆ’

๐‘ฆ๐‘ ๐‘”

๐‘ : ๐‘”

๐‘ < 0, ๐‘ โˆˆ ๐ถ .

5. (UPDATE) ๐‘ฆ๐‘ โ† เตž โˆ’๐‘ฆ๐‘out/๐‘”๐‘out, ๐‘ = ๐‘in ๐‘ฆ๐‘ โˆ’ ๐‘ฆ๐‘out/๐‘”๐‘out, ๐‘ โˆˆ ๐ถ ๐‘ฆ๐‘, ๐‘ โˆ‰ ๐ถ โˆช {๐‘in} , update ๐ถ, ๐‘†, {๐‘ˆ

๐‘ }, ๐‘๐ถ, ๐บ.

6. Go to 1.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 19

slide-20
SLIDE 20

(FTRAN) ๐‘โ‹…๐ถ๐‘” = โˆ’๐‘โ‹…๐‘in

โ–บ

1 unit of flow on entering arc ๐‘in creates at tree ๐‘ˆ

๐‘  demand

๐น๐‘ ๐‘in โ‰” โˆ’( ๐‘Š ๐‘ˆ

๐‘  โˆฉ โ„Ž ๐‘

โˆ’ ๐‘Š ๐‘ˆ

๐‘  โˆฉ ๐‘ข ๐‘ )

โ–บ

Compute hyperflow on basic hyperarcs as superposition of elementary flows ๐‘”|๐ถ2 = ๐บ๐ถ2โ‹…๐น๐‘†โˆ–{๐‘ โˆ—}๐‘in.

โ–บ

Compute associated flow on trees ๐‘”|๐ถ1 and set ๐‘” = ๐‘”|๐ถ1 ๐‘”|๐ถ2 .

โ–บ

๐‘โ‹…๐ถ๐‘” = โˆ’๐‘โ‹…๐‘๐‘—๐‘œ

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 20

๐‘1 ๐‘2

slide-21
SLIDE 21

Example: (FTRAN) ๐‘โ‹…๐ถ๐‘” = โˆ’๐‘โ‹…๐‘in

โ–บ

๐‘in is the red arc

โ–บ

๐น๐‘†๐‘in = 1,0, โˆ’1 ๐‘ˆ

โ–บ

๐‘”

๐‘1

๐‘”

๐‘2

= ๐บ โ‹… ๐น๐‘†โˆ– ๐‘ โˆ— ๐‘in = 1/2 1/2 1/4 โˆ’1/4 โˆ’1 = โˆ’1/2 1/4

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 21

๐‘1 ๐‘2

slide-22
SLIDE 22

Example: (FTRAN) ๐‘โ‹…๐ถ๐‘” = โˆ’๐‘โ‹…๐‘in

โ–บ

Compute demand on tree vertices induced by flow on basic hyerparcs.

โ–บ

Total demands (including demands on entering hyperarc) sum up to 0 on every tree.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 22

slide-23
SLIDE 23

Example: (FTRAN) ๐‘โ‹…๐ถ๐‘” = โˆ’๐‘โ‹…๐‘in

โ–บ

Compute flow on each tree by reverse BFS.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 23

slide-24
SLIDE 24

The Hyperflow Network Simplex Algorithm

Input: Hypergraph ๐ผ = (๐‘Š, ๐’) based on digraph ๐ธ = (๐‘Š, ๐ต), cost ๐‘‘ โ‰ฅ 0, demand ๐‘ s.t. ๐‘๐‘ˆ1 = 0, feasible basic (hyper)flow ๐‘ฆ s.t. supp ๐‘ฆ โІ ๐ต, associated basis ๐ถ and tree ๐‘ˆ

๐‘ .

Output: (Fractional) Minimum cost hyperflow ๐‘ฆ. 1. (BTRAN) Solve ๐œŒ๐‘ˆ๐‘โ‹…๐ถ = ๐‘‘๐ถ

๐‘ˆ and compute reduced costs

าง ๐‘‘๐‘ = ๐‘‘๐‘ โˆ’ ๐œŒ(๐‘Š โ„Ž ๐‘ + ๐œŒ(๐‘Š(๐‘ข ๐‘ ). 2. (PRICE) If าง ๐‘‘ โ‰ฅ 0 then output ๐‘ฆ, stop; else choose ๐‘in s.t. าง ๐‘‘๐‘๐‘—๐‘œ < 0. 3. (FTRAN) Solve ๐‘โ‹…๐ถ๐‘” = โˆ’๐‘๐‘in. 4. (CHUZR) Choose ๐‘out โˆˆ argmin โˆ’

๐‘ฆ๐‘ ๐‘”

๐‘ : ๐‘”

๐‘ < 0, ๐‘ โˆˆ ๐ถ .

5. (UPDATE) ๐‘ฆ๐‘ โ† เตž โˆ’๐‘ฆ๐‘out/๐‘”๐‘out, ๐‘ = ๐‘in ๐‘ฆ๐‘ โˆ’ ๐‘ฆ๐‘out/๐‘”๐‘out, ๐‘ โˆˆ ๐ถ ๐‘ฆ๐‘, ๐‘ โˆ‰ ๐ถ โˆช {๐‘in} , update ๐ถ, ๐‘†, {๐‘ˆ

๐‘ }, ๐‘๐ถ, ๐บ.

6. Go to 1.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 24

slide-25
SLIDE 25

(BTRAN) ๐œŒ๐‘ˆ๐‘โ‹…๐ถ = ๐‘‘๐ถ

๐‘ˆ

โ–บ

Set ๐œŒโ€ฒ๐‘†: = 0 and extend to potential ๐œŒโ€ฒ s.t. all tree arcs have reduced cost zero.

โ–บ

The basic hyperarcs have (preliminary) reduced costs าง ๐‘‘๐‘

โ€ฒ = ๐‘‘๐‘ โˆ’ ๐œŒโ€ฒ(๐‘Š โ„Ž ๐‘

+ ๐œŒโ€ฒ(๐‘Š(๐‘ข ๐‘ ).๐‘.

โ–บ

Adjust potentials at trees (except ๐‘ โˆ—, i.e., ๐œŒ๐‘ โˆ— = 0) such that basic hyperarcs get zero reduced costs by setting ๐œŒ๐‘  โ‰” าง ๐‘‘๐ถ2

โ€ฒ๐‘ˆ๐บ๐ถ2๐‘ 

and ๐œŒ๐‘Š ๐‘ˆ

๐‘  โ† ๐œŒ๐‘Š ๐‘ˆ ๐‘ 

โ€ฒ

+ ๐œŒ๐‘  โ‹… 1.

โ–บ

าง ๐‘‘๐‘= าง ๐‘‘๐‘

โ€ฒ = 0,

๐‘ โˆˆ ๐ถ1

โ–บ

าง ๐‘‘๐‘= าง ๐‘‘๐‘

โ€ฒ โˆ’ ฯƒ๐‘ โˆˆ๐‘†โˆ– ๐‘ โˆ— ๐œŒ๐‘  ๐‘Š ๐‘ˆ ๐‘  โˆฉ โ„Ž ๐‘

โˆ’ ๐‘Š ๐‘ˆ

๐‘  โˆฉ ๐‘ข ๐‘

= าง ๐‘‘๐‘

โ€ฒ โˆ’ ฯƒ๐‘ โˆˆ๐‘†โˆ– ๐‘ โˆ—

าง ๐‘‘๐ถ2

โ€ฒ๐‘ˆ๐บ๐ถ2๐‘ ๐น๐‘๐‘ 

= าง ๐‘‘๐‘

โ€ฒ โˆ’ าง

๐‘‘๐‘

โ€ฒ = 0,

๐‘ โˆˆ ๐ถ2

โ–บ

๐œŒ๐‘ˆ๐‘โ‹…๐ถ = ๐‘‘๐ถ

๐‘ˆ โ‹…

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 25

slide-26
SLIDE 26

Example: (BTRAN) ๐œŒ๐‘ˆ๐‘โ‹…๐ถ = ๐‘‘๐ถ

๐‘ˆ

โ–บ

Set ๐œŒโ€ฒ๐‘†: = 0 and extend to potentials ๐œŒโ€ฒ such that all tree arcs have reduced cost zero.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 26

slide-27
SLIDE 27

Example: (BTRAN) ๐œŒ๐‘ˆ๐‘โ‹…๐ถ = ๐‘‘๐ถ

๐‘ˆ

โ–บ

The basic hyperarcs have preliminary reduced costs าง ๐‘‘๐‘1

โ€ฒ

= 1 โˆ’ (1 + 0) + (2 + 2) = 4- าง ๐‘‘๐‘2

โ€ฒ

= 1 โˆ’ (1 + 1) + (1 - 1) = -1

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 27

๐‘1 ๐‘2

slide-28
SLIDE 28

Example: (BTRAN) ๐œŒ๐‘ˆ๐‘โ‹…๐ถ = ๐‘‘๐ถ

๐‘ˆ

โ–บ

Adjust potentials at tree roots (except ๐‘ โˆ—) such that basic hyperarcs get zero reduced costs by setting ๐œŒ๐‘†โˆ– ๐‘ 1

๐‘ˆ

: = าง ๐‘‘๐ถ2

โ€ฒ๐‘ˆ๐บ๐ถ2โ‹… = (4,-1) 1/2

1/2 1/4 โˆ’1/4 = 1.75,2.25 . and raising all tree potentials according to the roots.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 28

๐‘1 ๐‘2

slide-29
SLIDE 29

The Hyperflow Network Simplex Algorithm

Input: Hypergraph ๐ผ = (๐‘Š, ๐’) based on digraph ๐ธ = (๐‘Š, ๐ต), cost ๐‘‘ โ‰ฅ 0, demand ๐‘ s.t. ๐‘๐‘ˆ1 = 0, feasible basic (hyper)flow ๐‘ฆ s.t. supp ๐‘ฆ โІ ๐ต, associated basis ๐ถ and tree ๐‘ˆ

๐‘ .

Output: (Fractional) Minimum cost hyperflow ๐‘ฆ. 1. (BTRAN) Solve ๐œŒ๐‘ˆ๐‘โ‹…๐ถ = ๐‘‘๐ถ

๐‘ˆ and compute reduced costs

าง ๐‘‘๐‘ = ๐‘‘๐‘ โˆ’ ๐œŒ(๐‘Š โ„Ž ๐‘ + ๐œŒ(๐‘Š(๐‘ข ๐‘ ). 2. (PRICE) If าง ๐‘‘ โ‰ฅ 0 then output ๐‘ฆ, stop; else choose ๐‘in s.t. าง ๐‘‘๐‘๐‘—๐‘œ < 0. 3. (FTRAN) Solve ๐‘โ‹…๐ถ๐‘” = โˆ’๐‘๐‘in. 4. (CHUZR) Choose ๐‘out โˆˆ argmin โˆ’

๐‘ฆ๐‘ ๐‘”

๐‘ : ๐‘”

๐‘ < 0, ๐‘ โˆˆ ๐ถ .

5. (UPDATE) ๐‘ฆ๐‘ โ† เตž โˆ’๐‘ฆ๐‘out/๐‘”๐‘out, ๐‘ = ๐‘in ๐‘ฆ๐‘ โˆ’ ๐‘ฆ๐‘out/๐‘”๐‘out, ๐‘ โˆˆ ๐ถ ๐‘ฆ๐‘, ๐‘ โˆ‰ ๐ถ โˆช {๐‘in} , update ๐ถ, ๐‘†, {๐‘ˆ

๐‘ }, ๐‘๐ถ, ๐บ.

6. Go to 1.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 29

slide-30
SLIDE 30

UPDATE: Root Set & Elementary Hyperflow Matrix

โ–บ

New basis ๐ถโ€ฒ โ† ๐ถ โˆช ๐‘in โˆ– ๐‘out , ๐ถโ€ฒโ€ฒ โ† ๐ถ โˆช ๐‘in

โ–บ

Find new root set ๐‘†โ€ฒ s.t. ๐‘†โ€ฒ โˆ‹ ๐‘ โˆ— and ๐‘†โˆ†๐‘†โ€ฒ = 1

โ–บ

๐‘โ‹…๐ถ๐‘” = โˆ’๐‘๐‘in โ‡” ๐‘โ‹…๐ถโ€ฒโ€ฒ ๐‘” 1 =: ๐‘โ‹…๐ถโ€ฒโ€ฒ๐‘”โ€ฒโ€ฒ = 0

โ–บ

๐‘”

๐‘  โ€ฒโ€ฒ โ† ๐‘” ๐‘ 

0 , ๐‘  โˆˆ ๐‘† โˆช ๐‘†โ€ฒ, where ๐‘๐ถ๐‘”

๐‘  = ๐‘“๐‘  โˆ’ ๐‘“๐‘ โˆ— if there is ๐‘  โˆˆ ๐‘†โ€ฒ โˆ– ๐‘†

โ–บ

๐บ

๐‘๐‘  โ€ฒ โ† ๐‘” ๐‘  โ€ฒโ€ฒ(๐‘) โˆ’ ๐‘”

๐‘  โ€ฒโ€ฒ ๐‘out

๐‘” ๐‘out ๐‘”โ€ฒโ€ฒ(๐‘),

a โˆˆ ๐ถโ€ฒโ€ฒ, ๐‘  โˆˆ ๐‘†โ€ฒ

โ–บ

๐บ๐‘out๐‘ 

โ€ฒ

= 0

โ–บ

๐‘โ‹…๐ถโ€ฒ๐บ๐ถโ€ฒ๐‘ 

โ€ฒ

= ๐‘โ‹…๐ถโ€ฒโ€ฒ๐บ๐ถโ€ฒโ€ฒ๐‘ 

โ€ฒ

= ๐‘โ‹…๐ถโ€ฒโ€ฒ๐‘”

๐‘  โ€ฒโ€ฒ โˆ’ ๐‘”

๐‘  โ€ฒโ€ฒ ๐‘out

๐‘” ๐‘out ๐‘โ‹…๐ถโ€ฒโ€ฒ๐‘”โ€ฒโ€ฒ

= ๐‘โ‹…๐ถโ€ฒโ€ฒ๐‘”

๐‘  โ€ฒโ€ฒ

= ๐‘โ‹…๐ถ๐‘”

๐‘ 

= ๐‘“๐‘  โˆ’ ๐‘“๐‘ โˆ—

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 30

slide-31
SLIDE 31

Example: UPDATE

๐บ = โˆ’0.5, โˆ’0.5,0.5,0.5,0.5 ๐‘ˆ

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 31

https://cloud.zib.de/s/HsBnZLsGGLXrpyi

slide-32
SLIDE 32

Example: UPDATE

๐‘” = 0.5, โˆ’0.5,0.5,0.5, โˆ’0.5 ๐‘ˆ

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 32

slide-33
SLIDE 33

Example: UPDATE

โ–บ

๐บ = โˆ’0.5, โˆ’0.5,0.5,0.5,0.5 ๐‘ˆ, ๐‘” = 0.5, โˆ’0.5,0.5,0.5, โˆ’0.5 ๐‘ˆ

โ–บ

Ratio is โˆ’

0.5 โˆ’0.5 = 1 โ‡’ ๐บ๐‘in โ€ฒ

= 1

โ–บ

๐บ๐ถโˆฉ๐ถโ€ฒ

โ€ฒ

= โˆ’0.5, โˆ’0,5,0.5,0.5 ๐‘ˆ โˆ’ โˆ’1 โ‹… 0.5, โˆ’0.5,0.5,0.5 ๐‘ˆ = 0, โˆ’1,1,1 ๐‘ˆ

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 33

1 1 1 1 1 1

  • 1
slide-34
SLIDE 34

The Hyperflow Network Simplex Algorithm

Input: Hypergraph ๐ผ = (๐‘Š, ๐’) based on digraph ๐ธ = (๐‘Š, ๐ต), cost ๐‘‘ โ‰ฅ 0, demand ๐‘ s.t. ๐‘๐‘ˆ1 = 0, feasible basic (hyper)flow ๐‘ฆ s.t. supp ๐‘ฆ โІ ๐ต, associated basis ๐ถ and tree ๐‘ˆ

๐‘ .

Output: (Fractional) Minimum cost hyperflow ๐‘ฆ. 1. (BTRAN) Solve ๐œŒ๐‘ˆ๐‘โ‹…๐ถ = ๐‘‘๐ถ

๐‘ˆ and compute reduced costs

าง ๐‘‘๐‘ = ๐‘‘๐‘ โˆ’ ๐œŒ(๐‘Š โ„Ž ๐‘ + ๐œŒ(๐‘Š(๐‘ข ๐‘ ). 2. (PRICE) If าง ๐‘‘ โ‰ฅ 0 then output ๐‘ฆ, stop; else choose ๐‘in s.t. าง ๐‘‘๐‘๐‘—๐‘œ < 0. 3. (FTRAN) Solve ๐‘โ‹…๐ถ๐‘” = โˆ’๐‘๐‘in. 4. (CHUZR) Choose ๐‘out โˆˆ argmin โˆ’

๐‘ฆ๐‘ ๐‘”

๐‘ : ๐‘”

๐‘ < 0, ๐‘ โˆˆ ๐ถ .

5. (UPDATE) ๐‘ฆ๐‘ โ† เตž โˆ’๐‘ฆ๐‘out/๐‘”๐‘out, ๐‘ = ๐‘in ๐‘ฆ๐‘ โˆ’ ๐‘ฆ๐‘out/๐‘”๐‘out, ๐‘ โˆˆ ๐ถ ๐‘ฆ๐‘, ๐‘ โˆ‰ ๐ถ โˆช {๐‘in} , update ๐ถ, ๐‘†, {๐‘ˆ

๐‘ }, ๐‘๐ถ, ๐บ.

6. Go to 1.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 34

slide-35
SLIDE 35

Example: Start with a Feasible Hyperflow

โ–บ

Only arcs/hyperarcs of the current basis ๐ถ are shown.

โ–บ

Flow ๐‘ฆ๐‘ = แ‰Š1, ๐‘ โˆˆ ๐ถ 0, ๐‘ โˆ‰ ๐ถ

โ–บ

Costs ๐‘‘ = 1, demands ๐‘ as labeled.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 35

slide-36
SLIDE 36

Example: (BTRAN) ๐œŒ๐‘ˆ๐‘โ‹…๐ถ = ๐‘‘๐ถ

๐‘ˆ

โ–บ

Set ๐œŒโ€ฒ๐‘†: = 0 and extend to potentials ๐œŒโ€ฒ such that all tree arcs have reduced cost zero.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 36

slide-37
SLIDE 37

Example: (BTRAN) ๐œŒ๐‘ˆ๐‘โ‹…๐ถ = ๐‘‘๐ถ

๐‘ˆ

โ–บ

The basic hyperarcs have preliminary reduced costs าง ๐‘‘๐‘1

โ€ฒ

= 1 โˆ’ (1 + 0) + (2 + 2) = 4- าง ๐‘‘๐‘2

โ€ฒ

= 1 โˆ’ (1 + 1) + (1 - 1) = -1

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 37

๐‘1 ๐‘2

slide-38
SLIDE 38

Example: (BTRAN) ๐œŒ๐‘ˆ๐‘โ‹…๐ถ = ๐‘‘๐ถ

๐‘ˆ

โ–บ

Adjust potentials at tree roots (except ๐‘ โˆ—) such that basic hyperarcs get zero reduced costs by setting ๐œŒ๐‘†โˆ– ๐‘ 1

๐‘ˆ

: = าง ๐‘‘๐ถ2

โ€ฒ๐‘ˆ๐บ๐ถ2โ‹… = (4,-1) 1/2

1/2 1/4 โˆ’1/4 = 1.75,2.25 . and raising all tree potentials according to the roots.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 38

๐‘1 ๐‘2

slide-39
SLIDE 39

Example: (PRICE) Choose าง ๐‘‘๐‘๐‘—๐‘œ < 0

โ–บ

Green arc has reduced cost 1 - 4:25 + 2 = -1.25 < 0.

โ–บ

Add this arc to the basis.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 39

๐‘1 ๐‘2

slide-40
SLIDE 40

Example: (FTRAN) ๐‘โ‹…๐ถ๐‘” = โˆ’๐‘โ‹…๐‘in

โ–บ

๐‘in is the red arc

โ–บ

๐น๐‘†๐‘in = 1,0, โˆ’1 ๐‘ˆ

โ–บ

๐‘”

๐‘1

๐‘”

๐‘2

= ๐บ โ‹… ๐น๐‘†โˆ– ๐‘ โˆ— ๐‘in = 1/2 1/2 1/4 โˆ’1/4 โˆ’1 = โˆ’1/2 1/4

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 40

๐‘1 ๐‘2

slide-41
SLIDE 41

Example: (FTRAN) ๐‘โ‹…๐ถ๐‘” = โˆ’๐‘โ‹…๐‘in

โ–บ

Compute demand on tree vertices induced by flow on basic hyerparcs.

โ–บ

Total demands (including demands on entering hyperarc) sum up to 0 on every tree.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 41

slide-42
SLIDE 42

Example: (FTRAN) ๐‘โ‹…๐ถ๐‘” = โˆ’๐‘โ‹…๐‘in

โ–บ

Compute flow on each tree by reverse BFS.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 42

slide-43
SLIDE 43

Example: (CHUZR) ๐‘out โˆˆ argmin โˆ’

๐‘ฆ๐‘ ๐‘”

๐‘ : ๐‘”

๐‘ < 0, ๐‘ โˆˆ ๐ถ

โ–บ

min โˆ’

๐‘ฆ๐‘ ๐‘”

๐‘ : ๐‘”

๐‘ < 0, ๐‘ โˆˆ ๐ถ = 1.

โ–บ

๐‘out = red arc.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 43

slide-44
SLIDE 44

Example: (FTRAN) ๐‘โ‹…๐ถ๐‘” = โˆ’๐‘โ‹…๐‘in

โ–บ

๐‘in is the red arc

โ–บ

๐น๐‘†๐‘in = 1,0, โˆ’1 ๐‘ˆ

โ–บ

๐‘”

๐‘1

๐‘”

๐‘2

= ๐บ โ‹… ๐น๐‘†โˆ– ๐‘ โˆ— ๐‘in = 1/2 1/2 1/4 โˆ’1/4 โˆ’1 = โˆ’1/2 1/4

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 44

๐‘1 ๐‘2

slide-45
SLIDE 45

Example: UPDATE

โ–บ

๐‘ฆ โ† ๐‘ฆ + 1 โ‹… ๐‘”.

โ–บ

Trees ๐‘ˆ

๐‘ 1 and ๐‘ˆ ๐‘ 3 change.

โ–บ

๐‘†, ๐ถ2, ๐บ do not change.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 45

slide-46
SLIDE 46

Summary

โ–บ

One iteration of the Hyperflow Network Simplex Algorithm can be implemented in ๐‘ƒ(ฯƒ deg ๐‘ค + ๐‘Š 2).

โ–บ

If Blandโ€™s rule is used, the algorithm is finite. Also polynomial?

โ–บ

Generalization of Network Simplex Method to Graph Based Hypergraphs.

โ–บ

Combinatorial: Each pivot consists of (fast) graph theoretical computations.

โ–บ

Can handle upper bounds on the variables.

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 46

slide-47
SLIDE 47

InterCity Express (ICE) High Speed Train

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 47

slide-48
SLIDE 48

Railway Constraints

Regularity Parking Maintenance Train Composition

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 48

Photos courtesy of DB Mobility Logistics AG

slide-49
SLIDE 49

Timetable Regularity

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 49

slide-50
SLIDE 50

Assignment Solution

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 50

slide-51
SLIDE 51

Rotation Regularity

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 51

slide-52
SLIDE 52

Modeling Regularity via Hyperedges

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 52

slide-53
SLIDE 53

Hyperflow Model

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 53

slide-54
SLIDE 54

Railway Constraints

Regularity Parking Maintenance Train Composition

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 54

Photos courtesy of DB Mobility Logistics AG

slide-55
SLIDE 55

Rare Train Composition Example

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 55

slide-56
SLIDE 56

Train Composition: Type, Order, Orientation

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 56

slide-57
SLIDE 57

Hypergraph Model: Possible Train Compositions

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 57

slide-58
SLIDE 58

Hypergraph Model: Arrival and Departure Nodes

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 58

slide-59
SLIDE 59

Hypergraph Model: Single Traction

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 59

slide-60
SLIDE 60

Hypergraph Model: Double Traction

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 60

slide-61
SLIDE 61

Hypergraph Model: Triple Traction

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 61

slide-62
SLIDE 62

Hypergraph Model: Pass-Through Connections

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 62

slide-63
SLIDE 63

Hypergraph Model: Pass-Through Connections

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 63

slide-64
SLIDE 64

Hypergraph Model: All Connections

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 64

slide-65
SLIDE 65

The Coarse-to-Fine Method

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 65

slide-66
SLIDE 66

Motivation: ICE Connections

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 66

slide-67
SLIDE 67

Timetabled Trips: 1 Day

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 67

Graphics: JavaView, MATHEON F4

slide-68
SLIDE 68

Timetabled Trips: Standard Week

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 68

Graphics: JavaView, MATHEON F4

slide-69
SLIDE 69

Vehicle Rotation (1 Week)

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 69

We Tu Th Fr Sa Su Mo

Graphics: JavaView, MATHEON F4

slide-70
SLIDE 70

Vehicle Rotation (6 Weeks)

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 70

We Tu Th Fr Sa Su Mo

Graphics: JavaView, MATHEON F4

slide-71
SLIDE 71

Rotation Plan: Follow-on Trip Assignment

(Blue: Timetabled Trips, Red: Deadhead Trips)

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 71

Graphics: JavaView, MATHEON F4

slide-72
SLIDE 72

Regularity of the timetable trips: Red: Trip done on one day of the week Blue: Trip done on all days of the week

Regular Timetable

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 72

Graphics: JavaView, MATHEON F4

slide-73
SLIDE 73

Regular Rotations

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 73

Regularity of the deadhead trips: Yellow: regular Red: irregular Graphics: JavaView, MATHEON F4

slide-74
SLIDE 74

Thank you for your attention

Ralf Borndรถrfer

Zuse Institute Berlin Freie Universitรคt Berlin

  • Takustr. 7

14195 Berlin Germany Fon (+49 30) 84185-243 Fax (+49 30) 84185-269 borndoerfer@zib.de http://www.zib.de/borndoerfer

Hypernetwork Simplex Algorithm and Railways | 4th ISM-ZIB-IMI MODAL Workshop 74

Image courtesy of DB Mobility Logistics AG