用于匹配算法的计算解决方案的可用代码?


15

设计匹配程序的问题(在高中和学生之间,在医学实习生和医院之间,在肾脏捐献者和接受者之间……)已经被经济学家广泛研究,并且极大地促进了罗斯和沙普利在经济学上获得诺贝尔奖。

我想知道您是否知道那里有任何免费的可用代码(理想情况下是相对高级的语言),能够为文献中提出的某些最著名算法计算主要种类匹配问题的解决方案。我正在考虑写一个,但我不希望它已经存在。

主要对某些代码感兴趣,这些代码可以用来计算学校选择问题中的延期验收算法的解决方案,但其他任何方法都将不胜感激。


您是否研究过R包中的匹配算法?例如,请参见此处JSS论文)。这不能完全解决您的示例问题,但可能是一个起点。
CompEcon 2014年

QuantEcon网站上的相关演讲(带有一些代码)。
cc7768 2015年

在我们的ReplicationWiki中,您可以找到许多方法的复制材料。使用匹配的经验研究概述可以在这里找到。您还可以查看复制是否已知。如果只需要包含数据和代码的案例,并且想要查看使用了什么软件,则可以使用此处的搜索表,其中有一个使用MATLAB的示例,一个使用R / ConG的示例。
JanHöffler'16

1
在我正在研究的ReplicationWiki中,您可以找到许多方法的复制资料。使用匹配的经验研究概述可以在这里找到。您还可以查看复制是否已知。如果只需要包含数据和代码的案例,并且想要查看使用了什么软件,则可以使用此处的搜索表,其中有一个使用MATLAB的示例,一个使用R / ConG的示例。
JanHöffler'16

Answers:


11

在回答评论时,我意识到自己得到了一个有价值的回复。对于许多计算研究统计数据,R已成为“默认语言”(由于多种原因;在这里, NYT的文章不错)。它是高级,免费和开源的,并且有一个紧密相关的期刊,用于发布统计算法。引文和同行评审是学术界的关键,因此您可以将很多描述良好的代码发布到R档案(CRAN),并将描述发布到JStat。这会扩散到许多博客和快速演示代码中。

就是说,R有一个庞大的用户创建代码库。当我需要在线查找算法时,我通常会首先关注庞大的R代码库。快速搜索R代码会发现以下内容:

来自R博客,带有代码(请参见要点链接):

延期验收算法(DAA)可以追溯到Gale和Shapley(1962)。他们引入了一种相当简单的算法,可以找到稳定的匹配对象,例如大学录取或婚姻市场中的匹配对象。...在美国的医院分配中使用了该算法的变体,根据该算法,刚毕业的医生对医院的偏好优先,而医院对毕业生的偏好较高。...在这里,我将使用R对此进行一些模拟

从可安装的github存储库中匹配市场

R包matchingMarkets带有两个估计量:

  • stabit:实现贝叶斯估计器,以估计代理商的偏好,并在选择过程是单面匹配游戏(即组队)时针对匹配市场中的样本选择进行更正。

  • stabit2:为两面匹配的游戏(即大学录取稳定的婚姻问题)实现贝叶斯估计器。

以及三种可用于模拟匹配数据的算法:

  • hri:医院/居民问题的约束模型。查找双向匹配市场中的所有稳定匹配。适用于稳定的婚姻问题(一对一匹配)和医院/居民问题(又称大学录取问题)(多对一匹配)。

  • sri:稳定室友问题的约束模型。查找室友问题(单面匹配市场)中的所有稳定匹配。

  • ttc:顶级交易周期算法。在住房市场问题中找到稳定的匹配点。

功能hrisri允许不完整的首选项列表(某些座席发现某些座席不可接受)和不平衡实例(双方座席数量不相等)。

希望其中之一可以提供帮助。第二种方法看起来特别有用,特别是如果它提供了经验估计量的话。


1

我知道这有点过时了,但是CRAN上现在有一个名为“ matchingR”的新软件包,我相信它比上面推荐的软件包要快得多。您可以使用安装

install.packages('matchingR')

另外,这是到源的链接

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.