章介绍和安装1
1.1什么是Julia及为什么要使用Julia2
1.2安装Julia4
1.2.1在Windows系统上安装Julia4
1.2.2在macOS系统上安装Julia9
1.2.3运行Julia脚本13
1.2.4安装Gurobi13
1.2.5安装CPLEX15
1.3安装IJulia17
1.4包管理20
1.5帮助22
第2章简单线性规划24
2.1线性规划问题25
2.2写线性规划问题的其他方式29
2.3写线性规划问题的另一种方式31
2.4混合整数线性规划问题32
第3章Julia语言基础35
3.1向量、矩阵和数组35
3.2元组40
3.3索引和范围42
3.4打印信息45
3.5集合、字典和循环47
3.6函数50
3.7变量的作用域52
3.8随机数生成55
3.9文件读/写59
3.10绘图63
3.10.1PyPlot包64
3.10.2在PyPlot中避免使用第三方字体68
第4章数值方法选讲70
4.1曲线拟合70
4.2数值微分75
4.3数值积分78
4.4自动微分80
第5章单纯形法84
5.1单纯形法简介84
5.2查询所有基本可行解87
5.3使用JuMP包93
5.4表格式的枢轴旋转93
5.5单纯形法的实现95
5.5.1initialize(c,A,b)97
5.5.2is_optimal(tableau)99
5.5.3pivoting!(tableau)100
5.5.4创建模型104
5.6后面的步骤110
第6章网络优化问题111
6.1最小费用网络流问题111
6.2运输问题121
6.3最短路径问题127
6.4实现Dijkstra算法132
第7章内点法138
7.1仿射尺度算法138
7.2原路径跟踪算法144
7.3评述149
第8章非线性优化问题151
8.1无约束优化151
8.1.1线性搜索151
8.1.2无约束优化153
8.1.3盒约束优化154
8.2非线性优化155
8.3其他求解器156
8.4混合整数非线性规划161
第9章蒙特卡洛方法163
9.1概率分布163
9.2随机线性规划165
9.3估算简单路径的数目172
0章拉格朗日松弛181
10.1拉格朗日松弛介绍181
10.1.1下界与上界182
10.1.2次梯度优化183
10.1.3总结184
10.2p-中位问题184
10.2.1读取数据文件186
10.2.2最优化求解p-中位问题188
10.2.3拉格朗日松弛应用189
10.2.4求解下界189
10.2.5求解上界193
10.2.6更新拉格朗日乘子195
1章互补问题208
11.1线性互补问题(LCP)208
11.2非线性互补问题(NCP)216
11.3混合互补问题(MCP)220
2章最优化求解器中的参数221
12.1设置CPU时间限制221
12.2设置最优化间隙公差222
12.3热启动223
12.4Big-M与整性公差224
12.5关掉求解器的输出225
12.6其他求解器参数226