在目标函数中使用foor循环使用scipy.optimize的问题

问题描述

我正在尝试最小化以下目标函数: the problem is finding qs that minimizes Cg

因此,我在python中创建了一个函数,然后使用Scipy Optimiz.minimize将其最小化

我认为在最后一步“返回”中同时使用两个for循环会遇到问题

def objective_function(qs):
    tasa_falla=10/12
    costo_alm=(0.3/12)*1000
    costo_falla=3200
    lead_time=1
    qinf=10

    def resultados():
        for qs in range(0,10):
            resultados=[]
            for i in range(0,qs+1):
                resultados.append((qs-i)*(math.exp(-tasa_falla)*(((tasa_falla*lead_time)**i)/(math.factorial(i)))))
                i=i+1
                return resultados
  

    def resultados_2():
        for qs in range(0,10):
            resultados_2=[]
            for i in range(qs+1,qinf+1):
                resultados_2.append((i-qs)*(math.exp(-tasa_falla)*(((tasa_falla*lead_time)**i)/(math.factorial(i)))))
                i=i+1
                return resultados_2

    return (costo_alm*sum(resultados())+costo_falla*sum(resultados_2()))

我认为定义目标函数时存在问题,因为它不是显式基于qs的(这是我应该最小化的),因为我获得了以下结果: Result

但是我知道这不是最小值,我使用以下代码执行了相同的操作:

tasa_falla=10/12
costo_alm=(0.3/12)*1000
costo_falla=3200
lead_time=1
qi=0
qinf=10


general=[]
for qs in range(0,10):
    
        resultados=[]
        for i in range(0,qs+1):
                resultados.append((qs-i)*(math.exp(-tasa_falla)*(((tasa_falla*lead_time)**i)/(math.factorial(i)))))
            i=i+1
  


        resultados_2=[]
        for i in range(qs+1,qinf+1):
                resultados_2.append((i-qs)*(math.exp(-tasa_falla)*(((tasa_falla*lead_time)**i)/(math.factorial(i)))))
                i=i+1
    
    
        general.append(costo_alm*sum(resultados))
        general.append(costo_falla*sum(resultados_2))

然后:

largo=list(range(0,len(general)+1))
pares=[]
for i in largo:
    if i % 2 == 0:
        pares.append(i)
print(pares)
pares.pop()
costo_global=[]
for i in pares:
    costo_global.append(general[i]+general[i+1])

最后:

df_costo_global = pd.DataFrame({'qs':list(range(10)),'Costo global':costo_global})

我得到: Table with results

所以我知道最小化Objective函数的qs值为4

感谢您的帮助

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...