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

演算法的程序在哪裡做

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

閱讀全文

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

熱點內容
全民k歌怎麼同步數據 瀏覽:629
醫院生物技術可以做什麼 瀏覽:350
電子數據怎麼看真假 瀏覽:583
冰飲店代理什麼好 瀏覽:549
如何核對大量數據excle 瀏覽:749
貸記卡消費為什麼叫借記交易 瀏覽:587
天蠍男就不回信息是什麼意思 瀏覽:679
什麼技術可以掛職 瀏覽:362
烏海市市場在哪裡 瀏覽:491
未在本席位指定交易意味什麼 瀏覽:323
西遊之路飛羽需要多少數據 瀏覽:191
重慶衣服批發市場哪個大 瀏覽:297
哪些nba球員被交易不知情 瀏覽:964
產品組合包括哪些東西 瀏覽:787
村代理點代收是什麼意思 瀏覽:11
寫源程序怎麼寫 瀏覽:834
深圳車公廟到羅湖人才市場怎麼走 瀏覽:356
smartbox是什麼產品 瀏覽:23
什麼是保存數據的視頻 瀏覽:447
交易費率是指什麼 瀏覽:409