資源簡(jiǎn)介
matlab程序,基于遺傳算法的OFDM自適應(yīng)資源分配算法,不是本人寫的哈
代碼片段和文件信息
%基于遺傳算法的OFDM自適應(yīng)資源分配算法
%RA準(zhǔn)則下的OFDM自適應(yīng)資源分配問題,涉及載波和功率的分配,是一個(gè)既含有離散決策變量,又含有連續(xù)決策變量的非線性優(yōu)%化模型,且含有較為復(fù)雜的非線性約束,因此適合采用智能優(yōu)化算法進(jìn)行求解。
function?[BESTX1BESTX2BESTYALLX1ALLX2ALLY]=GA2(KNPmHBBBPN0)
%%?本源碼實(shí)現(xiàn)遺傳算法,用于RA準(zhǔn)則下的多用戶OFDM自適應(yīng)資源分配
%%?輸入?yún)?shù)列表
%??K?????????迭代次數(shù)
%??N?????????種群規(guī)模,要求是偶數(shù)
%??Pm????????變異概率
%??H?????????信道增益矩陣,K*N的矩陣,表示用戶k在子信道n上的信道增益,無單位,取值范圍0~1
%??BBB???????總帶寬(Hz)
%??P?????????總功率(W)
%??N0????????加性高斯白噪聲功率譜密度(W/Hz)
%?GreenSim團(tuán)隊(duì)原創(chuàng)作品,轉(zhuǎn)載請(qǐng)注明
%?Email:greensim@163.com
%?GreenSim團(tuán)隊(duì)主頁:http://blog.sina.com.cn/greensim
%?[color=red]歡迎訪問GreenSim——算法仿真團(tuán)隊(duì)→http://blog.sina.com.cn/greensim
%%?輸出參數(shù)列表
%??BESTX1????K×1細(xì)胞結(jié)構(gòu),每一個(gè)元素是M×1向量,記錄每一代的最優(yōu)個(gè)體的第一分量
%??BESTX2????K×1細(xì)胞結(jié)構(gòu),每一個(gè)元素是M×1向量,記錄每一代的最優(yōu)個(gè)體的第二分量
%??BESTY?????K×1矩陣,記錄每一代的最優(yōu)個(gè)體的評(píng)價(jià)函數(shù)值
%??ALLX1?????K×1細(xì)胞結(jié)構(gòu),每一個(gè)元素是M×N矩陣,記錄全部個(gè)體的第一分量
%??ALLX2?????K×1細(xì)胞結(jié)構(gòu),每一個(gè)元素是M×N矩陣,記錄全部個(gè)體的第二分量
%??ALLY??????K×N矩陣,記錄全部個(gè)體的評(píng)價(jià)函數(shù)值
%%?第一步
[KKNN]=size(H);
M=NN;%決策變量個(gè)數(shù),子載波個(gè)數(shù)
farm1=zeros(MN);%每一列是一個(gè)樣本
for?i=1:N
????farm1(:i)=unidrnd(KKM1);
end
farm2=zeros(MN);%每一列是一個(gè)樣本
for?i=1:N
????farm2(:i)=RandSeq(M);
end
%輸出變量初始化
ALLX1=cell(K1);
ALLX2=cell(K1);
ALLY=zeros(KN);
BESTX1=cell(K1);
BESTX2=cell(K1);
BESTY=zeros(K1);
k=1;%迭代計(jì)數(shù)器初始化
%%?第二步:迭代過程
while?k<=K
%%?以下是交叉過程
????newfarm1=zeros(M2*N);
????Ser=randperm(N);%兩兩隨機(jī)配對(duì)的配對(duì)表
????A=farm1(:Ser(1));
????B=farm1(:Ser(2));
????P0=unidrnd(M-1);
????a=[A(1:P0:);B((P0+1):end:)];%產(chǎn)生子代a
????b=[B(1:P0:);A((P0+1):end:)];%產(chǎn)生子代b
????newfarm1(:2*N-1)=a;%加入子代種群
????newfarm1(:2*N)=b;???
????for?i=1:(N-1)
????????A=farm1(:Ser(i));
????????B=farm1(:Ser(i+1));
????????P0=unidrnd(M-1);
????????a=[A(1:P0:);B((P0+1):end:)];
????????b=[B(1:P0:);A((P0+1):end:)];
????????newfarm1(:2*i-1)=a;
????????newfarm1(:2*i)=b;
????end???
????FARM1=[farm1newfarm1];
???
評(píng)論
共有 條評(píng)論