看论文听讲座,会见到专家们都在用java和c++;看企业招聘公告又说精通java或python,其一即可;网上代码也以java,和matlab居多;小白也会问专家:编代码推荐哪个软件呢?

我其实也会有这个疑问啦:到底哪种好一点呢?本文仅限优化领域,更局限地说是整数规划和混合整数规划领域。

我自己接触过matlab和python,java和c++没用过。不过大概了解一点他们的区别,简单说说自己看法。

主流的,或者说顶尖的,肯定是Java和C++,因为求解速度快。同样一种算法,比python和matlab快10-20倍,甚至听过快100倍的。我们之所以编程求解就是求解得又快又好。那么求解质量差不多的情况下,肯定选最快的。时间对比如下:

语言 C++ Java python
满意解 11060 11370 11102
时间(秒) 1.0 2.0 39.4
时间(比例) 1 2 39
nn 对于Java和C++而言,其实C++速度更快。但是和求解器接洽的不好,包也不是很成熟。而Java调用cplex起来很方便,可以弥补时间稍微慢一点的缺陷,也是不错的,甚至略胜一筹。

python处理数据方便;而且有很多第三方库可以调用;最重要的是:和gurobi接洽得很好。gurobi也在不断完善中,求解效果甚至比cplex还要好。再加上,python代码比较简洁直观,数据处理高效,所以选用python也不错。

网上还有一部分代码是matlab的,matlab是数学四大软件之一,功能也很强大,尤其是作图,分析求解。但是matlab有个缺陷,比较致命,和求解器的接洽很一般,比如gurobi,好像需要调用第三方库,导致很多功能用不了。

我以前是用matlab,现在用python,因为简单好上手。当然java和c++,喜欢编程,高效求解的还是建议学一下。因为我们求解的目的是越快越好。换句话说,花出好多时间来设计优化算法效率,还不如换种语言,效率马上提升10倍,立竿见影,成效显著。

原文地址:https://blog.csdn.net/sinat_41348401/article/details/121386768?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168474996616800215094151%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=168474996616800215094151&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-2-121386768-null-null.142^v87^control_2,239^v2^insert_chatgpt&utm_term=java%E4%BC%98%E5%8C%96