当前课程知识点:算法设计与分析 > 1 Introduction of Algorithm > 1.2 A First Problem: Stable Matching > A First Problem: Stable Matching
我们从稳定匹配问题开始学习算法
以医学院毕业生与医院之间的
求职问题为例
我们的目标是根据
给定的毕业生与医院间的偏好顺序
给出一个自强化的分配方案
为了阐明何为自强化的分配方案
我们先给出不稳定对的定义如下
给定一个分配方案
我们称求职者x与医院y之间是不稳定的
若x相比于自己分配的医院更偏好y
且y相比于自己的
某一个分配的毕业生更偏好x
接着我们可以给出稳定分配的定义
不存在不稳定对的分配
追求一个稳定的分配是自然的
而且重要的是
在一个稳定的分配中
任何一个医院和学生不会有意愿
进行私下的选择而从中获益
我们把上述问题加以简化
来研究婚姻匹配问题
对于给定的n个男人和n个女人
我们要找到一个合适的匹配
每个人对所有的异性都给出了自己的偏好
在第一张表中
所有的男性从最喜欢到最不喜欢
依次列出女性的名字
在第二张表中
所有的女性从最喜欢到最不喜欢
依次列出男性的名字
我们定义完美匹配如下
每个人都有配偶
每名男人都匹配到了一名女人
每名女人也都匹配到了一名男人
我们也考虑这个问题的稳定性
希望任意未配对的男女
都没有改变配偶的动机
先来定义不稳定对
在匹配M中
男人m和女人w未被配在一起
但m相比于当前的配偶更喜欢w
且w相比于当前的配偶更喜欢m
那么就称m-w是不稳定对
他们更有意愿在一起
稳定匹配
即 不含有不稳定对的完美匹配
我们可以描述稳定匹配问题如下
对于给定的n个男人n个女人的偏好排序
若存在一个稳定匹配
则给出这个稳定匹配
下表中给出了男女之间的偏好顺序
匹配X-C,Y-B,Z-A是稳定的吗
可以发现
X更喜欢B超过当前的配偶C
而B也更喜欢X超过当前的配偶Y
因此X-B构成了不稳定对
这不是一个稳定匹配
还是同样的例子
匹配X-A,Y-B,Z-C是稳定的吗
经过验证
这个匹配中不存在不稳定对
因此是稳定匹配
-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