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

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

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

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

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

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

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

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

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

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

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

MicroCity主程序和ScriptEditor代码编辑器:ZeroBrane Studio - Lua IDE/editor/debugger for Windows, Mac OSX, and Linux

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++无障碍交互,为后期的产品化,奠定了基础。核心算法由算法工程师使用Lua快速开发灵活调用,软件架构由C++构建,是很好的技术路线。此外,与C相关的接口也使得我们可以在MicroCity中控制PLC硬件,完成一些炫酷的工作,例如陪儿子玩乐高机器人,半实物仿真,甚至实现数字孪生。

当然,缺点也很明显:

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

2. 包少,相比火爆的python,Lua可做的事情还是很少。在机器学习领域无法紧跟前沿,数据处理相对较复杂。

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

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

毕竟当时mixwind同学就是选了它,好比历史选择了他。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值