本文目录一览:
- 1、基于java jsp asp php vb安卓系统毕业设计与实现论文源码下载?
- 2、最近在学习TSP问题的相关知识,我下载了一个蚁群算法解决的代码,但是这个数据文件我看不懂
- 3、基于蚁群算法的最优路径选择研究外文文献谁有?
- 4、写给前辈的一封信
- 5、哪本python书立有蚁群算法
- 6、8 Metaheuristics
基于java jsp asp php vb安卓系统毕业设计与实现论文源码下载?
及时送上了计算机毕业设计相关资源 合意的换请采纳一下,大家顺遍点下赞吧
在线考试制卷系统(任务书,论文,源码)
net小型证券术语解释及翻译系统的设计与开发(源码,论文)
原创vf员工培训管理系统(任务书,论文)
asp科研信息管理系统(任务书,开题,论文,源码)
android小型企业工资管理系统(源码,论文)
asp出租车管理系统(任务书,论文,源码)
vb.net实验室计算机的ip地址自动设置程序——服务器端(任务书,论文,源码)
rsa可视化算法程序的实现与研究(任务书,论文)
j2ee数控加工技术教学素材资源库的构建(任务书,论文,源码)
eims系统-oa子系统的设计与开发(任务书,开题,论文,源码)
jsp网上购书(任务书,论文)
vb图书管理系统(任务书,论文)
vc户籍管理系统(任务书,论文,源码)
php基于bs结构的工艺品销售系统的实现(源码,论文)
net模块化动态电子商务网站的开发(任务书,论文,源码)
pb电信人事管理系统设计(任务书,论文)
vb成本费用计算系统(源码,论文)
jsp出租车管理系统(任务书,开题,论文,源码)
asp.net求职招聘网站设计(源码,论文)
vb.net机房监控系统(全套)
vf学生办证管理系统(任务书,开题,论文,源码)
jsp基于网络超市商品销售管理系统(任务书,论文,源码)
jsp团员管理
asp.net一个动态文学网站
vf基于jme平台的掌上网络商店-服务器端的开发
c#报警系统
net(vc)办公自动化管理系统
jsp计算机等级考试查询系统jdbc
vb.net商品配送中心库存仿真软件设计
jsp网络购物
net在线英语自学系统——知识库管理的设计
jsp企业进销存管理系统
php某公司进销存信息管理系统
pb干部档案管理系统
delphi学生信息管理系统毕业设计
asp学生信息管理系统
asj2eetoc电子商务网站
delphi图书管理系统(毕业程序翻译%通过)
jsp网上商城系统
jsp客户关系管理系统
jsp企业人事管理系统
c#办公管理系统
jsp搜索引擎的研究与实现
jsp网络房产信息超市
php会员管理系统
j2ee基于usbkey的文件加密工具—-客户端的实现
net网上图书订阅系统的设计
php网站流量统计
asp.net团员管理
android文件传输
delphi并行接口器件功能演示的可视化设计学位
php房屋租赁管理信息系统jdbc
数据采集电路pcb的设计与制作
androidsmart系统-考试监控及阅卷模块的设计与开发
java流动资金贷款业务系统
asp电脑配机
vf物流管理系统--仓储管理子系统的实现
简化的cpu逻辑功能的仿真实现
net网上教材管理系统
net高校学生宿舍管理系统
vc药品公司进销售存管理系统
基于des加密算法的word加密插件的实现
asp.net基于asp.net的房产中介系统
c#简单图片转化
asp基于asp的反垃圾邮件管理系统的设计
delphi航空客运订票系统
c#windows简单防火墙设计与实现
j2ee车间调度系统
php《信息论与编码》在线考试系统
vb.net基于角色访问控制的oa系统
asp某小型数字图书馆
vb图形识别和编辑
pb电脑公司财务管理系统
asp网上购书
android光盘信息管理系统
php新闻网程序
php购物系统
vb.net考试系统vb.net
java学生管理系统
基于apriori算法的关联规则挖掘系统
vf布匹出口管理系统
c#会计电算化系统——财务管理子系统
php毕业生信息管理系统
pb酒店客房餐饮管理系统
vf库存管理
asp.net药品销售数据管理系统
asp.net网上论坛
基于linux的远程控制技术服务端实现
php网络商城
文件压缩与解压缩实践
asp学生管理系统
php科研项目网上申报管理系统
vb.net图片文件中的信息隐藏和还原的设计
asp销售供应链管理系统的设计与开发
asp基于asp技术的猎头公司管理软件的设计和实现——内部事务部分
网络求职招聘系统
neterp系统(毕业设计
php基于web的商场管理系统
vb电脑公司财务管理系统
delphi客户管理系统
net图书馆管理信息系统
java超市商品管理系统
pb在线考试
java原创库存管理系统可执行程序
c语言文件系统设计
基于webservice的数据库同步系统
vb.net考勤管理系统vb.net
vb简单几何图形的识别和编辑系统
net某公司员工管理系统
vf酒店客房管理系统
vf商场管理系统
vb.net开发在windows下的串口异步通信程序
asp一个小型搜索引擎
j2ee高速公路票据管理系统
vb小区物业管理系统
php酒店房间预约系统设计
asp《信息论与编码》在线考试系统
vf宿舍管理系统
android基于局域网的文件传输系统
asp学生网上选课系统
php校园学生信息在线管理系统
asp基于web的商场管理系统
net基于web的订餐系统
jsp仓储管理系统
简易网络存储系统
javaftp客户端
jsp公交查询系统
java人才管理系统
net企业投资价值分析系统
asp基于bbs的bbs系统设计(structmy)好
android通用图书馆管理系统
asp网上选课系统
最新asp网上论坛
vc网络爬虫程序
net考勤系统(net)
net交通信息网上查询系统
美食网站
pb企业物料需求计划管理系统
delphi公交车查询系统delphi源
asp.net网络招聘系统
asp视频点播系统
vf学生学籍管理
android毕业管理系统
简易网络存储系统
vb.net一种基于cc模式的网上购物系统
asp.net网络文件管理系统
asp.net学生信息管理系统
j2ee城市公交查询系统
j2ee人机接口设备—示波器的仿真实现
jsp网络商城
net基于bs的图书销售管理系统
net基于net的公司网站
j2ee汽车零件销售管理系统
vf图片文件中的信息隐藏和还原的设计
vf医药管理系统
net技术的猎头公司管理软件——内部事务部分
最新net高校学生宿舍管理系统
vb局域网抓包软件
asp.net企业物流平台
asp.net学生排课管理系统
vb.net网络数据包捕获工具
android企业考勤
c#在线考试
j2eealendar的跨平台系统的设计
vf书店辅助进书系统
asp仓库即时查询系统
asp作业提交与批改系统
vb开发在windows下的串口异步通信程序
javaac自动组卷系统
asp网上体育用品商店
jsp华夏文化交流平台
delphi采购管理
php校园新闻发布管理系统
vb.net成绩管理系统vb.net
delphi五子棋游戏(网络版)的设计与开发
最新net网上图书订阅系统的设计
vb教学辅助系统vb
android试题库自动组卷系统
vc试题库自动组卷系统(vc)cym
asp.net基于bs的家教交流平台的实现
vf学生成绩管理系统vf
asp.net楼宇专业网站毕业设计
net多语种网络硬盘系统的设计
vf考试系统vf
端口信息工具
vf物业管理
net公交车管理系统的实现与设计
pb基于半打开的端口扫描技术及其实现
j2ee水费管理系统
vf用遗传算法解决车辆优化调度问题任务书
jsp办公自动化管理系统
jsp基于android的在线购物系统
asp.net车辆调度管理系统
pb线程插入木马
delphi基于delphi的串口通信服务的开发
asp药店管理系统
jsp实验室设备管理系统
kasumi算法的研究与j2ee实现
net基于.net的城市公交查询系统
jsp基于web的subversion用户管理系统phb
delphivbd租赁管理系统
linux下的网络层加密解密的实现
android药品公司进销售存管理系统
asp服装销售系统
j2ee电信人事管理系统设计
jsp员工信息管理系统
android考勤管理系统android
vf基于.net的网上购物系统
vb.net财务管理系统
vc题库管理系统
delphi基于webcam的人脸检测技术
php在线学习系统
最新php团员管理
vb原创图书管理系统)毕业设计
net某企业信息管理系统
asvbtoc电子商务网站
vf火车站售票管理系统
asp科研信息管理系统
net某企业信息管理系统
vb基于usbkey的文件加密工具—-客户端的实现
net基于.net企业订单管理系统的开发
net房地产评估系统
net作业在线提交系统
vc多线程与线程安全实践-基于http协议的断点续传
vf地税局工资管理系统
delphi科研管理系统
delphi烟花爆竹经销管理系统
面向internet上的cscw的共享白板
php网络招聘系统
php网上求职与招聘系统
vb.net机房监控系统
asp.net考试报名信息处理系统
j2ee医院病房管理系统
基于进程和通信隐藏的木马设计与实现
net息加密与隐藏工具
c#汽车销售系统
jsp原创教师信息管理系统
android简易web服务器研究
asp科研项目网上申报管理系统
asp基于asp的论坛
php计算机组成原理教学网站
android超市销售系统
c#网络流量监控及分析工具
delphi电子邮件客户端软件
android排课系统程序
jsp网上拍卖平台系统)
j2ee某百货店pos积分管理系统-积分添加和通票回收
j2ee教务管理系统j2ee
vf银行代扣代发工资系统
php学生学籍管理系统
基于webservice的异构数据库检索系统的设计
android长途汽车信息管理系统
net系办办公自动化系统
c#网络计时管理系统
net网络商店销售管理系统
原创net高校学生宿舍管理系统
asp网络教学评判系统
net客户关系管理系统的实现
c语言遗传算法在求解tsp问题毕业
asp.net网上教学资源共享系统
基于icmp模拟网络控制软件的开发——控制管理模块
vb车间调度系统
net动态口令认证的网上选课系统
asp.net图书馆管理系统
asp企业公告及资料发布系统
pb原创图书管理系统)毕业设计
vf基于cs结构的企业人事管理系统
网络嗅探器
jsp网上书店售书系统
asp.net网上选课系统
asp酒店客房管理系统
asp.net自动排课系统
net信息安全研究所设备管理系统
最新net基于bs的图书销售管理系统
java药品销售系统
java简单小游戏设计
jsp基于web的旅游网站建设
android库存管理
php淘宝店主交易管理系统
net频点播系统
pb大型机房学生上机管理系统
jsp基于bs结构的工厂设备管理系统的设计与开发
web的入侵防御系统
最新php基于bbs的bbs系统设计(structmy)好
asp教师信息管理系统
net课件发布系统
j2ee在线英语自学系统——课程及自测管理的设计
asp网上二手商品交易管理系统
原创asp.net购物系统
pb小说租阅管理系统
人机接口设备—开关类部件的仿真实现
net校园新闻发布系统
php基于linux的远程管理系统客户端的实现
php在线exam
delphi物质管理系统
vb.net电信人事管理系统设计
android试题库自动组卷系统(android)cym
j2ee学生档案管理
net基于.net的内部邮件系统实现
asp.net学科建设
asp某公司进销存信息管理系统
java企业投资价值分析系统
java大随机数生成器算法的研究与实现
jsp某高校工资管理系统
vb在线英语自学系统——课程及自测管理的设计
net某店pos积分管理系统-清除履历表、日志表、月购买额
asp会员管理系统
原创美食网站
vs家庭理财系统
局域网监听系统
vc房屋租凭管理系统
jsp在线二手交易系统
vb.net模拟器件测试平台的设计与开发
原创net考勤系统(net)
java酒店管理信息系统
原创网络求职招聘系统
vf高校教务排课系统
c#rsa密码体制的实现
端口扫描与检测技术的实现
delphi猜数游戏的设计与开发
php宿舍管理系统设计
j2eeac自动组卷系统
原创php网络购物
android物质管理系统
php实验室设备管理系统
asp求职招聘网站设计
androidsc结构服装专卖店
net电子购物商城系统
java自动排课系统
java职员信息管理系统
vb书店辅助进书系统
android教师管理系统
jsp基于bs模式的中小企业人事管理系统
vc物质管理系统
最新简易网络存储系统
android并行接口器件功能演示的可视化设计学位
原创基于des加密算法的word加密插件的实现
net频点播系统
asp.net网络旅游信息系统
原创asp计算机组成原理教学网站
jsp车辆调度管理系统
asp.net基于bs的工艺品展示系统
基于纠错码的容错技术的研究——x码
asp电子商务系统
pb原创库存管理系统可执行程序
c#企业往来账务管理系统
vc超市售货管理系统
原创net网上图书订阅系统的设计
android人事管理系统
原创php在线学习系统
vf桌面日历系统
java商业汇票(支票管理)
asp聊天室
java计科教务管理系统
vb.net物业管理系统
asp公共课平时成绩查询系统asp
最新asp会员管理系统
vc书店管理系统
win平台下的pe文件病毒的研究及实现
j2ee电子邮件客户端软件
asp.net基于asp.net的学生信息管理系统
vf企业人事工资管理系统
vbrsa密码体制的实现
java基于bs方式的即时通讯软件
vf煤气站管理系统dpac
pb多媒体教学控制系统-网络通讯平台的设计
delphi酒店管理系统
jsp基于bs结构的工厂设备管理系统的设计与开发
jsp企业人力资源管理系统的设计
java课程设计医药管理系统(java)应要求源文件代码打包上传
j2ee实验室仪器管理系统
pb网吧管理系统
pb车队综合业务管理系统
最新php网络商城
c#大随机数生成器算法的研究与实现
asp基于bs结构的二手交易系统
javad的网络三维技术
最新net考勤系统(net)
jsp基于web的信息处理系统
net小型门户网自助建站系统
社区论坛
asp公交查询系统
java文档资料管理系统
php红旗汽车修理厂物资流通管理系统
校园网络工程综合布线方案
vc高校缴费系统
php格式化系统——前台
原创asp网上选课系统
最新asp校园学生信息在线管理系统
android基于特征的入侵检测系统
vb人事管理系统
vb.net图书管理系统
java简易web服务器研究
jsp基于jsp学生成绩管理系统软件的开发
net模块化动态电子商务网站的开发
delphi中大迅通合同统计系统
linux下的简单网络管理控制系统的设计与开发
vf航空售票模拟系统
vb通用销售管理系统
c#教学信息管理系统毕业
vc企业投资价值分析系统
j2ee基于bs方式的即时通讯软件
asp.net科研信息管理系统
vb.net软件项目开发管理系统vb.net
android可视化图像处理系统
c#高校题库管理系统附原代码程序万字
net基于.net电子相册的开发
pb商品配送中心库存仿真软件设计
android成本费用计算系统
asp.net旅游信息管理系统
j2ee宿舍管理系统
vb.net气象信息服务系统
net基于tcp协议的简单即时通信软件
原创vb职员信息管理系统
php小型企业网上订单系统
android人事管理
vb.net汽车销售系统
最新美食网站
最新简化的cpu逻辑功能的仿真实现
vb光盘信息管理系统
深水蓝文学网站
vb列车时刻查询决策系统
vc毕业管理系统
android商品交易系统
delphi列车时刻查询决策系统课程设计
java图书管理系统带
java基于jee的公交查询系统
net《数据库原理及应用技术》课程指导平台的开发
原创net某企业信息管理系统
delphi局域网的语音通信
vc家庭财务管理系统
android人脸识别系统设计.
php软件信息发布系统
社区论坛
net网上办公系统——公文流程管理设计与实现
原创delphi学生档案管理
delphi干部档案管理系统
asp基于bs的人才交流网站
asp.net酒店房间预约系统
java网络流量监控及分析工具
asp在线教学质量评价系统
php网络购物
快速加密解密芯片中kasumi算法的实现
asp.net网络购物系统
最新php科研项目网上申报管理系统
j2ee打字系统
基于ajaxlucene构建搜索引擎的设计和实现
pb超市配送运输管理系统
vf医疗纠纷检索系统
pb图书管理系统(毕业程序翻译%通过)
原创美食网站
vb网络在线考试系统原码
vb.net邮件收发系统的设计
jsp科研处管理信息系统
vcaccti电话语音应答系统
vc用遗传算法解决车辆优化调度问题任务书
delphi多媒体教学控制系统-网络通讯平台的设计
vc试卷生成系统
java气象信息服务系统
asp局域网文件共享及检索系统的设计与开发
php音乐网站
c内存映射文件在进程共享中的应用研究
php基于web的办公自动化管理系统可执行
php基于网络环境的库存管理系统
jsp在线直销商城
vb排课管理系统
最新简易网络存储系统
jsp基于jsp的网上考试系统_
第二代木马的研究与实现
vb.netjpeg编码优化
java基于java的五子棋游戏软件的设计与开发
java绩效评价系统
vc仓库管理系统
j2ee图书馆书库管理系统
php学生成绩查询
java基于windows入侵检测系统的研究与设计——检测模块设计
android象棋程序
vf网吧计费系统
c#smart系统-考试监控及阅卷模块的设计与开发
android某医疗部门总务信息管理系统
vb.net图书馆全开架借阅管理系统
vf电子通讯录(带系统托盘)
android指纹识别系统
android设备保养管理系统
android基于局域网的信息收发系统
android办公用品管理系统
pb企业考勤管理系统
pb药品公司进销售存管理系统
c#光盘管理系统
php服装销售系统
原创asp.net网上选课系统
net仪器设备管理系统设计与实现
j2ee基于特征的入侵检测系统
最新net基于net的公司网站
vb教学设备管理系统
net(java)办公自动化管理系统
c#企业人事管理系统
asp.net校友录server
android邮政编码系统
最新asjavatoc电子商务网站
原创基于icmp模拟网络控制软件的开发——控制管理模块
asp计算机组成原理教学网站
j2ee考试分析评价系统
net基于bs的计算机等级考试系统
端口扫描与检测技术的实现
vb.net题库管理系统
原创php基于php的论坛
文学网站
php网上体育用品商店
asp网上书店
php博客网站
php施甸县旅游咨询网
原创net客户关系管理系统的实现
vf木马检测工具的实现
vb社区人口资源管理系统设计与实现
vbd的网络三维技术
基于net教学辅助系统设计与实现
c局域网即时聊天程序
delphi象棋程序
jsp基于网络超市商品销售管理系统
c#计算机机房管理系统
asp网络教学平台
asp图书馆管理系统
pbsmart系统-公共资源模块的设计与开发--代码
asp助学贷款管理系统
j2ee学生档案管理系统
php网上购物系统答辩
net门诊就诊系统
php某小型数字图书馆
asp.net网上家电销售管理系统
asp.net网上商城系统
net中小企业oa系统
vb.net房屋销售管理信息系统
最新面向internet上的cscw的共享白板
php同学录系统
iptables图形管理工具
asjavatoc电子商务网站
vc考试系统vc
最新asvftoc电子商务网站
实验室计算机的ip地址自动设置程序——客户端
asp.net网络教学评判系统
asp.net基于asp.net的笔记本销售网站
php药品销售数据管理系统
android自动出题题库系统
原创j2ee电脑公司财务管理系统
数据库连接池的研究与实现
jsp课程设计
java上机考试系统
原创基于net教学辅助系统设计与实现
php科研信息管理系统
eims系统-oa子系统的设计与开发
net基于.net的工资绩效管理系统的开发
pb基于工作流引擎的系统框架设计开发
asp.net网上日记本
c#员工管理系统
基于rsa的数字签名
php企业人力资源管理系统的设计
原创asp《信息论与编码》在线考试系统
j2ee扫雷游戏的设计与开发
jsp网上考试系统
vb学生管理系统
c#基于c#的飞行模拟游戏的设计及实现
php求职招聘网站设计
jsp科研处管理信息系统
net基于svg的自动站雨量分析系统
asp.net文章在线发布系统
vb流动资金贷款业务系统
net网络考试系统.net
jsp聊天室
vb.net基于vb.net的两个通用安全模块
net小型证券术语解释及翻译系统的设计与开发
android电脑销售系统
j2ee自动点歌系统
net小型酒店管理系统的设计
vf办公自动化系统
java商业汇票(支票管理)
asp.net课程设计
pb银行设备管理
jsp企业网站设计
网络数据包的协议分析程序的设计开发
java网络多人聊天系统
android停车场管理系统
_基于.net的驾校理论考试模拟系统
jsp基于bs结构的工艺品销售系统的实现
asp.net格式化系统——前台
asp个人网站
c#兼职中介管理系统
jsp基于jsp的人事管理系统
最新基于des加密算法的word加密插件的实现
asp.net网络实验教学网站
asp网络招聘系统
vb.net煤气站管理系统dpac
asp仓储管理系统
android图书销售信息系统
asp.netcd销售管理系统
php学生信息管理系统
android图像处理工具
pb学生办证管理系统
j2ee党员管理系统
asp.net机房自由上机收费管理软件
vf网络计时管理系统
java基于java的五子棋游戏软件的设计与开发
c#中介管理系统
php酒店客房管理系统
c#图书馆管理系统
pb科研项目管理系统
jsp学生管理
jsp学生考试成绩分析(带饼状态图,柱状图)
asp课程设计
asp.netc语言试题生成与考试系统
vb.net教学信息管理系统
vb局域网的数据包监听及数据分析
vb高校题库管理系统附原代码程序万字
php视频点播系统
vb企业档案管理系统简单版
vb学生宿舍管理系统
net房地产管理系统
c#物业管理
vb音像店管理系统
javasmart系统-公共资源模块的设计与开发--代码
java基于ftp协议的文件访问系统
最新基于des加密算法的word加密插件的实现
vf绩效评价系统
asp操作系统课程教学网站
pb旅游资源及线路管理系统
vb.net计科教务管理系统
最新php客户关系管理系统
j2ee病房管理系统
php原创交友网设计
最新net频点播系统
php基于php学生成绩管理系统软件的开发
最新neterp系统(毕业设计
原创vc基于bs方式的即时通讯软件
基于lotus的故障报修系统
vf超市配送运输管理系统
vb.net试卷生成系统
原创文件压缩与解压缩实践
php教师档案管理系统
原创jsp《信息论与编码》在线考试系统
android网络数据包捕获工具
jsp药品销售数据管理系统
asp在线学习系统
j2ee考勤管理系统j2ee
asp网络商城
c局域网即时聊天程序
c#健身中心会员管理系统
vf客房管理信息系统
java基于采集
netxx职业中学图书管理系统的设计
基于caché的实验室资源管理系统的设计
最新基于net教学辅助系统设计与实现
vb.net学生管理系统
c内存映射文件在进程共享中的应用研究
vf中国象棋游戏
vbsmart系统-题库及试卷管理模块的设计与开发
win平台下的pe文件病毒的研究及实现
net基于手机短信平台聊天程序
jsp网上图书销售系统
原创web的入侵防御系统
vc干部档案管理系统
最新web的入侵防御系统
vf基于misty算法的加密软件的实现
vb.net数据结构辅助教学
php个人日志系统
asp.net论坛程序设计(万字功能强大)
asp网页设计辅导系统
最新net动态口令认证的网上选课系统
net基于.net电子相册的开发
j2ee学生信息管理系统万字
pb网上交易系统pb
vf超市进销存管理系统vf报稿
asp留言板
c#模拟atm机系统软件的设计与开发c#
asp交友录
pb车辆
最近在学习TSP问题的相关知识,我下载了一个蚁群算法解决的代码,但是这个数据文件我看不懂
EDGE_WEIGHT_TYPE : EUC_2D 二维欧氏距离
NODE_COORD_SECTION就是每个节点的信息,依次分别表示:节点编号,x轴坐标,y轴坐标
基于蚁群算法的最优路径选择研究外文文献谁有?
你好,请认准正确答案下载附件,文献已上传,蚁群算法的最优路径选择旅行商路径优化外文文献,2014年的,望及时采纳答案!
作者:Ouaarab A, Ahiod B, Yang X S.
文题:Discrete cuckoo search algorithm for the travelling salesman problem
期刊:Neural Computing and Applications, 2014, 24(7-8): 1659-1669.
写给前辈的一封信
各位有想对前辈说的话,想写封信给前辈们,那么如何给前辈写一封信?下面我整理了写给前辈的一封信,供你参考。
写给前辈的一封信篇一
致豫让前辈的一封信
豫让前辈·:
您好!
每每读到您屡刺赵襄子,竟不惜吞炭,辞家,我便不禁为您扼腕——您真的太傻了!
其原因有三:
1. 不顾后果。别说在春秋战国,即使在当今,做了好事,纵然,是真心所为,也会招人揣度——“这小子一定是居心不良,想要得到赵襄子的赏识吧。”“很有可能!这小子竟吞炭报主,说他是真心的·,谁也不信呀!:”“没准他走投无路了,想诳上赵襄子!”“世态炎凉呀!”先生,你还真别不信,一切皆有可能,一不小心,你没准就会被人“人肉”了。先生,您说您冒天下之大不韪去博这个恶名是不是傻?
2. 是非观念混淆。就算您要报恩,也要先掂量掂量吧,
咱21世纪啥子最重要?地球人都知道——monkey!,神马感恩不感恩,知遇不知遇的,有钱才是硬道理,在金钱的威压下,无价的爱情,不也变成了“宁愿坐在宝马车上哭,不愿坐在自行车上笑”吗?高尚的师德,不也演变为一切以金钱为重吗?改变命运的知识,可以买到,享誉终身的名声,可以买到。因为有钱,所以高尚;因为有钱,所以高尚。您既有能力,又有机会,竟为了一个小小的智伯而是大好机会白白葬送,大把大把的钞票从手中流过,何其愚也?
3. 不信前人之言。身体是革命的本钱,没有一个好身
体,何谈刺杀?可您却甘愿吞炭,甘愿屡屡以身犯险,置生命于何地,置健康于何地?古有严嵩严分宜,今有许迈永许三多,为了健康,为了生命,皆以身试法,何其勇也,相比之下,您不是太傻了吗?纵有傻子沈浩,白痴王伟,愚人郭明义,但相较之下,还是文强居多,不是吗?
豫让前辈,如果我是您的话,我一定不会做此等既不利人更不利己的傻事·,还望您三思考。
写给前辈的一封信篇二
写给沙叶新前辈的一封信尊敬的沙叶新老师,您好!
首先请允许笔者 自我介绍 。笔者是出生在湖北一个破落农村的一个曾经怀有报效祖国的青年。笔者同时也是一个有七年文学历史的农村青年。
笔者自信有一定的文学才华,但在现实生活的连番跌撞下,也不得不低下曾经傲气十足的头颅。笔者因为在人生的十字路口找不到方向,迷茫困顿下,才不得不写出自己的心声的。最近一个多月,笔者都在网络上发表笔者的想法,但名不见经卷,人微言轻,在这个商业社会,几乎没有那家媒体关注笔者的 事迹 。笔者是一有 故事 的青年。有自己的苦衷,万般无奈之下,只有希冀沙老前辈能够拨冗空闲为笔者奔走宣传一二。
笔者父母皆是穷苦的农民,如今皆已年迈,没有退休金养老,而我目今27岁,依旧是单身光棍一条,依旧身无存款,囊中羞涩。笔者家境贫寒,近乎家徒四壁,盖不起新房,娶不起媳妇,接续香火恐怕也是遥遥无期了。笔者目今还有一些褴褛衣衫遮蔽其身,笔者担忧,再过一两年,笔者要裸奔上街了。
所幸笔者身材修长,算的上一美男子,笔者被逼无奈之下,也不在在乎那么些“礼义廉耻”的三纲五常了,笔者只想哪位富婆(富姐)包养。也许笔者会被骂的狗血淋头,但笔者正因为文学的熏陶,才“理所当然”地下此决定。
27岁还没结婚,这在我们这思想落后的农村来说,无异是一个异数。父母时常劝说我成家立业。但我心里清楚,身为一个男人,没有安身立命的能力,娶妻生子也是枉然。如果没有能耐,就不要结婚,以免给对方往后带来不必要的麻烦。
我打工的时间不是很长,零零散散凑起来,也大约三年时间。即便我离开曾经深深眷恋的学堂,但我一直在坚持着我的文学梦想。
我涉足文学,是从2003年高考失利之后。赋闲在家,读一些闲书,萌发了对文学的特殊 爱好 。持续至今,屈指算来,也就有了七个年头了。虽然时间不算很长,但我深信,我对文学还是有一定程度的造诣!
从古至今,文学都在历史的纷乱变革中,呈现出不可磨灭的地位。虽然有焚书坑儒,有文字狱,有灭佛,但 文化 的薪火相传,并没有因为曾经的兵燹战火,而与琼楼大殿一齐化为焦土。这是文化的幸运,但也有不幸。许多重要的藏书,难免失秩消亡,成为绝响。这不能不说,是文化的遗憾。
《诗经》,《周礼》,《礼记》,《山海经》,《论语》,《墨子》,《庄子》,《老子》,《韩非子》,《列子》,《管子》,二十四史,《资治通鉴》......魏晋南北朝的辞赋,唐诗,宋词,元曲,明清小说......都给我们留下了弥足珍贵的文化奇迹。
中国是四大闻名古国之一。三皇和五帝(黄帝,颛臾,帝喾,唐尧,虞舜),还有盘古开天辟地,女蜗造人,仓颉创字......这些神话 传说 ,都给华夏民族增添了神圣的光彩。
中国有五千年的历史,上下五千年。博大精深的文化渊薮,多元的文化脉络,不是那个民族的文化所能比及的。
班固,班昭,扬雄,庾信,萧乾,司马相如,司马迁,李白,杜甫,贺知章,陆游,白居易,孟浩然,李淳风,袁天罡,李煜,司马光,苏轼,苏洵,苏辙,秦观,韩愈,欧阳修,初唐四杰,竹林七贤......这些伟大的文学家,在历史的长河中,流芳百世,启发着后来者,激励着后来者。
自古文人多寂寞,唯有饮者留其名。作家与文人大都先知先觉,看的社会事物是深刻透彻的,所谓透过现象看本质,窥一斑而知全豹。但文人也有迷惑,蒲松龄一生潦倒不堪,在官场黑暗的科举制度下,用犀利的笔,写下了《聊斋志异》;词人柳咏,潦倒于青楼之中,与歌妓为伍,不能不令人顿生怜悯;杜甫奔波坎坷,命途多蹇;李白怀才不遇,失意中以诗酒聊以自慰......大多是文人的悲哀。但我想,那是古代封建时代的杯具吧。
现代社会,文学在不断萎缩,不知道是商业引起的,还是由于政治引起的,或者是其他。章怡和老前辈说,当今艺术趋于消亡。每个人都心浮气躁,穷人,富人,甚至就连佛家清净之地,也或多或少的沾染了世俗的庸俗之气吧。
穷人在努力工作着,依旧只能养家糊口,能够供给子女上学,也就算是要烧香拜佛,谢天谢地了;富人有的富得流油 ,但大都为富不仁,冷漠,自私,贪婪,即便做慈善事业,也要为自己贴金,为自己的商业做 广告 。官场的水最深,深不可测,不可见底,云波诡谲。佛家清净之地,本该伴随青灯经书,宣扬佛法普照。但不少寺庙却为此敛财,不以为耻。
现在社会的名利观,是史无前例的。人的欲望,如同无底洞,欲壑难填。为了攫取金钱,不择手段,铤而走险,没有了道德基础的束缚。法律的效用只在于富人,并不怎么保护穷人的利益(并非笔者凭空捏造,报纸上的报道屡见不鲜)。前段时间播放的《孔子》,笔者不知道有有没有 教育 作用,但笔者窃以为,人心的净化,不是靠一部《孔子》就能够易如反掌解决的。世风日下,人心欺倒。
真正的知识份子,是不会屈服于权力的。古代许多有气节的文人身上都有的风骨,亦是习以为常的。士为知己者死!
但现今的文人,最注重的还是利益,明哲保身,向世俗权力低头,亦是习以为常的。毕竟文艺是为政治服务。文艺是粘附在政治这张“皮”上的毛。皮之不存,毛将焉附?在易中天老师《劝君免谈陈寅恪》一文中,道出了文人与学术研究者的困惑,尤其是学术研究者的无奈,写 文章 的意义的论述。
笔者亦疑惑何为锦绣文章?何为大作?以下摘录易中天老师《劝君免谈陈寅恪》一文:
所谓“权”,并不等于或只是政治权力,也包括学术权力。它可能是一种行政权力,也可能只是一种话语权力。比如能批给你一大笔科研经费,为你调查研究、收集资料大开方便之门,让你看到别人看不到的东西等等,运用的是行政权力;说一不二,一言九鼎,“说你行你就行,不行也行;说不行就不行,行也不行”,则是在运用话语权力了。话语权力也很厉害呢!它能决定一个人在学术界混得怎么样,能不能混出个名堂来,甚至混不混得下去,同样堪称“生杀予夺”。君不见,多少有着真才实学的人默默无闻,多少有着真知灼见的著作埋没不彰,而某些平庸之辈的平庸之作甚至狗屁不通的东西却被捧上了天,就因为后者掌握了话语权力而前者没有么!行政权力与职位有关,话语权力与地位有关,但在中国现行体制下,两者之间往往有一种说不清楚的瓜葛和猫腻。长期以来,中国的学术活动尤其是学术评价(评奖、评职称、批课题等等),一直在行政化的体制下运作。而且,随着所谓“量化管理”的推行,学术的体制化还有愈演愈烈之势。体制是不由分说的。顺之者昌,逆之者亡。体制也是一视同仁的。无论谁和体制作对,哪怕脱离体制,都将一事无成,甚至连饭都没得吃。?
笔者知道现在才略有明白,自古文人不自由。但笔者又认为,现代社会应该不会重蹈先前的覆辙了吧。然,现实却令笔者不那么乐观。
笔者窃以为,当今考学历,考名牌大学,硕士,博士,博士后,两院院士,都有一个显而易见的目的,那就是学历就是敲门砖。当然,现在这种意义,毕竟减弱了不少。不过,人情世故,起了很犹为重要的作用。如果你不通世故,即便你有经天纬地之才,也说不定会被前仆后继的嫉妒者所菲薄,甚至将你“除”之而后快。
再是“朝廷有人好办事”,权力的诱惑力,不是以人的意志为转移。你有权,别人朝着你的权力尊重你,你没权,别人毫不留情的离开你。所谓人一走,茶就凉,哪管什么周详不周详!笔者想,就是这么个道理吧。
笔者但愿这些庸俗的影响文坛学术界的不成文的潜规则,能够在若干年后,消弭殆尽!
再说一说,古人的天命观。孔子云,不知天命不可以为君子。还有《周易》,《易经》,《推背图》,《烧饼歌》,《梅花诗......淳风,袁天罡的《推背图》据说屡验屡灵,后世帝王皆为之畏忌,也风闻统治者篡改里面的记载。至于刘伯温,笔者想,这应该是没得怀疑的吧。
现代社会是以民主,自由,博爱为主题的多元文化存在。不应该出现什么农村户口,城市户口那么悬虚的工资和福利待遇。《世界人权宣言》不是解说的很清楚么?城市人,农村人,都应该一视同仁。倘若区别对待,那不是背离了《世界人权宣言》吗?还有马克思先生的共产主义的理论么?中国毕竟加入了WTO,人类的普世价值,应该是通用的,不分国界的。因为我是农民,所以我不那么服气!
笔者水木生
写给前辈的一封信篇三
90后准程序员写给前辈们的一封信
作为一个即将步入社会的90后,一直有许多话想对前辈们说....
1.我们的时代?
我们的时代是什么?我觉得就是吃快餐长大的一代,想想70后的那一代程序员,他们那时候没什么网络,没太多的技术,书也没现在这么牛毛,他们有着扎实的基本功,他们玩起内存那叫一个帅,现在呢?生活大爆炸,信息大爆炸,我们这一代人,被太多的信息覆盖,盲目的学习,盲目的崇拜,看着什么都懂,但是又什么都不行,就像魔兽世界老一代的玩家形容我们,吃快餐长大的一代,就像我们这些从《熊猫人之谜》开始玩wow一样,我们也许不明白,当年的魔兽有多好玩,练一个号有多么难,又多么的有乐趣,什么叫副本,什么叫任务,今天的时代,各种所谓的技术,各种工具,各种几个月精通,就像随机副本一样,催肥了我们,也害了我们......
2.我崇拜的程序员
我最崇拜的有两种程序员,一种是把程序员当生活的,他们享受编程,喜欢开源,喜欢linux,喜欢python,用vim,Emacs,写博客,用邮件列表,画 思维导图 ,还经常写写打油诗,把自己比作武林高手,比作诗人,我就很希望自己将来能成为他们那样的人,还有一种程序员,只是用程序挣钱,比如我的一个老师,他的水平就很高,自己接C和c++的项目赚了不少钱,但是当我问起他,用vim还是Emacs,他说没听过,他只用VS,他也从来不写博客,不想把自己的东西贡献出来,他也说,他需要的许多软件都是拿钱都买不到的,开源的根本不能用,只是实现了皮毛,我也挺崇拜他的,我觉得这样的人很聪明,很会挣钱。
3.头痛的简历
简历上有两个最令我头痛的地方,一个是 毕业 院校,一个是项目经历,我上的是一个兰州的普通本科,兰州没什么软件公司,外地的又不来招牌,所以我前几天来到了西安,但是在外人眼里,我们兰州人都是骑骆驼上学的,所以在简历上写这种毕业院校,HR估计看都不会看的。
还有一个就是项目经历,我想说,我没有项目经历,但是我在大学并没有闲着,我是根据自己的 方法 ,去“修炼”,比如,我不看别人的一行代码,去实现贪吃蛇,俄罗斯方块这样的程序,我就开始想,我应该怎么写,我试着先去实现一个能画方格的程序,接着,再去实现一个能根据坐标,画出方格的程序,然后是一个蛇类,移动的算法,输入控制。。。就这样自己想办法一块块构建起来,没有看别人一行代码。之后,有一次,我在书上读到驱动测试编程,我真有种“蓦然回首,那人却在灯火阑珊处”的感觉,在自学了python后,我又试着用pygame来重写,或者用c++用MVC的方式重写贪吃蛇,或者把输入控制的键盘映射,改成可配置的文本文件,或者把控制模块和绘制模块,改成文本流传递消息,这些都是从《UNIX编程艺术》上学来的,在比如,我们上jsp课的时候,我就不明白动态网页的原理,我就开始“计算机考古”,开始看HTTP头,明白动态网页的原理,然后用CGI实现了一个老师布置的jsp作业,虽然被老师批评了,但是我觉得最起码学到了许多。像我们的《计算机图形学》课,老师居然教我们C在DOS下的画图,我觉得那太过时了,我就开始自学OPENGL,然后用WINAPI写一个窗口,把它粘进去,我还常常用像HGE,pygame,来实现一些老师布置的算法程序,把这些算法演示出来,比如蚁群算法,做出来就像游戏一样。我还把《机械迷城》中的几个过不去的迷宫游戏,自己用栈,实现了迷宫算法,或者干脆用pygame写一个自己玩。有一次我在想opengl是如何实现的,我就开始用2d的api写了个3d的程序(使用正交投影),我还用思维导图解决问题,比如这篇博客就是先用思维导图画好的。我就用自己的方式,写了许多“玩具程序”,修炼自己,但是我真没有项目经历,我没有跟老师一起做项目,是因为,我不喜欢跟他们做,他们动不动就跟你讲什么挣钱,什么不挣钱,他们会告诉你,那些大老板,根本不懂程序,但是人家挣许多钱,他们也不愿意把代码写的漂亮,能运行挣钱就行,还都是拼音命名规则,我觉得大学本来就是培养自己兴趣的时候,我觉得我做到了,不过最近就再想,我所做的这些,是不是真的比不上那三个月的项目实习 经验 ?
4.大学的教育
说实话,我真的不喜欢老师们上课的方式,他们大多数就是在读ppt,要么有半节课在骂社会,一切跟程序有关的东西都变得枯燥,他们让背java继承public,protect,private的表,被const指针的各种搭配,在配上static,还背优先级,我觉得,就是应试教育的恶果,我从来都是“记用法,不记规则”的,因为规则这东西,又不是语言的设计者故意刁难你的,肯定自有用途,所以在我的笔记上有“const 引用,能让形参不被copy,提高效率”这句话,不会有“const引用,函数无法修改形参”这句话。
像《 操作系统 》这样的课程,老师天天讲理论,什么哲学家就餐,线程调度,全是在黑板上画,我为了学习操作系统,干脆就自己去学linux系统编程,用用那些api,我觉得这是学习操作系统最好的方式,而且,我觉得linux真的比windows适合学习,linux上有vim这样的编辑器,也有那么多的软件工具,还有man,有管道,等等,许多哲学,不像windows的sdk那么臃肿...
我们这个年纪的人,一开始就是windows,web邮箱,vs,有太多的东西没有经历过,我就喜欢去寻找“过时”的好东西,我把它称之为《计算机考古学》,做一个真正地程序员,了解来龙去脉。
我们学校就是为了大家好就业,给大家的方向都定的j2ee,而我就选择自己的方式,寻找自己的兴趣,我并不是那种浮躁什么都想学,我觉得大学,又不是研究生,也不是什么培训包就业班,本来就应该用自己的方式寻找自己的未来,而且,最后,我还是决定了自己的方向,那就是五个一,一个编辑器vim,一个过程语言c,一个动态语言python,一个无底洞语言c++,一个平台linux...
再有,就是设计模式这东西,不知道为什么,被说的那么神奇,然后大家盲目的崇拜,那些精通java企业级的,好像都要懂设计模式才行,我觉得,本科生就不应该学什么设计模式,能把oop学懂就不错了,oop可不仅仅就是封装,继承,多态这么简单,不管怎样,应该先学会把程序实现出来,许多人没写多少代码,没学懂oop,就开始设计模式。就像一个连与人交流的情商都没有的人去学习什么读心术,企图提高自己的情商,真是可怕,再说了,学了linux,看了《Unix编程艺术》,你可能连oop都不崇拜了...
大学,自己做了许多,也思考了许多,可惜参加了3个月培训的人已经月薪5000了,我来到这里投简历又没人看...
这就是我,一个没上过重点,没有实习经历的90后想说的,我还想说,我热爱程序,希望能找到一个属于自己的工作...
哪本python书立有蚁群算法
简介
蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型算法。它由Marco Dorigo于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。蚁群算法是一种模拟进化算法,初步的研究表明该算法具有许多优良的性质。针对PID控制器参数优化设计问题,将蚁群算法设计的结果与遗传算法设计的结果进行了比较,数值仿真结果表明,蚁群算法具有一种新的模拟进化优化方法的有效性和应用价值。
定义
各个蚂蚁在没有事先告诉他们食物在什么地方的前提下开始寻找食物。当一只找到食物以后,它会向环境释放一种挥发性分泌物pheromone (称为信息素,该物质随着时间的推移会逐渐挥发消失,信息素浓度的大小表征路径的远近)来实现的,吸引其他的蚂蚁过来,这样越来越多的蚂蚁会找到食物。有些蚂蚁并没有像其它蚂蚁一样总重复同样的路,他们会另辟蹊径,如果另开辟的道路比原来的其他道路更短,那么,渐渐地,更多的蚂蚁被吸引到这条较短的路上来。最后,经过一段时间运行,可能会出现一条最短的路径被大多数蚂蚁重复着。
解决的问题
三维地形中,给出起点和重点,找到其最优路径。
作图源码:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
from mpl_toolkits.mplot3d import proj3dfrom mpl_toolkits.mplot3d import Axes3Dimport numpy as np height3d = np.array([[2000,1400,800,650,500,750,1000,950,900,800,700,900,1100,1050,1000,1150,1300,1250,1200,1350,1500], [1100,900,700,625,550,825,1100,1150,1200,925,650,750,850,950,1050,1175,1300,1350,1400,1425,1450], [200,400,600,600,600,900,1200,1350,1500,1050,600,600,600,850,1100,1200,1300,1450,1600,1500,1400], [450,500,550,575,600,725,850,875,900,750,600,600,600,725,850,900,950,1150,1350,1400,1450], [700,600,500,550,600,550,500,400,300,450,600,600,600,600,600,600,600,850,1100,1300,1500], [500,525,550,575,600,575,550,450,350,475,600,650,700,650,600,600,600,725,850,1150,1450], [300,450,600,600,600,600,600,500,400,500,600,700,800,700,600,600,600,600,600,1000,1400], [550,525,500,550,600,875,1150,900,650,725,800,700,600,875,1150,1175,1200,975,750,875,1000], [800,600,400,500,600,1150,1700,1300,900,950,1000,700,400,1050,1700,1750,1800,1350,900,750,600], [650,600,550,625,700,1175,1650,1275,900,1100,1300,1275,1250,1475,1700,1525,1350,1200,1050,950,850], [500,600,700,750,800,1200,1600,1250,900,1250,1600,1850,2100,1900,1700,1300,900,1050,1200,1150,1100], [400,375,350,600,850,1200,1550,1250,950,1225,1500,1750,2000,1950,1900,1475,1050,975,900,1175,1450], [300,150,0,450,900,1200,1500,1250,1000,1200,1400,1650,1900,2000,2100,1650,1200,900,600,1200,1800], [600,575,550,750,950,1275,1600,1450,1300,1300,1300,1525,1750,1625,1500,1450,1400,1125,850,1200,1550], [900,1000,1100,1050,1000,1350,1700,1650,1600,1400,1200,1400,1600,1250,900,1250,1600,1350,1100,1200,1300], [750,850,950,900,850,1000,1150,1175,1200,1300,1400,1325,1250,1125,1000,1150,1300,1075,850,975,1100], [600,700,800,750,700,650,600,700,800,1200,1600,1250,900,1000,1100,1050,1000,800,600,750,900], [750,775,800,725,650,700,750,775,800,1000,1200,1025,850,975,1100,950,800,900,1000,1050,1100], [900,850,800,700,600,750,900,850,800,800,800,800,800,950,1100,850,600,1000,1400,1350,1300], [750,800,850,850,850,850,850,825,800,750,700,775,850,1000,1150,875,600,925,1250,1100,950], [600,750,900,1000,1100,950,800,800,800,700,600,750,900,1050,1200,900,600,850,1100,850,600]]) fig = figure()ax = Axes3D(fig)X = np.arange(21)Y = np.arange(21)X, Y = np.meshgrid(X, Y)Z = -20*np.exp(-0.2*np.sqrt(np.sqrt(((X-10)**2+(Y-10)**2)/2)))+20+np.e-np.exp((np.cos(2*np.pi*X)+np.sin(2*np.pi*Y))/2)ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='cool')ax.set_xlabel('X axis')ax.set_ylabel('Y axis')ax.set_zlabel('Z')ax.set_title('3D map') point0 = [0,9,Z[0][9]]point1 = [20,7,Z[20][7]] ax.plot([point0[0]],[point0[1]],[point0[2]],'r',marker = u'o',markersize = 15)ax.plot([point1[0]],[point1[1]],[point1[2]],'r',marker = u'o',markersize = 15) x0,y0,_ = proj3d.proj_transform(point0[0],point0[1],point0[2], ax.get_proj())x1,y1,_ = proj3d.proj_transform(point1[0],point1[1],point1[2], ax.get_proj()) label = pylab.annotate( "start", xy = (x0, y0), xytext = (-20, 20), textcoords = 'offset points', ha = 'right', va = 'bottom', bbox = dict(boxstyle = 'round,pad=0.5', fc = 'yellow', alpha = 1), arrowprops = dict(arrowstyle = '-', connectionstyle = 'arc3,rad=0'),fontsize=15)label2 = pylab.annotate( "end", xy = (x1, y1), xytext = (-20, 20), textcoords = 'offset points', ha = 'right', va = 'bottom', bbox = dict(boxstyle = 'round,pad=0.5', fc = 'yellow', alpha = 1), arrowprops = dict(arrowstyle = '-', connectionstyle = 'arc3,rad=0'),fontsize=15)def update_position(e): x2, y2, _ = proj3d.proj_transform(point0[0],point0[1],point0[2],ax.get_proj()) label.xy = x2,y2 label.update_positions(fig.canvas.renderer) x1,y1,_ = proj3d.proj_transform(point1[0],point1[1],point1[2],ax.get_proj()) label2.xy = x1,y1 label2.update_positions(fig.canvas.renderer) fig.canvas.draw() fig.canvas.mpl_connect('button_release_event', update_position)
基本原理
蚂蚁k根据各个城市间链接路径上的信息素浓度决定其下一个访问城市,设Pkij(t)表示t时刻蚂蚁k从城市i转移到矩阵j的概率,其计算公式为
计算完城市间的转移概率后,采用与遗传算法中一样的轮盘赌方法选择下一个待访问的城市。
当所有的蚂蚁完成一次循环后,各个城市间链接路径上的信息素浓度需进行更新,计算公式为
其中,Δτkij表示第k只蚂蚁在城市i与城市j连接路径上释放的信息素浓度;Δτij表示所有蚂蚁在城市i与城市j连接路径上释放的信息素浓度之和。
蚂蚁释放信息素的模型
程序代码:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
import numpy as npimport matplotlib.pyplot as plt%pylabcoordinates = np.array([[565.0,575.0],[25.0,185.0],[345.0,750.0],[945.0,685.0],[845.0,655.0], [880.0,660.0],[25.0,230.0],[525.0,1000.0],[580.0,1175.0],[650.0,1130.0], [1605.0,620.0],[1220.0,580.0],[1465.0,200.0],[1530.0, 5.0],[845.0,680.0], [725.0,370.0],[145.0,665.0],[415.0,635.0],[510.0,875.0],[560.0,365.0], [300.0,465.0],[520.0,585.0],[480.0,415.0],[835.0,625.0],[975.0,580.0], [1215.0,245.0],[1320.0,315.0],[1250.0,400.0],[660.0,180.0],[410.0,250.0], [420.0,555.0],[575.0,665.0],[1150.0,1160.0],[700.0,580.0],[685.0,595.0], [685.0,610.0],[770.0,610.0],[795.0,645.0],[720.0,635.0],[760.0,650.0], [475.0,960.0],[95.0,260.0],[875.0,920.0],[700.0,500.0],[555.0,815.0], [830.0,485.0],[1170.0, 65.0],[830.0,610.0],[605.0,625.0],[595.0,360.0], [1340.0,725.0],[1740.0,245.0]])def getdistmat(coordinates): num = coordinates.shape[0] distmat = np.zeros((52,52)) for i in range(num): for j in range(i,num): distmat[i][j] = distmat[j][i]=np.linalg.norm(coordinates[i]-coordinates[j]) return distmatdistmat = getdistmat(coordinates)numant = 40 #蚂蚁个数numcity = coordinates.shape[0] #城市个数alpha = 1 #信息素重要程度因子beta = 5 #启发函数重要程度因子rho = 0.1 #信息素的挥发速度Q = 1iter = 0itermax = 250etatable = 1.0/(distmat+np.diag([1e10]*numcity)) #启发函数矩阵,表示蚂蚁从城市i转移到矩阵j的期望程度pheromonetable = np.ones((numcity,numcity)) # 信息素矩阵pathtable = np.zeros((numant,numcity)).astype(int) #路径记录表distmat = getdistmat(coordinates) #城市的距离矩阵lengthaver = np.zeros(itermax) #各代路径的平均长度lengthbest = np.zeros(itermax) #各代及其之前遇到的最佳路径长度pathbest = np.zeros((itermax,numcity)) # 各代及其之前遇到的最佳路径长度while iter itermax: # 随机产生各个蚂蚁的起点城市 if numant = numcity:#城市数比蚂蚁数多 pathtable[:,0] = np.random.permutation(range(0,numcity))[:numant] else: #蚂蚁数比城市数多,需要补足 pathtable[:numcity,0] = np.random.permutation(range(0,numcity))[:] pathtable[numcity:,0] = np.random.permutation(range(0,numcity))[:numant-numcity] length = np.zeros(numant) #计算各个蚂蚁的路径距离 for i in range(numant): visiting = pathtable[i,0] # 当前所在的城市 #visited = set() #已访问过的城市,防止重复 #visited.add(visiting) #增加元素 unvisited = set(range(numcity))#未访问的城市 unvisited.remove(visiting) #删除元素 for j in range(1,numcity):#循环numcity-1次,访问剩余的numcity-1个城市 #每次用轮盘法选择下一个要访问的城市 listunvisited = list(unvisited) probtrans = np.zeros(len(listunvisited)) for k in range(len(listunvisited)): probtrans[k] = np.power(pheromonetable[visiting][listunvisited[k]],alpha)\ *np.power(etatable[visiting][listunvisited[k]],alpha) cumsumprobtrans = (probtrans/sum(probtrans)).cumsum() cumsumprobtrans -= np.random.rand() k = listunvisited[find(cumsumprobtrans0)[0]] #下一个要访问的城市 pathtable[i,j] = k unvisited.remove(k) #visited.add(k) length[i] += distmat[visiting][k] visiting = k length[i] += distmat[visiting][pathtable[i,0]] #蚂蚁的路径距离包括最后一个城市和第一个城市的距离 #print length # 包含所有蚂蚁的一个迭代结束后,统计本次迭代的若干统计参数 lengthaver[iter] = length.mean() if iter == 0: lengthbest[iter] = length.min() pathbest[iter] = pathtable[length.argmin()].copy() else: if length.min() lengthbest[iter-1]: lengthbest[iter] = lengthbest[iter-1] pathbest[iter] = pathbest[iter-1].copy() else: lengthbest[iter] = length.min() pathbest[iter] = pathtable[length.argmin()].copy() # 更新信息素 changepheromonetable = np.zeros((numcity,numcity)) for i in range(numant): for j in range(numcity-1): changepheromonetable[pathtable[i,j]][pathtable[i,j+1]] += Q/distmat[pathtable[i,j]][pathtable[i,j+1]] changepheromonetable[pathtable[i,j+1]][pathtable[i,0]] += Q/distmat[pathtable[i,j+1]][pathtable[i,0]] pheromonetable = (1-rho)*pheromonetable + changepheromonetable iter += 1 #迭代次数指示器+1 #观察程序执行进度,该功能是非必须的 if (iter-1)%20==0: print iter-1# 做出平均路径长度和最优路径长度 fig,axes = plt.subplots(nrows=2,ncols=1,figsize=(12,10))axes[0].plot(lengthaver,'k',marker = u'')axes[0].set_title('Average Length')axes[0].set_xlabel(u'iteration')axes[1].plot(lengthbest,'k',marker = u'')axes[1].set_title('Best Length')axes[1].set_xlabel(u'iteration')fig.savefig('Average_Best.png',dpi=500,bbox_inches='tight')plt.close()#作出找到的最优路径图bestpath = pathbest[-1]plt.plot(coordinates[:,0],coordinates[:,1],'r.',marker=u'$\cdot$')plt.xlim([-100,2000])plt.ylim([-100,1500])for i in range(numcity-1):# m,n = bestpath[i],bestpath[i+1] print m,n plt.plot([coordinates[m][0],coordinates[n][0]],[coordinates[m][1],coordinates[n][1]],'k')plt.plot([coordinates[bestpath[0]][0],coordinates[n][0]],[coordinates[bestpath[0]][1],coordinates[n][1]],'b')ax=plt.gca()ax.set_title("Best Path")ax.set_xlabel('X axis')ax.set_ylabel('Y_axis')plt.savefig('Best Path.png',dpi=500,bbox_inches='tight')plt.close()
8 Metaheuristics
下图介绍了两种不同种类的Metaheuristics,我们主要用左边的,尤其是Iterated Greedy。
I 和D 的过程用图像表示如下:
我在这里只用Iterated Greedy算法。原因如下:
其他算法诸如蚁群算法等,可能能提供非常接近最优解的方案,有些算法的运行速度也很快,可以弥补python运行慢的缺陷。但是这些算法通常存在诸多不足,例如算法太复杂,适用面很窄,需要设置过多参数导致很难实现。
Iterated Greedy的优势在于,它由两个简单的阶段构成:
D和I
更好的解决方案总会被接受
更坏的方案以特定的可能性接受,接受的概率如下图
类似 模拟退火法 :
从当前解决方案中随机删除 numberJobsToRemove 个订单。这里 numberJobsToRemove 是Iterated Greedy的一个参数。
输出的结果是被移除的订单集合 removedJobs 和一个不完整的解决方案 partialPermutation 。
* 注意:solver.RNG.choice的结果每次都一样,是因为我们设置了随机数种子,目的就是只要是用同一个种子作为参数构造出的solver的属性RNG都是同一个。
将 removedJobs 重新加回 partialPermutation ,并插入到最佳位置(NEH)的顺序,并返回新的完整解决方案。这个插入过程是通过排列Permutation实现的,看一下Construction函数的参数表可知,需要两个列表。
* 注:前面讲算法的时候说过,重构函数执行之后会生成一个新的方案newSolution,新方案就是通过把removedJobs插入到最佳位置得到的。最优位置的选择需要在Construction函数中借助 solver.EvaluationLogic.DetermineBestInsertion(completeSolution, i)来实现
我们通过简单的解构和重构,必然会得出一个新方案newSolution,那么我们接受新方案newSolution为当前方案currentSolution的前提是,如果
- 新的解决方案( newSolution ),
- 当前解决方案( currentSolution )。
* 公式中,T叫做baseTemperature,是Iterated Greedy的第二个参数,T越大,则接受更坏方案的概率也越大。新的最优方案存储在SolutionPool中(numberJobsToRemove是第一个参数)
下面开始对newSolution进行评估和比较:
* 注意:判断一个新方案是否可接受取决于两方面:1. 如果新方案更好,那么无论如何都会接受新方案;2. 如果新方案并没有优化,则视作WorseSolution,即使是worseSolution也是要按照公式计算出的概率来衡量是否要接受这个不好的方案
为了看起来更加直观,我把接受差方案的过程写成了函数AcceptWorseSolution。注意看参数表,以便于确定何时调用这个函数。
局部搜索可以被用于优化currentSOlution,但不是必须的。通常会使用IterativeImprovement结合Insertion邻域一起使用。
Iterated Greedy是一个迭代的解构D和构建C组成的序列。
在一个循环中被反复执行,直到达到 停止标准 。
在这里的例子中, 停止标准 是迭代次数 maxIterations ,但时间限制或没有优化的迭代次数也是可以的。
后面可能还会讲到怎么设计一个没有优化的迭代次数,这里可以先思考一下。
现在尝试运行一下:
与 IterativeImprovement 算法类似,现在要为 IteratedGreedy 创建一个单独的类,以便该类的一个实例可以传递给求解器Solver。
像 IterativeImprovement 一样, Iterated Greedy 应该继承自 ImprovementAlgorithm 。
必要的 参数 是以下属性:
EvaluationLogic, SolutionPool以及随机数生成器RNG都由求解器solver传递给算法。
添加 IteratedGreedy 类,以便它可以作为一种算法传递给求解器。
成员函数:Konstruktor, Initialize, Destruction, Construction, AcceptWorseSolution, Run