导航:首页 > 软件知识 > 算法的程序在哪里做

算法的程序在哪里做

发布时间:2024-06-01 02:12:43

❶ 你好,我想问下怎么根据我设计的目标函数和约束条件在matlab中编写遗传算法的程序

给你一个例子,说明如何用ge()函数求解带有约束条件的目标函数问题。

1、首先建立带有约束条件的目标函数

function f =ga_fun0(x)

if (1.5+x(1)*x(2)-x(1)-x(2)>0 | -x(1)*x(2)>10)

f=100;

else

f=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);

end

end

2、在命令窗口中执行下列命令

>>[x,fval] = ga(@ga_fun0,2)

运行结果

如还有问题,请将问题贴出来,帮你解决。

❷ 鎺掑簭绠楁硶镄勮捐★纸c璇瑷锛夋牴鎹绋嫔簭鐢绘祦绋嫔浘鍙婂规疮鍙ョ▼搴忓姞娉ㄩ喷

#include "stdio.h"//镙囧嗳io澶存枃浠
#include "stdlib.h"//搴撴枃浠
#include "time.h"//镞堕棿绯诲ご鏂囦欢
#define N0 100000 //瀹氢箟甯搁噺
typedef int keytype; //绫诲瀷锻藉悕
typedef struct node //瀹氢箟缁撴瀯浣
{ keytype key; //鍙鏄绫诲瀷锻藉悕鎴恔eytype锛屽叾瀹炲氨鏄痠nt镄
}Etp;//缁撴瀯浣撶被鍨嫔彨锅欵tp
Etp R[N0+1]; // R[1]..R[n] //瀹氢箟鏁扮粍
int n=50, count;//鍏ㄥ眬鍙橀噺
void readData( Etp R[], int n)//璇绘暟鎹镄勫嚱鏁
{ int i;
count=0;
srand( time( NULL ));//鍒濆嫔寲镞堕棿绉嶅瓙
for( i=1; i<=n; i++) //瀵规暟缁勫埯濮嫔寲
R[i].key=1000+
(int)((9999.0-1000)*rand()/RAND_MAX); // 0..RAND_MAX
}
void printData( Etp R[], int n )//镓揿嵃鏄剧ず鏁版嵁镄勫嚱鏁
{ int i;
for( i=1; i<=n; i++)
printf("%8d%s", //镙煎纺鍖栨樉绀烘暟缁勭殑鏁版嵁
R[i].key, i%5==0?"\n":"");
printf("\ncount=%d\n", count);
}
void bubberSort( Etp R[], int n )//鍐掓场鎺掑簭镄勫嚱鏁
{ int i,j;//锛堣繖涓鍑芥暟鍧楀氨鏄鍐掓场鎺掑簭镄勭畻娉旷▼搴忥级
bool swap;
for( i=1; i<=n-1; i++)
{ swap=false;
for( j=1; j<=n-i; j++)
if( count++,R[j].key>R[j+1].key )
{ R[0]=R[j];
R[j]=R[j+1];
R[j+1]=R[0];
swap=true;

}
if( !swap ) break;
}

}
void bubberSort1( Etp R[], int n )//杩欎釜涔熸槸鍙︿竴涓鍐掓场鎺掑簭镄勫嚱鏁
{ int j;//璺熶笂闱涓嶅悓镄勬槸杩欎釜绠楁硶鐢ㄧ殑鏄阃掑綊镄勬柟寮忥纴涓婇溃镄勬槸闱为掑綊镄
for( j=1; j<=n-1; j++)
if( count++,R[j].key>R[j+1].key )
{ R[0]=R[j];
R[j]=R[j+1];//________;//灏辨槸涓や釜鍙橀噺浜ゆ崲鍊
R[j+1]=R[0];
}
if( n>1 ) bubberSort1( R, n-1); //___________;//阃掑綊璋幂敤
}
void selectSort( Etp R[], int n )//杩欎釜鏄阃夋嫨鎺掑簭
{ int i,j,k;//锛堣繖涓鍑芥暟鍧楀氨鏄阃夋嫨鎺掑簭镄勭畻娉旷▼搴忥级
for( i=1; i<=n-1; i++)
{
k=i;
for( j=i+1; j<=n; j++)
if( count++,R[j].key<R[k].key ) k=j;
if( k!=i )
{ R[0]=R[i];
R[i]=R[k];
R[k]=R[0];
}
}
}
void insertSort( Etp R[], int n )//杩欎釜鏄鎻掑叆鎺掑簭
{ int i,j;
for( i=2; i<=n; i++)
{
R[0]=R[i];
j=i-1;
while( count++,R[j].key>R[0].key ) R[j+1]=R[j--];
R[j+1]=R[0];
count++;
}
}
void sift( Etp R[], int i, int m)//鍫嗘帓搴忎腑镄勬ラ
{ int k=2*i;
R[0]=R[i];
while( k<=m )
{ if( count++, k+1<=m && R[k+1].key>R[k].key) k++;
if( count++,R[0].key<R[k].key ) R[i]=R[k];
else break;
i=k;
k=2*i;
}
R[i]=R[0];
}
void heapSort( Etp R[], int n )//杩欎釜鏄鍫嗘帓搴
{ int j;
for( j=n/2; j>=1; j--) sift( R, j, n);
for( j=n; j>=2; j--)
{ R[0]=R[1];
R[1]=R[j];
R[j]=R[0];
sift( R, 1, j-1 );
}
}
int main()//涓诲嚱鏁扮殑杩涘叆鍙
{
readData( R, n );//璇诲彇鏁版嵁
bubberSort1( R, n );//璋幂敤阃掑綊鍐掓场鎺掑簭
printData( R, n);//鏄剧ず鏁版嵁

readData( R, n );//璇诲彇鏁版嵁
selectSort( R, n );//璋幂敤阃夋嫨鎺掑簭
printData( R, n);//鏄剧ず鏁版嵁

readData( R, n );//璇诲彇鏁版嵁
insertSort( R, n );//璋幂敤鎻掑叆鎺掑簭
printData( R, n);//鏄剧ず鏁版嵁

readData( R, n );//璇诲彇鏁版嵁
heapSort( R, n );//璋幂敤鍫嗘帓搴
printData( R, n);//鏄剧ず鏁版嵁
return 0;
}
//璇堵穨娉ㄩ喷瀹屾垜镐荤畻鐪嫔嚭𨱒ヤ简锛岄毦阆扑綘瑕佹垜瑙i喷钖勪釜鎺掑簭镄勮繃绋嬶纻
//闾d綘杩树笉濡傜洿鎺鎴栬呯湅涔︼纴浣犺佹槸涓岖悊瑙e师鐞嗘槸涓嶅彲鑳界湅镍傝繃绋嬬殑銆
//娉ㄩ喷涔熷彧鏄璇鍙ョ殑瑙i喷锛屼絾鏄杩囩▼镄勫惈涔夋槸镞犳硶鎻忚堪镄

阅读全文

与算法的程序在哪里做相关的资料

热点内容
西游之路飞羽需要多少数据 浏览:189
重庆衣服批发市场哪个大 浏览:295
哪些nba球员被交易不知情 浏览:963
产品组合包括哪些东西 浏览:785
村代理点代收是什么意思 浏览:9
写源程序怎么写 浏览:832
深圳车公庙到罗湖人才市场怎么走 浏览:354
smartbox是什么产品 浏览:21
什么是保存数据的视频 浏览:446
交易费率是指什么 浏览:407
市场上可以买到哪些海鱼 浏览:100
大数据查多会影响什么吗 浏览:695
计算机编辑程序什么意思 浏览:692
excel中选中所有的数据怎么复制 浏览:385
贵金属理财产品有哪些风险 浏览:630
检测数据nd什么意思 浏览:102
程序员如何做人脉 浏览:231
技术负责人需要学习哪些知识 浏览:630
人才市场的个人档案怎么拿出来 浏览:869
抹茶是哪个交易网站 浏览:859