導航:首頁 > 軟體知識 > 演算法的程序在哪裡做

演算法的程序在哪裡做

發布時間: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噴錛屼絾鏄榪囩▼鐨勫惈涔夋槸鏃犳硶鎻忚堪鐨

閱讀全文

與演算法的程序在哪裡做相關的資料

熱點內容
主機入侵檢測系統利用哪些信息 瀏覽:993
怎麼教孩子壘球技術 瀏覽:352
朝陽附近工商代理多少錢 瀏覽:555
所有程序菜單中標黃色是什麼意思 瀏覽:128
單行道逆行多少天信息 瀏覽:591
伽思珂護發素怎麼代理 瀏覽:761
三甲基鋁產品有什麼用 瀏覽:678
小程序風口在什麼地方 瀏覽:562
系統還原數據丟失怎麼辦 瀏覽:671
cnc程序里為什麼加g52 瀏覽:876
雲伺服器微信小程序用哪個套餐 瀏覽:110
銀行代理費是多少 瀏覽:322
編號是什麼數據 瀏覽:982
引流卡怎麼申請代理 瀏覽:393
哪些交易所大陸注冊 瀏覽:886
python爬取股票實時數據後如何下單 瀏覽:266
在區域代理拿桶裝水大概多少錢 瀏覽:608
逆行扣分一般多久能來信息 瀏覽:286
程序狀態反映了什麼 瀏覽:536
硬碟數據恢復是靠什麼 瀏覽:942