图论中最优树问题的LINGO求解
树:连通且不含圈的无向图称为树。常用T表示。树中的边称为树枝,树中度为1的顶点称为树叶。
生成树:若T是包含图G的全部顶点的子图,它又是树,则称T是G的生成树。
最小生成树:设T=(V,E1)是赋权图G=(V,E)的一棵生成树,称T中全部边上的权数之和为生成树的权,记为w(T),即w(T)=Σw(e)。如果生成树T*的权w(T*)是G的所有生成树的权最小者,则称T*是G的最优树,即w(T*)=Σmin{w(T)}.
在许多实际问题中,如在许多城市间建立公路网、输电网或通信网,都可以归结为赋权图的最优树问题。
图论中最有树的求解方法通常有两种算法:
Krukal算法和Prim算法
这里利用LINGO求解最优树。
问题1 有10个城镇,城镇1处有一条河流,现需要从各城镇之间铺设管道,使城镇1处的水可以输送到个城镇,求铺设管道最少的设计方式。
!最优树的LINGO程序;
model:
sets:
point/1..10/:u;
link(point,point):d,x;
endsets
data:
!各城镇之间的距离;
d=0,8,5,9,12,14,12,16,17,22,
8,0,9,15,16,8,11,18,14,22,
5,9,0,7,9,11,7,12,12,17,
9,15,7,0,3,17,10,7,15,15,
12,16,9,3,0,8,10,6,15,15,
14,8,11,17,8,0,9,14,8,16,
12,11,7,10,10,9,0,8,6,11,
16,18,12,7,6,14,8,0,11,11,
17,14,12,25,15,8,6,11,0,10,
22,22,17,15,15,16,11,11,10,0;
@text()=@writefor(link(i,j)|x(i,j)#GT#0:'x(',i,',',j,')=',x(i,j),'');
enddata
min=@sum(link(i,j)|i#ne#j:d(i,j)*x(i,j));
n=@size(point);
@sum(point(j)|j#gt#1:x(1,j))>=1;
@for(point(i)|i#ne#1:@sum(point(j)|j#ne#i:x(j,i))=1);
@for(link(i,j):@BIN(x(i,j)));
@for(link(i,j)|i#ne#j:u(i)-u(j)+n*x(i,j)<=n-1);!不构成圈;
end
结果为:
x(1,2)=1 x(1,3)=1 x(3,4)=1 x(3,7)=1 x(4,5)=1 x(5,6)=1 x(5,8)=1 x(7,9)=1 x(9,10)=1
原文链接:https://www.icourse163.org/
图论中最优树问题的LINGO求解的更多相关文章
- P中值选址问题的整数规划求解
P中值选址问题的整数规划求解 一 .P-中值问题 p-中值选址问题是一个常见的选址问题. 问题是给定I个需求结点和J个待选设施地点, 要求选择p个地点建立设施, 使得运输成本最低. 下面是个英文的问题 ...
- 图论中TSP问题的LINGO求解与应用
巡回旅行商问题(Traveling Salesman Problem,TSP),也称为货郎担问题.该问题可简单描述为走遍n个城市的最短路.几十年来,出现了很多近似优化算法.如近邻法.贪心算法.最近插入 ...
- Tarjan在图论中的应用(三)——用Tarjan来求解2-SAT
前言 \(2-SAT\)的解法不止一种(例如暴搜?),但最高效的应该还是\(Tarjan\). 说来其实我早就写过用\(Tarjan\)求解\(2-SAT\)的题目了(就是这道题:[2019.8.14 ...
- Lingo求解线性规划案例2——多阶段投资问题
凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 某公司现有资金30万元可用于投资,5年内有下列方案可供采纳: 1号方案:在年初投资1元,2年后可收回1. ...
- 用Lingo求解线性规划问题
第一步:输入目标条件和约束条件.每行以分号隔开.然后点击工具栏上的Solve按钮,或Lingo菜单下的Solve子菜单. 第二步:检查report中的结果. 默认情况下,Lingo不进行灵敏度分析. ...
- 【算法】关于图论中的最小生成树(Minimum Spanning Tree)详解
本节纲要 什么是图(network) 什么是最小生成树 (minimum spanning tree) 最小生成树的算法 什么是图(network)? 这里的图当然不是我们日常说的图片或者地图.通常情 ...
- Prim算法和Kruskal算法(图论中的最小生成树算法)
最小生成树在一个图中可以有多个,但是如果一个图中边的权值互不相同的话,那么最小生成树只可能存在一个,用反证法很容易就证明出来了. 当然最小生成树也是一个图中包含所有节点的权值和最低的子图. 在一个图中 ...
- 图论中DFS与BFS的区别、用法、详解…
DFS与BFS的区别.用法.详解? 写在最前的三点: 1.所谓图的遍历就是按照某种次序访问图的每一顶点一次仅且一次. 2.实现bfs和dfs都需要解决的一个问题就是如何存储图.一般有两种方法:邻接矩阵 ...
- 图论中DFS与BFS的区别、用法、详解?
DFS与BFS的区别.用法.详解? 写在最前的三点: 1.所谓图的遍历就是按照某种次序访问图的每一顶点一次仅且一次. 2.实现bfs和dfs都需要解决的一个问题就是如何存储图.一般有两种方法:邻接矩阵 ...
随机推荐
- 微信公众号开发 获取openid时报错40029 invalid code 问题的解决
{"errcode":40029,"errmsg":"invalid code, hints: [ req_id: aELCyY4ce-WOFLAa ...
- JavaWeb面试题(转)
1.Tomcat的优化经验 答:去掉对web.xml的监视,把JSP提前编辑成Servlet:有富余物理内存的情况下,加大Tomcat使用的 JVM内存. 2.什么是Servlet? 答:可以从两个方 ...
- 九十一、SAP中ALV事件之五,查看状态栏,工具栏和功能键等
一.我们按照说明,来到SE37功能模块,然后点击[转到]->[函数组]->[显示组] 二.按照说明输入SALV,点击勾选 三.点击主程序 四.点击主程序后,我们来到函数组页面,然后 五.我 ...
- 安装完CUDA Toolkit,VS2010调试项目控制台一闪而过
选择菜单栏的调试>>开始执行(不调试),就不一闪而过:
- 经验分享:如何搞定Personal Statement?
最近又到申请季啦,如何自己DIY申请,如何准备文书成为众多留学生关心的问题.不管是你申请本科,硕士,还是博士,相信这篇文章都能帮助到你.下面来说一下文书中一个很重要的组成,就是个人陈述Personal ...
- spring boot 实战教程
二八法则 - get more with less Java.spring经过多年的发展,各种技术纷繁芜杂,初学者往往不知道该从何下手.其实开发技术的世界也符合二八法则,80%的场景中只有20%的技术 ...
- python中MD5使用练习
import platformpv = platform.python_version()print (pv) import hashlib deomo_val = 'a4ec18'' md5_jm ...
- CodeForces - 401C Team(简单构造)
题意:要求构造一个字符串,要求不能有连续的两个0在一起,也不能有连续的三个1在一起. 分析: 1.假设有4个0,最多能构造的长度为11011011011011,即10个1,因此若m > (n + ...
- file:///D:/Program%20Files/Microsoft%20Visual%20Studio%2011.0/VC/VCWizards/CodeWiz/MFC/Variable/HTML
title VS2005 VS2008添加变量,添加函数,添加类时弹出 Script Error 解决办法 问现象描述 : 问题大家都清楚了.不赘述 错误提示 :file:///C:/Progra ...
- 14 ~ express ~ 显示用户数据
一,router/admin.js var express = require('express') var router = express.Router() var User = require( ...