首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在为LP建模时,如何根据条件选择参数?

在为LP建模时,如何根据条件选择参数?
EN

Stack Overflow用户
提问于 2016-02-04 23:43:19
回答 1查看 62关注 0票数 0

我正在尝试用IBM CPLEX编写一个混合整数模型,但我遇到了一个问题。以下是问题所在:

学生可以选择几种不同的课程,学生从课程中获得的效用取决于学生和课程。具有挑战性的部分是;如果由同一学生一起学习,某些课程的效用有时不同于它们各自效用的总和。如果此联合效用为零,则应考虑单个效用。在这一点上,我计划做的是编写一个条件,使模型采用联合效用值,而不是这两门课程的单独值,如果这两门课是由学生学习的,但如果没有非线性,我无法做到这一点。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2016-02-17 20:07:21

首先,你的问题缺少一个非常重要的信息:目标。

我假设目标是以这样一种方式给学生分配课程,使学生通过课程获得的总效用最大化。在这种情况下,任何学生通过学习任何课程都可以获得的所有实用程序都是已知的。从你的问题中,我还了解到联合公用事业也是众所周知的。因此,我们可以定义一个新的名为loss的“参数”,这样loss(k,l)表示当学生同时学习课程k和l时“损失的效用”的量。使用给定的数据可以很容易地计算出这些值。然后,我们可以通过以下方式解决问题:

  • 让w(i,k)是决定学生i通过选修课程k获得的效用的参数。
  • 让x(i,k)是决定学生i是否选修课程k的整数二进制变量。
  • 让u(i,k)是决定学生从选课中获得的实际效用的变量。

目标函数:

  • 最大化所有学生和课程的sumof(u(i,k))

条件:

  • x(i,k) * w(i,k) >= u(i,k) (适用于所有学生和课程)

这保证了来自课程k的学生i的最大效用不能超过假设的(给定的,最大可能的)效用。这也保证了当x(i,k)为零时u(i,k)被设置为零。损失x(i,k) w(i,k) +x(i,l) w(i,l)) >= u(i,k) + u(i,l) -损失(k,l)对于所有“课程对”和所有学生

这保证了学生从同时选修两门课程中获得的效用之和不会超过联合效用。

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

https://stackoverflow.com/questions/35205331

复制
相关文章

相似问题

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