用lingo求解hamilton圈
hamilton圈:
包含的每个顶点的轨叫做Hamilton(哈密顿)轨;闭的Hamilton轨叫做Hamilton圈或圈;含Hamilton圈的图叫做Hamilton图。
直观地讲,Hamilton图就是从一顶点出发每顶点恰通过一次能回到出发点的那种图,即不重复地行遍所有的顶点再回到出发点。
分析:hamilton圈要每个点不重复的经过,因此要确定他,只需要确定选那几条边即可,假设有n个点的图,首先用flod算法算出任意两点的最短距离,此时可得到一个完全图。这时我们只需确定n条边即可。如果群举的话只需在 的2倍选出n条边,这时我们列出约束条件,用lingo求解:
一条边选不选我们用0-1变量标记(1表示选,0表示不选)
这时我们根据hamliton圈的特点(任意一个顶点的出度和入度都为1)列出约束条件
此时我们列出着两个条件,但不能确定是负这两个条件一定能得到hamilton圈,我们可以举反例试试能不能推翻它,