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

算法的程序在哪里做

发布时间: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喷锛屼絾鏄杩囩▼镄勫惈涔夋槸镞犳硶鎻忚堪镄

阅读全文

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

热点内容
数据未备份会有什么后果 浏览:360
word状态栏的信息不包括什么 浏览:969
刑事案简易程序要多久 浏览:211
各视频会员怎么代理 浏览:423
北京怎么运作会计代理记账 浏览:794
微信小程序有什么游戏经营类 浏览:725
代理市长什么时候出现 浏览:813
三流产品怎么引流 浏览:340
人口迁移数据为什么不能查询 浏览:101
手游如何交易安全 浏览:85
去南方人才市场需要准备什么 浏览:931
南昌廉租房信息在哪里查 浏览:275
吉林普洱茶叶如何代理 浏览:100
主机入侵检测系统利用哪些信息 浏览:994
怎么教孩子垒球技术 浏览:352
朝阳附近工商代理多少钱 浏览:555
所有程序菜单中标黄色是什么意思 浏览:129
单行道逆行多少天信息 浏览:593
伽思珂护发素怎么代理 浏览:761
三甲基铝产品有什么用 浏览:679