Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Optimization Netlogo局部优化_Optimization_Local_Netlogo_Logical Operators - Fatal编程技术网

Optimization Netlogo局部优化

Optimization Netlogo局部优化,optimization,local,netlogo,logical-operators,Optimization,Local,Netlogo,Logical Operators,我想估计一种新产品的需求量。客户就是代理商。每个产品有3个变量,需要根据购买情况进行优化。为了找到使销售额最大化的最佳变量,我使用了一种局部优化算法,梯度下降法。其工作原理如下: 1.定义了重量、尺寸和价格的初始值。 2.搜索过程将开始: dGradent是目标函数梯度的范数。dx计算变量和新变量之间的差值 while [dgradient > 0.00001 and numiter < 1000 and dxw > 0.00001 and dxs > 0.00001

我想估计一种新产品的需求量。客户就是代理商。每个产品有3个变量,需要根据购买情况进行优化。为了找到使销售额最大化的最佳变量,我使用了一种局部优化算法,梯度下降法。其工作原理如下:

1.定义了重量、尺寸和价格的初始值。 2.搜索过程将开始: dGradent是目标函数梯度的范数。dx计算变量和新变量之间的差值

 while [dgradient > 0.00001 and numiter < 1000 and dxw > 0.00001 and dxs > 0.00001 and dxp > 0.00001]

set weightnw weight - stepsize * (the gradient)
set sizenw size - stepsize * (the gradient)
setpricenw price - stepsize * (the gradient)
而[dgradient>0.00001和numiter<1000和dxw>0.00001和dxs>0.00001和dxp>0.00001]
设置权重nw权重-步长*(渐变)
设置sizenw大小-步长*(渐变)
setpricenw价格-步长*(渐变)
搜索过程会在邻域中生成新变量,但我必须确保它们在范围内。所以我定义了这个while循环以确保它们在范围内:

 while [not(((weightnw <= 400) and (weightnw >= 100)) and ((sizenw >= 5) and sizenw <= 20)) and ((pricenw >= 20) and (pricenw <=90)))] 
set stepsize stepsize - 0.0001
 set weightnw weight - stepsize * (the gradient)
set sizenw size - stepsize * (the gradient)
setpricenw price - stepsize * (the gradient)

while[not((weightnw=100))和((sizenw>=5)和(sizenw=20)和(pricenwThe
numanal
扩展包括几种优化多变量问题的方法,包括单纯形法和更深奥的方法,如CMES和BOBYQA。它们允许设置边界。NetLogo 6.0还没有准备好(有一个5.3的工作版本),但如果您认为它可能有用,请告诉我,我可以为您提供一个测试版


Charles

梯度是如何计算的?为什么不使用带重新启动的爬山或类似的搜索算法呢?另请参见,您遇到的问题是什么?期望值是否已关闭?我认为您可能找到的是局部最小值/最大值,而不是全局值,但这实际上取决于未显示的其余代码。您是否可以给我讲完numanal的最新版本。我计划结束一些关于优化的讲座,并计划使用NetLogo kalin。stoyanov@uctm.eduSorry要花这么长时间。NetLogo 6.1的扩展在以下位置可用:,我已将其发送到您的电子邮件中。它似乎可以与NetLogo 6.2配合使用。