首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动会议日程规划器

自动会议日程规划器
EN

Stack Overflow用户
提问于 2020-08-30 21:51:12
回答 1查看 159关注 0票数 1

我在一家活动组织公司工作,我们的主要业务是组织买家(零售商和分销商)与食品和饮料制造商之间的“快速约会”会议。我们有为事件制定时间表的人员,我想以某种方式实现这个过程的自动化。

我会向一个网络应用程序寻求逻辑上的帮助,这个应用程序可以安排会议。

  • 双方各有10家不同的公司。
  • 只有当一方从另一方选择一家公司时,会议才会举行。
  • 每次会议15分钟。
  • 整个活动应该持续2到2,5小时。

关于如何自动创建一个伟大的时间表,有什么建议吗?

对不起,如果我的问题不清楚,这是我的第一个堆栈溢出问题。

EN

回答 1

Stack Overflow用户

发布于 2020-08-31 02:18:44

我没有JavaScript解决方案,但这可以用数学优化工具来解决。

让我们从一些数据开始:

代码语言:javascript
复制
----     11 SET b  buyers

buyer1 ,    buyer2 ,    buyer3 ,    buyer4 ,    buyer5 ,    buyer6 ,    buyer7 ,    buyer8 ,    buyer9 ,    buyer10


----     11 SET s  sellers

seller1 ,    seller2 ,    seller3 ,    seller4 ,    seller5 ,    seller6 ,    seller7 ,    seller8 ,    seller9 
seller10


----     11 SET r  rounds

round1,    round2,    round3,    round4,    round5,    round6,    round7,    round8


----     11 PARAMETER wantMeeting  a meeting has been requested

            seller1     seller2     seller3     seller4     seller5     seller6     seller7     seller8     seller9

buyer1            1                                                                                               1
buyer2                                                            1                       1
buyer3                                    1           1
buyer4            1                       1
buyer5                        1                       1                       1
buyer6                                                            1           1                                   1
buyer7            1           1                                   1           1
buyer8                                    1                                                           1
buyer9                        1                                   1           1
buyer10                                                                                   1                       1

      +    seller10

buyer8            1 

引入二进制变量:

代码语言:javascript
复制
  x(b,s,r) = 1 if buyer b meets seller s in round r
             0 otherwise

我们只考虑wantMeeting=1的情况。隐式地,当wantMeeting=0时,我们假设x(b,s,r)=0

制约因素:

  1. 要求举行会议: wantMeeting(b,s)=1的所有b,s的和(r,x(b,s,r)=1
  2. 买方每轮只能开一次会。 所有b,r的(b,s)=1,x(b,s,r)) <= 1
  3. 卖方每轮只能开一次会。 所有s,r的和(b,s)=1,x(b,s,r) <= 1

这里是“这样”的数学表示法。

我还增加了一些限制,并提出了尽量减少所需回合次数的目标。得到的混合整数编程模型给出的结果如下:

代码语言:javascript
复制
----     42 VARIABLE x.L  meetings

                      round1      round2      round3      round4

buyer1 .seller1            1
buyer1 .seller9                                                1
buyer2 .seller5            1
buyer2 .seller7                                    1
buyer3 .seller3                                    1
buyer3 .seller4            1
buyer4 .seller1                                    1
buyer4 .seller3            1
buyer5 .seller2            1
buyer5 .seller4                                    1
buyer5 .seller6                        1
buyer6 .seller5                                                1
buyer6 .seller6                                    1
buyer6 .seller9            1
buyer7 .seller1                                                1
buyer7 .seller2                        1
buyer7 .seller5                                    1
buyer7 .seller6            1
buyer8 .seller3                        1
buyer8 .seller8            1
buyer8 .seller10                                   1
buyer9 .seller2                                    1
buyer9 .seller5                        1
buyer9 .seller6                                                1
buyer10.seller7            1
buyer10.seller9                                    1


----     42 VARIABLE round.L  round is used

round1 1,    round2 1,    round3 1,    round4 1


----     42 VARIABLE numRounds.L           =            4  number of rounds needed

我没有每轮的容量(假设有n张桌子)。这并不是很难补充。更多细节是这里

有关这类模型的更多示例,请参见:

  1. 安排商务晚宴
  2. 快速定年调度

我可能会在服务器上解决这个问题,但是如果您坚持使用JavaScript解决方案,那么GLPK混合整数编程解决程序(链接)有一个JavaScript端口。您还可以查看约束编程解决程序(在JavaScript中有一些可用的)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63662477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档