Optimization DAG:最小化分组节点中条目之间的距离

Optimization DAG:最小化分组节点中条目之间的距离,optimization,directed-acyclic-graphs,Optimization,Directed Acyclic Graphs,我有一个有向无环图,其中的节点是连接到其他节点中的条目的条目列表。有点像这样: entry ] entry--| ] node 1 entry | ] ----- | entry<-| ] node 2 entry | ] ----- | entry | ] node 3 entry--| ] 条目] 条目--|]节点1 条目|] ----- | entry您描述的问题是如何最小化最大距离。我认为这是NP难的,所以一个简单的解决方案不会很好。不过,您可以将

我有一个有向无环图,其中的节点是连接到其他节点中的条目的条目列表。有点像这样:

entry     ]
entry--|  ] node 1
entry  |  ]
-----  |
entry<-|  ] node 2
entry  |  ]
-----  |
entry  |  ] node 3
entry--|  ]
条目]
条目--|]节点1
条目|]
-----  |

entry您描述的问题是如何最小化最大距离。我认为这是NP难的,所以一个简单的解决方案不会很好。不过,您可以将其建模为ILP问题,并为此使用一些解算器

然后,您将最小化M作为目标

所有链接的约束条件为
M>=abs(sui-ei)
s_i
e_i
表示链接开始和结束条目的绝对索引


这些条目可以根据它们所属的节点重写为
s_i=n_i+c_i
,其中
n_i
节点
s_i
所属的索引和
c_i
该节点内的固定偏移量(在其他条目中)<代码>e_i
同样被重写。然后设置为使用解算器优化
n_i
您描述的问题是如何最小化最大距离。我认为这是NP难的,所以一个简单的解决方案不会很好。不过,您可以将其建模为ILP问题,并为此使用一些解算器

然后,您将最小化M作为目标

所有链接的约束条件为
M>=abs(sui-ei)
s_i
e_i
表示链接开始和结束条目的绝对索引

这些条目可以根据它们所属的节点重写为
s_i=n_i+c_i
,其中
n_i
节点
s_i
所属的索引和
c_i
该节点内的固定偏移量(在其他条目中)<代码>e_i同样被重写。然后设置为使用解算器优化
n_i