【发布时间】:2015-07-04 16:19:55
【问题描述】:
我有一个任务,我必须在消费者之间分配独特的资源。规则是:
- 每个消费者都有一组他们可以使用的资源类型,
- 每个资源都是独一无二的,
- 每个消费者必须接收 n>0 个资源,
- 必须分发所有资源。
E. G。我们有这个消费者列表和他们的偏好:
- 答:{X, W}
- B:{X、Y、V}
- C: {X, Z}
- D:{Z}
我们有一个资源列表:[X, W, Y, V, Z]。
如果我们通过遍历消费者列表并为他们提供他们集合中的第一个可用资源来天真地分配资源,我们会在 D 上失败,因为唯一的 Z 已经分配给 C。更好的解决方案是:A(W ), B(Y, V), C(X), D(Z)。
对我来说看起来像是一个逻辑编程问题!虽然编写一个为这种特殊情况提供解决方案的 Prolog 程序是微不足道的,但我想要的是一个可以解决任何此类问题的通用程序,或者告诉我不存在给定数据的解决方案。
我应该去哪里看,我应该用谷歌搜索什么,这个问题有名字吗?
【问题讨论】: