当前位置: 首页 > 知识库问答 >
问题:

OPL CPLEX,向我的最佳化问题添加相似性约束

海叶秋
2023-03-14

这是我想解决的最佳化问题。我想添加一个新的约束,如下所示:

  • Z是用户篮子中的产品集
  • 相似性(zi,zj)是衡量产品zi和zj相似性的相似函数

这个新约束的目标是确保我们的用户篮子不包含类似(冗余)产品。

如果我们假设有一个名为“相似性”(product1,product2)的相似性函数,它以两个产品作为参数,并给出它们之间的相似性,那么如何添加此约束。

感谢

共有1个答案

谭正谊
2023-03-14

让我分享一个例子。与我之前分享的模型相比,您可以添加:

float similarity[i in allProducts][j in allProducts]=
abs(ord(allProducts,i)-ord(allProducts,j));

float sim=4;

在要阻止的主题之前,然后:

ctSim:
     forall(ordered i,j in allProducts) z[i]*z[j]*similarity[i][j]<=sim;
}

在主题框中。

 类似资料:
  • 问题内容: 我到处环顾了很多,还没有找到将现有IntelliJ项目转换为Gradle的最佳解决方案。我在团队环境中工作,我们目前共享.ipr文件,因为我们要跟踪一些构建配置。最终,我们将摆脱那些偏爱Gradle的人,但是在Gradle转换完成之前,我不能搞砸太多。 同样,我们的Java源文件位于src目录的根目录中,而不是标准的src / main / java。 有什么方法可以将Gradle添加

  • Spark Dataframes有一个方法每次添加一个新列。若要添加多列,需要一个的链。这是做这件事的最佳实践吗? 第二部分,在和的链中使用有哪些权衡? 我在某个地方读到过,在Spark DFs中使用可用的方法总是比推出自己的实现要好。如果我的论点错了,请让我知道。谢谢!欢迎所有的想法。

  • 问题内容: 是否可以在JDialog中添加最大化/最小化按钮?如果不是,那么我们可以将这些按钮添加到JPanel吗? 我有一个JPanel,并且在该面板内部有一个JDialog。我想添加一个最小化/最大化按钮,以便当单击该按钮时,JDialog会根据JPanel调整JDialog下的组件。就像当我单击最大化时,jpanel应该被放大,并且该面板(JDialog)中的组件也被放大,反之亦然,以最小化

  • 我正在试图找出设置实体图的最佳方法。我将基于下面的图像进行解释。 TBLParentCustomer:此表存储主要客户的信息,主要客户可以是企业或消费者。(使用查找表TBLCustomerType标识这些客户。) TBLChildCustomer:此表存储主客户下的客户。主要业务客户可以有授权员工和授权代表,主要消费客户可以有授权用户。(它们是使用查找表TBLCustomerType标识的。) T

  • 我在用Java做一个2D游戏,我用KeyListener和一些布尔值来检测按键。但问题是,如果我按住一个键,玩家就不会移动半秒钟,然后开始移动。有人知道怎么修吗? public void键按下(...){PlayerX+=3;}如有任何答复,不胜感激,谢谢。

  • 此外,我们的Java源文件位于src目录的根目录中,而不是标准的src/main/Java。 有没有一种方法,我可以添加Gradle到我的项目,不会让我删除和重新创建我的IntelliJ项目,也不会把其他人搞砸,当他们做一个Git拉动?