第1 章 介紹和安裝 1
1.1 什么是Julia 及為什么要使用Julia 2
1.2 安裝Julia 4
1.2.1 在Windows 系統上安裝Julia 4
1.2.2 在macOS 系統上安裝Julia 9
1.2.3 運行Julia 腳本 13
1.2.4 安裝Gurobi 13
1.2.5 安裝CPLEX 15
1.3 安裝IJulia 17
1.4 包管理 20
1.5 幫助 22
第2 章 簡單線性規(guī)劃 24
2.1 線性規(guī)劃問題 25
2.2 寫線性規(guī)劃問題的其他方式 29
2.3 寫線性規(guī)劃問題的另一種方式 31
2.4 混合整數線性規(guī)劃問題 32
第3 章 Julia 語言基礎 35
3.1 向量、矩陣和數組 35
3.2 元組 40
3.3 索引和范圍 42
3.4 打印信息 45
3.5 集合、字典和循環(huán) 47
3.6 函數 50
3.7 變量的作用域 52
3.8 隨機數生成 55
3.9 文件讀/寫 59
3.10 繪圖 63
3.10.1 PyPlot 包 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.1 initialize(c,A,b) 97
5.5.2 is_optimal(tableau) 99
5.5.3 pivoting!(tableau) 100
5.5.4 創(chuàng)建模型 104
5.6 后面的步驟 110
第6 章 網絡優(yōu)化問題 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 章 非線性優(yōu)化問題 151
8.1 無約束優(yōu)化 151
8.1.1 線性搜索 151
8.1.2 無約束優(yōu)化 153
8.1.3 盒約束優(yōu)化 154
8.2 非線性優(yōu)化 155
8.3 其他求解器 156
8.4 混合整數非線性規(guī)劃 161
第9 章 蒙特卡洛方法 163
9.1 概率分布 163
9.2 隨機線性規(guī)劃 165
9.3 估算簡單路徑的數目 172
第10 章 拉格朗日松弛 181
10.1 拉格朗日松弛介紹 181
10.1.1 下界與上界 182
10.1.2 次梯度優(yōu)化 183
10.1.3 總結 184
10.2 p-中位問題 184
10.2.1 讀取數據文件 186
10.2.2 最優(yōu)化求解p-中位問題 188
10.2.3 拉格朗日松弛應用 189
10.2.4 求解下界 189
10.2.5 求解上界 193
10.2.6 更新拉格朗日乘子 195
第11 章 互補問題 208
11.1 線性互補問題(LCP) 208
11.2 非線性互補問題(NCP) 216
11.3 混合互補問題(MCP) 220
第12 章 最優(yōu)化求解器中的參數 221
12.1 設置CPU 時間限制 221
12.2 設置最優(yōu)化間隙公差 222
12.3 熱啟動 223
12.4 Big-M 與整性公差 224
12.5 關掉求解器的輸出 225
12.6 其他求解器參數 226