(3)代码实现(方法2)
import numpy as np
from scipy import optimize as opt
from scipy.optimize import minimize
目标函数
def objective(x): #=原文中的mincost
p11=x[0]
p12=x[1]
p13=x[2]
p21=x[3]
p22=x[4]
p23=x[5]
p31=x[6]
p32=x[7]
p33=x[8]
return (40p11+50p12+57.5p13+43.75p21+46.25p22+48.75p23+55.8p31+57p32+58.2*p33)
约束条件
def constraint1(x): #等式约束
pI11 = x[0]
pI12 = x[1]
pI13 = x[2]
pI21 = x[3]
pI22 = x[4]
pI23 = x[5]
pI31 = x[6]
pI32 = x[7]
pI33 = x[8]
PG1 = 100 + pI11 + pI12 + pI13
PG2 = 100 + pI21 + pI22 + pI23
PG3 = 50 + pI31 + pI32 + pI33
return pI11+pI12+pI13+pI21+pI22+pI23+pI31+pI32+pI33-550
#return PG1+PG2+PG3-800
#上下限
pI11=(0,200)
pI12 = (0,200)
pI13 = (0,100)
pI21 = (0,100)
pI22 = (0,100)
pI23 = (0,100)
pI31 =(0,50)
pI32 = (0,50)
pI33 = (0,50)
bnds=(pI11,pI12,pI13,pI21,pI22,pI23,pI31,pI32,pI33)
约束条件
def constraint2(x): #不等式约束 线路PL12 <=300
pI11 = x[0]
pI12 = x[1]
pI13 = x[2]
pI21 = x[3]
pI22 = x[4]
pI23 = x[5]
pI31 = x[6]
pI32 = x[7]
pI33 = x[8]
PD3=800
PG1 = 100 + pI11 + pI12 + pI13
PG2 = 100 + pI21 + pI22 + pI23
PG3 = 50 + pI31 + pI32 + pI33
PL12 = -(2 / 3) * PG2 - (1 / 3) * PG3 + (1 / 3) * PD3
return 300-np.abs(PL12)
约束条件
def constraint3(x): #不等式约束 不等式约束 线路PL13 <=300
pI11 = x[0]
pI12 = x[1]
pI13 = x[2]
pI21 = x[3]
pI22 = x[4]
pI23 = x[5]
pI31 = x[6]
pI32 = x[7]
pI33 = x[8]
PD3=800
PG1 = 100 + pI11 + pI12 + pI13
PG2 = 100 + pI21 + pI22 + pI23
PG3 = 50 + pI31 + pI32 + pI33
PL13 = (-(1 / 3) * PG2 - (2 / 3) * PG3 + (2 / 3) * PD3) * 0.05
return 300-np.abs(PL13)
约束条件
def constraint4(x): #不等式约束 不等式约束 线路PL23 <=330
pI11 = x[0]
pI12 = x[1]
pI13 = x[2]
pI21 = x[3]
pI22 = x[4]
pI23 = x[5]
pI31 = x[6]
pI32 = x[7]
pI33 = x[8]
PD3=800
PG1 = 100 + pI11 + pI12 + pI13
PG2 = 100 + pI21 + pI22 + pI23
PG3 = 50 + pI31 + pI32 + pI33
PL23 = (1 / 3) * PG2 - (1 / 3) * PG3 + (1 / 3) * PD3
return 330-np.abs(PL23)
con1 = {‘type’: ‘eq’, ‘fun’: constraint1}
con2 = {‘type’: ‘ineq’, ‘fun’: constraint2}
con3 = {‘type’: ‘ineq’, ‘fun’: constraint3}
con4 = {‘type’: ‘ineq’, ‘fun’: constraint4}
cons = ([con1,con2,con3,con4]) # 4个约束条件
def main():
初始值
x0 = np.random.uniform(10, 400, 9)
计算
solution = minimize(objective, x0, method=‘SLSQP’,
bounds=bnds, constraints=cons)
x = solution.x
pI11 = x[0]
pI12 = x[1]
pI13 = x[2]
pI21 = x[3]
pI22 = x[4]
pI23 = x[5]
pI31 = x[6]
pI32 = x[7]
pI33 = x[8]
PG1 = 100 + pI11 + pI12 + pI13
PG2 = 100 + pI21 + pI22 + pI23
PG3 = 50 + pI31 + pI32 + pI33
PD=800
#线路潮流
PL12=0*PG1-(2/3)PG2-(1/3)(PG3-PD)
PL13=0PG1-0.5(1/3)PG2-(1/3)(PG3-PD)
PL23=0*PG1+(1/3)PG2-(1/3)(PG3-PD)
#原理注解
#PL13 = 0.5 * ((0.01 + 0.01) * (PG3 - 800) + 0.01 * PG2) / (0.01 + 0.01 + 0.01)
#PL12 = ((0.01 + 0.01) * PG2 + 0.01 * (PG3 - 800)) / (0.01 + 0.01 + 0.01)
#PL23 = ((0.01 + 0.01) * (PG3 - 800) + 0.01 * PG1) / (0.01 + 0.01 + 0.01)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
工具都帮大家整理好了,安装就可直接上手!
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、Python视频合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试宝典
简历模板
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
0c049bb72fbd.png#pic_center)
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算