TSP问题及LINGO求解技巧.

Slides:



Advertisements
Similar presentations
实用农业科技写作 王鹏文. 第一章 导论 第一节 农业科技写作概述 一 、 农业科技写作概念和分类: 科技文献类、科技应用类、 科技普及类、科技新闻类 二、 农业科技写作的意义和重要性: 科技工作的重要组成部分、科学研究的手段、 科技成果的反映和标志、科技交流的工具 三、 农业科技写作的特点 : 功利性与及时性、科学性与先进性、读者的专门性与狭隘性、
Advertisements

新课程引领 实践中前行 —— 蓟县初中信息技术三年课改总结. 自从 2005 年秋季我市进入基础教育新一 轮课程改革实验以来,在市教研室的正 确领导下,我县初中信息技术课改工作 稳步推进。三年来,取得了一些成果, 也有不少体会。现将三年来的信息技术 课改工作总结如下。
实习期工作总结 述职人:孙伟 —— 个人简历 姓名:孙伟 毕业院校 : 内蒙古民族大学 专业:农业机械化及其自动化.
一、中国湿地面临的威胁 目前,湿地污染严重,湖泊 富营养化问题突出。随着社 会经济的快速发展,湿地污 染在很长时期内依然严重。 湿地污染 1.
河南省基础教育资源网 邓伟鹏 二〇一二年七月 内容大纲 1. 培训平台的目的 2. 培训平台介绍 3. 培训平台功能 4. 培训工作建立流程 5. 培训门户 6. 在线学习 6.1 课程学习 6.2 在线考试 7. 培训考试管理 7.1. 课程管理 7.2 必修学习班建立 7.3 在线考试管理 7.4.
桐乡市地方税务局 2013 年度社会保险费汇算清缴有 关政策及事项说明. 一、政策规定 根据《中华人民共和国社会保险法》、《桐乡市社会保险费征缴管 理办法》(市政府令第 42 号)、《 关于完善社会保险费征缴管理有关问 题的通知》(桐政办发 [2012]152 号)及《关于完善社会保险费征缴管理.
专题二:城市化与城乡规划 授课教师:周栋文.
NO.005 職涯 報 實習 徵才 攻讀 國立嘉義大學 學生事務處學生職涯發展中心.
國中教育會考 十二年國教—免試入學 及 意見整理.
延庆县“十二五”时期城乡基础设施 建设规划 2011年03月.
滚 滚 长 江 安匠初中:李艳阁.
长江的开发 惠州市河南岸中学 谢国文.
黄岛区政府部门责任清单编制工作介绍 二〇一五年六月.
严格标准 规范程序 认真做好党员发展工作.
薪資申報系統操作說明.
商学院 旅游管理专业介绍.
智学网账号登录 1、打开网页,在地址栏里输入 2、点击登录,输入用户名和密码,即可登录:
 历史以人类的活动为特定的对象,它思接万载,视通万里,千恣百态,令人销魂,因此它比其他学科更能激发人们的想像力。    
合能锦城项目招商手册 合能地产
《数学》(华师大.八年级 下册) 第二十一章数据的整理与初步处理 扇形统计图的制作.
-矿产资源勘查开采的有关法律知识介绍 四川省国土资源厅 陈东辉
Word高级应用——制作毕业论文 Word高级应用——制作毕业论文 6..
怎样报销劳务性费用? ——暨薪酬发放申报系统介绍 怎样报销劳务性费用? ——暨薪酬发放申报系统介绍 (学院、部门适用)
盘江煤层气公司 页岩气、煤层气基础知识培训
计算机应用基础 项目 3-5 制作个人简历.
长江.
『臺北市營建剩餘資源管理系統』 教育訓練說明 臺北市政府 報告人 王宏正
“三项制度+一个平台”构建 省级高校教学质量监控体系
瓯海职专财经专业组简介.
国有资产清查 数据填报操作规范 2016年3月25日.
103年高雄市自然與生活科技學習領域教學研習 動物單元的 教學理念與實踐 講師:屏東縣和平國小 周鳳文.
软件工程 实验三 周志钊
东京城市建设史简述.
乙檢直通車 推廣小組:台科大圖書 報告人:孫婉倩.
上海文会会计师事务所有限公司 中国注册会计师 童幸义
关于成绩的数理统计的探讨 望您多多指教!多谢!!.
仓储企业岗位人员招聘 第一组 组员 :陈娇娇 祝婷婷 丁元莉 袁珮 王慧.
玉溪工业财贸学校副校长 示范校建设办公室主任 柏家渭 2014年5月13日
院系:政史学院历史系 班级:10级4班 学号: 姓名:蒋阿晴
有大权炳的天使 (18:1-3) 巴比伦大城倾倒了!倾倒了! 天上的声音 (18:4-20) (4-8) 一天之内,她的灾殃要一齐来到。
人口与计划生育 统计分析 昌吉市计划生育委员会 二○○六年三月.
学习方法建议 首先应该有明确的学习动机,解决思想问题。 然后根据自己实际要有一个明确的学习目标。
企业引进顶级人才之门, 人才跨上顶级职业之路 。
路程、时间与速度 ——北师大版四年级数学上册 成都市武顺街小学 漆智妮.
申請土地徵收注意事項 內政部地政司 邱于蓉.
穩定是指偏離平衡時能夠回復平衡的特性,控制則是改變飛行狀態的機制。
2014年深圳市学生人身意外伤害保险投保工作介绍 中国人民财产保险股份有限公司深圳市分公司
電 子 工 程 系 資料庫系統期末報告 門市人流管理系統 組員: 吳事佳 楊琮琪
付款作業錯誤態樣【出納組】 錯誤1~核銷文件備具不齊 錯誤2 ~戶名與系統不同 錯誤3 ~未輸發票號碼日期 錯誤4 ~受款人帳號輸錯
武汉理工大学人事系统 职称评审资格审查培训
關鍵數據 數據錯了 扣 50分 排序錯了 扣50分.
办学条件核查 评估秘书组 电力职业技术学院 山西机电职业技术学院 2014年7月9日.
第八单元 Word和Excel 进阶应用.
丹 巴 (“中國最美的地方”的一個四川農村)
科 展 說 明.
電腦應用 製作單位: 高雄市立高雄中學.
8-15:证明一棵树最多只有一个完美匹配。 8-16:对于n=2,3,4,5,分别找出一个没有完美匹配的n-正则简单图的例子。
怎样报销劳务性费用? ——暨薪酬发放申报系统介绍 怎样报销劳务性费用? ——暨薪酬发放申报系统介绍 (项目经费适用)
國民年金 np97006.
成本会计学.
舊生升級編班與新生管理操作說明 全誼資訊股份有限公司 中華民國106年06月05日.
Microsoft Word 2003 透視合併列印 Microsoft MVP 王作桓.
第6章 运输系统及运输优化.
LINGO 教程 LINGO是用来求解线性和非线性优化问题的简易工具。LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,LINGO高效的求解器可快速求解并分析结果。
计 算 机 应 用 基 础 潍坊学院 计算机工程学院 主讲人:李凤慧.
新课程理念下如何进行课堂教学 刘志超 2014年2月25日.
手机淘宝“变形”产品—微淘 操作流程指南 (内测版).
安全保密产品检测申请书 材料准备介绍.
選舉軟體簡介 民眾服務與行程管理系統 深耕與經營.
6 分析資料-以統計測量數呈現.
Presentation transcript:

TSP问题及LINGO求解技巧

TSP问题介绍 巡回旅行商问题(Traveling Salesman Problem, TSP),也称为货郎担问题。最早可以追溯到1759年Euler提出的骑士旅行问题。1948年,由美国兰德公司推动,TSP成为近代组合优化领域的一个典型难题。它已经被证明属于NP难题。 用图论描述TSP,给出一个图 ,每边 上有非负权值 ,寻找G的Hamilton圈C,使得C的总权 最小。

TSP问题算法 几十年来,出现了很多近似优化算法: 近邻法 贪心算法 最近插入法 最远插入法 模拟退火算法 遗传算法 LINGO软件进行求解方法

TSP例题 问题1:设有一个售货员从10个城市中的某一个城市出发,去其它9个城市推销产品。10个城市相互距离如下表。要求每个城市到达一次仅一次后,回到原出发城市。问他应如何选择旅行路线,使总路程最短。

问题1 表1 10个城市距离表 城市 1 2 3 4 5 6 7 8 9 10 12 13 11 18 14 17 21 27 23 16 20 19 25

问题1解答 我们采用线性规划的方法求解: 设城市之间距离用矩阵d来表示, 表示城市i与城市j之间的距离。设0--1矩阵X用来表示经过的各城市之间的路线。设 考虑每个城市后只有一个城市,则:

问题1解答 该约束的解释: 考虑每个城市前只有一个城市,则: 但仅以上约束条件不能避免在一次遍历中产生多于一个互不连通回路。为此我们引入额外变量 ,附加以下充分约束条件: 该约束的解释: 如i与j不会构成回路,若构成回路,有: , ,则:

问题1 问题1解答 , ,从而有: ,导致矛盾。 如i,j与k不会构成回路,若构成回路,有: , , 则: , , 从而有: ,导致矛盾。 , ,从而有: ,导致矛盾。 如i,j与k不会构成回路,若构成回路,有: , , 则: , , 从而有: ,导致矛盾。 其它情况以此类推。

问题1 问题1解答 于是我们可以得到如下的模型:

问题1解答 问题1 Lingo程序如下: !TSP quesion; MODEL: SETS: city/1..10/:u; ENDDATA link(city,city):d,x; ENDSETS DATA: d= 0 7 4 5 8 6 12 13 11 18 7 0 3 10 9 14 5 14 17 17 4 3 0 5 9 10 21 8 27 12 5 10 5 0 14 9 10 9 23 16 8 9 9 14 0 7 8 7 20 19 6 14 10 9 7 0 13 5 25 13 12 5 21 10 8 13 0 23 21 18 13 14 8 9 7 5 23 0 18 12 11 17 27 23 20 25 21 18 0 16 18 17 12 16 19 13 18 12 16 0; end ENDDATA MIN=@SUM(link:d*x); @for(city(j):@sum(city(i)|j#ne#i:x(i,j))=1); !城市j前有一个城市相连; @for(city(i):@sum(city(j)|j#ne#i:x(i,j))=1); !城市i后前有一个城市相连; @for(link(i,j)|i#NE#j#and#i#gt#1:u(i)-u(j)+10*x(i,j)<=9); @FOR(link:@BIN(x)); end

TSP例题 问题2: 2005年电工杯B题比赛项目排序问题。 全民健身计划是1995年在国务院领导下,由国家体委会同有关部门、各群众组织和社会团体共同推行的一项依托社会、全民参与的体育健身计划,是与实现社会主义现代化目标相配套的社会系统工程和跨世纪的发展战略规划。现在,以全民健身为主要内容的群众性体育活动蓬勃开展,举国上下形成了全民健身的热潮,人民群众健康水平不断提高,同时也扩大了竞技体育的社会影响,提高了竞技体育水平。现在各级、各类、各种运动比赛比比皆是,这不但提高了全民的身体素质,而且使一批运动员脱颖而出,成为运动健将,为国家争得了荣誉。

TSP例题 问题2: 2005年电工杯B题比赛项目排序问题。 在各种运动比赛中,为了使比赛公平、公正、合理的举行,一个基本要求是:在比赛项目排序过程中,尽可能使每个运动员不连续参加两项比赛,以便运动员恢复体力,发挥正常水平。 1.表2是某个小型运动会的比赛报名表。有14个比赛项目,40名运动员参加比赛。表中第1行表示14个比赛项目,第1列表示40名运动员,表中“#”号位置表示运动员参加此项比赛。建立此问题的数学模型,并且合理安排比赛项目顺序,使连续参加两项比赛的运动员人次尽可能的少;

TSP例题 问题2: 2005年电工杯B题比赛项目排序问题。 2.文件“运动员报名表”中给出了某个运动比赛的报名情况。共有61个比赛项目,1050人参加比赛。请给出算法及其框图,同时给出合理的比赛项目排序表,使连续参加两项比赛的运动员人次尽可能的少; 3.说明上述算法的合理性; 4.对“问题2”的比赛排序结果,给出解决“运动员连续参加比赛”问题的建议及方案。

问题2 表2 某小型运动会的比赛报名表

问题2 表2 某小型运动会的比赛报名表

问题2 表2 某小型运动会的比赛报名表

问题2 问题一解答 若项目i和项目j相邻,可以计算出同时参加这两个项目的人数,作为i和j的距离 。则问题转化为求项目1到项目14的一个排列,使相邻距离和最小。我们采用TSP问题求解。但由于开始项目和结束项目没有连接,可考虑引入虚拟项目15,该虚拟项目与各个项目的距离都为0。 距离矩阵D的求法: 该报名表用矩阵 表示。

问题2 问题一解答 则 另外 由于问题1中40个运动员参加14个项目的比赛是 word 表,可将其拷贝到 Excel 表中,然后将 # 替换为 1,将空格替换为0,形成0-1表,并拷贝到数据文件table1.txt 中。问题2中1050个运动员参加的61个项目比赛的 Access 数据库中的表保存为Excel 表,然后在表中将 # 替换为1,将空格替换为0,形成0-1表,并拷贝到数据文件table2.txt中。

问题2 问题一解答 在Matlab中编制如下程序形成距离矩阵。 for i=1:n+1 load table1.txt; d(i,i)=0; end %输出文件 fid=fopen('dis1.txt','w'); for j=1:n+1 fprintf(fid,'%1d ',d(i,j)); fprintf(fid,'\n'); fclose(fid); load table1.txt; a=table1; [m,n]=size(a); d=zeros(n+1,n+1); %定义距离矩阵; for i=1:n for j=1:n for k=1:m d(i,j)=d(i,j)+a(k,i)*a(k,j); %计算不同项目之间距离 end

问题2 问题一解答 在Matlab中编制如下程序形成距离矩阵。 输出的距离矩阵D为: 0 2 1 2 0 0 1 0 1 2 1 1 1 1 0 2 0 1 4 1 0 1 1 1 3 1 0 2 1 0 1 1 0 1 0 0 0 3 1 1 0 2 2 1 0 2 4 1 0 1 1 2 1 0 2 1 0 1 1 0 0 1 0 1 0 2 0 1 1 1 0 1 1 2 0 0 0 0 1 2 0 1 2 1 1 1 2 1 2 0 1 1 0 2 0 1 0 1 1 1 0 2 2 1 0 0 1 3 1 1 2 1 0 1 2 1 4 2 2 0 1 1 1 0 1 1 1 1 0 1 1 1 3 1 0 2 3 1 2 1 1 1 2 1 0 1 0 0 3 0 1 1 0 1 0 1 0 1 1 1 0 3 1 1 0 1 0 2 0 1 2 2 4 1 0 3 0 1 0 0 1 2 2 1 1 1 2 2 3 0 1 1 0 4 0 1 1 1 1 2 2 1 2 1 3 1 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

问题2 问题一解答 Lingo程序:

问题2 问题一解答 Lingo程序: 其中数据文件dis1.txt为: 0 2 1 2 0 0 1 0 1 2 1 1 1 1 0 0 2 1 2 0 0 1 0 1 2 1 1 1 1 0 2 0 1 4 1 0 1 1 1 3 1 0 2 1 0 1 1 0 1 0 0 0 3 1 1 0 2 2 1 0 2 4 1 0 1 1 2 1 0 2 1 0 1 1 0 0 1 0 1 0 2 0 1 1 1 0 1 1 2 0 0 0 0 1 2 0 1 2 1 1 1 2 1 2 0 1 1 0 2 0 1 0 1 1 1 0 2 2 1 0 0 1 3 1 1 2 1 0 1 2 1 4 2 2 0 1 1 1 0 1 1 1 1 0 1 1 1 3 1 0 2 3 1 2 1 1 1 2 1 0 1 0 0 3 0 1 1 0 1 0 1 0 1 1 1 0 3 1 1 0 1 0 2 0 1 2 2 4 1 0 3 0 1 0 0 1 2 2 1 1 1 2 2 3 0 1 1 0 4 0 1 1 1 1 2 2 1 2 1 3 1 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

问题2 问题一解答 Lingo12求解结果为: 目标值z=2 x(1,8)=1 x(2,6)=1 x(3,11)=1 x(4,13)=1 x(5,1)=1 x(6,3)=1 x(7,5)=1 x(8,15)=1 x(9,4)=1 x(10,12)=1 x(11,7)=1 x(12,14)=1 x(13,10)=1 x(14,2)=1 x(15,9)=1 由于15是虚拟项,去掉后对应序列为 9-4-13-10-12-14-2-6-3-11-7-5-1-8-9 则项目排序如下,其中箭头上所示数字为连续参加相邻两项目的运动员数。 即有两名运动员连续参加比赛。

问题2 问题二解答 问题2解答与问题1相同,只是项目变成61个,引入虚拟项目后变为62个,运动员为1050名。模型建立同问题1。

谢谢!!