MicroCity从入门到精通之一【前世今生】

如果你用过MapInfo、flexsim和cplex去做一些项目,那我大概能猜出你的专业领域。

你需要GIS系统去描绘现实世界,使用flexsim去搭建仿真系统,再使用cplex将你构建的模型进行求解,在仿真系统中检验自己的模型和算法。

现在有这样一款软件,他集合的包括GIS、DES(离散事件仿真)、3D、Optimizer、Network、EV3 control等等功能于一体,帮助我们完成一切想做的事情。

它的名字叫做 MicroCity,是由Mixwind同学独自开发的。我作为迈克尔西提教派的忠实粉丝,在自己学习的过程中,也将所学所感,通过博客记录下来。

什么人会需要用这款软件呢?

如果你从事于交通、物流、网络优化、仿真、运筹学等领域,想要通过计算机,建立仿真系统,设计相关算法,检验优化后效果的话,我推荐你使用这个软件。

下载地址是http://microcity.github.io/但是好像登录不了了暂时,所以这里给出最新版本1.8的百度网盘链接

链接:https://pan.baidu.com/s/1cpTXH3iC02MoAVFkvAhpHg 
提取码:i1mp 
欢迎大家使用。

安装包大小只有6.83M,安装后20M出头,真是吊打其他家的软件,哈哈,装在优盘里就能用。

下载后,双击安装,只需要选择安装地址,之后你就获得了两个东西。

MicroCity主程序和ScriptEditor代码编辑器。

MicroCity本身是用C++编写的,但是就想MapInfo采用的mapbasic采用VB类似,MicroCity采用的语言是Lua。这是一个很酷的脚步语言,可以完美嵌入C和C++。我在使用中认为有以下几个有点:

1. 是最快的脚本语言,这点很重要,因为最优化算法的编写,是很在意速度的,虽然lua比C和C++还慢上几倍,但是你去看python,MATLAB,就知道它的优势了。

2. 语法简单,数据结构强大,自由度高。从事交通、物流、优化等方向的同学很少有专业计算机出身,因此编程的水平相对较低,而Lua确是一门及其简单的语言,说实话比python简单很多倍。尤其是Table这个神奇的东西,承担了数组,字典,vector,类,module,闭包等一系列功能,简直厉害得要上天。

3. Lua的协程和离散事件仿真是天生一对,coroutine的create,yield,resume不就是控制某实体,初始化,停止,启动最形象的表达么?此外还有生成器功能,在遍历邻域的时候,也很好用。

4. 与C和C++的交互,lua本身就是用C语言编写的,因此可以与C/C++无障碍交互,为后期的产品化,奠定了基础。核心算法让算法工程师快速开发灵活调用,产品架构由C++构建,是很好的技术路线。

当然,缺点也很明显

1. Lua太小众了,大多数人闻所未闻,这样你就成了异类,你学了也找不到工作。

2. 包少,相比火爆的python,lua可做的事情还是很少。尤其在机器学习领域。

3. 不支持多线程,仅支持协程,这给当下发展火热的并行算法浇了一盆冷水。后期只能可以由C语言实现多线程,在每个线程中创建一个lua state来解决,比较麻烦,我暂时也没试过,但是后期肯定需要攻克。

各有优缺点吧,没有什么东西是完美的,够用就好。

毕竟当时mixwind同学就是选了它。

发布了11 篇原创文章 · 获赞 27 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/sinat_41644416/article/details/94628240