Approximation Algorithms
description
Transcript of Approximation Algorithms
![Page 1: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/1.jpg)
1
EPIT 2007
Approximation Algorithms
![Page 2: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/2.jpg)
2
EPIT 2007
Independent Set
Instance: G=(V,E), k N
Question: Is there an independent set of size k in G (i.e. a subset V’ V such that no two vertices in V’ are joined by
an edge) ?
This problem is NP-Complete
Instance: G=(V,E)
Question: Find an independent set of maximal cardinality
NP-hard
![Page 3: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/3.jpg)
3
EPIT 2007
Definition of Approximation Algorithms
Find a «good solution» in polynomial-time
What is a good solution?
Let S be a solution given by a heuristic
Let S* be an optimal solution
The aim: S/S*≈1
![Page 4: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/4.jpg)
4
EPIT 2007
Another problem: vertex cover
Instance: G=(V,E), k N
Question:
Find a set cover of edges with minimal size (i.e. a subset V’ V such that, for each edge {u,v} E, at least one of u and v belongs to
V’).
![Page 5: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/5.jpg)
5
EPIT 2007
These two problems seem to be equivalent independent set = vertex cover and vertex cover = independent set
Max independent set ≈ Min vertex cover
An existence of an independent set of size k <=> an existence of the vertex cover of size n-k.
![Page 6: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/6.jpg)
6
EPIT 2007
In fact these two problems are very different in term of approximability:
there exists an algorithm for the vertex cover which gives a solution S to a factor two of a
optimal solution S* at most => 2 S/S*
No constant ratio exists for the independent set
![Page 7: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/7.jpg)
7
EPIT 2007
Definition
An algorithm A is (n)-approximated
If Max (S/S*,S*/S) (n)
For all instances of size n of the problem where S is the solution given by A and S* an
optimal solution.
![Page 8: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/8.jpg)
8
EPIT 2007
FPTAS and PTAS
Q PTAS:
>0, Asuch that A is (1+)-approximated.
Moreover, if the complexity of A is polynomial in 1/, then Q FPTAS.
![Page 9: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/9.jpg)
9
EPIT 2007
Some problems of PTAS
Cover of points by minimum number of circles of radius r
Knapsack problem
![Page 10: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/10.jpg)
10
EPIT 2007
APX and no-APX
Q APX:
R, A such that A is a -approximation algorithm
Q no-APX :
R, there exists no A such that A is -approximation algorithm
![Page 11: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/11.jpg)
11
EPIT 2007
Some problems APX and no-APX
Vertex cover of a graph is APX
Travelling salesman problem is APX
Independent set of maximum cardinality is no-APX
Vertices coloring is no-APX
![Page 12: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/12.jpg)
12
EPIT 2007
The world if N NP
P
PTAS APX
No-APX
FPTAS
![Page 13: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/13.jpg)
13
EPIT 2007
An absolute approximation Algorithm
The edge coloring of a graph:
It exists a 4/3-approximated algorithm
Vizing’s theorem :
It is always possible to color the edges with (G)+1 colors
![Page 14: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/14.jpg)
14
EPIT 2007
An absolute approximation Algorithm
This result is the best possible
Indeed : the problem to know if a graph
with (G)=3 can be colored with 3 colors
is NP-complete.
It is easy to see that an algorithm
-approximated with <4/3 permits
to solve this problem.
![Page 15: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/15.jpg)
15
EPIT 2007
An absolute approximation Algorithm
Indeed if the solution is c<4 then c* ≤3,
and the graph can be colored with 3 colors.
If the solution is c4,
since c/c*<4/3 we have c*>3 and the graph cannot be colored with 3 colors.
![Page 16: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/16.jpg)
16
EPIT 2007
The problem of the k-center
Instance: Let V be a set of n sites, D be a matrix where dij is the distance between site i and site j,
and let kN.
Problem : Find S V, |S|=k which minimizes maxiV(dist(i,S))
with dist(i,S)=minjS(dij)
![Page 17: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/17.jpg)
17
EPIT 2007
Remark
There exists no -approximated algorithm with <2.
Proof : If such an algorithm existed,
it could be used to solve the problem
of the existence of a dominating set of size k.
![Page 18: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/18.jpg)
18
EPIT 2007
Some definitions
We call Gd=(V,Ed) the graph where {i,j} Ed
if and only if d dij .
Let G=(V,E), we call G2=(V,E’) the graph such that {i,j} E’ if and only if
either {i,j} E
or k such that {i,k} E and {k,j} E.
![Page 19: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/19.jpg)
19
EPIT 2007
Here is a 2-approximated algorithm:
Sort the dij : d1 < d2 < … < dm ,
i :=0
Repeat
i := i+1 ; d := di
Construct Gd2
Find a maximal stable S of Gd2
until k |S|
Take S as solution
![Page 20: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/20.jpg)
20
EPIT 2007
Remark :
1. Let i0 be the value of the last i in the loop. Then all the sites are at distance at most
2di0 from S.
2. The optimal solution is at least di0.
Indeed Gd2 with d=di0-1, has a stable of
cardinality at least k+1.
![Page 21: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/21.jpg)
21
EPIT 2007
Conclusion
Thus the algorithm is a 2-approximated.
That is the best possible result.
![Page 22: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/22.jpg)
22
EPIT 2007
Most of the scheduling problems are NP-Hard
Take the following simple problem:
Instance:
Independent tasks (no precedence constraint), each task ti has a processing time pi
Question:
Scheduling these tasks on two processors while minimizing the length of the schedule
![Page 23: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/23.jpg)
23
EPIT 2007
This problem is NP-Hard (partition is a particular case).
But there exists a FPTAS
![Page 24: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/24.jpg)
24
EPIT 2007
A intermediate problem
Let be the sum problem: a list E of n integers, an integer t.
The goal is to find a sublist E’ E which the sum of the integers in E’ is maximum but less
than t
(Find E’ E, such that max(∑ iE’ i) t)
![Page 25: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/25.jpg)
25
EPIT 2007
A pseudo-polynomial-time algorithm
L0 = {0}
L1 = {0, e1 }
Li = Li-1 {x |y Li-1, x=y+ei, x t}
The solution is expressed as y*= max (Ln)
The complexity order of this algorithm is in
O (n * min(t,2n))
![Page 26: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/26.jpg)
26
EPIT 2007
How can we reduce the size of the lists?
The idea is to filter the list
Example. Suppose that the two integers 45 and 47 are in a list Li. The sum which we
would able to reach from 45 will be closed to their from 47.
Thus 45 will represent 47
![Page 27: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/27.jpg)
27
EPIT 2007
How do we reduce the size of the lists ?
Filtering (L, ) consists in suppressing all the integers y in L such that there exists
an integer z in L with y z (1- )y
Example:
L = {0, 1, 2, 4, 5, 11, 12, 20, 21, 23, 24, 25, 26} and =0.2
![Page 28: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/28.jpg)
28
EPIT 2007
How do we reduce the size of the lists ?
Filtering (L, ) consists in suppressing all the integers y in L such that there exists
an integer z in L with y z (1- )y
Example:
L = {0, 1, 2, 4, 5, 11, 12, 20, 21, 23, 24, 25, 26} and =0.2.
Then Filtering(L,)= {0,1,2, 4, 11, 20, 26}
![Page 29: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/29.jpg)
29
EPIT 2007
How do we reducethe size of the lists ?
We are given
the pseudo-polynomial algorithm,
and in each step we filter with =/n.
Let L’i be the intermediate lists.
Then the approximated solution is
y = max(L’n)
![Page 30: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/30.jpg)
30
EPIT 2007
The sizes of the lists are small
L’i = {0, z1 , z2 , … zm+1}
we have by construction :
zi/ zi-1 > 1/(1-) and t zm+1 and z1 1
Thus
t zm+1/z1 = i=2..m+1 zi/ zi-1 (1/(1- ) )m
![Page 31: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/31.jpg)
31
EPIT 2007
The sizes of the lists are small
Thus t (1/(1- ) )m
log (t) - m * log (1- )
Finally m < n log(t)/
(because - log(1-x)>x)
![Page 32: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/32.jpg)
32
EPIT 2007
The sizes of the lists are small
1. m < n log(t)/
2. the size of the lists is in O(m)
The algorithm becomes polynomial.
![Page 33: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/33.jpg)
33
EPIT 2007
The error is small
We can prove by induction that :
yLi , zL’i such that y z (1-)i y
![Page 34: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/34.jpg)
34
EPIT 2007
The error is small
We can prove by induction that :
yLi , zL’i such that y z (1-)i y
This result is true for i=n and y=y*
![Page 35: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/35.jpg)
35
EPIT 2007
The error is small
We can prove by induction that :
yLi , zL’i such that y z (1-)i y
This result is true for i=n and y=y*
zL’n z (1-)n y*
![Page 36: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/36.jpg)
36
EPIT 2007
The error is small
zL’n z (1-)n y* and y z
Conclusion:
y / y* (1-/n)n 1-
![Page 37: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/37.jpg)
37
EPIT 2007
Back to our problem
Let B be the sum of the processing time of all the tasks.
P1
P2
B/2
The solution S is B/2+
If pi becomes ei and t=B/2 : the solution S’ is B/2-
![Page 38: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/38.jpg)
38
EPIT 2007
Back to our problem
B/2
The solution S is B/2+ , S* is B/2+ with
If pi becomes ei and t=B/2 : the solution S’ is B/2- and the best solution S’* is B/2-
It suffices to note that S/S*<S’*/S’ to show that our problem is FPTAS
![Page 39: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/39.jpg)
39
EPIT 2007
A non-APX problem Instance: Some tasks with the same
processing times and some incompatibility constraints.
Question: Find a optimal schedule satisfing the incompatibility constraints.
Let G be the conflict graph where vertices represent tasks
a scheduling ≈ vertex coloring.
This problem is not APX
![Page 40: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/40.jpg)
40
EPIT 2007
An APX problem without PTAS
Instance: Let G=(V,A) be a d.a.g. with the chronological constraints and let m be the
number of processors
Question: Minimize the length of the schedule
Scheduling on a given number of processors
![Page 41: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/41.jpg)
41
EPIT 2007
No -approximated algorithm if <4/3
We are going to show that :
Even if the graph is bipartite and the duration of all the tasks is equal to 1, knowing whether the graph can be scheduled in time 3 is an NP-complete problem
The proof of this result suffices to conclude
![Page 42: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/42.jpg)
42
EPIT 2007
The proof
The problem of well-balanced independent set in bipartite graphs is NP-complete
Instance : G=(V1V2,E) a bipartite graph
Question : does there exist an independent set S in G such that |S|=|V1| and |V1|=|V2| and |V1S|= |V2S|?
![Page 43: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/43.jpg)
43
EPIT 2007
X with |X|=n
Y with |Y|=n
W with |W|=n/2
T with |T|=n/2
The edges of G Complete Graph
![Page 44: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/44.jpg)
44
EPIT 2007
X with |X|=n
Y with |Y|=n
W with |W|=n/2
T with |T|=n/2
Scheduling this DAG in three steps on n processors is equivalent to showing the existence of a well-balanced independent set in the graph G.
![Page 45: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/45.jpg)
45
EPIT 2007
X with |X|=n
T with |T|=n/2
W with |W|=n/2
Y with |Y|=n
Scheduling in 3 steps : no idle time
m=n
![Page 46: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/46.jpg)
46
EPIT 2007
X with |X|=n
T with |T|=n/2
W with |W|=n/2
Y with |Y|=n
Scheduling in 3 steps : no idle time
Step 1 : W and X1 ( X1 X, |X1|=n/2) must be executed.
m=n
![Page 47: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/47.jpg)
47
EPIT 2007
X with |X|=n
T with |T|=n/2
W with |W|=n/2
Y with |Y|=n
Scheduling in 3 steps : no idle time
Step 1 : W and X1 ( X1 X, |X1|=n/2) must be executed.
m=n
Step 3 : T and Y1 ( Y1 Y, |Y1|=n/2) must be executed.
![Page 48: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/48.jpg)
48
EPIT 2007
X with |X|=n
T with |T|=n/2
W with |W|=n/2
Y with |Y|=n
Scheduling in 3 steps : no idle time
Step 1 : W and X1 ( X1 X, |X1|=n/2) must be executed.
m=n
Step 3 : T and Y1 ( Y1 Y, |Y1|=n/2) must be executed.
Step 2 : X2 and Y2 ( |X2|=|Y2|=n/2 ) must be executed.
![Page 49: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/49.jpg)
49
EPIT 2007
X with |X|=n
T with |T|=n/2
W with |W|=n/2
Y with |Y|=n
Scheduling in 3 steps : no idle time
m=n
Step 2 : X2 and Y2 ( |X2|=|Y2|=n/2 ) must be executed.
X2 Y2 is a well balanced independent set in the graph G
![Page 50: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/50.jpg)
50
EPIT 2007
2-approximated list scheduling
Graham’s Theorem : all lists scheduling is a 2-approximation for this problem.
Proof: We can construct by induction a path in the d.a.g. such that at all the times, either a
task in the path is executing or all the processors are working.
![Page 51: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/51.jpg)
51
EPIT 2007
2-approximated list scheduling
construction of the path
Take as t1 one of the tasks finishing at the end of the scheduling, and take as tk any
predecessor of tk-1 which finishing last among all its predecessors.
The construction is achieved when we arrive at a source (task with no predecessor)
![Page 52: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/52.jpg)
52
EPIT 2007
2-approximated list scheduling
The sum of the times when all the processors are working is smaller than the duration of the optimal scheduling and the rest of the time is smaller than the longer of the path and so the
duration of the optimal scheduling.
This concludes the proof .
![Page 53: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/53.jpg)
53
EPIT 2007
Some remarks
We have seen that the constraints of incompatibility yield a very difficult problem
(non-APX) but the chronologic constraint yield an easier problem (often APX) but even polynomial if the number of processors is not
bounded .
![Page 54: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/54.jpg)
54
EPIT 2007
Other constraintsCommunication delays
It is reasonable to assume that two tasks executing on two different processors need to
comunicate and this takes a certain delay.
As a first approximation, we suppose that this delay is always equal to 1 like the duration of
each task.
![Page 55: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/55.jpg)
55
EPIT 2007
Communication delay : UET-UCT
When the number of processors is not bounded, the problem become APX and the
duplication techniques permit to reduce sensitively the complexity (Colin-Chretienne show that the problem remain polynomial).
Without duplication a lower bound of 7/6 has been found (Hoogeveen, Lenstra, Veltman).
![Page 56: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/56.jpg)
56
EPIT 2007
Communication delay : UET - UCT
Munier and Co have given a 4/3-approximated algorithm.
Their idea is to solve a linear problem which gives a solution smaller that the solution of the original problem. A rounding technique
permit to give a realistic solution.
![Page 57: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/57.jpg)
57
EPIT 2007
Communication delay: UET - UCT
i jcij
If di is the starting time of i: dj di + 1 + cij
where cij is equal to 0 only for one successor task of ti.The problem then amounts to giving each arc a value cij equal to 0 or 1, with the constraints that, for each task at most one incoming (resp. outcoming) arc has the value 0.
![Page 58: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/58.jpg)
58
EPIT 2007
Communication delay : UET - UCT
ti tjcij
If every cij takes its value in [0,1] the problem becomes easy : the sum of the cij (resp. cji ) for a fixed i must be greater than the out-degree (resp. in-degree) minus 1. To find a realistic solution the integer value of the arc is 0 only if cij < 1/2.
![Page 59: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/59.jpg)
59
EPIT 2007
Communication delay : UET - UCT
ti tjcij
The rounding step distends the path by a factor at most 4/3. Indeed suppose a path of length (k+1) with x arcs such that cij < ½ (i.e the cost of the path in the real solution is greater than 3/2k-1/2x+1). After rounding, the cost is 2k-x+1. The ratio is always smaller of 4/3.
![Page 60: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/60.jpg)
60
EPIT 2007
Unbounded vs. bounded number of processors
Technique : folding. (each step of the unbounded scheduling where x tasks are executing is transformed into x/m steps for the scheduling with m processors.
Without communication : a polynomial problem becomes 2-approximated algorithm
With the uet-uct model : a -approximated algorithm becomes a (+1)-approximated algorithm.
![Page 61: Approximation Algorithms](https://reader036.fdocuments.in/reader036/viewer/2022062322/56814e3a550346895dbba22d/html5/thumbnails/61.jpg)
61
EPIT 2007
Other ratios have been used for approximation problems, the differential ratio
for example.
Other constraints and other models : there is no small communication time (thin granularity i.e. more possibility of
parallelism)