当前位置: 首页 > news >正文

广东哪家网站建设哪家公司好会员网站建设

广东哪家网站建设哪家公司好,会员网站建设,wordpress 模块开发教程,长沙flash网站制作1. 大规模tsp问题的挑战 数学模型和精确解法见《运筹系列65#xff1a;TSP问题的精确求解法概述》和《运筹系列80:使用Julia精确求解tsp问题》#xff1a; variable(m, x[1:n,1:n], Bin,Symmetric) # 0-1约束 objective(model, Min, sum(x.*distmat)/2) constraint(model, …1. 大规模tsp问题的挑战 数学模型和精确解法见《运筹系列65TSP问题的精确求解法概述》和《运筹系列80:使用Julia精确求解tsp问题》 variable(m, x[1:n,1:n], Bin,Symmetric) # 0-1约束 objective(model, Min, sum(x.*distmat)/2) constraint(model, [i 1:n], sum(x[i, :]) 2) constraint(model, [j 1:n], sum(x[:, j]) 2) for subset in subsets # 防subtour约束需要遍历所有的子集合constraint(model,sum(x[subset[i],subset[i]])2*length(subset[i])-2) end optimize!(m) objective_value(model)主要的挑战包括 求解整数规划比较耗时并且遍历子集难度很大大规模问题时需要自定义高效的cut和price策略变量数量过多需要使用列生成方法来减少求解变量 2. 使用列生成减少求解变量 关于列生成的列子可以参考《运筹系列8Set partitioning问题的列生成方法》。对于tsp问题我们使用列生成的步骤是 首先将问题变量限制在每个点最邻近的k条边上求解限制主问题迭代求解子问题sub problem。如果目标函数最优值0就将新生成的列yk1转入基变量生成新的限制主问题进行求解。如此往复直至子问题的目标函数≥0。 我们以u159问题为例原始模型一共有25281个变量 using TSPLIB, LinearAlgebra, JuMP,HiGHS,PyPlot #读取数据 tsp readTSPLIB(:u159) n tsp.dimension distmat [round(Int64,norm(tsp.nodes[i,:] - tsp.nodes[j,:])) for i in 1:n, j in 1:n]; for i in 1:n;distmat[i,i] 10^9;end#完整模型 model Model(HiGHS.Optimizer) set_silent(model) variable(model, 0x[i in 1:n,j in js[i]]1) info variable size:,length(x) objective(model, Min, sum([x[i,j]*distmat[i,j]/2 for i in 1:n for j in js[i]])) c constraint(model, [i 1:n], sum([x[i, j] for j in js[i]]) 2) e constraint(model, [i 1:n], sum([x[j, i] for j in js[i]]) 2) optimize!(model) info objective:,objective_value(model)主问题限制在每个点最近的3条边中此时只有604个变量第一轮列生成后为686个变量此时已经得到最优解了最终经过7轮列生成迭代变量个数为716 # js为初始下标合集我们将变量下标限制在这个集合内。注意需要保持对称性 idx Index(2) add(idx, tsp.nodes) c search(idx,tsp.nodes,4)[2]; js Vector{Vector{Int}}() for i in 1:npush!(js,c[i,2:end]) end for i in 1:nfor j in c[i,2:end]union!(js[j],i)end end求解主问题然后找到检验数0的列。令对偶变量 p C B B − 1 pC_B B^{-1} pCB​B−1, 则检验数 σ C N − p ∗ N \sigma C_N-p*N σCN​−p∗N 。我们将所有检验数小于0的列进基迭代直至an 0此部分完整代码如下 an 1 while an 0model Model(HiGHS.Optimizer)set_silent(model)variable(model, 0x[i in 1:n,j in js[i]]1)info variable size:,length(x)objective(model, Min, sum([x[i,j]*distmat[i,j]/2 for i in 1:n for j in js[i]]))c constraint(model, [i 1:n], sum([x[i, j] for j in js[i]]) 2)e constraint(model, [i 1:n], sum([x[j, i] for j in js[i]]) 2)optimize!(model)info objective_value(model)p1 [dual(c[i]) for i in 1:n]p2 [dual(e[i]) for i in 1:n];an 0for i in 1:nfor j in setdiff(1:n,js[i])sigma distmat[i,j]/2 - p1[i]-p2[j]if sigma 0;push!(js[i],j);push!(js[j],i);an2;endendendinfo add size:,an end3. 使用行生成添加约束 我们观察att48使用lp求解后的结果 有很多子环需要添加去除环的约束。 首先添加subtour约束去除所有的子环约束 using Graphs paths strongly_connected_components(SimpleDiGraph(round.(x_val,digits 2))) if length(paths)1for path in pathsconstraint(model,sum(x[path,path])2*length(path)-2)endoptimize!(model)x_val round.(JuMP.value.(x),digits 2)paths strongly_connected_components(SimpleDiGraph(x_val)) end迭代求解并绘制结果如下 然后添加comb约束约束介绍参见《运筹系列65TSP问题的精确求解法概述》julia代码参见《运筹系列80: 使用Julia精确求解tsp问题》的4.2节求解后得到两个comb 然后添加进约束迭代求解 迭代得到如下图 4. 使用分枝定界求解整数规划问题 我们这里使用priority queue存储分枝节点按照最简单的下标顺序对所有非整数变量进行分枝。
http://www.huolong8.cn/news/331930/

相关文章:

  • 网站建设的专业术语wordpress 全站404
  • 网站主页设计教程北京网站建设百度排名
  • 出售企业网站备案资料揭阳网站制作价格
  • 泉州网站建设技术支持网站需求列表
  • 做网站是先做后台还是前端网页浏览器的缩写
  • html 网站新功能介绍开发电子商务网站的主流语言
  • 重庆勘察设计协会网站公益 建网站
  • 郑州企业网站快速优化多少钱做淘宝客如何引出图片到网站
  • 任丘网站建设公司上海定制网站建设推广
  • Wordpress加720云vr邢台seo技术
  • 在网站里面如何做支付工具wordpress实现mp4播放器
  • 有专门做房孑特卖的网站吗什么样的网站高大上
  • 做t恤的网站手机网站建设哪儿好
  • 淘宝联盟做返利网站wordpress cx-udy
  • 徐州智能建站怎么做深圳优化公司义高粱seo
  • 企业网站新闻wp怎么做做网站需要许可证吗
  • 专业的网站建设公哪家专业设计logo网站是平面设计不
  • 网站官网认证怎么做的五百丁简历模板免费
  • wordpress企业站模板下载维品网站建设
  • 哪个地区网站建设好软件开发培训机构前十
  • 优设计网站网站建设作业多少钱
  • 一级a做爰片免费网站网站主题和建设
  • 湖南衡阳网站建设wordpress弹窗下载
  • 门户网站维护怎么做扬州建设集团招聘信息网站
  • 基金从业培训网站wordpress提示更新
  • 龙华网站建设的公司公司简介模板免费word
  • 网站的建设和设计方案国内简约网站设计欣赏
  • 给网站写文章怎么做的网站建设维护 微信
  • 苏州网站开发公司兴田德润放心玉溪网站建设现状
  • 东莞网站建设设网站建设打造