① 你好能發我一份光伏爬山法模型和演算法嗎,[email protected]謝謝了
你是做什麼的,452148911
② 我想學一下爬山演算法,能不能介紹本講爬山演算法的書給我。萬分感謝。不好意思,沒分了。
網路文庫里就有:
http://wenku..com/view/08665e2abd64783e09122bc2.html
③ 遺傳演算法、數值演算法、爬山演算法、模擬退火 各自的優缺點
遺傳演算法:其優點是能很好地處理約束,跳出局部最優,最終得到全局最優解。缺點是收斂速度慢,局部搜索能力弱,運行時間長,容易受到參數的影響。
模擬退火:具有局部搜索能力強、運行時間短的優點。缺點是全局搜索能力差,容易受到參數的影響。
爬山演算法:顯然爬山演算法簡單、效率高,但在處理多約束大規模問題時,往往不能得到較好的解決方案。
數值演算法:這個數值演算法的含義太寬泛了,指的是哪種數值演算法,陣列演算法與爬山演算法一樣,各有優缺點。
(3)爬山演算法擴展閱讀:
注意事項:
遺傳演算法的機制比較復雜,在Matlab中已經用工具箱中的命令進行了打包,通過調用可以非常方便的使用遺傳演算法。
函數GA:[x,Fval,reason]=GA(@fitnessfun,Nvars,options)x為最優解,Fval為最優值,@Fitnessness為目標函數,Nvars為自變數個數,options為其他屬性設置。系統的默認值是最小值,所以函數文檔中應該加上一個減號。
要設置選項,您需要以下函數:options=GaOptimset('PropertyName1','PropertyValue1','PropertyName2','PropertyName3','PropertyValue3'…)通過該函數,可以確定一些遺傳演算法的參數。
④ 例子:我早上6點起床。 7點吃飯。 8點爬山 理解成為一個演算法 用C語言語法將上述演算法寫出來
我的理解:
switch(clock)
{
case 6: /*起床*/ break;
case 7: /*吃飯*/ break;
case 8: /*爬山*/ break;
default: break;
}
⑤ 用C語言編寫三個演算法,BFS或DFS,爬山演算法,遺傳演算法實現八皇後問題
網路演算法名,加上八皇後
比如
BFS 八皇後問題 C語言。
或者
遺傳演算法 八皇後問題 C語言
然後根據搜索結果 就可以得到演算法和代碼了。
⑥ 什麼是爬山演算法
爬山演算法是一種局部擇優的方法,採用啟發式方法,是對深度優先搜索的一種改進,它利用反饋信息幫助生成解的決策。 屬於人工智慧演算法的一種。
很高興為你解答滿意望採納
⑦ 設計一個用於解決八數碼問題的爬山法搜索演算法。請給出演算法的偽代碼。
是廣搜嗎?我以前做過的
#include<stdio.h>
#include<string.h>
int exist[363000];
int fac[10]={1};
int dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
int rank(const int n[])
{
int sum,i,ans=0,j,used[10]={0};
for(i=0;i<9;i++)
{
sum=0;
for(j=1;j<n[i];j++)
if(used[j])
sum++;
ans+=(n[i]-1-sum)*fac[9-i-1];
used[n[i]]=1;
}
return ans;
}
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
void BFS()
{
int front=-1,rear=0,i,size,step=0;
int queue[363000]={123456789},t,j;
int temp[3][3],k,matrix[3][3],x,y,tx,ty;
int n[10],ans,sum,u;
memset(exist,-1,sizeof(exist));
exist[0]=0;
while(front<rear)
{
size=rear-front;
step++;
while(size--)
{
front++;
t=queue[front];
i=0;
j=0;
while(t)
{
matrix[i][j]=t%10;
t/=10;
j++;
if(j%3==0&&j>0)
{
i++;
j=0;
}
}
swap(&matrix[0][0],&matrix[2][2]);
swap(&matrix[0][1],&matrix[2][1]);
swap(&matrix[0][2],&matrix[2][0]);
swap(&matrix[1][0],&matrix[1][2]);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(matrix[i][j]==9)
{
x=i;
y=j;
break;
}
for(i=0;i<4;i++)
{
tx=x+dir[i][0];
ty=y+dir[i][1];
if(!(tx>=0&&tx<3&&ty>=0&&ty<3))
continue;
for(j=0;j<3;j++)
{
for(k=0;k<3;k++)
temp[j][k]=matrix[j][k];
}
k=temp[x][y];
temp[x][y]=temp[tx][ty];
temp[tx][ty]=k;
for(k=u=0;u<3;u++)
{
for(j=0;j<3;j++,k++)
n[k]=temp[u][j];
}
ans=rank(n);
if(exist[ans]>-1)
continue;
exist[ans]=step;
sum=0;
for(u=0;u<9;u++)
sum=sum*10+n[u];
rear++;
queue[rear]=sum;
}
}
}
}
main()
{
int i,n,temp[10],ans,j;
char s[100];
for(i=1;i<10;i++)
fac[i]=fac[i-1]*i;
BFS();
while(gets(s))
{
for(j=0,i=0;s[i]!='\0';i++)
{
if(s[i]!=' ')
{
if(s[i]!='x')
temp[j++]=s[i]-'0';
else
temp[j++]=9;
}
}
ans=rank(temp);
if(exist[ans]==-1)
printf("unsolveable\n");
else
printf("%d\n",exist[ans]);
}
}
⑧ 跪求一本介紹爬山演算法的書
建議你看《演算法導論》,很經典
看《人工智慧復雜問題求解的結構和策略(原書第6版)》作 者:(美)盧格 著,郭茂祖 等譯,出 版 社:機械工業出版社,出版時間:2010-1-1
⑨ 什麼是爬山演算法
爬山法:採用一定的方法逐步降低初始狀態和目標狀態的距離,以達到問題解決的一種方法。