约束优化内罚函数c语言程序,外点、内点和混合罚函数法(最优化3)

这篇实验报告探讨了在约束条件下优化问题的解决方法,包括外点、内点和混合罚函数法。报告详细介绍了每种方法的基本原理、算法流程,并通过Python实现进行了实例验证。实验结果显示,尽管外点罚函数法在数值计算时遇到困难,但通过符号解析法得到了满意的结果;内点罚函数法和混合罚函数法则利用求解非线性方程组的方法迅速找到了最优解。
摘要由CSDN通过智能技术生成

最优化实验报告

——外点、内点和混合罚函数法

实验目的

之前我们已经实验过无约束最优化问题,这次我们将实验一下,在有约束条件下,优化算法应该怎么做。

由于处理约束条件的办法不同,约束优化法可以分为直接间接两类。间接法的思想是将问题转化成无约束的,然后无约束方法求解,虽然算法复杂,但可以求解高维问题,效率高、鲁棒性好。直接法构造迭代过程,使迭代点在可行域D中,一步一步降低目标函数值。算法简单,但是计算量大,一般只用于求解不等式约束问题。

罚函数法又称乘子法,是指将有约束最优化问题转化为求解无约束最优化问题:其中M为足够大的正数, 起"惩罚"作用, 称之为罚因子,F(x, M )称为罚函数。内部罚函数法也称为障碍罚函数法。

这种方法是在可行域内部进行搜索,约束边界起到类似围墙的作用,如果当前解远离约束边界时,则罚函数值是非常小的,否则罚函数值接近无穷大的方法。在进化计算中,研究者选择外部罚函数法的原因主要是该方法不需要提供初始可行解。其中B(x)是优化过程中新的目标函数,Gi和Hj分别是约束条件gi(x)和hj(x)的函数,ri和cj是常数,称为罚因子。

本次实验将验证间接法中的内点、外点、混合罚函数法。

实验环境

本次实验,使用的程序语言为Python3.5.2,使用符号系统解析法推导计算,依赖的工具包为:

import math

import sympy

import numpy as np

from matplotlib import pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

要想在IDE(集成开发环境)中实现画图的交互式效果,还得写

plt.ion()

实验内容及步骤

定义函数和符号

求解最优X

画出构造函数变化图

1. 外点罚函数法基本原理与步骤

问题:

minf(X)=−x1+x2

s.t.{g1(X)=lnx2≥0h1(X)=x1+x2−1≥0

构造一个增广函数:

F(X,Mk)=f(X)+Mkα(X)

其中惩罚函数:

α(X)=∑j=1m[hj(X)]2+∑i=1l[gi(X)]2u(gi(X))

α(X){0,当X∈D时,0,当X∉D时.

u(gi(X))={0,当gi(X)≥0时,1,当gi(X)<0时.i=1,2,⋯,l.

Mk

是一个逐渐增大的参数,称为惩罚因子。

8a93ebcc6732

当X∈D

F(X,Mk)=f(X)

算法流程图:

8a93ebcc6732

内点罚函数法基本原理与步骤

问题:

x(1+1)3+x213min

s.t.{g1(X)=x1−1≥0,g2(X)=x2≥0.

构造一个增广函数:

F(X,rk)=f(X)+rk∑i=1l1gi(X)

其中rk

称为障碍因子。

8a93ebcc6732

算法流程图:

8a93ebcc6732

混合罚函数法基本原理与步骤

问题:

minf(X)=−x1+x2

s.t.{g1(X)=lnx2≥0h1(X)=x1+x2−1≥0

构造一个增广函数:

F(X,rk)=f(X)+rk∑i=1l1gi(X)+1rk∑j=1m[hj(X)]2

算法流程图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值