Vous êtes sur la page 1sur 18

Lecture 11, Feb 19 2013 Steven Rudich

Bipartite Graph
Recall: A graph is bipartite if the nodes V can be partitioned into two sets A and B such that all edges go only between A and B (no edges go from A to A or from B to B)

Computing Maximum Matchings The Stable Marriage Problem

Perfect Matchings
A matching is a set of edges, no two of which share a vertex. The matching is perfect if it includes every vertex. Regular Bipartite Matching Theorem: Iff every node in a bipartite graph has the same degree d ! 1, then the graph has a perfect matching.

Halls Marriage Theorem


Theorem: A bipartite graph has a perfect matching if and only if |A| = |B| = n and for all k ! [1,n]: for any subset S of k nodes of A there are at least k nodes of B that are connected to S. A bipartite graph has a perfect mtaching iff for every S subset of A, |N(S)| ! |S|, i.e., no neighbor set contracts.

Maximum Matchings in a graph G


A matching M is a set of edges, no two of which share a vertex. The size of M is the number of edges in M. M is a maximum matching if there is no matching of greater size in G. NB: All perfect matching are maximum matchings. NB: A matching M is maximal iff there does not exist a larger matching containing all the edges in M.

Given G, how to find maximum matching?


Start with any (candidate) matching M. We will give an efficient algorithm to augment M to M* a matching with 1 more edge than M, or to output M cant be augmented, it is maximum. A path p = e1 e2 ek in G is augmenting for M iff the even edges e2 e4 .. ek-1 are in M. Suppose p is augmenting for M- then swap even edges in M for odd (unmatched) edges to make M*

Augmenting a Matching
Suppose M is a matching, and M is a bigger one. M M M + M Consider the graph with the edges from M and M The degree of all the nodes is 0, 1 or 2. The components of this graph look like.?

M + M

The components of this graph of edges from M and M could be: Isolated nodes Isolated edges Alternating Cycles (of even length) Alternating Paths

M + M The only type of component which has a different number of red and blue edges is an alternating path. So, because M>M there must be at least one alternating path that begins with a blue edge and ends with a blue edge.

Is M maximum? M + M M > M implies Look for augmenting path in G for M. If none, we know M is maximum, otherwise swap even and odd edges to make M with 1 edge more than M.

G has an augmenting path p beginning and ending with blue edges. M is either maximum already, or there is an augmenting path of G for M (starting and ending with a blue edge).

Given an undirected or directed graph G, and a start vertex s, the algorithm finds everything that can be reached from s, and computes the shortest path length to it.

Proof: We prove by induction the following statement: At the beginning of the loop, Li-1 is the set of vertices at distance i-1 from s, and all vertices at distance i-1 or less have been marked. Clearly the statement is true for i=1 (base case). Lets assume its true for i-1 and prove it for i. Consider a vertex v at distance i. At the beginning of the loop for i we know v is unmarked (cause only vertices at distance < i are marked). We also know that it must be a neighbor of a vertex at distance i-1, otherwise it cannot be at distance i. Therefore the algorithm will put v into Li and mark it. QED.

Breadth First Search


Maintain a visited bit on all vertices. Initially only s is marked visited. L0 = {s}. For i=1,2,3. Do: Let Li be the vertices that have not yet been visited, which are neighbors of Li-1. Mark the vertices of Li. If Li is empty HALT.

Augmenting BFS algorithm. Let L0 be the set of unmatched vertices on the left. Let Ri be the vertices that have not yet been visited, which are neighbors of Li-1 via edges not in the matching. Let Li+1 be the vertices that have not yet been visited which are neighbors of Ri via edges in the matching. We can define the alternating path of a vertex v to be the length of the shortest alternating path starting from L0 and ending at v The inductive property that is maintained is that Li (for even i) or Ri (for odd i) is the set of vertices reachable from L0 via an alternating path of length i. The following algorithm starts with a matching M and either (1) determines that it is a maximum matching, or (2) constructs an alternating path to make the matching bigger.
Let L0 be the set of unmatched vertices on the left. For i=1,3,5 do: Let Ri be the vertices that have not yet been visited, which are neighbors of Li-1 via edges not in the matching. If any vertex of Ri is not matched, weve found an alternating path. HALT Let Li+1 be the vertices that have not yet been visited which are neighbors of Ri via edges in the matching. If Li+1 is empty then our matching is maximum. HALT

Running time analysis of our matching algorithm


Say our graph has n vertices and e edges. Each application of an alternating path increase the size of the matching by 1. The maximum of this is n/2, so this can happen at most n/2 times. Each BFS explores the entire graph, so its running time is O(max (n,e))

The Mathematics Of 1950s Dating: Who wins the battle of the sexes?

This gives a total running time of O(n max(n,e)) = O(n3).

3,2,5,1,4 1 1,2,5,3,4 WARNING: This lecture contains mathematical content that may be shocking to some students. 2 4,3,2,1,5 3 1,3,4,2,5 4 1,2,4,5,3 5
Steven Rudich: www.discretemath.com www.rudich.net

3,5,2,1,4 1 5,2,1,4,3 2 4,3,5,1,2 3 1,2,3,4,5 4 2,3,4,1,5 5

Steven Rudich: www.discretemath.com www.rudich.net

Dating Scenario
! There are n boys and n girls ! Each girl has her own ranked preference list of all the boys ! Each boy has his own ranked preference list of the girls ! The lists have no ties Question: How do we pair them off? What criteria come to mind?
Steven Rudich: www.discretemath.com www.rudich.net

3,2,5,1,4 1 1,2,5,3,4 2 4,3,2,1,5 3 1,3,4,2,5 4 1,2,4,5,3 5 5 4 3 2 1

3,5,2,1,4

5,2,1,4,3

4,3,5,1,2

1,2,3,4,5

2,3,4,1,5

Steven Rudich: www.discretemath.com www.rudich.net

There is more than one notion of what constitutes a good pairing.


! Maximizing total satisfaction
! Old Hong Kong and to an extent the United States

! Maximizing the minimum satisfaction


! Western Europe

! Minimizing the maximum difference in mate ranks


! Sweden

! Maximizing the number of people who get their first choice ! Disney Land
Steven Rudich: www.discretemath.com www.rudich.net

We will ignore the issue of what is equitable!


Steven Rudich: www.discretemath.com www.rudich.net

Why be with them when we can be with each other?

Rogue Couples
Suppose we pair off all the boys and girls. Now suppose that some boy and some girl prefer each other to the people to whom they are paired. They will be called a rogue couple.

Steven Rudich: www.discretemath.com www.rudich.net

Steven Rudich: www.discretemath.com www.rudich.net

Stable Pairings
A pairing of boys and girls is called stable if it contains no rogue couples.
3,2,5,1,4 1 1,2,5,3,4 2 4,3,2,1,5 3 1,3,4,2,5 4 1,2,4,5,3 5 5 4 2,3,4,1,5
Steven Rudich: www.discretemath.com www.rudich.net

What use is fairness, if it is not stable?


Any list of criteria for a good pairing must include stability. (A pairing is doomed if it contains a rogue couple.)

3,5,2,1 ,4 1 5,2,1,4,3 2 4,3,5,1,2 3 1,2,3,4,5

Steven Rudich: www.discretemath.com www.rudich.net

Stevens social and political wisdom:

The study of stability will be the subject of the entire lecture.


We will: ! Analyze various mathematical properties of an algorithm that looks a lot like 1950s dating ! Discover the naked mathematical truth about which sex has the romantic edge ! Learn how the worlds largest, most successful dating service operates
Steven Rudich: www.discretemath.com www.rudich.net

Sustainability is a prerequisite of fair policy.

Steven Rudich: www.discretemath.com www.rudich.net

Given a set of preference lists, how do we find a stable pairing?

Given a set of preference lists, how do we find a stable pairing?


Wait! We dont even know that such a pairing always exists!

Steven Rudich: www.discretemath.com www.rudich.net

Steven Rudich: www.discretemath.com www.rudich.net

Think about this question:

Given a set of preference lists, how do we find a stable pairing?

Does every set of preference lists have a stable pairing?

How could we change the question we are asking?

Steven Rudich: www.discretemath.com www.rudich.net

Steven Rudich: www.discretemath.com www.rudich.net

Idea: Allow the pairs to keep breaking up and reforming until they become stable.

Can you argue that the couples will not continue breaking up and reforming forever?

Steven Rudich: www.discretemath.com www.rudich.net

Steven Rudich: www.discretemath.com www.rudich.net

2,3,4

An Instructive Variant: Bisexual Dating


1 2

3,1,4

2,3,4

An Instructive Variant: Bisexual Dating


1 2

3,1,4

1,2,4

*,*,*

1,2,4

*,*,*

Steven Rudich: www.discretemath.com www.rudich.net

Steven Rudich: www.discretemath.com www.rudich.net

2,3,4

An Instructive Variant: Bisexual Dating


1 2

3,1,4

2,3,4

An Instructive Variant: Bisexual Dating


1 2

3,1,4

1,2,4

*,*,*

1,2,4

*,*,*

Steven Rudich: www.discretemath.com www.rudich.net

Steven Rudich: www.discretemath.com www.rudich.net

2,3,4

Unstable roommates in perpetual motion.


1 2

3,1,4

Insight

1,2,4

*,*,*

Any proof that heterosexual couples do not break up and reform forever must contain a step that fails in the bisexual case
Steven Rudich: www.discretemath.com www.rudich.net

Steven Rudich: www.discretemath.com www.rudich.net

The Traditional Marriage Algorithm

The Traditional Marriage Algorithm


Worshipping males

Female

Steven Rudich: www.discretemath.com www.rudich.net

Steven Rudich: www.discretemath.com www.rudich.net

String

Traditional Marriage Algorithm


For each day that some boy gets a No do:
! Morning ! Each girl stands on her balcony ! Each boy proposes under the balcony of the best girl whom he has not yet crossed off ! Afternoon (for those girls with at least one suitor) ! To todays best suitor: Maybe, come back tomorrow ! To any others: No, I will never marry you ! Evening ! Any rejected boy crosses the girl off his list Each girl marries the boy to whom she just said maybe
Steven Rudich: www.discretemath.com www.rudich.net

Does the Traditional Marriage Algorithm always produce a stable pairing?

Steven Rudich: www.discretemath.com www.rudich.net

Does the Traditional Marriage Algorithm always produce a stable pairing?


Wait! There is a more primary question!

Does TMA always terminate?


! It might encounter a situation where algorithm does not specify what to do next (core dump error) ! It might keep on going for an infinite number of days

Steven Rudich: www.discretemath.com www.rudich.net

Steven Rudich: www.discretemath.com www.rudich.net

Traditional Marriage Algorithm


For each day that some boy gets a No do:
! Morning ! Each girl stands on her balcony ! Each boy proposes under the balcony of the best girl whom he has not yet crossed off ! Afternoon (for those girls with at least one suitor) ! To todays best suitor: Maybe, come back tomorrow ! To any others: No, I will never marry you ! Evening ! Any rejected boy crosses the girl off his list Each girl marries the boy to whom she just said maybe
Steven Rudich: www.discretemath.com www.rudich.net

Improvement Lemma: If a girl has a boy on a string, then she will always have someone at least as good on a string, (or for a husband).
! She would only let go of him in order to maybe someone better ! She would only let go of that guy for someone even better ! She would only let go of that guy for someone even better ! AND SO ON . . . . . . . . . . . . .
Steven Rudich: www.discretemath.com Informal Induction www.rudich.net

Improvement Lemma: If a girl has a boy on a string, then she will always have someone at least as good on a string, (or for a husband).
PROOF: Let q be the day she first gets b on a string. If the lemma is false, there must be a smallest k such that the girl has some b* inferior to b on day q+k. One day earlier, she has someone as good as b. Hence, a better suitor than b* returns the next day. She will choose the better suitor contradicting the assumption that her prospects went below b on day q+k.

Corollary: Each girl will marry her absolute favorite of the boys who visit her during the TMA

Steven Rudich: www.discretemath.com Formal Induction www.rudich.net

Steven Rudich: www.discretemath.com www.rudich.net

Lemma: No boy can be rejected by all the girls


Proof by contradiction. Suppose boy b is rejected by all the girls. At that point: ! Each girl must have a suitor other than b (By Improvement Lemma, once a girl has a suitor she will always have at least one) ! The n girls have n suitors, b not among them. Thus, there are at least n+1 boys
Steven Rudich: www.discretemath.com www.rudich.net

Theorem: The TMA always terminates in at most n2 n days


! A master list of all n of the boys lists starts with a total of n X n = n2 girls on it. ! Each day that at least one boy gets a No, at least one girl gets crossed off the master list ! Therefore, the number of days is bounded by the original size of the master list In fact, since each list never drops below 1, the number of days is bounded by n(n-1) = n2 -n

Contradict ion

Steven Rudich: www.discretemath.com www.rudich.net

Theorem: Let T be the pairing produced by TMA. T is stable. Great! We know that TMA will terminate and produce a pairing. But is it stable?

g*

Steven Rudich: www.discretemath.com www.rudich.net

Steven Rudich: www.discretemath.com www.rudich.net

Theorem: Let T be the pairing produced by TMA. T is stable.


I rejected you when you came to my balcony, now I got someone better.

Theorem: Let T be the pairing produced by TMA. T is stable.


! Let b and g be any couple in T. ! Suppose b prefers g* to g. We will argue that g* prefers her husband to b. ! During TMA, b proposed to g* before he proposed to g. Hence, at some point g* rejected b for someone she preferred. By the Improvement lemma, the person she married was also preferable to b. ! Thus, every boy will be rejected by any girl he prefers to his wife. T is stable.
Steven Rudich: www.discretemath.com www.rudich.net

g*

Steven Rudich: www.discretemath.com www.rudich.net

Opinion Poll
of f er l t t be na o is ditio oys h b W ra in t g, the ls? ir in dat the g r o

Forget TMA for a moment

How should we define what we mean when we say the optimal girl for boy b? Flawed Attempt: The girl at the top of bs list
Steven Rudich: www.discretemath.com www.rudich.net

Steven Rudich: www.discretemath.com www.rudich.net

10

The Optimal Girl


A boys optimal girl is the highest ranked girl for whom there is some stable pairing in which the boy gets her. She is the best girl he can conceivably get in a stable world. Presumably, she might be better than the girl he gets in the stable pairing output by TMA.
Steven Rudich: www.discretemath.com www.rudich.net

The Pessimal Girl


A boys pessimal girl is the lowest ranked girl for whom there is some stable pairing in which the boy gets her. She is the worst girl he can conceivably get in a stable world.

Steven Rudich: www.discretemath.com www.rudich.net

Dating Heaven and Hell


A pairing is male-optimal if every boy gets his optimal mate. This is the best of all possible stable worlds for every boy simultaneously. A pairing is male-pessimal if every boy gets his pessimal mate. This is the worst of all possible stable worlds for every boy simultaneously.

Dating Heaven and Hell


A pairing is male-optimal if every boy gets his optimal mate. Thus, the pairing is simultaneously giving each boy his optimal. Is a male-optimal pairing always stable?

Steven Rudich: www.discretemath.com www.rudich.net

Steven Rudich: www.discretemath.com www.rudich.net

Dating Heaven and Hell


A pairing is female-optimal if every girl gets her optimal mate. This is the best of all possible stable worlds for every girl simultaneously. A pairing is female-pessimal if every girl gets her pessimal mate. This is the worst of all possible stable worlds for every girl simultaneously.
Steven Rudich: www.discretemath.com www.rudich.net

The Traditional Marriage Algorithm always produces a male-optimal, female-pessimal pairing.


Steven Rudich: www.discretemath.com www.rudich.net

The Naked Mathematical Truth!

11

Theorem: TMA produces a male-optimal pairing


! Suppose, for a contradiction, that some boy gets rejected by his optimal girl during TMA. Let t be the earliest time at which this happened. ! In particular, at time t, some boy b got rejected by his optimal girl g because she said maybe to a preferred b*. By the definition of t, b* had not yet been rejected by his optimal girl. ! Therefore, b* likes g at least as much as his optimal.
Steven Rudich: www.discretemath.com www.rudich.net

Some boy b got rejected by his optimal girl g because she said maybe to a preferred b*. b* likes g at least as much as his optimal girl.

There must exist a stable paring S in which b and g are married.


! b* wants g more than his wife in S
! g is as at least as good as his best and he does not have her in stable pairing S

! g wants b* more than her husband in S


! b is her husband in S and she rejects him for b* in TMA

Steven Rudich: www.discretemath.com www.rudich.net

Some boy b got rejected by his optimal girl g because she said maybe to a preferred b*. b* likes g at least as much as his optimal girl.

What proof technique did we just use?

There must exist a stable paring S in which b and g are married.


! b* wants g more than his wife in S
! g is as at least as good as his best and he does not have her in stable pairing S

! g wants b* more than her husband in S


! b is her husband in S and she rejects him for b* in TMA

Contradiction of the stability of S.


Steven Rudich: www.discretemath.com www.rudich.net

Steven Rudich: www.discretemath.com www.rudich.net

What proof technique did we just use?

We know it is male-optimal. Suppose there is a stable pairing S where some girl g does worse than in T. Let b be her mate in T. Let b* be her mate in S. ! By assumption, g likes b better than her mate in S ! b likes g better than his mate in S
! We already know that g is his optimal girl

Theorem: The TMA pairing, T, is female-pessimal.

! Therefore, S is not stable.


Steven Rudich: www.discretemath.com www.rudich.net

Contradict ion

Steven Rudich: www.discretemath.com www.rudich.net

12

Advice to females

The largest, most successful dating service in the world uses a computer to run TMA !
Learn to make the first move.
Steven Rudich: www.discretemath.com www.rudich.net

Steven Rudich: www.discretemath.com www.rudich.net

The Match: Doctors and Medical Residencies


! Each medical school graduate submits a ranked list of hospitals where he/she wants to do a residency ! Each hospital submits a ranked list of newly minted doctors ! A computer runs TMA (extended to handle Mormon marriages) ! Until recently, it was hospital-optimal
Steven Rudich: www.discretemath.com www.rudich.net

History
1900 ! Idea of hospitals having residents (then called interns) Over the next few decades ! Intense competition among hospitals for an inadequate supply of residents
! Each hospital makes offers independently ! Process degenerates into a race. Hospitals steadily advancing date at which they finalize binding contracts
Steven Rudich: www.discretemath.com www.rudich.net

History
1944 Absurd Situation. Appointments being made 2 years ahead of time! ! All parties were unhappy ! Medical schools stop releasing any information about students before some reasonable date ! Did this fix the situation?
Steven Rudich: www.discretemath.com www.rudich.net

History
1944 Absurd Situation. Appointments being made 2 years ahead of time! ! All parties were unhappy ! Medical schools stop releasing any information about students before some reasonable date ! Offers were made at a more reasonable date, but new problems developed
Steven Rudich: www.discretemath.com www.rudich.net

13

History
1945-1949 Just As Competitive ! Hospitals started putting time limits on offers ! Time limit gets down to 12 hours ! Lots of unhappy people ! Many instabilities resulting from lack of cooperation
Steven Rudich: www.discretemath.com www.rudich.net

History
1950 Centralized System ! Each hospital ranks residents ! Each resident ranks hospitals ! National Resident Matching Program produces a pairing
Whoops! The pairings were not always stable. By 1952 the algorithm was the TMA (hospital-optimal) and therefore stable.
Steven Rudich: www.discretemath.com www.rudich.net

History Repeats Itself! NY TIMES, March 17, 1989


! The once decorous process by which federal judges select their law clerks has degenerated into a free-for-all in which some of the judges scramble for the top law school students . . . ! The judge have steadily pushed up the hiring process . . . ! Offered some jobs as early as February of the second year of law school . . . ! On the basis of fewer grades and flimsier evidence . . .
Steven Rudich: www.discretemath.com www.rudich.net

NY TIMES
! Law of the jungle reigns . . ! The association of American Law Schools agreed not to hire before September of the third year . . . ! Some extend offers from only a few hours, a practice known in the clerkship vernacular as a short fuse or a hold up. ! Judge Winter offered a Yale student a clerkship at 11:35 and gave her until noon to accept . . . At 11:55 . . he withdrew his offer
Steven Rudich: www.discretemath.com www.rudich.net

Marry Well!

REFERENCES
D. Gale and L. S. Shapley, College admissions and the stability of marriage, American Mathematical Monthly 69 (1962), 9-15 Dan Gusfield and Robert W. Irving, The Stable Marriage Problem: Structures and Algorithms, MIT Press, 1989

Steven Rudich: www.discretemath.com www.rudich.net

Steven Rudich: www.discretemath.com www.rudich.net

14

You have n men and n women. Each one has a complete ordered preference list for those of the other sex. EG: Mens preferences
12413 23142 32314 44132

Note: Bipartite graph again But now its a complete bipartite graph every man-woman edge is present

Womens preferences
12143 24312 31432 42143

so clearly theres a perfect matching which of these should we choose??

The goal is to pair the men with the women. What criteria to use?

More Than One Notion of What Constitutes A Good Pairing


Maximizing total satisfaction Maximizing the minimum satisfaction Minimizing maximum difference in mate ranks Maximizing people who get their first choice

We will ignore the issue of what is best!

Rogue Couples
Suppose we pair off all the men and women. Now suppose that some man and some woman prefer each other to the people to whom they are paired They will be called a rogue couple

Why be with them when we can be with each other?

15

Stable Matchings What use is fairness, if it is not stable?


Any list of criteria for a good pairing must include stability. (A pairing is doomed if it contains a rogue couple.) A matching of men and women is called stable if it contains no rogue couples Mens preferences
12413 23142 32314 44132

Womens preferences
12143 24312 31432 42143

Stable matchings: (1,4) (2,3) (3,2) (4,1) (1,4) (2,1) (3,2) (4,3)

Not stable: (1,1) (2,3) (3,2) (4,4) Find the rogue couple (1,4)

The study of stability will be the subject of rest of the lecture


We will: Analyze various mathematical properties of an algorithm that looks a lot like 1950s dating Discover the mathematical truth about which sex has the romantic edge

Given a set of preference lists, how do we find a stable pairing? Wait! We dont even know that such a pairing always exists!

Better Question:
Does every set of preference lists have a stable pairing?

Idea: Allow the pairs to keep breaking up and reforming until they become stable

16

2,3,4

An Instructive Variant: Roommates Problem


1 2

3,1,4

Can you argue that the couples will not continue breaking up and reforming forever?

1,2,4

*,*,*

The Gale-Shapley Algorithm

However, in our problem, There is always a stable matching.


We will prove this by giving an algorithm and analyzing it.

Everybody is initially free. While some man m is free do: Let w = the first woman on ms list to whom he has not yet proposed. Now m proposes to w. Now there are three cases: (1) If w is free then engage (m,w) (2) If w is not free and w prefers m to her finace m then engage(m,w) and m is now free (3) If w is not free and prefers her finace m to m then w rejects m (m remains free)

Example on Document Cam

Theorem: For any given instance of the stable marriage problem, the Gale-Shapley algorithm terminates, and, on termination, the engaged pairs constitute a stable matching. Proof: First we make the following simple observations: (1) The engagement always forms a matching. (2) Once a woman is engaged, she remains engaged. (3) Each new engagement is to a better man for her. A man cannot be rejected by all women. Because if he is, then all women must be engaged. This is impossible since the number of men equals the number of women. The algorithm must terminate, because on each iteration a man progresses down his list. Therefore there are at most n2 iterations. On termination the engagements form a perfect matching.

17

Proof Contd. Why is it stable? Let M denote the matching computed. If a man m prefers w to M(w) then w must have rejected m at some point. Therefore the man she is paired with is better for her than m.

Question about this algorithm


Notice that our algorithm is asymmetrical. It does not treat men and women the same way. Do you think this algorithm is better for the men or for the women? I.e. if you reverse the roles, would it lead to better results for the women, or the men?

Therefore the pair (m,w) is not a rogue couple for M. Therefore there is no rogue couple for M.

QED

Answer: The algorithm is better for the men. In fact its the best possible.
Define a mans best women to be his highest ranking woman from among all stable matchings. This algorithm matches every man with his best woman! Even though the algorithm, as described seems like it might be able to give more than one answer! (Its non-deterministic.) Thus, this is the man-optimal algorithm.

Theorem: All possible executions of the algorithm (with men as proposers) yield the same stable matching, and in this matching, each man has the best partner that he can have in any stable matching. Proof: See the notes posted on the course web site Theorem: In the man-optimal stable matching, each woman has the worst partner that she can have in any stable matching. Proof: See the notes posted on the course web site

Applictions
A real world appliction (of a slightly modified version of this problem) is in matching residents to hospitals.

Bipartite Matching Algorithm ! Augmenting Paths ! Breadth First Search Stable Matchings ! Criterion ! Gale-Shapley Algorithm ! Proof that it produces a stable matching ! It produces the unique male-optimal stable matching

It is also a key component in the design of a data structure called History Independent Hash Table. Critical use of the fact that the matching is independent of the order of execution.

Heres What You Need to Know

18

Vous aimerez peut-être aussi