• No results found

For a given CHAT instance I, we say that a feasible s-profile X is s-right-minimal if there is no other feasible s-profile that right-dominates X. In addition, we define a matching M whose profile is s-right-minimal to be a generous s-matching. When s is the cardinality of a maximum matching, we say that a generous s-matching is a generous maximum matching. As in the case of greedy s-matchings, there may be more than one generous s-matching for a given value of s, but it is clear that all generous s-matchings have the same profile, and we call this the generous s-profile for the problem instance. When s is the cardinality of a maximum matching, the generous s-profile is called the generous maximum profile. We formalise the definition of a generous maximum matching as follows.

Definition 7.5.1. Given an instance of CHAT, a generous maximum matching is a maximum matching that has minimum profile under the order ≺Rtaken over all matchings

in M+.

7.5.1 Finding a generous maximum matching

We may adapt Algorithm Greedy-Max, designed to find a greedy maximum matching in I, into an analogous algorithm for finding a generous maximum matching in I. The remainder of this section will work towards showing this. First of all, we introduce the following lemma, which is a counterpart to Lemma 7.3.1 for finding generous matchings. Lemma 7.5.1. Let M be a generous s-matching in I. Then either M is a generous maximum matching or there is a generous (s + 1)-matching M0 that can be obtained from M via an augmenting path.

Proof. It is straightforward to verify that if we replace all concepts relating to left- domination and greedy in the proof of Lemma 7.3.1 by their counterparts for right- domination and generous respectively, then this establishes the proof for this lemma.

As with finding a greedy maximum matching in CHAT, given any generous s-matching M , we want to be able to identify an augmenting path with respect to M that will lead us to a generous (s + 1)-matching. To do so, let us introduce the notion of a minimum profile augmenting path. Let i be an integer such that 1 ≤ i ≤ z. We assume X + i and X − i to be those operations on z-tuples and i that were defined previously in the context of greedy maximum matchings. Then, for every house vertex hj, we define the R-value

of hj with respect to M , denoted by R(hj), to be the minimum profile taken over all

alternating paths from an exposed agent vertex ending at hj. We say that an alternating

path P is a minimum profile augmenting path for M if P is an augmenting path, and ρ(P ) = min {R(hj) : hj ∈ H} where min is with respect to the ≺R order on profiles.

The following lemma, analogous to Lemma 7.3.2, shows that we can use the notion of a minimum profile augmenting path in tandem with the classical augmenting path algorithm to find a generous maximum matching in CHAT.

Lemma 7.5.2. Suppose that M is a generous s-matching which is not maximum. Let P be a minimum profile augmenting path. Then, augmenting M along P gives a generous (s + 1)-matching.

Proof. It is straightforward to verify that if we replace all concepts relating to left- domination and greedy in the proof of Lemma 7.3.2 by their counterparts for right- domination and generous respectively, then this establishes the proof for this lemma.

Hence, we are able to reuse Algorithm Greedy-Max to find a generous maximum match- ing for a given CHAT instance I. The difference, in this context, is that we are interested in finding a minimum profile augmenting path in each iteration of the algorithm instead. Let M be any generous s-matching that is not a generous maximum matching for a given CHAT instance I. If we replace all occurrences of L-values in Algorithm Max-Aug by R-values, and replace the left-domination comparison L by the right-domination com-

parison ≺R in line 6 of the algorithm, then we can reuse Algorithm Max-Aug to find a

minimum profile augmenting path with respect to M . Note that if there does not exist any alternating path of length 1 from an exposed agent vertex to a house hj in the ini-

tialisation step, then we set r(hj) to be O0 where r(hj) is used to compute R(hj) in the

algorithm. Let us rename Algorithm Max-Aug, after the above transformations, to be Algorithm Min-Aug. Then, if every house vertex has an R-value that is equal to O0 after execution of Algorithm Min-Aug, then there is no augmenting path, and M is a generous maximum matching. Otherwise, we find the house vertex hj with minimum R-value, and

obtain the minimum profile augmenting path P by alternately tracing the predecessor values and matched edges in M starting from pred(hj).

7.5.2 Proof of correctness

As in the greedy maximum case, we want to show that the augmenting path P obtained by executing Algorithm Min-Aug is a minimum profile augmenting path with respect to the current generous s-matching M . The next two lemmas prove results analogous to the greedy maximum case in the generous maximum context.

Lemma 7.5.3. When Algorithm Min-Aug terminates, r(hj) = R(hj) for each house vertex

hj ∈ H.

Proof. We replace all concepts relating to left-domination and greedy by their counterparts for right-domination and generous respectively in the proof of Lemma 7.3.3 to obtain our proof for this lemma.

Lemma 7.5.4. Let P be the sequence of agents and houses obtained by alternately tracing predecessor values and matched edges in M starting from pred(hj) where the R-value of hj

right-dominates the R-values of all exposed house vertices. Then, P terminates at some exposed agent vertex.

Proof. We again replace all concepts relating to left-domination and greedy by their coun- terparts for right-domination and generous respectively in the proof of Lemma 7.3.4 to obtain our proof for this lemma.

This gives us the following result with respect to generous maximum matchings in CHAT.

Theorem 7.5.1. Let M be a generous s-matching M that is not generous maximum. Then, executing Algorithm Min-Aug (adapted from Algorithm Max-Aug as described above) finds a minimum profile augmenting path with respect to M .

7.5.3 Time complexity analysis

It is straightforward to verify that it takes O(C2mz) time to find a generous maximum matching using the same arguments as in the greedy maximum case. In practice, as in the generous maximum case, we can speed up the running time by halting Algorithm Min-Aug when no house h that is assigned in the current matching had r(h) updated in the last iteration of the algorithm.

Finally, we remark that we can find a generous maximum matching given an instance I of CHAT by a reduction to the Assignment problem in a similar way to that for the greedy maximum case. In the generous maximum case, however, the appropriate weight to assign to each edge (ai, hj) should be wt(ai, hj) = ((n + 1)z−1− (n + 1)k−1+ 1) + (n + 1)z where

(n + 1)z is again the large constant added to ensure that any maximum weight matching in the underlying weighted graph has maximum cardinality. As with the greedy maximum case, such an approach would take O(zC min(m log n, n2)) time. Furthermore, we can assume that C/ log n ≥ 1 for most practical applications. Hence, the reduction method is again faster than an augmenting path approach using the Bellman-Ford algorithm by a factor of Ω(C max(1/ log n, m/n2)) for most practical cases.