稳健设计优化平台

artap的Python项目详细描述


Ārtap

Python是一个健壮的优化框架。它包含一个集成的多物理有限元求解器:Agros套件,此外,它还为商用有限元求解器(COMSOL)和元启发式、基于贝叶斯或神经网络的优化算法代理建模技术和神经网络提供了简单的接口。在

安装

Artap及其依赖项可作为Windows和Linux*发行版的wheel包提供: 我们建议在virtual environment下安装Artap。在

pip install --upgrade pip # make sure that pip is reasonably new
pip install artap

*Windows版本仅部分,当前版本完全支持linux软件包。在

Linux

您可以通过以下命令安装包含agrossuite包的完整包:

^{pr2}$

基本用途

这个例子的目的是展示我们如何使用Artap来解决一个简单的,双目标优化问题。在

问题的定义如下[GDE3]:

Minimize f1 = x1
Minimize f2 = (1+x2) / x1

subject to
        x1 e [0.1, 1]
        x2 e [0, 5]

下面问题的帕累托前沿是已知的,它是一条简单的双曲线。这个问题对于进化算法来说非常简单,它可以在20-30代内找到它的解。 本文采用NSGA-II算法求解。在

NSGA-II在Ārtap中的问题定义和解决方案:

class BiObjectiveTestProblem(Problem):

    def set(self):

        self.name = 'Biobjective Test Problem'

        self.parameters = [{'name':'x_1', 'bounds': [0.1, 1.]},
                           {'name':'x_2', 'bounds': [0.0, 5.0]}]

        self.costs = [{'name': 'f_1', 'criteria': 'minimize'},
                      {'name': 'f_2', 'criteria': 'minimize'}]

    def evaluate(self, individual):
        f1 = individual.vector[0]
        f2 = (1+individual.vector[1])/individual.vector[0]
    return [f1, f2]

# Perform the optimization iterating over 100 times on 100 individuals.
problem = BiObjectiveTestProblem()
algorithm = NSGAII(problem)
algorithm.options['max_population_number'] = 100
algorithm.options['max_population_size'] = 100
algorithm.run()

参考文献

  • [GDE3]Saku Kukkonen,Jouni Lampinen,广义微分进化的第三个进化步骤

引用

如果您在研究中使用Ārtap,开发人员将非常感谢您引用相关出版物:

[1]卡班、帕维尔、大卫·帕内克、塔玛斯·奥罗什、伊维塔·彼得罗沃娃和伊沃·多利耶尔。“基于有限元的稳健设计优化与Agros和Ārtap〉,《计算机与数学与应用》(2020)https://doi.org/10.1016/j.camwa.2020.02.010。在

[2]pánek,David,Tamás Orosz和Pavel Karban。“rtap:工程应用的稳健设计优化框架”,arXiv预印本arXiv:1912.11550(2019年)。在

应用

[3]卡班,pánek,D.,和Doležel,I.(2018年)。用模型降阶法建立非磁性金属感应钎焊模型。国际电工电子工程计算与数学杂志,37(4),1515-1524,https://doi.org/10.1108/COMPEL-08-2017-0356。在

[4]pánek,D.,Orosz,T.,Kropík,p.,Karban,p.,和Doležel,I.(2019年6月)。基于降阶模型的感应钎焊温度控制。2019年电力质量和供电可靠性会议(PQ)和2019年电气工程和机电一体化研讨会(SEEL)(第1-4页)。IEEE,https://doi.org/10.1109/PQ.2019.8818256。在

[5]pánek,D.,Karban,p.,和Doležel,I.(2019年)。磁感应钎焊数值模型的标定。IEEE磁学学报,55(6),1-4,https://doi.org/10.1109/TMAG.2019.2897571。在

[6]pánek,D.,Orosz,T.,Karban,p.,&Doležel,I.(2020),“解决选定耦合电热问题的简化技术比较”,COMPEL–国际电气和电子工程计算和数学杂志,第39卷第1期,第220-230页。https://doi.org/10.1108/COMPEL-06-2019-0244

[7]Orosz,T.;pánek,D.;Karban,p.。大型电力变压器的基于FEM的初步设计优化。申请。科学。2020年10月1361日,https://doi.org/10.3390/app10041361。在

联系人

如果您有任何问题,请随时联系我们:artap.framework@gmail.com

许可证

Ārtap在MIT license下发布

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java随机填充2d数组   java运行时。getRuntime。带有长参数的exec(cmd)   java Minecraft无法放置自定义背景   java AChartEngine YAxis自定义标签区域边距和图表值为字符串?   泛型类的java类型安全错误   整数的java符号等价物。toBinaryString方法?   Java中数组列表的数组   java WebView应用程序在谷歌登录后显示空白屏幕   java从backback中删除特定片段   如果服务器不支持使用的协议,java JSSE是否实现回退?   java Sonarqube正在进行核心漏洞查找。如何解决   javajavax。jcr。UnsupportedPositionOperationException:testVersionable处的节点不可版本化   java在安卓中每隔X小时运行一次文件/函数,无需打开应用程序   java如何为磁盘持久性配置BigMemory?   java BufferWriter不转换383以上的整数   Java7交集类型:规范具体说明了什么?   Java:CollectionHow创建多列   java如何检测运算符的空白   java问题:在firebase中为导航栏中的第二个表单提交数据第一个表单工作正常。实际isse是连接Mainactivity中的另一个活动