考虑以下情况:一个地区的公共工程部门有责任将工作分包给私营公司。
有几种类型的任务。
每项任务都由一个团队执行,但每个团队都能够执行所有不同类型的任务。
该地区分为多个区域,每个区域要完成的任务数量是已知的。
特别是,以下信息是可用的:
• 该地区分为 n 个区。
• 有 m 家私人公司,使得 1 ...k 是有经验的和 k + 1 ...m 没有经验。
• 每家公司 i 都有 ti 个可用的团队,对于所有 1 ≤ i ≤ m。
• 每个区 j 需要 aj 个团队,对于所有 1 ≤ j ≤ n。
• 将一个团队从公司 i 分配到地区 j 的年成本是(整数)ci,j ,对于所有 1 ≤ i ≤ m, 1 ≤ j ≤ n。
目标是编写一个逻辑程序来帮助公共工程部门完成此过程。
使用上述信息,程序应确定每个公司分配到每个地区的团队数量,以满足以下约束。
• 必须至少为每个地区分配一个有经验的公司(以防万一该地区出现一些困难的任务)。
• 必须分配足够的团队以满足每个地区的需求。
• 任何公司都不能被要求提供比现有团队更多的团队。
• 成本必须最小化。
用 ASP (problem encoding.lp) 编写一个逻辑程序,找出问题的所有解,给定 n, m, k, ti , aj , ci,j 对所有 1 ≤ i ≤ m, 1 ≤ j ≤ n。
记录代码,以便以下内容清楚。
(a) 应该如何使用。
(b) 解决问题的方法是什么。
关注他