当前课程知识点:算法设计与分析 > 1 Introduction of Algorithm > 1.4 Understanding Gale-Shapley Algorithm > Understanding Gale-Shapley Algorithm
对于稳定匹配问题
GS算法给出了完整的解答
但我们可能还会有这样的问题
给定一个实例
可能会有多个稳定匹配的结果
Gale-Shapley算法
总是会给出一样的结果吗
如果是
将会给出哪一个结果呢
对于图示中给出的实例
有两个稳定匹配
A-X,B-Y,C-Z
A-Y,B-X,C-Z
会出现哪个匹配呢
还是两个都有可能
我们先给出有效配偶的定义
若存在稳定匹配
使得女人w和男人m成为配偶
则称w是m的有效配偶
男性最优分配是指
每一个男人
都找到了自己最喜欢的有效伴侣
我们将证明
GS算法运行的结果总是男性最优的分配
因为男性最优分配是唯一的
因此GS算法运行的结果是唯一的
男性最优分配也是一个稳定匹配
下面来证明GS匹配S^*是男性最优的
用反证法
假设某个男人没有能够
与最喜欢的有效伴侣在一起
则由男人从高到低的追求可得
有男人被有效伴侣拒绝
不妨称第一位被有效伴侣拒绝的男人为Y
并令拒绝他的女人为A
记A-Y配对的稳定匹配为S
当Y被拒绝时
A一定与一位她更喜欢的男人配对
记为Z
记S中Z的配偶为B
因为Y是第一个被有效伴侣拒绝的男人
故此时 Z必定没有被有效伴侣拒绝过
因此Z相比于B一定更喜欢A
但A相比于Y更喜欢Z
故A-Z为S中的一个不稳定对
导出矛盾
总结一下我们所学习的稳定匹配问题
稳定匹配问题
是对于给定的n男n女的偏好列表
给出一个稳定匹配
Gale-Shapley算法
可以在O(n^2)的时间内找到一个稳定匹配
在男性追求的GS算法中
每位男士都能找到自己最喜欢的有效伴侣
一个自然的问题
从男性的角度来说
GS返回最优的结果
那么从女性的角度来看呢
我们定义女性最差分配
每位女性都接受了最差的有效伴侣
我们将证明
GS算法找到了女性最差的稳定匹配S^*
证明 假设A-Z为S^*中的匹配
但Z不是A最差的有效伴侣
则存在着稳定匹配S
使得A匹配到了更差的有效伴侣Y
记S中B的伴侣为Z
由S^*为男性最优的性质可知
Z喜欢A超过B
故A-Z为S中的不稳定对
产生矛盾
再来思考一个问题
可能存在什么动机
使得大家掩盖自己真实的偏好吗
这里假设
你知道男士将会遵从追求-拒绝算法
假设所有人的偏好列表都是已知的
从男人的角度来说
他已经得到了最好的稳定匹配
因此没有动机去说谎
而女人则不然
在下面的例子中
Amy撒谎说“相比于X我更喜欢Z”
简单验证一下
我们发现
会使GS算法得到一个{A-Y,B-X,C-Z}的结果
Amy通过说谎得到了更好的配偶
2012的年诺贝尔经济学奖
颁予了Shapley和Roth
Shapley是因为建立了稳定匹配理论
和提出了Gale-Shapley算法
Roth将Gale-Shapley算法
应用到医院与医科生的招聘
和器官捐献者与病人的匹配中
-1.1 Introduction
-1.2 A First Problem: Stable Matching
--A First Problem: Stable Matching
-1.3 Gale-Shapley Algorithm
-1.4 Understanding Gale-Shapley Algorithm
--Understanding Gale-Shapley Algorithm
-Homework1
-Lecture note 1
--Lecture note 1 Introduction of Algorithm
-2.1 Computational Tractability
-2.2 Asymptotic Order of Growth
-2.3 A Survey of Common Running Times
--A Survey of Common Running Times
-Homework2
-Lecture note 2
--Lecture note 2 Basics of Algorithm Analysis
-3.1 Basic Definitions and Applications
--Basic Definitions and Applications
-3.2 Graph Traversal
-3.3 Testing Bipartiteness
-3.4 Connectivity in Directed Graphs
--Connectivity in Directed Graphs
-3.5 DAG and Topological Ordering
--DAG and Topological Ordering
-Homework3
-Lecture note 3
-4.1 Coin Changing
-4.2 Interval Scheduling
-4.3 Interval Partitioning
-4.4 Scheduling to Minimize Lateness
--Scheduling to Minimize Lateness
-4.5 Optimal Caching
-4.6 Shortest Paths in a Graph
-4.7 Minimum Spanning Tree
-4.8 Correctness of Algorithms
-4.9 Clustering
-Homework4
-Lecture note 4
--Lecture note 4 Greedy Algorithms
-5.1 Mergesort
-5.2 Counting Inversions
-5.3 Closest Pair of Points
-5.4 Integer Multiplication
-5.5 Matrix Multiplication
--Video
-5.6 Convolution and FFT
-5.7 FFT
--FFT
-5.8 Inverse DFT
-Homework5
-Lecture note 5
--Lecture note 5 Divide and Conquer
-6.1 Weighted Interval Scheduling
--Weighted Interval Scheduling
-6.2 Segmented Least Squares
-6.3 Knapsack Problem
-6.4 RNA Secondary Structure
-6.5 Sequence Alignment
-6.6 Shortest Paths
-Homework6
-Lecture note 6
--Lecture note 6 Dynamic Programming
-7.1 Flows and Cuts
-7.2 Minimum Cut and Maximum Flow
--Minimum Cut and Maximum Flow
-7.3 Ford-Fulkerson Algorithm
-7.4 Choosing Good Augmenting Paths
--Choosing Good Augmenting Paths
-7.5 Bipartite Matching
-Homework7
-Lecture note 7
-8.1 Polynomial-Time Reductions
-8.2 Basic Reduction Strategies I
--Basic Reduction Strategies I
-8.3 Basic Reduction Strategies II
--Basic Reduction Strategies II
-8.4 Definition of NP
-8.5 Problems in NP
-8.6 NP-Completeness
-8.7 Sequencing Problems
-8.8 Numerical Problems
-8.9 co-NP and the Asymmetry of NP
--co-NP and the Asymmetry of NP
-Homework8
-Lecture note 8
--Lecture note 8 NP and Computational Intractability
-9.1 Load Balancing
-9.2 Center Selection
-9.3 The Pricing Method: Vertex Cover
--The Pricing Method: Vertex Cover
-9.4 LP Rounding: Vertex Cover
-9.5 Knapsack Problem
-Homework9
-Lecture note 9
--Lecture note 9 Approximation Algorithms
-10.1 Landscape of an Optimization Problem
--Landscape of an Optimization Problem
-10.2 Maximum Cut
-10.3 Nash Equilibria
-10.4 Price of Stability
-Homework10
-Lecture note 10
--Lecture note 10 Local Search
-11.1 Contention Resolution
-11.2 Linearity of Expectation
-11.3 MAX 3-SAT
-11.4 Chernoff Bounds
-Homework11
-Lecture note 11
--Lecture note 11 Randomized Algorithms
-Exam