ampl - 我可以在 AMPL 中使用集合的乘法吗?
问题描述
我正在尝试为图形问题编写模型。我定义了一个成对的集合来标记边缘。因为我需要在一些边缘之间找到内积。更确切地说:
假设 E 是一组边,我定义了:
集合 N,在 E 内交叉 E;
例如,如果 E={1,2,3},N 可以是:{(2,3),(1,2)} 即我需要找到边 1 和边 3 之间以及边 1 和边之间的内积2.
不,我的问题是我必须将边与顶点相关联。例如假设 V={v1,v2,v3,v4,v5} 是顶点集。边 1 在 v1 和 v3 之间,边 2 在 v2 和 v3 之间。
我需要定义另一个成对集合,例如:集合 N,V 交叉 V 内;但我需要确定其背后的一组边缘。例如,如果 M={(1,3),(2,3)} 我需要第三列来确定第一对属于边缘 1,第二对属于边缘 2。我如何在 AMPL 中做到这一点?
解决方案
你可以这样做:
set vertices;
set edgenames;
set edges_with_vertices within edgenames cross vertices cross vertices;
这样对于 edges_with_vertices 中的任何三元组,第一个元素是边名,第二个和第三个是结束顶点。
推荐阅读
- python - 使用构造函数创建对象时如何避免死循环
- python - Python Crash Course 运行时出错说组对象没有属性精灵
- html - 如何在字体真棒图标下方显示文本?
- node.js - SyntaxError:ejs 文件中出现意外的标记“)”
- android - Android OpenGL ES 2.0:如何使用深度图缩放纹理?
- python - 如何解决无法在模板文件夹中找到 HTML 文档导致内部服务器错误的烧瓶应用程序
- r - 如何使用框架中的数据绘制 ggplot?
- c# - 如何从嵌套的 JSON 对象中获取键的字符串值?
- android - ApplicationComponent 是否已弃用?
- c# - Xamarin 连接相机服务失败