Stable-Matching

Stable Matching (Gale Sharpley Algorithm) Gale_Sharpley Algorithm, Stable Matching 阅读详情

一. 匹配问题

PSL is a shipping company that owns n ships and provides service to n ports.Each ship has a schedule that says, for each day of the month (m(m > n) days),  which of the ports it's currently visiting, or whether 

it'out at sea. Each ship visits each port for exactly one day during the month. For safety reasons, PSL has

the following strict requirement:

(£) No two ships can be in the same port on the same day.

The company wants to perform maintenance on all the ships this month.   In this case, each ship Si will

arrive in one scheduled port and simply remains there for the rest of the month (for maintenance). 

This means that Si will not visit the remaining ports on its schedule (if any) that month.

Now the question is: given the schedule for each ship, find when each ship should stop its travel so 

that condition (£) continues to hold. Try to give an algorithm to find the solution and analyse its time 

complexity.


For example, there are 2 ships and 2 ports, and 4 days in this “month”.

If the schedule of the first ship is:

port P1 ; at sea; port P2 ; at sea

and the schedule of the second ship is:

at sea; port P1; at sea; port P2

then the only solution is to make the first ship stay in port P2 since the

third day, and the second ship stay in port P1 since the second day.


二.问题分析:

首先给了一个各个Ship的schedule表格,安排每个船的靠岸航海情况,并且要进行维修,就是给每个Ship找一个Port, 就是进行匹配的问题。

 

问题解决:

这个问题应用Gale-Shapley 算法,但稍微有些区别,将Ship 比作Man, Port 比作 Women,只是women没有了选择的权利,但是有day 的限制,  并且Ship后到Port的将有更多的权利可以占有这个Port。且每个Port不能同时有两个ship, 即对应的不能两个men,求婚成功同一个women。

维修匹配算法流程:

<pre name="code" class="cpp">for d = 1 to N do
	day[d] = 0;
end for;
while TRUE do
	If there is no ship s such that state[s] = NULL then
       return;
	end if
	select such a ship s arbitrarily;
	p = the next port on s’s schedule to whom s have not yet arrived;
	if state[p] == NULL then
		state[p] = s; state[s] = p;
	else if the ship arrive the port day[s] > the state[p] arrive the port day[state[p]] then
		state[state[p]] = NULL; state[p] = s; state[s] = p;
	else  
		;//do nothing means simply find next port;
	end if
end while


三.正确性证明:

 1)在海上的ship就会寻找下个schedule 上的port,只要日期在当前已有ship后面就可停靠。

 2)每个port 只要有ship, 就会一直保持有ship。

 3)一个ship 停在了一个port, 还有可能被其他船占用。

 

可结束:

假设有个port没有ship, 则一定有个ship 并且已将停过此port 在sea 上,则它一定被替代了,或者还没有到这个port, 与算法流程不符。

 

时间复杂度:

与Gale-Shapley 算法一样是O(n^2) 。




Stable Matching Problem —— Gale Shapley算法 “一切算法都是从实际问题出发,深入理解问题内在的组合结构,从算法性着手进行设计。” Problem 学生申请不同的大学,大学接收不同的学生,能否找到一个自我完善的算法来解决这个问题,使得最终的结果是一个稳定的匹配结果?同样的可以用在求职者与公司的招聘工作中。 稳定匹配(Stable Matching)结果:不能找到一个申请方与一个接收方,使得他们各自都更喜欢彼此而胜过他们当前的匹配。 Fo 阅读详情

相关推荐

手把手教你学simulink(8.2)--simulink的实战案例:信号分析

通过以上步骤,你已经成功使用 Simulink 对信号进行了频谱分析和时域分析,提取了信号的有用信息。这个案例展示了如何创建 Simulink 模型、添加和连接模块、设置仿真参数、运行仿真以及分析结果。希望这个案例能帮助你更好地理解和使用 Simulink 进行信号分析。

MHD0815的博客 1105

经典算法问题——稳定匹配(Stable Matching

经典算法问题——稳定匹配(Stable Matching) 问题起源 在1962年,经济学家 David Gale 和 Lloyd Shapley 提出:能否设计一个高校录取过程,能够自我执行(self-enforcing)形成一个最佳的匹配效果。 算法的 C++ 实现代码请移步 Github:https://github.com/hotelll/CS222Note/tree/master/StableMatching 简易问题 问题描述 给出一个 nnn 个男性的集合 MMM 和 nnn 个女性的集

weixin_44230421的博客 9918

【Unity】【VR】如何让Distance Grab抓取物品时限制物品的Rotation

VR中Canvas抓取旋转问题的解决方案 在VR应用中,Canvas作为UI面板常需被抓取拖动,但默认会随手柄产生Z轴旋转,导致UI歪斜。Unity的Rigidbody冻结旋转功能对此无效,因为XR抓取直接修改Transform而非物理模拟。

每日出拳老爷子的博客 584

Stable Matching

1. What is stable matching? Definition of stable matching: perfect matching with no unstable pairs. Perfect matching: everyone is matched monogamously(一夫一妻的意思). Stability: no incentive for some pair of participants to undermine assignment by joint action.

weixin_51334343的博客 705

CS269I:Incentives in Computer Science 学习笔记: Lecture2 Stable Matching(稳定匹配)

Lecture2 Stable Matching(稳定匹配) 1 Stable Matching and the Deferred Acceptance Algorithm(稳定匹配与延迟接受算法) 1.1 Model 问题:在NRMP(全国实习医师匹配计划)中,每个实习医师在结束他的实习之后需要找到一个医院工作,现在要为这个匹配问题寻找一个好用的算法 首先我们来对问题建立一个模型: 模型:假设S为所有学生的集合,H为所有医院的集合,每个医院的容量为c_h(可以接受最多c_h个学生)。每个学生都提交一个对医

ldc1513的博客 1299

A First Problem : Stable Matching(第一个重要问题:稳定匹配)

写在前面: 本文属于翻译内容,节选自 Jon Kleinberg及 Eva Tardos所著之算法宝书《Algorithm Design》的第一节“Stable Matching”,由于其影响力大,应该已被翻译成中文版本,但是本人在此承诺,以下的全部内容由我自行翻译(除了借用部分词典工具),绝无抄袭拷贝之行,还请大家监督。 之所以想翻译这一部分内容,是因为匹配算法是一个非常经典而有代表性的问题...

Meditator_hkx的博客 4251

OSChina娱乐弹弹弹——离散数学之把妹要诀 ,你学会了吗?

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34357928的博客 345

Flow-matchingStable diffusion3 ,Flux.1的理论基础

探究最先进的文生图模型 stable diffusion3 ,flux.1的理论基础

qq_62075214的博客 3207

Stable Diffusion 3.5 开发者指南(二):Flow Matching 详解

本文深入解析了Stable Diffusion 3.5的核心生成机制Flow Matching。Flow Matching是一种基于连续归一化流的生成建模方法,通过学习时间依赖的向量场,描述数据从噪声到目标分布的连续变换过程。文章详细阐述了其理论框架、数学推导和推理过程,包括概率路径定义、损失函数设计以及离散化采样步骤。通过物理运动类比直观解释了模型工作原理,并提供了MNIST数据集实战的代码框架。该技术避免了传统扩散模型的高计算成本,为高效生成建模提供了新思路。

2511_93768618的博客 1501

Stable Matching Problem

The Stable Matching Problem originated, in part, in 1962, when David Gale and Lloyd Shapley, two mathematical economists, asked the question: Could one design a college admissions process, or a j...

acai83888的博客 218

Diffusion 到 Flow Matching ( 从 DDPM 到 Stable Diffusion ) 丝滑入门

随着深度生成模型对高质量、多样化输出的需求提升,扩散模型凭借 “破坏 - 修复” 的核心逻辑脱颖而出,成为学习数据分布的强大框架。其通过噪声预测实现生成,经条件控制突破 “盲盒式” 生成局限,适配文本等导向需求。后续为解决效率问题,Flow Matching 以确定性路径优化推理速度。如今,这类生成式监督框架已超越图像生成,延伸至 VLA 模仿学习等领域

科研汪小陈的主页:https://chensuzeyu.github.io 2293

Stable Matching稳定匹配

一、稳定匹配婚姻问题 有n个男生n个女生,每个男生依照喜欢程度对n个女生进行了排序,同理每个女生也依照喜欢程度对n个男生进行了排序,现要将他们一一配对,要求所有的配对是稳定的,即不会出现一个女生相对自己配对的男生更喜欢另一个男生,而这个男生也更喜欢她的情况 二、伪代码实现 // 状态为free表示该男生未配对 // 首先初始化每个男生的状态为free Initialize each p...

by_study的博客 7519

稳定匹配 - Stable Matching

这篇文章将会对稳定匹配算法进行介绍及Python代码的实现,第一部分会针对稳定匹配的Gale-Shapley算法进行解析,第二部分就是用Python对该算法进行实现。 一、稳定匹配算法原理 1.1 介绍 稳定匹配(Stable Matching)问题就是假设现在有N个男生和N个女生跳舞选择伴侣,然后最开始的时候男、女生按照下面情况对彼此进行排序选择舞伴(见图1): 每个男生都...

asdv78901的博客 1614

Stable Diffusion 3 / FLUX 类模型中的 Flow Matching:怎么用、怎么调、怎么避坑

Flow Matching 真正进入大众视野,很大程度上和新一代图像生成模型有关。Stable Diffusion 3 相关论文使用 Rectified Flow Transformer,Hugging Face Diffusers 也为这类模型提供了 FlowMatch 系列 scheduler。

m0_54634272的博客 411

Stable Matching - Gale Shapely Algorithm

Stable Matching - Gale Shapely Algorithm基本定义伪代码GS算法定理合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 基本定义 Matching: A matching S={(m,w)∣m∈M&nbs

清幽小路的博客 536

GS problem: stable matching

背景提出:市场一方中的对象(医疗机构)向另一方中的对象(医学院学生)提出要约,每个学生会对自己接到的要约进行考虑,然后抓住自己青睐的(认为它是可接受的),拒绝其它的。该算法一个关键之处在于,合意的要约不会立即被接受,而只是被“抓住”(hold on to),也就是“延迟接受”。要约被拒绝后,医疗机构才可以向另一名医学院学生发出新的要约。整个程序一直持续到没有机构再希望发出新的要约为止,到那个时候,学

vuscity的博客 830

撩妹秘诀——stable matching

部分转载自微信公众号:程序猿阿泽 Warning!Warning!Warning! 前方高能反应,非战斗人员注意规避。 问题描述 假设现在有N个男生和N个女生单身,然后最开始的时候男、女生按照下面情况对彼此进行排序选择对象: 每个男生都对女生按照最喜欢到最不喜欢的顺序来选择对象;同样的,女生也是按照最喜欢的到最不喜欢对男生的顺序来选择对象。 例如说: 假设全世界只有 4个男的:a,b,c,d 4个...

qq_36323837的博客 539

Stable_matching problem

下面是男女喜欢的优先级顺序 Men={'V':['A','B','C','D','E'],'W':['B','C','D','A','E'],'X':['C','D','A','B','E'],'Y':['D','A','B','C','E'],'Z':['A','B','C','D','E']} Women={'A':['W','X','Y','Z','V'],'B':['X','Y','Z...

weixin_37961949的博客 772

基于tensorflow2.0的手写数字识别系统源码+模型(并导出pb模型供OpenCV的C++版本的DNN模块调用).zip

【说明】【1】项目代码完整,确保稳定可靠运行后才上传。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通,帮助解答。【2】项目主要针对各个计算机相关专业,包括但不限于计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。【3】项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。【4】如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能,欢迎交流学习。【特别强调】项目下载解压后,项目名字和项目路径不要用中文,建议解压重命名为英文名字后再运行!项目易上手运行使用过程遇到问题先搜索下,一般都是环境问题,当然也可以私信沟通,祝顺利!

上一篇: 算法设计与分析- Stable Matching-Gale_Shapley
下一篇: 机器学习稀疏之L0正则化
MyProgramingLife
博客等级 码龄12年 10粉丝 13原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值