dyjun888666 发表于 2007-3-27 09:47

求约束最优化算法

哪位能给我一个求解约束最优化问题的算法,如梯度投影法,乘子法等的程序,我已经有罚函数法了,需要另外一种算法进行比较,谢谢了。也可发到我的邮箱dyjun888666@163.com

风花雪月 发表于 2007-3-27 10:24

乘子法,网上收集到的一个c程序

#include<stdio.h>
#include<math.h>
#defineL10

void FX(int m,int n,float x,float z,float s,float x0)
{int i,j;
for(i=0;i<m;i++)        {for(j=0;j<n;j++)
                { x0=x+z*s;}}}       
void grad(int m,float input,float x,float g0)
{int i,j;
for(i=0;i<m;i++)
{ for(j=0;j<m;j++)        { if(j!=i)
                  g0=2*input*x+input*x+input;}}}
void qiudao(float input,float s,float x,float a,float b,float *z)
{a=input*s*s+input*s*s+input*s*s;
b=2*input*x*s+2*input*x*s+input*(x*s
       +x*s)+input*s+input*s;
        a=2*a;*z=-1*b/a;}
void gongetidu(float input,float x)
{int i,j,k=0,stop=0;float s={0};float g0={0},g1={0},a=0,b=0,z=0,w=0;
    while(stop==0)
        {        grad(2,input,x,g0);
                if((g0*g0+g0*g0)<0.000001)
                {stop=1;break;}
                for(i=0;i<2;i++)
                {for(j=0;j<1;j++) {s=-1*g0;}}
                qiudao(input,s,x,a,b,&z);
           FX(2,1,x,z,s,x);
       grad(2,input,x,g1);
          w=(g1*g1+g1*g1)/(g0*g0+g0*g0);
         for(i=0;i<2;i++)
               {for(j=0;j<1;j++){s=-1*g1+w*s;}}
                qiudao(input,s,x,a,b,&z);
                FX(2,1,x,z,s,x);
                k++;
        }
}
void main()
{float f={0},x={0};
float r=0.25,a=5,u=0,c=2,e=0.000001,h,h1,h2;
int i,j,k=0,stop=1;
while(stop==1)
{ f=0.5+c/2;f=0.166667+c/2;f=c;f=u-c;
   f=u-c;f=(u*u+u*c)/(2*c);h1=x+x-1;
   gongetidu(f,x);
   if(fabs(x+x-1)<e)stop=0;          
   h2=x+x-1;
   h=h1/h2;
   if(h>r) c=a*c;
   u=u+c*h2;
   k++;}
k--;
printf("k=%d\n",k);
printf("x*=");
{for(i=0;i<2;i++)
    {for(j=0;j<1;j++)
        printf("%f",x);}
printf(" \n");}

}

donglei06 发表于 2007-5-16 21:38

求助!

楼主能不能把求解约束最优化问题的算法罚函数法程序发我邮箱啊,谢谢!
急用!我的邮箱是:donglei06@163.com
能运行出结果的,小弟将不胜感激!!

风花雪月 发表于 2007-5-17 15:13

原帖由 donglei06 于 2007-5-16 21:38 发表 http://www.chinavib.com/forum/images/common/back.gif
楼主能不能把求解约束最优化问题的算法罚函数法程序发我邮箱啊,谢谢!
急用!我的邮箱是:donglei06@163.com
能运行出结果的,小弟将不胜感激!!

搜索本版
页: [1]
查看完整版本: 求约束最优化算法