第一篇:匈牙利算法求解教学任务指派问题(本站推荐)
匈牙利算法求解教学任务指派问题
摘 要 在实际教学中,任务指派问题是一个综合考虑教师特长、学生满意度、教师教学精力等多因素的决策问题。应用匈牙利算法建立指派模型,求解复杂因素下的教学任务指派问题,定量、精准地将恰当的教学任务分配给适当的教师,以使系统总体满意度最大化。该指派优化模型的建立,使得任务分配更加客观和明确。
关键词 匈牙利算法;教学任务;任务指派问题;MATLAB
中图分类号:G642 文献标识码:B
文章编号:1671-489X(2017)14-0012-03
Hungarian Algorithm for Teaching Task Assignment Problem//YANG Fan,LI Hui,HU Younong
Abstract In a practical teaching,the task assignment problem is a
decision-making problem which considers teacher’s specialty,stu-dent’s satisfaction,teacher’s teaching energy and so on.In this paper,in order to maximize the overall satisfaction of the system,the assign-
ment model is established by using the Hungarian algorithm to solve the task assignment problems in complex conditions,by assigning appropriate teaching tasks to appropriate teachers quantitatively and
accurately.The assignment optimization model makes task assign-ments more objective and clear.Key words Hungarian Algorithm; teaching task; task assignment problem; MATLAB
前言
随着教学内容的扩展,各类前沿技术在课堂中得到充分体现,教学课程的设置、教学任务的分配等问题也变得更加复杂。传统的教学任务指派,主要是根据任务之间的关系、教师的授课情况和学生的偏好,由专门的教学管理人员制定课程表,费时、费力且效率低,属于典型的经验型管理。随着教学管理信息化含量的日益提升,定性的人工进行教学任务指派的情况已无法适应定量、快速、自动的科学管理要求。因此,有必要引入运筹学的理论和方法解决教学任务指派问题,并以计算机辅助解决实际问题。
本文基于匈牙利算法,建立教学任务指派优化模型,分析如何分配教师承担教学任务以使系统整体满意度最大化,并采用MATLAB编程实现求解。指派问题
指派问题的常用描述是有n个人可承担m项任务,由于每人的专长不同,完成不同任务的效率也不同,如何指派哪个人完成哪项任务,使完成所有任务的总效率最高或所需总时间最少?指派问题是运输问题中的一种特殊情况,“派合适的人去做合适的事”是对该问题的最贴切描述。
指派问题的数学模型通常是:设n个人(或机器)被分配去做m件工作,由于工作性质和各人(或机器)的专长不同,完成不同工作的效益(时间、成本、收益等)将有差别,用系数矩阵C表示,Cij表示第i个人完成第j件工作的效益,Cij≥0(i=1,...,n;j=1,...,m)。当n=m时,为平衡状态下的标准指派问题;当n>m时,人数多于任务数,属于不平衡状态下择优录用问题;当n 使得总效益最高(时间最少、成本最小、收益最大等),即目标函数。当且时,为一对一指派问题;否则为多人协作或兼职问题。 求解指派问题的方法通常有分支定界法、隐枚举法、匈牙利法等[1]。匈牙利算法由匈牙利数学家Edmonds于1965年提出,是基于Hall定理中充分性证明的思想,用增广路径求二分图最大匹配的算法,算法的核心是寻找增广路径,也可用于指派问题的求解[2]。 针对多人执行多项工作的指派问题,张云华采用匈牙利算法的基本思想和步骤进行了研究[3]。目标分配问题作为指派问题的一种类型,谷稳综合匈牙利算法及其进化算法的特点,对机器人足球的目标分配问题进行了研究[4]。为避免匈牙利算法多次试分配导致处理速度慢的不足,周莉等人对寻找独立零的次序进行改进,得到匈牙利算法求解指派问题的一次性分配算法[5]。李延鹏等人提出利用虚拟工作代替并联环境,将具有并联环节的人员指派问题转化为典型的指派问题,提高了匈牙利算法的适用性[6]。谢博耶夫采用反圈法和对称差,对匈牙利算法进行了推广[7]。对于“人少任务多”型指派问题的解决,与“加边补零”法、“加边补最小值”法等传统解法不同,马晓娜通过差额法对匈牙利算法进行了改进[8]。基于匈牙利算法的任务指派优化模型 问题描述 教学课程的指派优化问题,需要综合考虑教师教学特长、学生满意度、课程内容等多因素,追求教学质量、满意度和教师教学精力等多目标的优化决策问题,任何一个参数的改变都可能影响最终的指派结果。该类问题可描述为: 假设有n名不同教研室的教师,N={N1,N2,...,Nn},所有教师可以讲授课程共m门,M={M1,M2,...,Mm}。已知n名教师对m门课程的擅长程度矩阵G、n名教师的课时上限序列U和学员对教师满意度序列S,如何安排n名教??教授的课程,使得总体教学质量、教师精力和学生满意度最优化? 指派优化模型 由于该问题涉及因素较多,因此,采用解析方法或传统的匈牙利算法难以给出合适结果。总体最优化的前提是教师擅长课程、精力和学生满意度满足基本要求,本文采用比值的方式求解三种因素的综合表现。矩阵G元素值为百分比,Gij值越高,表明第i名教师对第j门课程的擅长程度越好。序列U和S经过归一化处理后,也可表现为百分比形式,Ui值越高,表明第i名教师的教学任务越饱满;Si值越高,表明学生对第i名教师的满意度越高。以Tij表现三种因素综合影响下第i名教师教授第j门课程的情况。Tij值与Gij、Si呈现正相关关系,而与Ui呈现负相关关系,计算得到: 末位淘汰制是当前高校教师竞争较为常用的制度[9],对所有教师求解Tij,对Tij按值由高到低排序PT,根据T进行课程指派前的初始末位淘汰。因此,模型的目标方程为: 约束条件如下: 1)n为能够完成教学任务的教师数量,m为需要完成的教学课程数量,i表示教师,j表示教学课程; 2)教师擅长教学课程的程度矩阵G,其值由教学专 家、往届学生成绩和教师自身资历确定,其值越高,表明越擅长; 3)教学课时饱满程度序列U,由教师所承担的教学任务、科研任务、外出授课学习和自身情况确定,其值越高,表明教师课程任务越重; 4)学生满意度序列S,由往届学生评价、本届学生评价综合确定,其值越高,表明教师讲授课程的受欢迎程度越高; 5)矩阵为修正后的擅长矩阵,依据G、U和S求解T,采用末位淘汰制修正G后成为。 模型求解 1)构建平衡的矩阵G。求解平衡问题是匈牙利算法的特长,当教师数量和教学课程数量不相等时,需要增添虚拟的教师或课程,重新构建平衡的矩阵G。具体方法如下: ①若n>m,一门教学课程可能由多个教师讲授,属于不平衡状态下择优录用问题,可虚拟n-m门课程,??建新的平衡矩阵G={Gn×m?OGn×(n-m)}。 ②若n ③若n=m,属于平衡状态下的标准指派问题,直接由匈牙利算法求解。 构建结束后,由求解最大值转为求解最小值,将目标函数转为标准的目标函数。即求,令,则与有相同的最优解。 2)处理擅长矩阵、饱满序列和满意度序列。如果某教师Ni无法讲授某项课程Mj,则将擅长矩阵G对应元素Gij的值设定为0。对满意度序列S进行归一化处理: 对课程饱满程度序列U进行归一化处理: 3)修正擅长矩阵G。根据处理后的擅长矩阵、饱满序列和满意度序列,求解T进行末位淘汰。将所有Tij值按由高到低的顺序进行排序,设定合理的淘汰比例p,对于排名低于p的,取消该教师讲授相应课程的安排,即当PT(Tij)≤p时,Gij=0,修正形成矩阵G′。实例分析 某高校计划开设创客空间,需要开展的教学任务有焊接、车工、钳铣磨工、数控、3D打印、切割。现有8名教师可承担相关课程教学,教师对教学课程的擅长矩阵G见表1。根据教师自身安排、专家组打分和课时等分析,得到教师教学任务的饱满程度序列U,见表2。通过问卷调查、往届课程成绩、学生座谈等形式,得到学生对教师的满意度序列S,见表3。根据学校本学期末位淘汰安排,执行p=15%的末位淘汰率。计算T并进行排序,如表4所示,得到综合排名靠后的教师课程为(A2-车工)、(A2-钳铣磨工)、(A3-数控)、(A4-车工)、(A6-3D打印)和(A7-焊接),将其执行末位淘汰改进矩阵G′。 随后采用匈牙利算法进行最优化指派,使用MATLAB进行编程求解,得到教师A2和A7不参与该项教学任务,其他的如表5所示。结论 在传统教学任务指派中,需考虑教师擅长度和教学任务饱满程度、学生满意度等诸多问题,采用一般经验进行定性的任务指派费时、费力、效率低。而采用定量分析和计算机辅助解决实际问题,使得结论客观而可靠。本文从实际教学出发,以教学任务指派问题建立模型,应用匈牙利算法实现总满意度最高的求解,使得任务分配更加客观和明确,具备可操作性和可重复性,为教育任务分配提供科学依据。 参考文献 [1]胡运权,郭耀煌.运筹学教程[M].4版.北京:清华大学出版社,2012.[2]傅家良.运筹学方法与模型[M].上海:复旦大学出版社,2006.[3]张云华.论匈牙利算法在指派问题管理工作中的应用[J].价值工程,2016(25):214-215.[4]谷稳.基于进化匈牙利算法的目标分配问题研究及应用[D].西安:西安电子科技大学,2013.[5]周莉,张维华,徐射雕.求解指派问题的一次性分配算法[J].计算机工程与应用,2011(18):135-138,152.[6]李廷鹏,钱彦岭,李岳.基于改进匈牙利算法的多技能人员调度方法[J].国防科技大学学报,2016(2):144-149.[7]谢博耶夫.匈牙利算法及其推广[D].上海:华东师范大学,2016.[8]马晓娜.“人少任务多”型指派问题的一种新算法[J].重庆工商大学学报:自然科学版,2014(12):68-71,75.[9]姚维.如何看待高校实行“末位淘汰制”[J].亚太教育,2016(22):201,189. 算法分析与设计 实验报告 班级:学号:姓名:上机时间: 一、实验目的与要求: 1、熟悉贪心算法的基本原理和适用范围; 2、使用贪心算法编程,求解最小生成树问题。 二、实验题目: 用贪心算法求解Prim算法 三、实验内容: 任选一种贪心算法(prim或Kruskal),求解最小生成树。对算法进行 描述和复杂性分析。编程实现。 四、问题描述: 设G=(V,E)是连通带权图,V={1,2,…,n}。构造G的最小生成树的Prim 算法的基本思想是:首先置S={1},然后,只要S是V的真子集,就作如 下的贪心选择:选取满足条件i∈s,j∈V-S,且c[i][j]最小的边,将顶 点j添加到S中。这个过程一直进行到S=V时为止。在这个过程中选取到的所有边恰好构成G的一棵最小生成树。 五、问题分析与算法设计 六、实验结果及分析 七、实验总结 八、程序代码 #include #include #include #include #include #define maxint 20 #define inf 700 int AllSelected(int n,int s[]) { int i; for(i = 1;i <= n;i++) { if(s[i] == 0) return 0; } return 1; } void Prim(int n,int **c) { int lowcost[maxint]; int closest[maxint]; bools[maxint];s[1]=true; for(int i=2;i<=n;i++) { lowcost[i]=c[1][i]; closest[i]=1; s[i]=false; } for(i=1;i<=n;i++) { int min=inf; int j=1; for(int k=2;k<=n;k++) { if((lowcost[k] { min=lowcost[k]; j=k; } s[j]=true; for(int k=2;k<=n;k++) if((c[j][k] { lowcost[k]=c[j][k];closest[k]=j; } } } } void main() { int n,i,j; int **k; printf(“请输入顶点个数:”); scanf(“%d”,&n); k=(int **)malloc(sizeof(int *)*(n + 1)); for(i = 1;i <= n;i++) k[i] =(int *)malloc(sizeof(int)*(n+1)); printf(“输入顶点间的权值(自己到自己为0,没有路的为大于其他任何值的数):n”);for(i=1;i<=n;i++) for(j=i;j<=n;j++) { printf(“k[%d][%d]=k[%d][%d]=”,i,j,j,i); scanf(“%d”,&k[i][j]); k[j][i]=k[i][j]; } printf(“n”); printf(“顶点t”); for(i=1;i<=n;i++) { printf(“%dt”,i); } printf(“n”); for(i=1;i<=n;i++) { printf(“%dt”,i); for(j=1;j<=n;j++) { printf(“%dt”,k[i][j]); } printf(“n”); } printf(“n”); Prim(n,k); } 移民匈牙利当地生活问题 (一)、当地生活,衣食住行 1.问:持有匈牙利永居卡可以在匈牙利购置房地产吗? 答:可以。只需向行政司法部申请外国人买房许可,即可办理过户。所谓许可实质上就是一种登记程序,所有递交申请的外国人都将顺利拿到许可。并且所得产权是永久产权。 *但是农田除外,匈牙利法律规定农田不得卖给外国人。 购买房产的情况下需要缴纳印花税:房产价值400万福林以下部分按照2%交纳印花税,超过400万福林按4%交纳印花税。35岁以下年轻人购买首个房产,且房产价格不超过1500万福林的情况下,可以获得印花税半价优惠 2.问:在匈牙利能够使用英语在当地进行正常交流吗? 答:在匈牙利,虽然它的官方语言是匈牙利语,只要是接受过高等教育的人,基本上都可以说英语、德语等其他语种,因此用英语是可以交流的。另外,项目组将为申请人推荐当地的中国服务公司,如遇到交流问题随时为您解决。 3.问:持匈牙利签证可以通行哪些地区? 答:持匈牙利签证可以畅通欧洲所有申根国家。包括奥地利、比利时、丹麦、芬兰、法国、德国、冰岛、意大利、希腊、卢森堡、荷兰、挪威、葡萄牙、西班牙、瑞典、爱沙尼亚、拉脱维亚、立陶宛、波兰、捷克、匈牙利、斯洛伐克、斯洛文尼亚、瑞士和马耳他。 4.问:匈牙利流通的货币是什么,和人民币的汇率? 答:匈牙利流通的官方货币是福林,和欧元的兑换比率在300:1左右,也就是300福林=1欧元,和人民币的比率在35:1左右。 5.问:拿匈牙利永居卡是否可以在申根国内自由流动不受限制? 答:所有申根成员国公民最多可免签在其他申根成员国半年内居住90天(旅游或者社会福利目的)。 6.匈牙利永居卡和欧盟蓝卡有什么区别?匈牙利永居卡是由匈牙利政府颁发的一种给外国公民的永久居住许可。 答:欧盟蓝卡不是一种给外国公民的永久居住许可证,更接近于一种免入境签证的工作签证,两年有效,可以延期,在失去工作后仍然可以在欧盟内部停留半年。持有蓝卡意味着持卡人拥有在签发国的工作与居留权,同时,持有蓝卡可以免去入境欧盟二十七个成员国签证。 欧盟蓝卡的申请条件:蓝卡的申请者必须拥有欧盟成员国所认可的大学文凭或至少五年的工作经验;申请人必须在欧盟成员国境内找到固定工作,且其薪金必须至少是该国同等职种平均薪酬的1.7倍等。 (二)、工作经商和学习 1.问:持有匈牙利永居卡可以在匈牙利就业吗? 答:可以。无需申请打工纸,可根据当地劳动法与雇主直接签订工作合同工作。 2.问:持有匈牙利永居卡可以在匈牙利经商吗? 答:可以。只需注册公司,以公司名义进行商业行为。最普遍的是成立责任有限公司(KFT),注册资金为50万福林(约合1800欧元),此钱无需扣押在 银行,可在成立公司后全额取出。公司法人可为1人或多人。成立公司所需文件:个人身份证明、地址卡、税卡。 3.问:持匈牙利永居卡是否可以去别的申根国工作,经商? 答:可以。工作方面如果能找到一个当地公司愿意提供一份工作合同和担保,就可以向当地政府申请工作居留。经商的话可以申请注册一个公司,要有办公地点并且需要雇佣一定数量的当地人,可以向政府申请一个商人的身份居留。*每个国家对这方面的要求都不一样,需要具体情况具体分析,但只要是合理,合法的申请,政府都会批准。 4.问:持有匈牙利永居卡,本人和家属可以在匈牙利上学吗?永居卡移民的孩子可以上公费的学校吗?如果可以,待遇与匈牙利公民孩子相同吗?还是要收取类似"借读费"的费用?公费学校都是以匈语教学吗? 答:可以。有永居身份的适龄学生可以享受在匈牙利公立学校免费入学受教育的权利,教学语言通常为匈牙利语。待遇和匈牙利本地人相同,不需借读费。公费学校基本上都是匈语教学。 5.问:移民匈牙利以后对孩子的教育有什么好处吗? 答:匈牙利的高等教育是世界闻名的,尤其在医学、经济和技术方面有卓著的成就。匈牙利教育体系比较健全,并且与国际接轨,教学方面非常注重实践。在匈牙利接受教育,可以使得孩子更国际化,更附有创造力,更容易进入社会,直接面对欧洲市场,有更多就业机会。有更多机会去欧洲和美国其他知名大学互换学习深造。 6.问:学校教学使用英语还是匈牙利语?入学是否有语言要求?是否有纯英语教学的国际学校?毕业后去英美上大学机会如何? 答:本地普通学校教学使用匈牙利语教学。匈牙利有很多纯英语或多种语言教学的国际学校,这些国际学校需要付费上学,但费用要比西欧低很多。学校要求学生拥有一定语言水平,没有一定语言水平的学生很难拿到学生签证。但因为我们项目中的人已经拿到永居,所以不存在签证拒签问题。这种情况下,学校有专门的语言预科班,接受不同语言水平的学生,先培训语言,再参加正规教育课程。这也是参加本项目的好处之一。您的孩子将享受无国界的教育。匈牙利还有一些美国、英国合办的双语学校,学生享受在匈两年教育在美两年教育的优势。 7.问:拿匈牙利永居卡上学是否可以申请别的欧洲国家比如法国德国的学校? 答:申请人可以自由申请任何一个申根国的学校,以法国为例,首先需要根据学校的要求来申请学校,在获得法国学校的入学许可后,就可以向法国政府申请换取法国的学生签证。如果毕业后能顺利在法国当地找到工作,可以申请换成法国的居留身份。即使换不了,匈牙利的永居身份都不会受到影响。8.问:匈牙利有哪几所知名的英语或双语小学,中学?学校名称?收费如何? 答:匈牙利有几所比较知名的英语或双语授课学校,收费在1万欧元-2万欧元/年之间:布达佩斯美国国际学校,布达佩斯国际学校,布达佩斯国际学校,三语学校(匈语、英语和西班牙语) 9.问:匈牙利的高等教育情况如何? 答:匈牙利高等教育由公立和非公立两类院校提供,目前,匈牙利教育部认可的国立大学(State University)有19所、国立学院(State College)9所。博洛尼亚改革之后,匈牙利也实施学士-硕士-博士三级学位制度。学士学位通常需要3-4年(180-240ECTS),硕士学位1-2年(60-120ECTS),博士学位至少3年。但医学、法律等少数专业还延续传统的学制。 各高校的强势学科大多能用外语开课,主要语种有英语、德语和法语。匈牙利的公立大学每年的学费加各种杂费大概在200-400欧元/年,如果是拿了永居身份的国际学生,收费和当地人是一样的。国立大学名单: 1、Corvinus University of Budapest 2、Budapest University of Technology and Economics 3、University of Debrecen 4、E?tv?sLoránd University 5、Kaposvár University 6、The Liszt Academy of Music 7、Moholy-Nagy University of Art and Design 8、Hungarian Academy of Fine Arts 9、University of Miskolc 10、University of West Hungary 11、University of Pécs 12、Semmelweis University 13、SzéchenyiIstván University 14、University of Szeged 15、SzentIstván University 16、University of Theatre and Film Arts 17、University of Pannonia 18、National University of Public Service 19、óbuda University 国立学院: 1、Budapest Business School 2、College of Dunaújváros 3、E?tv?sJózsef College 4、EszterházyKároly College 5、KárolyRóbert College 6、Kecskemét College 7、Hungarian Dance Academy 8、College of Nyíregyháza 9、College of Szolnok (三)、税收政策和社会福利 1.问:请问匈牙利有养老福利吗?多少岁开始?有没有纳税等前提条件? 匈牙利有养老保险,不过是需要事前纳税的,只有在纳税人缴够15年以上的税,到了退休年龄才能拿到退休金,这个数额和本人缴的纳税金额挂钩,之前缴的时间越长,金额越高,退休后也拿得越多。 这个税只能缴,不能补,也就是说法律规定男人65岁退休,那么在他50岁之前他就要开始缴税才能拿到退休金。 2.有些客户想去匈牙利养老,那么他们过去后怎么缴纳医疗保险?匈牙利的保险制度对于老年人有何特殊要求或者规定? 答:老年人可以缴纳商业保险来保障自己的医疗福利。3.问:匈牙利的税收是怎样的?是否有全球征税政策?是否有遗产税?获得匈牙利永居卡后对于我在中国的收入是否要征税? 答:2012年最低工资为税前93000福林,保障最低工资(学历在中学以上,根据所完成的工作范围重要性确定)为108000福林。个人收入后个人纳税规定:----税前工资的34.5% l 个人所得税:16%。税基为税前工资。根据现行税法规定:如税前工资超过202000福林/月,则超过202000福林的部分要先乘1.27,再加上202000之后作为缴纳个人所得税的税基。2013年将取消此规定,无论工资数额多少,都以税前工资为税基,无需再乘以1.27。 l 养老金:10%(保证退休后取得养老金)。税基为税前工资。 l 自然健康保险金:4%(保证得到免费医疗服务)。税基为税前工资。l 现金健康保险金:3%(保证在生病或生孩子时得到现金工资补助)。税基为税前工资。 l 劳动市场贡献金:1.5%(保证在失业时得到失业补助)。税基为税前工资。公司雇佣个人,需要为个人支付的税金规定:--税前工资的28.5% l 社会贡献税金:27%。其中包括包括养老金24%、自然健康保险金:1.5%、现金健康保险金:0.5%、劳动市场贡献金:1%。税基为税前收入总额。l 职业培训贡献金:1.5%。税基为税前收入 l 康复贡献金:公司雇员在20人以上时需要支付。计算方式:雇员人数的5%乘以964 500福林/年。如果公司雇佣残疾人士,此贡献金可以减少。个人和合伙公司的纳税规定: l 社会贡献金:27%。税基至少为最低工资乘以112,5%。 l 健康保险和劳动力市场贡献金:8.5%。税基至少为最低工资乘以150%。l 养老金:10%。税基至少为最低工资乘以100% l 个人所得税:16%。税基至少为最低工资乘以100% 责任有限公司的纳税规定: l 公司税:税基不超过5亿福林的情况下公司税率为10%,超过的部分按19%纳税。税基为盈利金额。 l 地方营业税:2%。税基为销售收入。匈牙利的增值税为27% 遗产税:根据2013年新印花税规定,伴侣继承遗产和直系亲属间的赠送免交印花税。直系亲属的继承需要支付印花税,住房根据价值需缴纳5-30%的印花税,其他遗物按价值缴纳11-40%的印花税。继承和赠送的普通税金为18%,住房情况下则为房产价值的一半。 *这些税收只针对在匈牙利的收入和经营,不会对您中国的收入征税(如果您在中国的收入与在匈牙利公司的经营无关。) 修正单纯形法求解约束优化问题 姓名 王铎 学号 2007021271 班级 机械078 日期 2010/6/23 一.问题分析 求解约束优化问题中,假如目标函数和约束条件都是线性的,像这类约束函数和目标函数都是线性函数的优化问题称作线性规划问题。从实际问题中建立数学模型一般有以下三个步骤: 1.根据影响所要达到目的的因素找到决策变量; 2.由决策变量和所在大道目的之间的函数关系确定目标函数; 3.有决策变量所受的限制条件确定决策变量所要满足的约束条件; 求解线性规划问题的基本方法是单纯形法,而本文研究的是修正单纯形法。1965 年由J.A.Nelder 等提出。是在基本单纯形优化法的基础上,引入了反射、扩展与收缩等操作规则,变固定步长推移单纯形为可变步长推移单纯形,在保证优化精度的条件下,加快了优化速度。是各种单纯形优化法在分析测试中应用最广的一种。二.数学模型 1、线性规划问题的formalization 问题(1.1)称为线性规划问题: x= arg min_x c^T x s.t.Ax=b x>=0(1.1)其中x为n维列向量,A为m*n的矩阵,b和c分别为m,n维的常数向量。 任意一个线性不等式组约束下求解线性函数的最大最小值问题都可以归结到问题(1.1)来。 比如 A(i,:)x <= b(i)<=> A(i,:)x + y(i)= b(i)y(i)>=0(1.2)A(i,:)x >= b(i)<=> A(i,:)xB^-N x_N(1.5)代入c^T x: z=c^Tx =c_B^T B^-bB^-N x_NB^(B^-N)(i,:)<=0则对任意的l有x_B>=0,此时该问 题无最优解)=> l=min{(B^-b)(j)/(B^-N)(i,j), j=1,2,...,m } 若l=(B^-b)(r)/(B^-N)(i,r),则x_r=0,x_i=l 把x_i添入x_B,把x_r添入x_N,再用上述过程进行计算 3、有效单纯形法 每次将x_i入基x_r出基时,B要变动,此时导致无论用x_N表示x_B(1.5)还是c^Tx(1.6)都要重新计算一遍B^-,如何利用B变动前后的关系有效计 算(1.5,1.6)就是有效单纯形法所要解决的问题。假设变动后的B为B',B^-为已知。因为 B' x'_B + N' x'_N= b' 所以 B^-B' x'_B + B^-N' x'_N = B^-b' => x'_B =(B^-B')^-(B^-b'c_B^T B^-N x_N + c_N^T x_N(1.6)x_N的系数全部为正,此时达到最优,则-c_B^T B^-N + c_N^T >=0 => c_N-N^Tw >=0 => A^Tw=[B , N]^T w=[B^Tw;N^Tw]<=[c_B;c_N]=c 因此,w也是(1.10)的可行解。进一步由x=[x_B,x_N]=[B^-b,0] w^Tb=c_B^TB^-b=c^Tx 由弱对偶定理,w^Tb总是小于c^Tx的,因此当它们相等时,w必为对偶问题的最优解 对偶定理: 原问题和对偶问题中若一方有最优解,则另一方也有最优解,且两个问题的最优值一致。 6、灵敏度分析。 主要一个结论: 在(1.1)中b的微小变化不影响最优基的选择,而b的增加将引起c^Tx的增加,其增加的比例dc^Tx/db_i=w_i,b的减小将引起c^Tx的减小。 下面说明这一点 假设(1.1)变为 x= arg min_x c^T x s.t.Ax=b+db x>=0(1.11)若,此 时 仍 成立 B^-(b+db)>=0,即x'=[x'_B,x'_N]=[B^-(b+db),0]>=0则有c_N^T-c_N^TB^-N>=0,最优条件仍旧满足(就是c^Tx用x_N表出后,所有系数非负仍旧成立),因此B仍为扰动之后的最优基。 7.流程图 三.计算程序 function [y,A]=danchun(A,x,y)[m,n]=size(A);if min(A(1,1:n-1))<0 flag=0;else flag=1;end while flag==0 [h1,j]=min(A(1,1:n-1));for p=2:m if A(p,j)<=0 | A(p,n)==0 q(p-1)=inf;else q(p-1)=A(p,n)./A(p,j);end end [h2,i]=min(q);y(i)=x(j);i=i+1;A(i,:)=A(i,:)./A(i,j);for k=1:m if k~=i A(k,:)=A(k,:)+(-A(k,j)).*A(i,:);end end if min(A(1,1:n-1))<0 flag=0;else flag=1;end end 实例: f = inline('2x(1).^2+(x(2)-3).^2')[x fval flag] = danchun(f , [0;0])x = 0 1.0000 fval = 8.0064e-027 flag = 四.计算结果分析 经检验计算结果符合约束且为优化最优解 人工智能实验报告 实验六 遗传算法实验II 一、实验目的: 熟悉和掌握遗传算法的原理、流程和编码策略,并利用遗传求解函数优化问题,理解求解TSP问题的流程并测试主要参数对结果的影响。 二、实验原理: 旅行商问题,即TSP问题(Traveling Salesman Problem)是数学领域中著名问题之一。假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路经的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。TSP问题是一个组合优化问题。该问题可以被证明具有NPC计算复杂性。因此,任何能使该问题的求解得以简化的方法,都将受到高度的评价和关注。 遗传算法的基本思想正是基于模仿生物界遗传学的遗传过程。它把问题的参数用基因代表,把问题的解用染色体代表(在计算机里用二进制码表示),从而得到一个由具有不同染色体的个体组成的群体。这个群体在问题特定的环境里生存竞争,适者有最好的机会生存和产生后代。后代随机化地继承了父代的最好特征,并也在生存环境的控制支配下继续这一过程。群体的染色体都将逐渐适应环境,不断进化,最后收敛到一族最适应环境的类似个体,即得到问题最优的解。要求利用遗传算法求解TSP问题的最短路径。 三、实验内容: 1、参考实验系统给出的遗传算法核心代码,用遗传算法求解TSP的优化问题,分析遗传算法求解不同规模TSP问题的算法性能。 2、对于同一个TSP问题,分析种群规模、交叉概率和变异概率对算法结果的影响。 3、增加1种变异策略和1种个体选择概率分配策略,比较求解同一TSP问题时不同变异策略及不同个体选择分配策略对算法结果的影响。 4、上交源代码。 四、实验报告要求: 1、画出遗传算法求解TSP问题的流程图。 2、分析遗传算法求解不同规模的TSP问题的算法性能。 规模越大,算法的性能越差,所用时间越长。 3、对于同一个TSP问题,分析种群规模、交叉概率和变异概率对算法结果的影响。 (1) 种群规模对算法结果的影响 x 0 1.1 3.5 4.5 y 1.1 5.1 4.5 实验次数:10 最大迭代步数:100 交叉概率:0.85 变异概率:0.15 种群规模 平均适应度值 最优路径 25.264 4-5-8-7-6-3-1-0-9-2 26.3428 2-9-1-0-3-6-7-5-8-4 25.1652 1-3-6-7-5-8-4-2-9-0 25.1652 0-1-3-6-7-5-8-4-2-9 25.1652 9-0-1-3-6-7-5-8-4-2 25.1652 1-0-9-2-4-8-5-7-6-3 150 25.1652 5-8-4-2-9-0-1-3-6-7 200 25.1652 1-3-6-7-5-8-4-2-9-0 250 25.1652 3-1-0-9-2-4-8-5-7-6 300 25.1652 5-8-4-2-9-0-1-3-6-7 如表所示,显然最短路径为25.1652m,最优路径为1-0-9-1-3-6-7-5-8-4-2或3-1-0-9-2-4-8-5-7-6,注意到这是一圈,顺时针或者逆时针都可以。当种群规模为10,20时,并没有找到最优解。因此并不是种群规模越小越好。 (2) 交叉概率对算法结果的影响 x 1.1 3.5 3.5 4.5 y 1.1 5.1 8.5 实验次数:15 种群规模:25 最大迭代步数:100 变异概率:0.15 实验结果: 交叉概率 最好适应度 最差适应度 平均适应度 最优解 0.001 28.0447 36.6567 32.6002 9-2-6-0-5-4-8-7-3-1 0.01 27.0935 34.9943 32.1495 7-8-3-1-9-2-6-0-5-4 0.1 28.0447 35.3033 31.9372 7-3-1-9-2-6-0-5-4-8 0.15 28.0447 34.1175 31.2183 0-5-4-8-7-3-1-9-2-6 0.2 28.7108 33.9512 30.9035 3-1-9-2-6-5-0-4-7-8 0.25 28.0447 35.1623 30.7456 1-3-7-8-4-5-0-6-2-9 0.3 27.0935 31.9941 29.9428 8-3-1-9-2-6-0-5-4-7 0.35 27.0935 32.8085 30.9945 9-1-3-8-7-4-5-0-6-2 0.4 27.0935 32.5313 30.1534 1-3-8-7-4-5-0-6-2-9 0.45 27.0935 33.2014 30.1757 8-3-1-9-2-6-0-5-4-7 0.5 28.0934 33.6307 30.9026 5-0-2-6-9-1-3-8-7-4 0.55 27.0935 33.5233 29.1304 1-9-2-6-0-5-4-7-8-3 0.6 27.0935 33.2512 30.7836 3-1-9-2-6-0-5-4-7-8 0.65 28.0447 33.7003 30.9371 5-4-8-7-3-1-9-2-6-0 0.7 27.0935 32.0927 29.9502 9-1-3-8-7-4-5-0-6-2 0.75 28.0447 32.4488 30.3699 0-5-4-8-7-3-1-9-2-6 0.8 27.0935 32.1551 29.9382 7-4-5-0-6-2-9-1-3-8 0.85 27.0935 34.5399 30.3594 5-0-6-2-9-1-3-8-7-4 0.9 27.0935 32.6273 30.69 6-0-5-4-7-8-3-1-9-2 0.95 27.0935 32.4672 29.919 6-2-9-1-3-8-7-4-5-0 (注:红色表示非最优解) 在该情况下,交叉概率过低将使搜索陷入迟钝状态,得不到最优解。 (3) 变异概率对算法结果的影响 x 1.1 3.5 3.5 4.5 y 1.1 5.1 8.5 实验次数:10 种群规模:25 最大迭代步数:100 交叉概率:0.85 实验结果: 变异概率 最好适应度 最差适应度 平均适应度 最优解 0.001 29.4717 34.732 32.4911 0-6-2-1-9-3-8-7-4-5 0.01 29.0446 34.6591 32.3714 8-4-5-0-2-6-9-1-3-7 0.1 28.0934 34.011 30.9417 5-0-2-6-9-1-3-8-7-4 0.15 27.0935 32.093 30.2568 6-0-5-4-7-8-3-1-9-2 0.2 27.0935 32.2349 30.3144 8-7-4-5-0-6-2-9-1-3 0.25 27.0935 32.718 30.1572 4-5-0-6-2-9-1-3-8-7 0.3 27.0935 32.4488 30.2854 0-5-4-7-8-3-1-9-2-6 0.35 27.0935 33.3167 30.7748 1-3-8-7-4-5-0-6-2-9 0.4 29.0446 34.3705 31.3041 2-0-5-4-8-7-3-1-9-6 0.45 27.0935 31.374 29.6816 2-6-0-5-4-7-8-3-1-9 0.5 27.0935 32.3752 30.2211 2-9-1-3-8-7-4-5-0-6 0.55 27.0935 33.3819 30.6623 1-3-8-7-4-5-0-6-2-9 0.6 28.0934 33.2512 30.36 1-3-8-7-4-5-0-2-6-9 0.65 27.0935 32.7491 30.0201 3-1-9-2-6-0-5-4-7-8 0.7 28.7108 32.4238 30.785 1-3-8-7-4-0-5-6-2-9 0.75 27.0935 31.8928 30.2451 1-9-2-6-0-5-4-7-8-3 0.8 28.0934 31.6135 30.3471 9-1-3-8-7-4-5-0-2-6 0.85 29.662 33.2392 31.1585 2-9-1-3-7-8-4-0-5-6 0.9 28.0447 32.0387 30.4152 0-5-4-8-7-3-1-9-2-6 0.95 28.0447 31.3036 30.0067 9-1-3-7-8-4-5-0-6-2 从该表可知,当变异概率过大或过低都将导致无法得到最优解。 4、增加1种变异策略和1种个体选择概率分配策略,比较求解同一TSP问题时不同变异策略及不同个体选择分配策略对算法结果的影响。 不同变异策略和不同个体选择分配策略几乎不影响算法运行的时间,但会影响适应度。 五、实验心得与体会 通过本实验,更加深入体会了参数设置对算法结果的影响。同一个算法,参数值不同,获得的结果可能会完全不同。 同时通过本次实验,使自己对遗传算法有了更进一步的了解。遗传算法是一种智能优化算法,它能较好的近似求解TSP问题,在问题规模比较大的时候,遗传算法的优势就明显体现出来,当然不能完全保证能得到最优解。第二篇:用贪心算法求解Prim算法上机实验报告书
第三篇:移民匈牙利当地生活问题
第四篇:修正单纯形法求解约束优化问题
第五篇:遗传算法求解TSP问题实验报告