以分组步骤完成图表

时间:2012-10-21 02:56:29

标签: algorithm graph-theory graph-algorithm

好的,所以我想编写一些软件来解决这个问题:

有一个网络活动,企业主可以在一张桌子上与其他企业主交谈一段时间。有n个人参加活动,可能坐在一张桌子上的人数是s,而且有桌子。

在规定的时间过后,所有人都以某种方式洗牌,以便他们能够与新人交谈。我们的想法是让参加活动的每个人都有机会与其他人交谈(一个完整的图表),尽可能少的冗余连接。

并不要求图表100%完整,但尽可能接近会很好。

总结变量(具有实际值):

    n - the number of people attending the event (20-40)
    s - the number of people who can sit at one table(5-8)
    t - the number of tables (4-10)
    c - the number of shuffles (what ever is required for the setup)

所以我对图论没有任何经验,但这是我解决问题的粗略想法:

  1. 形成所有可能连接的列表,有(n *(n-1))/ 2个
  2. 构建一个表,一次添加1个unmade连接,直到该表具有正确的人数
  3. 尝试添加不创建冗余连接的连接
  4. 如果某个人坐在一张桌子以上,请不要在表格中添加连接。
  5. 重复此操作,直到所有连接都被使用。
  6. 我在思考如何实现/实施它时遇到了很多麻烦。我希望有人可以给我一些建议或指出我正确的方向。

    由于

1 个答案:

答案 0 :(得分:0)

这听起来几乎像split graph问题或clique问题的某些变体。

这是一个相对复杂的问题,而且您不需要精确的解决方案,这使得很难说出您需要做什么来获得“可接受的好”解决方案。我建议你先阅读这两页,希望你能找到符合你当前情况的东西。

我同意从完整的图表向后工作可能是最好的策略。您从完整的图表开始,然后尝试将其分区为组件,以便您获得安排。您提出的算法可能很有用。最好只是试一试,看看,如果它不起作用,可以问另一个问题:)