
1.2 安装Julia
强烈推荐研究生和其他研究者把Julia安装到本地计算机上。在下面这份指南里,我们会先安装Julia,然后安装两个优化包——JuMP和GLPK。JuMP代表“Julia for Mathematical Programming”,即数学编程Julia,是一款优化问题的建模语言。GLPK是一款开源线性优化求解器,能解决连续和分离的线性程序。关于具体的安装步骤,Windows用户请参考1.2.1节,macOS用户请参考1.2.2节。
1.2.1 在Windows系统上安装Julia
第1步 从官网下载Julia。(官网地址见参考资料[4],选一个合适的版本——32位或64位,推荐选择64位。)如图1.1所示。

图1.1
第2步 在C:\julia目录下安装Julia。你需要确保安装文件夹的路径与步骤3的地址路径一致,如图1.2所示。

图1.2
第3步 打开命令行窗口并输入命令setx PATH "%PATH%; C:\julia\bin",如图1.3所示。

图1.3
如果你不知道如何打开命令行窗口,只要使用百度搜索“如何打开命令行窗口”就知道了。
第4步 打开一个新的命令行窗口并输入命令echo %PATH%,如图1.4所示。

图1.4
所输出内容的最后必须包括C:\julia\bin。如果没有,那么肯定是出错了。
第5步 运行Julia,如图1.5所示。

图1.5
你已经在Windows系统的电脑上成功地安装了Julia语言。现在是时候安装数学的优化添加包了。
第6步 在Julia窗口输入如下命令。

其输出如图1.6和图1.7所示。

图1.6

图1.7
安装第1个包用时较长,因为需要初始化Julia包文件夹并同步整个包列表。
第7步 打开记事本,或其他文本编辑器(例如Atom4,其下载地址见参考资料[5]),输入下列代码,并在你选定的文件夹下把文件保存为script.jl。

第8步 按住Shift键,同时在文件名上单击鼠标右键,选择“Open command window here”选项,如图1.8和图1.9所示。

图1.8

图1.9
第9步 输入dir查看脚本文件script.jl,如图1.10所示。

图1.10
如果你看到的文件名像script.jl.txt这样,则用下面的命令进行重命名。

第10步 输入julia script.jl运行Julia脚本,如图1.11所示。

图1.11
几秒钟后,Julia脚本的运行结果会被输出到屏幕上,完成任务。
1.2.2 在macOS系统上安装Julia
在macOS系统上安装Julia,需要用到包管理器Homebrew。它提供了一种在macOS系统里非常方便地安装软件的方式。
第1步 从应用文件夹打开Terminal.app。如果你不知道如何打开,可以观看一个视频,视频地址见参考资料[6]。把Terminal.app放在你的桌面工具栏上用起来会很方便。

图1.12
第2步 访问Homebrew官网(见参考资料[7]),跟着说明安装Homebrew。安装Xcode命令行工具时可能会要求你输入密码,如图1.13和图1.14所示。

图1.13

图1.14
第3步 用Homebrew安装Julia,在终端中,输入命令brew cask install julia,如图1.15所示。

图1.15
第4步 在终端中,输入julia,如图1.16所示。

图1.16
第5步 在Julia窗口中,输入如下命令。

其输出如图1.17和图1.18所示。

图1.17

图1.18
安装第1个包用时较长,因为需要初始化Julia包文件夹并同步整个包列表。
第6步 打开TextEdit,或者其他文本编辑器(例如Atom,其下载地址见参考资料[8]),输入下列代码,并在你选定的文件夹里将文本保存为script.jl。

第7步 在保存有script.jl的文件夹中打开终端窗口,为了打开终端,你可以把终端应用图标拖拽到你的扩展里(详见参考资料[9])。
第8步 输入ls –al查看你的脚本文件,如图1.19所示。

图1.19
第9步 输入julia script.jl,运行你的脚本,如图1.20所示。

图1.20
几秒钟后,Julia脚本的运行结果会被输出到屏幕上,完成任务。
1.2.3 运行Julia脚本
现在,准备工作已经做好了,有两种运行Julia脚本的方法。
• 在命令行窗口或终端输入C:> julia your-script.jl。
• 在Julia窗口输入julia> include("your-script.jl")。
1.2.4 安装Gurobi
我们可以使用Gurobi来替代GLPK,这是一款商用优化求解器包,用来解决线性规划(Linear Programming,LP)、混合整数线性规划(Mixed Integer Linear Programming,MILP)、二次规划(Quadratic Programming,QP)、混合整数二次规划(Mixed Integer Quadratic Programming,MIQP)等问题。Gurobi对学生、中小学教师、教授或其他与教育机构相关的人员免费。
下面是安装步骤。
1. 下载Gurobi优化器(下载地址见参考资料[10]),并安装到你的电脑上。你需要注册学术用户或购买许可证。
Windows用户须注意:不管是选择32位还是64位的版本,都需要统一。也就是说,如果你选择64位Gurobi优化器,你需要在后面的步骤中安装64位Julia。安装之后,必须重启电脑。
2. 申请一个免费学术许可证(详见参考资料[11]),并按照说明激活它。
3. 运行Julia并添加Gurobi包。

4. 准备就绪,测试下面的代码。

1.2.5 安装CPLEX
你可以安装并连接CPLEX求解器,将它作为Gurobi的替代者,它对学术用户也是免费的。安装CPLEX要更复杂一点。
在Windows系统里,安装CPLEX的步骤如下。
1. 新建一个账户并登录学术起始界面(界面地址见参考资料[12])。
2. 检索'IBM ILOG CPLEX Optimization Studio',即IBM ILOG CPLEX优化工作室。
3. 下载适合你的系统的版本。
• cplex_studio128.win-x86-32.exe针对的是32位系统。
• cplex_studio128.winx8664.exe针对的是64位系统。
4. 重启电脑。
5. 运行下载的exe文件。你可能需要使用鼠标右键单击exe文件,并选择“以管理员身份运行”选项。
6. 运行Julia并添加CPLEX包。

7. 准备就绪,测试下面的代码。

在macOS系统里,安装CPLEX的步骤如下(该步骤包括如何在macOS系统里处理.bin文件)。
1. 新建一个账户并登录学术起始界面(界面地址见参考资料[13])。
2. 检索'IBM ILOG CPLEX Optimization Studio' ,即IBM ILOG CPLEX优化工作室。
3. 下载适合你的系统的版本:cplex_studio128.osx.bin。
4. 把文件放在home目录下:/Users/你的用户名(从下载地址复制过来即可)。
5. 打开终端进行安装。
6. 在弹出的终端窗口输入命令:/bin/bash ~/cplex_studio128.osx.bin。
按回车键,按照提示进行操作。在Julia中添加CPLEX包,具体步骤如下。
1. 打开~/.bash_profile文件。

2. 在~/.bash_profile文件中添加下面的内容(更换其中的[USER NAME])。

注意上面的代码需要在同一行里。
3. 重新加载配置文件。

4. 运行Julia并添加CPLEX包。

5. 准备就绪,测试下面的代码。
