Linear Optimal Power Flow Using Cycle Flows
Jonas Hörscha, Henrik Ronellenfitschb , Dirk Witthautc,d, Tom Browna,∗
a Frankfurt

Institute for Advanced Studies, 60438 Frankfurt am Main, Germany
of Physics and Astronomy, University of Pennsylvania, Philadelphia PA, USA
c Forschungszentrum Jülich, Institute for Energy and Climate Research - Systems Analysis and Technology Evaluation (IEK-STE), 52428 Jülich, Germany
d Institute for Theoretical Physics, University of Cologne, 50937 Köln, Germany
b Department

arXiv:1704.01881v3 [nlin.AO] 31 Jan 2018

Abstract
Linear optimal power flow (LOPF) algorithms use a linearization of the alternating current (AC) load flow equations to optimize
generator dispatch in a network subject to the loading constraints of the network branches. Common algorithms use the voltage
angles at the buses as optimization variables, but alternatives can be computationally advantageous. In this article we provide a
review of existing methods and describe a new formulation that expresses the loading constraints directly in terms of the flows
themselves, using a decomposition of the network graph into a spanning tree and closed cycles. We provide a comprehensive study
of the computational performance of the various formulations, in settings that include computationally challenging applications
such as multi-period LOPF with storage dispatch and generation capacity expansion. We show that the new formulation of the
LOPF solves up to 7 times faster than the angle formulation using a commercial linear programming solver, while another existing
cycle-based formulation solves up to 20 times faster, with an average speed-up of factor 3 for the standard networks considered
here. If generation capacities are also optimized, the average speed-up rises to a factor of 12, reaching up to factor 213 in a
particular instance. The speed-up is largest for networks with many buses and decentral generators throughout the network, which
is highly relevant given the rise of distributed renewable generation and the computational challenge of operation and planning in
such networks.
Keywords: Linear Optimal Power Flow, DC power flow, dual network, graph theory

1. Introduction
Optimal Power Flow (OPF) problems can be constructed to
find the welfare-maximizing generation and consumption levels in a network given the physical load flow equations, branch
loading limits and generator cost functions. The full load flow
equations are non-linear and the resulting optimization problem
is non-convex, which makes it both challenging and computationally expensive to find a global optimum [1]. In transmission
networks with sufficient reactive power compensation, linearizing the load flow equations introduces only small errors [2, 3],
with the benefit that the Linear OPF (LOPF) can be expressed
as a linear problem, whose convexity guarantees that a local
optimum is a global optimum.
LOPF algorithms are principally used in applications with
high computational complexity where it would be impossible
to use the full load flow equations, such as clearing markets
with nodal pricing [4] (particularly with multi-period storage
constraints and/or generator unit commitment), determining redispatch measures in markets with zonal pricing [5], optimizing
dispatch taking account of contingencies (Security Constrained
LOPF (SCLOPF)) [6, 7] and in the long-term optimization of
investment in generation and transmission assets [8, 9]. Where
higher accuracy solutions are required, linear solutions can be
∗ Corresponding

author
Email address: brown@fias.uni-frankfurt.de (Tom Brown)

Preprint submitted to Elsevier

fed as an initial solution into algorithms that use the full nonlinear load flow equations [1]. LOPF is becoming more important with the growth of renewable energy, since the fluctuating
feed-in has led to more frequent situations where the network
is highly loaded [10]. When large networks are optimized over
multiple representative feed-in situations, especially with discrete constraints on generation dispatch, the LOPF problems
can still take a significant time to solve, despite the linearization of the problem. Approaches in the literature to reducing
the computational times of LOPF problems include decomposition [11, 12, 13, 14, 15], reformulating the problem using Power
Transfer Distribution Factors (PTDFs) [16, 17] and a parallelizable algorithm using the primal-dual interior point method [18].
In textbooks [6, 19] and major software packages such as
MATPOWER [20], DIgSILENT PowerFactory [21], PowerWorld [22] and PSAT [23], the linearization of the relations between power flows in the network and power injection at the
buses is expressed indirectly through auxiliary variables that
represent the voltage angles at the buses. In this paper we introduce a new formulation of the LOPF problem that use the
power flows directly, decomposed using graph theoretic techniques into flows on a spanning tree and flows around closed
cycles in the network. The new formulation involves both fewer
decision variables and fewer constraints than the angle-based
formulation. We evaluate the computational performance of
the various methods for the LOPF problem, showing that the
cycle-based formulations can solve significantly faster than the
February 1, 2018

for solving the linear load flow, which lead to different formulations of the LOPF problem, as discussed in the next section.
The different formulations lead to mathematically identical solutions, as demonstrated in this section.
The linear approximation is valid if all branch resistances rℓ
are negligible compared to the branch reactances xℓ , rℓ ≪ |xℓ |,
reactive power flows may be neglected, all voltage magnitudes
are kept at nominal value and if all voltage angle differences
across branches θℓ are small enough that we can approximate
sin θℓ ∼ θℓ . The usefulness of the linear approximation and the
errors thereby introduced are discussed in [2, 3]. If the approximation holds, the real power over a transmission line ℓ is given
by
θℓ
(1)
fℓ = ,
xℓ

Table 1: Variable definitions

Variable

Definition

i, j ∈ {1, . . . N}
s ∈ {1, . . . G}

Bus labels
Generation source labels (wind, solar,
gas, etc.)
Branch labels
Cycle labels
Snapshot / time point labels
Dispatch of generator at bus i with
source s
Available power of generator i, s
Electrical load at bus i
Voltage angle at bus i
Total active power injection
Voltage angle across a branch
Branch active power flow
Flow on spanning tree (zero if ℓ not in
tree)
Flow around cycle c
Branch active power rating
Branch series reactance
N × L incidence matrix
L × (L − N + 1) cycle matrix
L × N tree matrix
Diagonal L× L matrix of branch susceptances
N × N weighted Laplacian matrix
Λ = KBK T

k, ℓ ∈ {1, . . . L}
c, d ∈ {1, . . . L − N + 1}
t ∈ {1, . . . T }
di,s
Di,s
li
θi
pi
θℓ
fℓ
gℓ
hc
Fℓ
xℓ
Kiℓ
Cℓc
T ℓi
Bℓk
Λ

where θℓ is the voltage angle difference between the terminal
buses of line ℓ.
The flows fℓ are constrained to be physical by the two Kirchhoff circuit laws for the current and voltage. Kirchhoff’s Current Law (KCL) states that the current injected at each bus must
equal the current withdrawn by the branches attached to the bus.
This law can be expressed using the incidence matrix Kiℓ , which
has non-zero values +1 if branch ℓ starts on bus i and −1 if
branch ℓ ends on bus i. KCL then reads
X
pi =
Kiℓ fℓ
∀i = 1, . . . , N.
(2)
ℓ

P
KCL directly implies power conservation i pi = 0 because
P
i Kiℓ = 0 for all lines ℓ. KCL provides N linear equations
for the L unknown flows fℓ , of which one is linearly dependent.
This is not sufficient to uniquely determine the flows unless the
network is a tree. Hence, L − N + 1 additional independent
equations are needed.
The necessary equations and physicality are provided by the
Kirchhoff Voltage Law (KVL), which states that the sum of
potential differences across branches around all cycles in the
network must sum to zero. It follows from graph theory that
there are L − N + 1 independent cycles for a connected graph
[28], which provides enough equations to constrain the fℓ completely. The independent cycles c ∈ {1, . . . L − N + 1} are expressed as a directed linear combination of the branches ℓ in the
cycle incidence matrix


1 if edge ℓ is element of cycle c,



−1
if reversed edge ℓ is element of cycle c, (3)
Cℓc = 


 0 otherwise.

traditional angle-based formulation. We examine not just the
basic LOPF problem, but also applications that include more
computationally challenging multi-period storage optimization
and generation capacity expansion.
Cycle-flow techniques have already been used in [24] to
improve the calculation times of PTDFs and to gain a new
understanding of the propagation of line outages in networks
[25]. The cycle-based LOPF formulation we call the ‘Kirchhoff
formulation’ below was used in [26] for single-period LOPF
and in [27] for single-period LOPF with optimal transmission
switching; in contrast to those papers, here we provide an additional new cycle-based formulation and benchmark both formulations against established formulations for a different set
of computationally-challenging problems: those extending over
multiple periods.
In Section 2 the different formulations of the linear load flow
are reviewed to prepare for the introduction of the optimization
in Section 3. Extensions beyond the basic LOPF problem are
described in Section 4 and the results of the performance analysis are presented in Section 5. Variables are defined in Table
1.

Then the KVL becomes
X
Cℓc θℓ = 0

∀c = 1, . . . , L − N + 1.

(4)

ℓ

2. Linear load flow formulations

where θℓ = θi − θ j is the angle difference between the two buses
i, j which branch ℓ connects. Using equation (1), KVL can be
expressed in terms of the power flows as
X
Cℓc xℓ fℓ = 0
∀c = 1, . . . , L − N + 1.
(5)

The aim of the linear load flow calculation is to calculate
the active power flow fℓ on each of the branches ℓ = 1, . . . , L in
terms of the active power pi injected or consumed at each of the
buses i = 1, . . . , N. In this section four methods are presented

ℓ

2

2.1. Angle formulation

2.4. Cycle formulation
In what we call the ‘Cycle formulation’ the flows fℓ are decomposed into a superposition of the flows gℓ on a spanning
tree of the network, which ensure KCL is satisfied, and into cycle flows hc that flow around each independent cycle c in the
network without altering the power balance at any bus [24]. We
thus have:
X
fℓ = gℓ +
Cℓc hc .
(10)

Commonly, the linear load flow problem is formulated in
terms of the voltage phase angles θi , i ∈ {1, . . . , N}. Using the
incidence matrix the power flows are expressed as
1 X
Kiℓ θi
xℓ i

fℓ =

∀ℓ = 1, . . . , L

If the L × L diagonal matrix B is defined with Bℓℓ =
KCL equation (2) becomes
X
pi =
Kiℓ Bℓk K jk θ j

(6)
1
xℓ

then the

c

The gℓ are only non-zero on the N − 1 edges of a chosen
spanning tree of the connected network. They are uniquely determined from the power imbalances by a matrix T
X
T ℓi pi .
(11)
gℓ =

ℓ,k, j

=

X

Λi j θ j ,

∀i = 1, . . . , N,

(7)

i

j

T is determined by fixing a slack bus and giving T ℓi value +1
if branch ℓ is in the directed path in the spanning tree from i to
the slack bus or −1 if it is in the directed path but with reversed
orientation [24]. This guarantees that KCL is satisfied at every
P
bus given that the power is balanced, i pi = 0. Note that T
only has to be calculated once for a network and is independent
of the pi . There is freedom both in the choice of spanning tree
and in the choice of the slack bus used to determine the matrix
T.
The remaining L − N + 1 degrees of freedom for the cycle
flows hc are fixed by the L − N + 1 additional constraints from
KVL (5)


X
X


∀c
(12)
Cℓd hd  = 0
Cℓc xℓ gℓ +

using the nodal susceptance matrix matrix Λ = KBK T . In
mathematical terms, Λ is a weighted network Laplacian [29].
The Angle formulation thus consists of two consecutive steps
to calculate the flows fℓ . First, equation (7) is solved to obtain
the N voltage angles θi . The equation provides only N − 1 independent conditions such that we typically fix the voltage angle
at a slack bus as θ0 = 0. Second, the flows are calculated via
Equation (6). KVL is automatically satisfied as all closed cycles
are in the kernel of the incidence matrix such that
X
Kiℓ Cℓc = 0
∀c = 1, . . . , L − N + 1.
(8)
ℓ

2.2. PTDF formulation
For the Power Transfer Distribution Factor (PTDF) formulation [6] the matrix defining equation (7) is explicitly inverted to
get the angles in terms of the power injections, and the resulting
expression for the angles inserted into (6) to get a direct linear
relation:
X
fℓ =
PT DFℓi pi
∀ℓ = 1, . . . , L,
(9)

d

ℓ

Solving this equation for the hc involves solving L− N +1 linear
equations. Power networks are not so heavily meshed, typically
L − N + 1 < N − 1, such that this method can be significantly
faster than the Angle formulation [24, 25].
3. Linear optimal power flow formulations

i

where the PTDF matrix is given by PT DF = BK T Λ∗ . The
pseudo-inverse Λ∗ is used because Λ contains a zero eigenvalue
for a connected network. Because KCL is no longer explicitly
P
enforced, power conservation i pi = 0 must be added as an explicit constraint for each connected network. The need to calculate the explicit pseudo-inverse of Λ makes this slow compared
to the Angle formulation for single calculations, but once the
PTDF has been computed, repeated application involves only
matrix multiplication and no equation-solving. However, the
PTDF matrix is typically dense, while Λ and K are sparse.

In this section the linear load flow methods from Section 2
are transposed to the linear optimal power flow (LOPF). In optimal power flow, power plant dispatch is optimized to minimize
dispatch costs, assuming that no branch flows fℓ exceed their
loading limits Fℓ , i.e. | fℓ | ≤ Fℓ [6].
The factors which control the speed of the solution to the
LOPF problem are now more subtle. They include: i) the number of optimization variables; ii) the number of constraints; iii)
the sparsity or density of the constraint matrix; iv) the shape of
the feasible space near the optimal point; v) the method used to
solve the linear problem. The first three factors are summarized
for each of the formulations in Table 2.
The objective function for the LOPF has the generic form

X
(13)
ci,s di,s
min

2.3. Kirchhoff formulation
In what we call the ‘Kirchhoff formulation’, the linear load
flow is expressed as explicit linear constraints on the flows
themselves. To the N − 1 independent equations of the KCL
equation from (2) we add the L − N + 1 constraints of the KVL
from (5). Together, this provides a system of L independent
equations for the L variables fℓ and can therefore be solved.

{di,s },{za }

i,s

where di,s is the dispatch of generator s at bus i and ci,s is its
operating cost. The za are auxiliary variables that implement
3

Table 2: Overview of the different formulations of the LOPF problem (N: number of buses, L: number of transmission lines, G: number of dispatchable generators)

Formulation

Variables

# Variables

# Equality constraints

# Inequality constraints

Matrices

Pure Angle
Angle+Flow
Pure PTDF
PTDF+Flow
Kirchhoff
Pure Cycle
Cycle+Flow

di,s , θi
di,s , fℓ , θi
di,s
di,s , fℓ
di,s , fℓ
di,s , hc
di,s , hc , fℓ

G+N
G+L+N
G
G+L
G+L
G+L−N+1
G + 2L − N + 1

N+1
L+N+1
1
L+1
L+1
L−N+2
2L − N + 2

G + 2L
G + 2L
G + 2L
G + 2L
G + 2L
G + 2L
G + 2L

sparse
sparse
dense
dense
sparse
semi-sparse
semi-sparse

the network constraints and depend on the problem formulation
(for instance, they would be the voltage angles in the case of
the Angle formulation).
One can also include the line flows fℓ as explicit optimization
variables. The generic optimization problem then reads

X
(14)
min
ci,s di,s

Whether we include the flows fℓ and additional auxiliary variables za as optimization variables has a significant impact on
the computational resources needed to solve the optimization
task. In the following we specify the different formulations of
the linear OPF (LOPF) in detail; their properties are summarized in Table 2. Note that for a uniquely-defined problem, all
the formulations deliver the same optimum.

All variables and their definitions are listed in Table 1.
The optimization must respect several constraints. First, the
load li at each bus (which is assumed to be inelastic) must always be met. The bus power balance is the difference between
generation and the electrical load li at the bus
X
pi =
dis − li .
(15)

3.1. Pure Angle formulation

i,s

{di,s },{za },{ fℓ }

In the Pure Angle formulation the optimization problem (13)
is solved with the voltage angles as auxiliary variables {za } =
{θi } subject to the constraints (16) and
X
(BK T )ℓi θi ≤ Fℓ
∀ ℓ = 1, . . . , L,
i

s

pi =

If pi > 0 then the bus is a net exporter of power; if pi < 0 then
the bus is a net importer of power. Note that pi is only used to
organize the presentation of the equations and is not an explicit
optimization variable. Second, each generator must dispatch
within its available power
0 ≤ di,s ≤ Di,s

∀ generators .

∀ ℓ = 1, . . . , L.

∀ i = 1, . . . , N,

θ0 = 0.

(19)

The first equation ensures no branch overloading (note that it is
sparse, inheriting the sparsity of K), the second equation is KCL
and in the final equation the phase angle is fixed at the reference
bus, which removes an unnecessary degree of freedom. Here
and in the following the pi are used as a short-hand notation
according to equation (15).
The Pure Angle formulation is used in the free software tools
MATPOWER [20] and PYPOWER [31]; it is therefore used as
the benchmark implementation against which we compare all
other formulations in Section 5.

(16)

(17)

It is sometimes desirable to limit the magnitude of the voltage angle differences θℓ across the branches, to maintain the
sin θℓ ∼ θℓ approximation and avoid voltage stability problems
[30]. Since θℓ = xℓ fℓ , this constraint has the same form as
the loading limit constraint (17), so we do not consider it further. Note that the load at each bus li , specific costs ci,s , generation upper limits Di,s , branch loading limits Fℓ and branch
reactances xℓ are all exogenous data inputs and not subject to
optimization in the considerations here. In all cases here the
network is assumed to be connected and only a single time point
is considered. Extensions are discussed in the next section.
Finally active power flows on each branch fℓ are determined
by the pi and the auxiliary variables za through the constraints
fℓ ≡ fℓ (pi , za )

Λi j θ j

j

Third, the real power flows must remain within the loading limits of the lines
| fℓ | ≤ Fℓ

X

3.2. Angle+Flow formulation
For the Angle+Flow formulation of the LOPF the flows fℓ
are introduced as explicit optimization variables and the voltage angles are retained as auxiliary variables. Hence we have
to solve the optimization problem (14) with N auxiliary variables, {za } = {θi } subject to the constraints (17) and (16) and the
network equations
X
fℓ =
(BK T )ℓi θi
∀ ℓ = 1, . . . , L,
i

(18)

pi =

X

Kiℓ fℓ

∀ i = 1, . . . , N,

ℓ

The different formulations of the network equations presented
in Section 2 give rise to different formulations of the linear OPF.

θ0 = 0.
4

(20)

The introduction of additional optimization variables fℓ might
appear to be redundant and unnecessary, but it will be shown
to cause a significant speed-up in some cases. This is because
modern solvers have sophisticated algorithms to ‘pre-solve’ solutions and remove redundancy that may not be obvious.
This formulation has been used in the literature, for example
in [32].

3.6. Pure Cycle formulation
The Cycle formulation of the linear load flow problem introduced in Section (2.4) leads to new formulations of the LOPF.
In the Pure Cycle formulation we solve the optimization problem (13) by adding L − N + 1 auxiliary variables {za } = {hc } for
the cycle flows subject to the constraints (16) and
X
X
T ℓi pi +
Cℓc hc ≤ Fℓ
∀ ℓ = 1, . . . , L,

3.3. Pure PTDF formulation
In the Pure PTDF formulation no auxiliary variables are used
such that the optimization problem is given by (13) subject to
the constraints (16) and
X
PT DFℓ,i pi ≤ Fℓ
∀ ℓ = 1, . . . , L.

T ℓi pi +

X
c′

i


Cℓc′ hc′ = 0

pi = 0.

(24)

i

pi = 0.

(21)

If L < 2N, which is typically true for power networks, this involves both fewer variables and fewer constraints than the Pure
Angle formulation. However, because for some lines the matrix
T ℓi may have many entries, the constraints can only be considered semi-sparse.
3.7. Cycle+Flow formulation
In the Cycle+Flow formulation we add auxiliary variables
{za } = {hc } and include the flow variables fℓ as explicit optimization variables. The optimization problem is then given by
(14) subject to the constraints (17) and (16) and the network
equations
X
X
fℓ =
T ℓi pi +
Cℓc hc
∀ ℓ = 1, . . . , L,

3.4. PTDF+Flow formulation
The PTDF+Flow formulation does not use any auxiliary
variables, but keeps the flows as explicit optimization variables.
Hence we have to solve the optimization problem (14) subject
to the constraints (17) and (16) and the network equations
X
fℓ =
PT DFℓi pi
∀ ℓ = 1, . . . , L,

i

Cℓc xℓ fℓ = 0

X

pi = 0.

c

∀ c = 1, . . . , L − N + 1,
(25)

i

4. Extensions to LOPF

pi = 0.

(22)

In this section we briefly sketch some extensions of the LOPF
problem to related problems for which the methodology also
applies.

i

This formalism was used in [16, 17].
3.5. Kirchhoff formulation
The Kirchhoff formulation is a formulation of the LOPF
which only requires the flow variables fℓ and introduces no additional auxiliary variables. The optimization problem is given
by (14) subject to the constraints (17) and (16) and the network
equations
X
Kiℓ fℓ = pi
∀ ℓ = 1, . . . , L,

4.1. Multi-period optimization
Inter-temporal aspects of optimal power flow, such as the operation of storage units or power plant unit commitment, can be
considered using multi-period OPF [6, 34]. For periods labeled
t with weighting πt the objective function becomes


X


 πt ci,s di,s,t  .
min
(26)
{di,s,t },{za,t },{ fℓ,t }

ℓ

Cℓc xℓ fℓ = 0

X
ℓ

i

X

X

∀ c = 1, . . . , L − N + 1,
X

This formulation minimizes the number of optimization variables, but suffers from the fact that the matrix PT DF is dense.
This generates a large number of dense inequalities, which can
be slow to process for large problems and may make the feasible space complicated by introducing lots of interdependencies
between the variables. This formulation has been used in the
literature in, for example, [33]. One advantage of this formulation is that the constraints are independent for each line, so
that the constraints can also be limited to subsets of lines. This
is useful when it is known in advance which lines are typically
constraining.

X

Cℓc xℓ

ℓ

i

X

c

i

X

∀ c = 1, . . . , L − N + 1.

i,s,t

(23)

The network flow constraints repeat for each period t.
Storage introduces inter-temporal constraints that ensure that
the storage state of charge soci,s,t stays below the maximum
energy storage capacity S OCi,s :

ℓ

This method implements the Kirchhoff circuit laws directly
on the flow variables. It has both a small number of variables
and extremely sparse constraints. As discussed in the introduction, this formulation was used in [26] and also introduced
recently for optimal transmission switching [27].

soci,s,t = soci,s,t−1 + η1 di,s,t,charge − η−1
2 di,s,t,discharge
0 ≤ soci,s,t ≤ S OCi,s
∀ i, s, t
(27)
5

The efficiencies η1 , η2 determine the losses during charging and
discharging, respectively.

a linear solver (here we use the commercial software Gurobi
[38]). The solver is then run using different algorithms for the
linear program (primal and dual simplex, interior point) and
the total solving time averaged over multiple runs is compared.
Only Gurobi’s solving time is presented, so that the results are
independent of the program used to generate the optimization
problem. The total solving time includes reading in the .lp file,
pre-solving the matrix system and the solution algorithm. A
computer system with 20 Intel Xeon E5-2650 cores @ 2.30GHz
each and 128 GB RAM was used for each benchmark.

4.2. Generation investment optimization
For generation investment optimization, the power plant capacities Di,s are promoted from exogenous parameters to optimization variables with capital costs Ci,s [34]. The objective
function becomes


X
X

 Ci,s Di,s +
min
πt ci,s di,s,t  .
{Di,s },{di,s,t },{za,t },{ fℓ,t }
i,s

5.1. Problem preparation
Seven different network topologies are considered. case118,
case300, case1354pegase, case1951rte, case2383wp and
case2869pegase are taken from the MATPOWER software
package [20] test cases (the IEEE standard cases as well as
snapshots from the French TSO RTE and European networks
[39]). In addition the open data SciGRID model of Germany’s
transmission network [40] is also tested, which has 585 buses
and 948 branches.
Only large networks were considered, because large problems represent the main target of efforts to improve computational speed. For the same reason, all networks were tested
for multi-period optimization with 24 hours represented in each
problem, which would be typical for short-term storage optimization or a unit commitment problem. Large problems also
ensure that no small one-off delays can significantly affect the
timing.
Each test grid only has a single snapshot of the load. This was
extended to 24 hours by subtracting a small fraction of normally
distributed random noise ε ∼ N(0, 0.2)

i,s,t

The optimization is carried out over multiple periods t representing different demand and weather conditions, which makes
such problems computationally challenging.
For investment optimization it is common to approximate the
line outage contingency constraints by a blanket factor, e.g.
limiting loading to 70% of thermal limits, to reduce the computationally complexity [9, 33, 35, 36].
4.3. Security-Constrained LOPF
In Security-Constrained LOPF (SCLOPF) line outages are
modelled explicitly. It is required that no lines become overloaded if there is an outage of any branches in a critical subset
[6].
SCLOPF can be implemented either by adding to the LOPF
problem copies of all the network variables and constraints for
networks without the critical branches, or by using Line Outage
Distribution Factors (LODFs).
In the LODF formalism, for each branch k which is critical,
the following set of constraints are added to the LOPF
| fℓ(k) |

= | fℓ + LODFℓ,k fk | ≤ Fℓ

∀ℓ , k

li,t = li (1 − |εi,t |),

(28)

(29)

to ensure that the problem remained feasible and the solver was
unable to reduce the problem from 24 identical problems to a
single one.
The configuration of the generation was varied in three different ‘modes’:

Here fℓ , fk are the flows before the outage and fℓ(k) is the flow
on ℓ after the outage of branch k. The flows before and after the
outage are related linearly by the LODF matrix, which can also
be computed efficiently using cycle flows [25].
In the first version of SCLOPF with copies of the network
constraints with outages, it is expected that all the benefits of
the cycle methods are preserved. In the LODF formalism the
density of the LOPF matrix may blunt the benefits of a sparse
formulation. The trade-offs between these issues will be examined in a forthcoming paper.

• p: (plain): Only the conventional generators of the model
are available. There is no inter-temporal linkage between
the snapshots.
• r: Compared to p, variable renewable generators are added
to every single bus to represent decentralized generation.
The time series of the power availability of the renewable
generators are taken at random from wind and time series
for Germany for the year 2011 generated using the Aarhus
Renewable Energy Atlas [41]. The renewable generators
may be curtailed such that they correspond to dispatchable generators with no variable costs. There is no intertemporal linkage between the snapshots.

5. Results
In this section we compare the computational performance
of the different formulations of the LOPF problem introduced
in Section 3 for various different test grids. All LOPF formulations are implemented in ‘Python for Power System Analysis’
(PyPSA) [37], a free software tool developed at the Frankfurt
Institute for Advanced Studies (FIAS). The formulation can be
changed simply by passing a different argument ‘formulation’
to the LOPF function. PyPSA is used to generate linear program files (in CPLEX’s .lp format), which are then passed to

• rs: Compared to r, storage units with a power capacity of a
third of the nodal mean load are added to the fifteen buses
with the highest average load. They provide an energy capacity of 6 hours at full power capacity and link the snapshots. More than 15 storage units made the computation
times intractable.
6

Table 3: LOPF speed-up versus the Pure Angle formulation (> 1 means faster), best formulation marked green, worst marked red

Avg. solution time
(24 periods)
Pure Angle [s]
mode

case

p

case118
case300
case1354pegase
case1951rte
case2383wp
case2869pegase
scigrid
case118
case300
case1354pegase
case1951rte
case2383wp
case2869pegase
scigrid
case118
case300
case1354pegase
case1951rte
case2383wp
case2869pegase
scigrid

r

rs

350

0.20
0.45
1.92
3.21
9.17
14.94
2.01
0.25
0.77
7.58
11.96
65.17
51.83
3.60
0.26
0.77
7.45
11.91
60.73
52.88
7.26

1.13
1.00
1.07
0.22
0.75
2.19
1.44
0.99
1.12
1.38
0.57
3.40
0.83
1.62
0.99
1.11
1.35
0.58
3.22
0.85
2.70

0.24
0.27
0.10
0.14
0.27
0.30
0.10
0.12
0.11
0.06
0.05
0.13
0.06
0.06
0.13
0.11
0.06
0.05
0.14
0.07
0.12

Step

1.27
1.12
0.99
1.30
1.43
2.15
1.60
1.22
1.37
2.55
2.70
4.31
3.60
2.44
1.24
1.38
2.42
2.62
4.12
3.61
4.14

Cycle+
Flow

0.76
0.60
0.23
0.32
0.42
0.41
0.57
0.58
0.54
0.42
0.46
1.13
0.43
0.75
0.61
0.55
0.42
0.46
1.10
0.45
1.33

0.98
0.67
0.43
0.55
0.35
0.85
1.08
0.88
0.73
0.87
0.93
1.55
1.18
1.14
0.90
0.73
0.89
0.90
1.44
1.20
2.03

Cycle+Flow

Formulation

250

0.53
0.59
0.17
0.27
0.44
0.52
0.19
0.23
0.20
0.10
0.09
0.24
0.10
0.12
0.23
0.19
0.10
0.09
0.25
0.11
0.25

Pure
Cycle

Kirchhoff

read
presolve
solve

300

Duration / s

Speed-up compared to Pure Angle
Angle+
Pure PTDF+
Flow PTDF
Flow Kirchhoff

200
150
100

Angle+Flow
Pure Cycle
Pure Angle

50

PTDF+Flow

0

Pure PTDF

hoff le+Flow le+Flow e Angle e Cycle F+Flow e PTDF
Pur
Pur
Pur
Cyc
Ang
PTD

Kirch

Method
interior point
dual simplex
0.0

Formulation

0.2

0.4

0.6

0.8

1.0

Fraction of instances

Figure 1: The average duration for each formulation in mode ‘rs’, broken down
into the time to read the .lp file, pre-solve the matrix system and solve the
problem. The vertical black lines indicate 95% confidence intervals.

Figure 2: The fastest solution algorithms for each formulation taken over all
modes, cases and instances.

were investigated, since the generation of a single of their lp
files took up to 6 hours. It was checked that all formulations
gave identical results for the same problem, which is to be expected given that the formulations were shown in Sections 2
and 3 to be mathematically equivalent.
The code for running the simulations with Snakemake [42]
is freely available online at [43].

For each network, mode and formulation, Gurobi was run
in parallel using the primal simplex, the dual simplex and the
interior point algorithms. The simplex algorithms received one
dedicated core each (they do not work on multiple cores), while
the interior point algorithm ran on two dedicated cores. The
fastest solution was always taken. For each case and mode
combination, 100 instances (i.e. different randomizations of the
load and selections of the renewable time series) were generated and timed for all formulations except for the Pure PTDF
and the PTDF+Flow formulations. For these only 10 instances

5.2. Comparing average speed-up of the different formulations
In Table 3 the speed-up for the different formulations of the
LOPF for the different problems (averaged over 100 instances)
7

Mode = p

Mode = r

Mode = rs

Pure Angle

Formulation

Angle+Flow
Pure PTDF
PTDF+Flow
Kirchhoff
Pure Cycle
Cycle+Flow
0

2

4

6

8

10

12

0

2

Speed-up compared to Pure Angle

4

6

8

10

Speed-up compared to Pure Angle

12

0

2

4

6

8

10

12

Speed-up compared to Pure Angle

Figure 3: Speed-up of LOPF compared to Pure Angle for total time (read + pre-solve + solve). The violin plots give the distribution of speed-ups, while the box
plots mark the 25% and 75% quantiles and the dot marks the median.

than the Pure Angle formulation.
The Cycle+Flow formulation is a factor 0.7 slower than the
Pure Angle formulation in mode ‘p’, but faster by factor 1.04
in mode ‘r’ and 1.16 in mode ‘rs’. The Pure Cycle formulation
is on average slower in all modes. In particular cases the Pure
Cycle formulation is faster than Pure Angle, but in each of those
cases Cycle+Flow is faster.
The PTDF methods are slowest of all, with the Pure PTDF
being the slowest. This is primarily driven by the size of the
linear programming problem file, which takes a long time to
read in by the solver. The size of the file is driven by the dense
constraints coming from the dense PTDF matrix. For large networks with many periods, the file sizes were many gigabytes,
leading to problems writing them and storing them. Once the
.lp problem is read in and pre-solved, the solving time is in
some cases faster than some of the other methods, a result also
reported by [16, 17]. This can be seen clearly in the timing
breakdown in Figure 1: the average time to solve the problem
for PTDF+Flow is comparable to the Pure Angle formulation
once it has been read in and presolved, but the presolving and
reading in add considerably to the total problem duration. Even
comparing just the ‘solve’ step, Kirchhoff is still faster by a
wide margin.
In Figure 2 the fastest solution algorithms for the linear problems (primal simplex, dual simplex or interior point) are plotted for each formulation. The Kirchhoff, Cycle+Flow and Angle+Flow formulations solve in general faster with the interior
point algorithm; the PTDF formulations are faster with the dual
simplex. In no cases was the primal simplex faster.

Formulation = Kirchhoff
Mode

case118

p
r
rs

case300

Cases

case1354pegase
case1951rte
case2383wp
case2869pegase
scigrid
0

1

2

3

4

5

6

7

8

Speed-up compared to Pure Angle

Figure 4: Kirchhoff LOPF speed-up compared to Pure Angle for total time
(read + pre-solve + solve) per network case.

are shown, compared to the standard Pure Angle formulation.
The speed-up is defined by the time taken for the Pure Angle
formulation divided by the time taken for the formulation in
question. A speed-up above 1 means the formulation is faster.
The Kirchhoff formulation is the fastest in all cases where decentralized renewables are present in the network and the fastest
in all but two cases for the ‘plain’ mode, where the Angle+Flow
formulation is faster by a small margin. For the Kirchhoff formulation the speed-up factor averages 1.4 in mode ‘p’, 2.6 in
mode ‘r’ and 2.8 for mode ‘rs’. One reason the speed-up is
high with renewables is that the optimization has to weigh up
the dispatch at every single bus and their effects on the flows.
A sparser, less interdependent constraint set is a bigger advantage than in mode ‘p’, where only a few buses have controllable
generators. Inter-temporal storage introduces even more interdependences between variables, which again favours the sparse
formulations.
The Angle+Flow formulation is the next fastest, averaging a
speed improvement of 1.11 in mode ‘p’, 1.42 in mode ‘r’ and
1.54 in mode ‘rs’, despite the fact that there are more variables

5.3. Comparing specific speed-ups of the different formulations
The average speed-ups of the different formulations in the
different modes masks considerable variations, both between
the different network cases considered and within the instances
for each case. Figure 3 shows violin plots of all the instances
and all the cases for each mode and formulation combination,
while in Figure 4 the different cases can be seen more clearly
for the Kirchhoff formulation.
8

Formulation

Pure Angle

Kirchhoff
Angle+Flow
Cycle+Flow

4

Angle+Flow

Formulation

Speed-up compared to Pure Angle

5

3

2

Kirchhoff

Pure Cycle
1
Cycle+Flow
0
0

500

1000

1500

2000

2500

0

3000

5

10

15

20

25

30

Speed­up compared to Pure Angle

N

Figure 6: Speed-up of LOPF with capacity optimization compared to Pure
Angle for total time (read + pre-solve + solve).

Figure 5: Speed-up of LOPF compared to Pure Angle per buses, shown are the
mean values with 99% confidence interval and the result of a linear regression
of all values for the three fastest formulations in mode ‘r’.

Speed­up compared to Pure Angle

30

Consider the speed-up of the Kirchhoff formulation in mode
‘r’ as an example. The average speed-up is 2.6, but this masks
speed-ups for particular instances that range from a factor 0.7
(i.e. a 30% slow-down, for an instance of case118) to factor
20 (for an instance of case2383wp). Even within a particular
case there is significant variation for particular instances, ranging for case2383wp from 1.2 up to 20, although with a strong
clustering around the mean of 4.3.
In 3% of the instances the Kirchhoff formulation in mode
‘r’ is in fact slower than the Pure Angle formulation, and all
these instances are for the cases with a smaller number of buses,
case118 and case300. Figure 5 reveals that this is part of a
bigger trend: In the ‘r’ mode, the Kirchhoff formulation speedup grows with the size of the network, measured in terms of the
number of buses. The increase in speed-up with network size
also holds true for the ‘rs’ mode.
Of all the cases, instances and modes, the Kirchhoff formulation was fastest in 79.3% of the problems, while the Angle+Flow was fastest in 12.5%, Angle in 7.5% and Cycle+Flow
in 0.7%. If we restrict to the modes ‘r’ and ‘rs’, then the Kirchhoff is fastest in 91.6% of the problems, Angle+Flow in 5.9%,
Angle in 2.1% and Cycle+Flow in 0.4%.
The high level of variation of the speed-up for different cases
and instances (reflecting different load and renewable profiles)
means that in practice it may be advisable, given a particular
problem, to run several formulations in parallel on a machine
with multiple cores and take the solution from whichever solves
first, much as linear program solvers like Gurobi can be configured to run multiple solution algorithms in parallel, given the
difficulty in predicting the runtime in advance.

Formulation
Kirchhoff
Angle+Flow
Cycle+Flow

25
20
15
10
5
0
0

500

1000

1500

2000

2500

3000

N

Figure 7: Speed-up of LOPF with capacity optimization compared to Pure
Angle per buses. Shown are the mean values with 99% confidence interval and
the result of a linear regression of all values.

of 104 seconds (just under 3 hours) was set on all calculations, since some instances were failing to converge in a reasonable time. In the Pure Angle formulation this limit was hit
for some of the larger cases, breaching the limit in 55% of the
instances for case2383wp, 18% for case2869pegase, and 1%
for each of case1354pegase, case1951rte and scigrid. The Angle+Flow formulation breached the limit in 25% of instances
for case2383wp. For the cycle-based formulations all instances
solved within the time limit. The PTDF method was excluded
from this comparison given its slowness in previous results.
The results for the seven test cases are presented in Table
4 and graphed in Figure 6. Overall the speed-up factors are
higher than for the LOPF without capacity optimization. Once
again the Kirchhoff method is the fastest in most cases, averaging 12 times faster than Pure Angle over all cases, rising to
25 times faster for the biggest case case2869pegase. An individual instance of case1354pegase solved 213 times faster. The
Cycle+Flow formulation performed better than it did for the
LOPF without capacity optimization, solving on average 7.4
times faster than Pure Angle and faster than Angle+Flow in
most cases. The Cycle+Flow formulation was on average the

5.4. Generation investment optimization
In a final set of computations, the capacities of all generators and storage units were included in the optimization following Section 4.2 for the case ‘rs’ with renewables and storage, optimized over 24 time periods. With capacity optimization, the problems take much longer to solve and a time-out
9

Table 4: Speed-up of LOPF with capacity optimization compared to the Pure Angle formulation, best formulation marked green

formulation
case118
case300
case1354pegase
case1951rte
case2383wp
case2869pegase
scigrid

Mean solution
time: Pure
Angle [s]

Speed-up compared to Pure Angle
Angle+
Pure Cycle+
Flow Kirchhoff Cycle
Flow

1.00
13.60
539.93
914.55
7815.68
5172.15
347.72

0.89
5.25
3.01
3.10
1.61
2.23
2.73

fastest for the scigrid network, with an individual instance of
the scigrid network finishing 388 times faster than Pure Angle.
Once again there is a trend for the speed-up to be higher with
the Kirchhoff method the more nodes there are in the network,
see Figure 7. This will benefit exactly the cases which take a
long time to solve.
In these calculations only 24 time periods were included for
the optimization. In general more periods are necessary to account for different weather conditions, which pushes computation times from hours to days. It is expected that the Kirchhoff method will thus make possible calculations that were not
even possible with the Pure Angle formulation. For example,
in [44] some of the authors considered the joint optimisation
of generation, storage and transmission capacities for networks
with 362 nodes over 2920 representative time periods. With
the Kirchhoff formulation, the problems solved within an average of 10.2 hours; with the Angle formulation none of the
optimisations converged within four days, at which point the
calculations were broken off.

1.15
5.70
12.97
9.39
21.47
24.94
10.04

0.74
2.37
2.05
1.73
5.91
1.36
3.97

0.84
3.53
4.76
4.36
20.59
7.28
10.26

of distributed renewable energy. In the Kirchhoff formulation
the LOPF can solve up to 20 times faster for particular cases,
while averaging a speed-up of approx. 3 for the networks considered in this paper. In 92% of the problems with distributed
generation, the Kirchhoff formulation was the fastest formulation. If generation capacities are also optimized, the average
speed-up rises to a factor of 12, reaching up to factor 213 in
a particular instance. In a small number of specific cases the
Cycle formulation was the fastest.
Future further applications of cycle-based formulations could
include the transmission expansion problem, stochastic optimization and the application of graph decomposition to the full
non-linear optimal power flow problem.
Acknowledgments
We gratefully acknowledge support from the German Federal Ministry of Education and Research (BMBF grant
nos. 03SF0472A-E) and the Helmholtz Association (joint initiative ‘Energy System 2050 – a contribution of the research
field energy’ and grant no. VH-NG-1025 to D.W.). The work
of H. R. was supported in part by the IMPRS Physics of Biological and Complex Systems, Göttingen.

6. Conclusion
In this paper a new formulation of the linear optimal power
flow (LOPF) problem, the Cycle formulation, has been presented. The new formulation uses a graph-theoretic decomposition of the network into a spanning tree and closed cycles; this
results in both fewer decision variables and fewer constraints in
the LOPF problem.
A comprehensive study of the numerical performance of different LOPF formulations has been provided by applying them
to computationally challenging problems such as multi-period
LOPF with storage dispatch and generation capacity expansion.
While for many problems the new Cycle formulation was faster
than the traditional LOPF formulation in terms of voltage angle variables, it was in most (but not all) cases out-performed
by another cycle-based formulation, the Kirchhoff formulation.
The Kirchhoff formulation implements the two Kirchhoff circuit laws directly on the flow variables, resulting in performance which is considerably faster than the standard Angle formulation used in today’s power system tools. Both cycle-based
formulations show the greatest speed-up in very large networks
with decentralized generation, which are exactly the kinds of
problems that are becoming increasingly important with the rise

References
[1] F. Capitanescu, Critical review of recent advances and further developments needed in AC optimal power flow, Electric Power Systems Research 136 (2016) 57 – 68. doi:10.1016/j.epsr.2016.02.008 .
[2] K. Purchala, L. Meeus, D. V. Dommelen, R. Belmans, Usefulness
of DC power flow for active power flow analysis, in: IEEE Power
Engineering Society General Meeting, 2005, pp. 454–459 Vol. 1.
doi:10.1109/PES.2005.1489581.
[3] B. Stott, J. Jardim, O. Alsac, DC power flow revisited, IEEE Trans. Power
Syst. 24 (3) (2009) 1290. doi:10.1109/TPWRS.2009.2021235.
[4] F. C. Schweppe, M. C. Caramanis, R. D. Tabors, R. E. Bohn, Spot Pricing
of Electricity, Norwell, MA: Kluwer, 1988.
[5] B. Burstedde, Essays on the economic of congestion management - theory and model-based analysis for Central Western Europe, Ph.D. thesis,
Universität zu Köln (2012).
[6] A. J. Wood, B. F. Wollenberg, G. B. Sheblé, Power Generation, Operation
and Control, John Wiley & Sons, New York, 2014.
[7] F. Capitanescu, J. M. Ramos, P. Panciatici, D. Kirschen, A. M.
Marcolini, L. Platbrood, L. Wehenkel, State-of-the-art, challenges,
and future trends in security constrained optimal power flow,
Electric Power Systems Research 81 (8) (2011) 1731 – 1741.
doi:10.1016/j.epsr.2011.04.003 .

10

URL https://github.com/rwl/PYPOWER
[32] A. Sharifnia, H. Z. Aashtiani, Transmission network planning: A method for synthesis
IEEE Transactions on Power Apparatus and Systems PAS-104 (8) (1985)
2025–2034. doi:10.1109/TPAS.1985.318777 .
URL https://doi.org/10.1109/TPAS.1985.318777
[33] Hagspiel, S., Jägemann, C., Lindenburger, D., Brown, T., Cherevatskiy,
S., Tröster, E., Cost-optimal power system extension under flow-based
market coupling, Energy 66 (2014) 654–666.
[34] J. A. Taylor, Convex Optimization of Power Systems, Cambridge University Press, 2015.
[35] Deutsche Energie-Agentur,
DENA-Netzstudie II, online at
http://www.dena.de/publikationen/energiesysteme (2010).
[36] Brown, T., Schierhorn, P., Tröster, E., Ackermann, T., Optimising the European transmission system for 77% renewable electricity by 2030, IET
Renewable Power Generation 10 (1) (2016) 3–9.
[37] T.
Brown,
J.
Hörsch,
D.
Schlachtberger,
Pypsa: Python for power system analysis, Journal of Open Research
SoftwarearXiv:1707.09913, doi:10.5334/jors.188.
URL https://doi.org/10.5334/jors.188
[38] Gurobi Optimization Inc., Gurobi optimizer reference manual (2016).
URL http://www.gurobi.com
[39] C. Josz,
S. Fliscounakis,
J. Maeght,
,
P. Panciatici,
Data in MATPOWER and QCQP Format: iTesla, RTE Snapshots, and PEGASE,
ArXiv e-printsarXiv:1603.01533.
URL https://arxiv.org/abs/1603.01533
[40] C.
Matke,
W.
Medjroubi,
D.
Kleinhans,
SciGRID - An Open Source Reference Model for the European Transmission Networ
(Jul. 2016).
URL http://www.scigrid.de
[41] G. B. Andresen, A. A. Søndergaard, M. Greiner, Validation of danish wind time series from a new global renewable energy atlas for
energy system analysis, Energy 93, Part 1 (2015) 1074 – 1088.
doi:http://dx.doi.org/10.1016/j.energy.2015.09.071.
[42] J. Köster, S. Rahmann, Snakemake:
a scalable bioinformatics workflow engine, Bioinformatics 28 (19) (2012) 2520.
doi:10.1093/bioinformatics/bts480 .
[43] J. Hörsch, Benchmark LOPF Code (2017).
URL https://github.com/FRESNA/benchmark-lopf
[44] J. Hörsch, T. Brown, The role of spatial scale in joint optimisations of generation and
in: Proceedings of 14th International Conference on the European Energy
Market (EEM 2017), 2017. doi:10.1109/EEM.2017.7982024.
URL https://doi.org/10.1109/EEM.2017.7982024

[8] G. Latorre, R. D. Cruz, J. M. Areiza, A. Villegas, Classification of publications and models on transmission expansion planning, IEEE Trans. Power App. Syst. 18 (2) (2003) 938–946.
doi:{10.1109/TPWRS.2003.811168}.
[9] S. Lumbreras, A. Ramos, F. Banez-Chicharro, Optimal transmission network expansion planning in real-sized power systems with high renewable penetration, Electric Power Systems Research 149 (2017) 76 – 88.
doi:10.1016/j.epsr.2017.04.020.
[10] T. Pesch, H.-J. Allelein, J.-F. Hake, Impacts of the transformation of the
german energy system on the transmission grid, Eur. Phys. J. Special Topics 223 (2014) 2561. doi:10.1140/epjst/e2014-02214-y.
[11] A. J. Conejo, J. A. Aguado, Multi-area coordinated decentralized DC optimal power flow, IEEE Transactions on Power Systems 13 (4) (1998)
1272–1278. doi:10.1109/59.736264.
[12] A. G. Bakirtzis, P. N. Biskas, A decentralized solution to the DC-OPF
of interconnected power systems, IEEE Transactions on Power Systems
18 (3) (2003) 1007–1013. doi:10.1109/TPWRS.2003.814853.
[13] O. Mgel, G. Andersson, J. L. Mathieu, Reducing the computational
effort of stochastic multi-period DC optimal power flow with storage,
in: 2016 Power Systems Computation Conference, 2016, pp. 1–7.
doi:10.1109/PSCC.2016.7541033.
[14] H. Yamin, K. Al-Tallaq, S. Shahidehpour, New approach for dynamic optimal power flow using Benders decomposition in a deregulated power
market, Electric Power Systems Research 65 (2) (2003) 101 – 107.
doi:10.1016/S0378-7796(02)00224-9.
[15] Y. Wang, S. Wang, L. Wu, Distributed optimization approaches for
emerging power systems operation: A review, Electric Power Systems
Research 144 (2017) 127 – 135. doi:10.1016/j.epsr.2016.11.025.
[16] V. Hinojosa, J. Velsquez, Improving the mathematical formulation
of security-constrained generation capacity expansion planning using
power transmission distribution factors and line outage distribution
factors, Electric Power Systems Research 140 (2016) 391 – 400.
doi:10.1016/j.epsr.2016.06.002.
[17] Stochastic security-constrained generation expansion planning based on
linear distribution factors, Electric Power Systems Research 140 (2016)
139 – 146. doi:10.1016/j.epsr.2016.06.028.
[18] A. Minot, Y. M. Lu, N. Li, A parallel primal-dual interior-point method
for DC optimal power flow, in: 2016 Power Systems Computation Conference (PSCC), 2016, pp. 1–7. doi:10.1109/PSCC.2016.7540826 .
[19] J. J. Grainger, W. D. Stevenson Jr., Power System Analysis, McGraw-Hill,
New York, 1994.
[20] R. D. Zimmerman, C. E. Murillo-Sanchez, R. J. Thomas, MATPOWER:
Steady-state operations, planning and analysis tools for power systems research and education, IEEE Trans. Power Syst. 26 (2011) 12.
doi:10.1109/TPWRS.2010.2051168.
[21] DIgSILENT GmbH, PowerFactory, http://digsilent.de/ (2016).
[22] PowerWorld
Corporation,
PowerWorld,
https://www.powerworld.com/ (2017).
[23] F. Milano, An open source power system analysis toolbox, IEEE
Transactions on Power Systems 20 (3) (2005) 1199–1206.
doi:10.1109/TPWRS.2005.851911.
URL https://doi.org/10.1109/TPWRS.2005.851911
[24] H. Ronellenfitsch, M. Timme, D. Witthaut, A dual method for computing
power transfer distribution factors, IEEE Trans. Power Syst. 32 (2) (2016)
1007–1015. doi:10.1109/TPWRS.2016.2589464 .
[25] H. Ronellenfitsch, D. Manik, J. Hörsch, T. Brown, D. Witthaut, Dual theory of transmission line outages, IEEE Transactions on Power Systems
PP (99). arXiv:1606.07276, doi:10.1109/TPWRS.2017.2658022 .
[26] M. F. Carvalho, S. Soares, T. Ohishi, Optimal active power dispatch
by network flow approach, IEEE Transactions on Power Systems 3 (4)
(1988) 1640–1647. doi:10.1109/59.192975.
[27] B. Kocuk, H. Jeon, S. S. Dey, J. Linderoth, J. Luedtke, X. A. Sun, A
Cycle-Based Formulation and Valid Inequalities for DC Power Transmission Problems with Switching, Operations Research 64 (4) (2016) 922–
938. doi:10.1287/opre.2015.1471.
[28] R. Diestel, Graph Theory, Springer, New York, 2010.
[29] M. E. J. Newman, Networks – An Introduction, Oxford University Press,
Oxford, 2010.
[30] P. Kundur, N. Balu, M. Lauby, Power system stability and control, EPRI
power system engineering series, McGraw-Hill, 1994.
[31] R. Lincoln, PYPOWER Version 5.0, 2015.

11

