- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的问题如下:我和我的团队要搬到办公室的另一个地方,我们必须决定每个人的座位。但是,每个人都有优先事项。我想找到一种算法来帮助我们以每个人都满意的方式分配座位。 (或者至少是其中的大部分。)
我已经开始实现我自己的算法,我向每个人询问 3 个首选选项(团队由 10 个人组成,有 10 个位置)并考虑“资历”(他们在该团队中花费的时间长度)团队)作为他们之间的排名。
然而,我一直没有任何运气,试图浏览互联网寻找解决类似问题但没有找到的算法。
解决这个问题的最佳方法是什么?有没有解决这个问题或类似问题的广为人知的算法?
谢谢!
最佳答案
我首先想到的是稳定的婚姻问题。这是原始算法的问题陈述:
Given n men and n women, where each person has ranked all members of the opposite sex in order of preference, marry the men and women together such that there are no two people of opposite sex who would both rather have each other than their current partners. When there are no such pairs of people, the set of marriages is deemed stable.
请阅读 Gale–Shapley algorithm ,这就是我将针对此问题进行的调整。
让每个 worker 列出他们对所有地点的排名。这些将是“人”。届时,各名额将以资历排名作为“男”的排名。这些 Blob 将是 Gale-Shapley 算法中的“女性”。
您将获得没有“不稳定婚姻”的座位分配。不稳定的婚姻是这样的:
There is an element A of the first matched set which prefers some given element B of the second matched set over the element to which A is already matched, and
B also prefers A over the element to which B is already matched.
在这种情况下,不稳定的婚姻意味着在 W1
和 S1
分配之间有一个 worker-seat,这样另一个 worker,W2
, S1
排名更高。不仅如此,S1
的排名也比W2
高。由于席位是根据资历列表列出的,这意味着 W2
具有更高的资历。
实际上,这意味着您将获得一个座位分配,这样就没有工作人员拥有比资历更高的其他人想要“更多”的座位。
那篇 Wiki 文章的底部提到了 R 和 Python 中的包,它们已经实现了该算法,因此您只需输入首选项列表即可。
免责声明:这可能不是最有效的算法。所有的座位都有相同的排名表,所以可能有什么捷径。但是,如果大炮已经用 R/Python 为您编写,则使用大炮杀死苍蝇会更容易。此外,这是我记得的唯一一个 uni 算法,所以这是我唯一能用的锤子。
关于按优先级分配资源的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51669972/
有人告诉我,如果我只有一个“东西”,比如家(不是多个家),我应该在 routes.rb 中使用资源 :home,而不是资源 :home。但是当我查看路由时,POST 函数似乎想要 home#creat
Activity 开始。这些代码框架顺利通过。 // Initialize array adapters. One for already paired devices and //
资源 search-hadoop.com search-hadoop.com索引所有邮件列表,非常适合历史搜索。当你遇到问题时首先在这里搜索,因为很可能有人已经遇到了你的问题。 邮件列表 在A
我是 WPF 的新手,正在努力使用位于单独程序集中的样式。这就是我正在做的:- 我有一个带有\Themes 文件夹的类库项目,其中包含一个“generic.xaml”,它合并了\Themes 内的子文
我正在编写一个使用虚拟树状文件结构的插件。基本上它就像一个包含文件的标准文件系统,区别在于这些文件实际上并不存在于文件系统中的特定位置,而只是 java 对象。 这些当前由使用 SettingProv
如果我在 XAML 中使用以下内容,我会收到错误消息: 错
我正在使用 laravel 资源来获取 api 的数据: return [ 'id' => $this->id, 'unread' =>
我有以下 pom.xml: 4.0.0 mycompany resource-fail 0.0.1-SNAPSHOT BazBat
许多GDI +类都实现IDisposable,但是我不确定何时应该调用Dispose。对于使用new或静态方法(例如Graphics.CreateGraphics)创建的实例来说,这很明显。但是,由属
我正在构建一组 RESTful 资源,其工作方式如下:(我将使用“people”作为示例): 获取/people/{key} - 返回一个人对象 (JSON) GET/people?first_nam
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我有一个使用 $resource 的简单 Controller : var Regions = $resource('mocks/regions.json'); $scope.regions =
在 Azure 门户中,如何查看不同资源之间的依赖关系。我特别想查看哪些资源正在使用我要删除的存储。 最佳答案 您可以使用应用程序洞察应用程序 map 来执行此操作: 您还可以打开存储帐户的日志记录:
我正在使用 ionic 生成资源(图标和启动画面)。我正在使用 ionic v2.1.0 和 cordova v6.4.0。 到目前为止我一直在使用(它在以前的版本中工作): cordova plat
是否可以使用 Assets 包含子文件夹中的文件? 示例:[base_url]/assets/css/pepper-grinder/jquery-ui-1.8.11.custom.min.css 最佳
我正在阅读一些尝试教授 Android 开发的书。在书中,作者概述了 res/下的一些目录。他提到 res/menu 包含基于 XML 的菜单规范。他还提到了保存“通用文件”的 res/raw。当我创
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 9 年前。 Improv
我在服务器上使用 express-resource。在我的 AngularJS Controller 中: var User = $resource('/services/users/:use
因此,每当我运行我的应用程序时,它都会立即崩溃并给出以下错误: No package identifier when getting value for resource number 0x00000
对于我正在创建的(网络)应用程序,我需要使用基本身份验证在我的 UIWebView 中加载页面。 现在设置我使用的授权 header : NSString *result = [NSString st
我是一名优秀的程序员,十分优秀!