此代码使用遗传算法根据婚礼宾客彼此之间的密切程度来优化婚宴座位表。我选择使用以下键来确定接近度,尽管这可以根据作者的喜好进行修改。
亲密度:2000 = 配偶/日期 900 = 兄弟姐妹 700 = 父母/孩子 500 = 表亲 300 = 阿姨/侄女 100 = 朋友 0 = 不知道 5000 = 新娘/新郎
请注意,我必须创建一个特殊的新娘/新郎分数,因为我们俩都与参加婚礼的每个人关系密切,2000 分不足以确保我们坐在同一张桌子上。显然你想在你自己的婚礼上和你的新配偶坐在一起!
获得密钥后,您必须创建一个包含所有婚礼宾客 x 所有婚礼宾客的矩阵,并根据每位宾客与其他宾客的关系对他们进行评分。这显然非常耗时,我认为可以通过用户输入其家谱的某种 GUI 来解决。这并不能解决分配亲密关系的问题,但是如果您有建议,请与我们联系!
使用这个矩阵,您可以创建一个遗传算法,最大限度地提高整张桌子的紧密度,但要限制每张桌子上的客人数量(在我的例子中是 10)。在这个例子中,我选择了一个二元染色体(每个客人要么选择给定的桌子,要么不选择)
更多详情、使用方法,请下载后阅读README.m
2022-06-20 14:05:32
593KB
r语言