Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在优化框架内使用外部代码组件

如何在优化框架内使用外部代码组件
EN

Stack Overflow用户
提问于 2018-03-02 06:14:12
回答 1查看 177关注 0票数 1

嗨,我正在尝试使用抛物面外部代码组件来获得与抛物面优化问题(openmaov2.2.0)相同的结果。

因此,在我看来,应该更新自变量x,y,从而更改外部组件的输入文件,以最小化输出f。

我并没有做到这一点,但我基本上将外部组件的输出添加为目标,将自变量添加为设计变量,等等(参见下面的代码)。但更重要的是,我有一个问题要从概念上理解优化器是如何知道这些外部代码中的导数的。我试过“COBYLA”,认为这可能是一种无梯度方法,但是iprint语句中似乎有一个bug,因为我也不能运行这个示例抛物面优化。

我想我对代孕母亲也有类似的问题。例如,我使用Metamodelunstructured组件来查找我的代理项,如果我请求一个已知值,它的性能很好。但是,我不知道如何将这个组件的输出耦合成优化器的目标。我认为我做的是对的,给出了模型的目标。但不确定..。

答案可能是我完全脱离了优化逻辑,如果是这样的话,请参考相关的论文,了解后面的算法。

提前感谢

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from openmdao.api import Problem, Group, IndepVarComp
from openmdao.api import  ScipyOptimizeDriver
from openmdao.components.tests.test_external_code import ParaboloidExternalCode

top = Problem()
top.model = model = Group()

# create and connect inputs
model.add_subsystem('p1', IndepVarComp('x', 3.0))
model.add_subsystem('p2', IndepVarComp('y', -4.0))
model.add_subsystem('p', ParaboloidExternalCode())

model.connect('p1.x', 'p.x')
model.connect('p2.y', 'p.y')

top.driver = ScipyOptimizeDriver()
top.driver.options['optimizer'] = 'SLSQP'

top.model.add_design_var('p1.x', lower=-50, upper=50)
top.model.add_design_var('p2.y', lower=-50, upper=50)
top.model.add_objective('p.f_xy')
top.driver.options['tol'] = 1e-9
top.driver.options['disp'] = True
top.setup()
top.run_driver()
# minimum value
# location of the minimum
print(top['p1.x'])
print(top['p2.y'])
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-02 12:23:17

所以,我认为你要问的主要问题是如何为外部代码提供导数。我认为有两种选择。

  1. 通过外部组件的有限差分。

测试示例没有说明如何做到这一点,这是不幸的,但这样做的方式与为纯python组件声明衍生工具fd的方式相同,即将这一行添加到外部组件的安装方法中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
self.declare_partials(of='*', wrt='*', method='fd')
  1. 提供另一个计算导数的外部方法,并将其包装在"compute_partials“方法中。

我们这样做的CFD代码,提供了一个伴随的解决方案。您还可以在外部源代码上使用自动区分来以这种方式生成可调用的函数。然而,我认为方法1是你在这里要求的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49070919

复制
相关文章
Vue页面内修改外部引进组件CSS(局部修改)
在实际的Vue项目中,我们经常需要引进一些外部组件,elementUI, ant-designed,之类的,而且我们总需要在某些下,对这些个组件的某些样式进行修改(不影响全局样式的情况下修改)
Qwe7
2022/06/09
1.3K0
使用express框架,如何在ejs文件中导入外部的js、css文件
最近在用nodejs写一点东西,当然也用到了express框架和ejs模版了。在使用ejs模版的过程中遇到了这个问题:如何在ejs模版中导入外部的js、css文件。
acoolgiser
2019/04/18
6.4K0
使用express框架,如何在ejs文件中导入外部的js、css文件
Python进阶——修改闭包内使用的外部变量
1. 修改闭包内使用的外部变量 修改闭包内使用的外部变量的错误示例: # 定义一个外部函数 def func_out(num1): # 定义一个内部函数 def func_inner(num2): # 这里本意想要修改外部num1的值,实际上是在内部函数定义了一个局部变量num1 num1 = 10 # 内部函数使用了外部函数的变量(num1) result = num1 + num2 print("结果是:"
落雨
2022/03/07
29.9K0
如何在vue组件中引入外部的css和js文件[通俗易懂]
在使用vue框架开发时,我们都知道一个组件中可以同时写HTML、css、js代码,只需三个标签而已,如下:
全栈程序员站长
2022/11/09
8.8K0
使用express框架开发,如何在ejs文件中导入外部的js、css文件
首先看一下这篇文章: https://blog.csdn.net/MPFLY/article/details/78134980
acoolgiser
2019/04/18
9.9K0
使用express框架开发,如何在ejs文件中导入外部的js、css文件
springboot 框架与其它组件结合如 jpa、mybatis、websocket、security、shiro、cache等
springboot 框架与其它组件结合如 jpa、mybatis、websocket、security、shiro、cache等
凯哥Java
2019/06/28
7480
如何在Swing组件中使用HTML
许多Swing组件在其GUI中显示文本字符串。默认情况下,组件的文本以一种字体和颜色显示,并且全部显示在一行上。 可以分别通过调用组件的setFont和setForeground方法来确定组件文本的字体和颜色。例如,以下代码创建一个标签,然后设置其字体和颜色:
JavaEdge
2021/02/22
2.5K0
如何在Swing组件中使用HTML
Spring 框架学习(四)使用外部属性文件
新建一个属性文件,属性文件后缀为 .properties 的文件,文件放在 src 文件夹下
求和小熊猫
2020/11/25
4190
Elementui tabs组件内添加组件
siderBar和tab-bar在同一个组件内,所以要实现参数传递,需要先emit提交事件,再在父组件传递给另一个子组件,这样链路就完整了,没看懂我的看下面的参考吧,我也是参考它的结合自己的代码实现
老梁
2019/09/10
2.8K0
Elementui tabs组件内添加组件
网站页面优化:内链优化
网站内链优化起到网站导航,网站架构和层次结构的作用,在网站内部页面传递权重。随着时间的推移,使我们的网站权重更加平衡,提升网站整体权重,并使链接建设更加有效。
林雍岷
2019/07/03
1.4K0
Taro如何在子组件中使用store
前面文章我们分别讲了如何创建reducer如何创建store,如何将store导入到入口组件,现在来了解下如何在页面组件中使用store。
挥刀北上
2022/05/11
1K0
Taro如何在子组件中使用store
Maven框架 - 引入外部Jar
其中 groupId 和 artifactId 可以随便填,注意 artifactId 不要重复了,version 版本号jar包是什么版本就是什么版本,否则可以随便填。
郭顺发
2022/05/15
1.3K0
小程序内引入使用vant组件操作教程详解
Vant是一套由有赞技术团队精心打造的轻量可靠的移动组件库,包含了按钮、弹层等基础组件,单选、复选、输入框、选择器、评分等表单组件,提示框、折叠面板、轮播图等交互组件还包括了地址编辑、地址列表、商品卡品、优惠券等电商常用模块,非常好用的一套组件库。
许坏
2020/03/26
3.8K0
小程序内引入使用vant组件操作教程详解
Spark的那些外部框架
要使用Spark库,你首先必须了解的东西是Spark package。它有点像Spark的包管理器。当你给Spark集群提交job时,你可以到存放Spark package的网站下载任何package。所有package都存放在这个站点。
博文视点Broadview
2020/06/11
1.3K0
Spark的那些外部框架
Maven框架 引入外部Jar
其中 groupId 和 artifactId 可以随便填,注意 artifactId 不要重复了,version 版本号jar包是什么版本就是什么版本,否则可以随便填。
郭顺发
2023/07/17
1930
使用Lifecycle-Aware组件优化项目
Android Architecture Components 是一组库,可帮助您设计健壮、可测试和可维护的应用程序。包含以下几个组件模块:
陈宇明
2020/12/16
9240
微信小程序外部如何使用卡槽改变组件内容
其实卡槽就相当于占位 组件panel 组件所在目录位置 /compontents/panel/panel 组件wxml <view> ... <!--插槽1--> <slot name="1"></slot> <!--插槽2--> <slot name="2"></slot> <!--插槽3--> <slot name="3"></slot> ... <view> 主页面定义卡槽内容 <view slot="1">1</view> <view slot="2">2</view> <view slot=
友儿
2022/09/13
5000
点击加载更多

相似问题

在Sencha框架内使用外部javascript文件添加QR代码

111

路由组件在框架外部

11

如何优化此实体框架代码

10

在外部执行代码内执行外部代码(带有域)

11

如何在框架内创建框架?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文