⑴ MATLAB遺傳演算法工具箱求解非線性多目標優化問題
將下屬兩個目標函數分別保存在兩個m文件中
function f1=func1(x) %第一目標函數
f1=x(:,1).*x(:,1)./4+x(:,2).*x(:,2)./4;
function f2=func2(x) %第二目標函數
f2=x(:,1).*(1-x(:,2))+10;
function GA()
clear;clc;close all
NIND=100; %個體數目
MAXGEN=50; %最大遺傳代數
NVAR=2; %變數個數
PRECI=20; %變數的二進制位數
GGAP=0.9; %代溝
trace1=[];trace2=[];trace3=[]; %性能跟蹤
%建立區域描述器
% rep([PRECI],[1,NVAR])
FieldD=[rep([PRECI],[1,NVAR]);rep([1;2],[1,NVAR]);rep([1;0;1;1],[1,NVAR])];
Chrom=crtbp(NIND,NVAR*PRECI); %初始種群
v=bs2rv(Chrom,FieldD) ; %初始種群十進制轉換
gen=1;
while gen<MAXGEN,
[NIND,N]=size(Chrom);
M=fix(NIND/2);
ObjV1=func1(v(1:M,:)); %分組後第一目標函數值
FitnV1=ranking(ObjV1); %分配適應度值
SelCh1=select('sus',Chrom(1:M,:),FitnV1,GGAP); %選擇
ObjV2=func2(v(M+1:NIND,:)); %分組後第二目標函數值
FitnV2=ranking(ObjV2); %分配適應度值
SelCh2=select('sus',Chrom(M+1:NIND,:),FitnV2,GGAP); %選擇
SelCh=[SelCh1;SelCh2]; %合並
SelCh=recombin('xovsp',SelCh,0.7); %重組
Chrom=mut(SelCh); %變異
v=bs2rv(Chrom,FieldD);
trace1(gen,1)=min(func1(v));
trace1(gen,2)=sum(func1(v))/length(func1(v));
trace2(gen,1)=min(func2(v));
trace2(gen,2)=sum(func2(v))/length(func2(v));
trace3(gen,1)=min(func1(v)+func2(v));
trace3(gen,2)=sum(func1(v))/length(func1(v))+sum(func2(v))/length(func2(v));
gen=gen+1;
end
figure(1);clf;
plot(trace1(:,1));hold on;plot(trace1(:,2),'-.');
plot(trace1(:,1),'.');plot(trace1(:,2),'.');grid on;
legend('解的變化','種群均值的變化')
xlabel('迭代次數');ylabel('目標函數值');
figure(2);clf;
plot(trace2(:,1));hold on;
plot(trace2(:,2),'-.');
plot(trace2(:,1),'.');
plot(trace2(:,2),'.');grid;
legend('解的變化','種群均值的變化');
xlabel('迭代次數');ylabel('目標函數值');
figure(3);clf;
plot(trace3(:,1));hold on;
plot(trace3(:,2),'-.');
plot(trace3(:,1),'.');
plot(trace3(:,2),'.');grid;
legend('解的變化','種群均值的變化');
xlabel('迭代次數');ylabel('目標函數值');
figure(4);clf;plot(func1(v));hold on;
plot(func2(v),'r-.');grid;
⑵ 怎樣在電腦上製作數學計算題
Word中自帶有公式編輯器,應付一般公式就足夠了。
把Word中的公式編輯器找出來的操作步驟如下:
【工具】->【自定義】->【命令】->【插入】->【公式編輯器】
然後將公式編輯器的圖標拖在工具欄上就可以了。
(「拖」:按住滑鼠左鍵不放)
⑶ 使用matlab遺傳演算法工具箱能不能解決組合優化問題還有使用工具箱方便還是自己編程方便呢
1、要看你組來合優化是屬於哪種問題,源一般的組合優化都是混合整數線性或非線性的,那麼就不行了,因此要對遺傳演算法改進才能計算。
2、如果有現成的工具箱求解你的組合優化問題肯定要方便些,但碰到具體問題,可能要對參數進行一些設置更改,所以最好能有編程基礎,那樣就可以自己修改工具箱裡面的參數或策略了
對你的補充問題,組合優化問題一般都是用matlab 和 lingo實現吧。建議買一本數學建模的書看一看,都涉及到組合優化問題,也可以下載論文看看。lingo對編程要簡單些,主要是求混合規劃,缺點是似乎還不能用上多目標問題,一般的組合優化都屬於多目標問題。但是matlab功能強大的多。
⑷ 請教一下,用遺傳演算法工具箱怎麼求下面函數的最小值
題主給出函數用遺傳演算法工具箱求其最小值,可以這樣來做:
1、自定義函數,並保存專為leijia.m文件。
2、在當前屬目錄下,執行 optimtool,打開最優化工具箱,再選擇遺傳演算法工具箱
3、按表中格式,輸入相關內容,最後執行可以得到
⑸ 學習數學建模需要掌握哪些軟體啊每個軟體具體拿來做什麼用啊謝謝!
MATLAB
??????? MATLAB是一個高性能的科技計算軟體,廣泛應用於數學計算、演算法開發、數學建模、系統模擬、數據分析處理及可視化、科學和工程繪圖、應用系統開發, 包括建立用戶界面。當前它的使用范圍涵蓋了工業、電子、醫療、建築等各領域。MATLAB是英文Matrix Laboratory(矩陣實驗室)的縮寫,最早是由C.Moler用Fortran語言編寫的,用來方便地調用LINPACK和EISPACK矩陣代數軟體包的程序。後來他創立了MATHWORKS公司,對MATLAB作了大量的、堅持不懈的改進。現在MATLAB已經更新至5.x版,MATLAB提供的工具箱已覆蓋信號處理、系統控制、統計計算、優化計算、神經網路、小波分析、偏微分方程、模糊邏輯、動態系統模擬、系統辨識和符號運算等領域。??????? 目前在歐美各國MATLAB的使用十分普及。在大學的數學、工程和科學系科,MATLAB被用作許多課程的輔助教學手段;在科研機構和工業界,MATLAB是高質量新產品研究、開發和分析的主要工具之一。1997年,MATHWORKS公司總裁兼首席科學家Moler因其對MATLAB的貢獻當選為美國工程科學院院士。相關資料請瀏覽MATHWORKS公司主頁:http://www.mathworks.com/
Maple
??????? Maple是加拿大滑鐵盧大學(University of Waterloo)和Waterloo Maple Software公司注冊的一套為微積分、線性代數和微分方程等高等數學使用的軟體包。它是當今世界上最優秀的幾個數學軟體之一,它以良好的使用環境、強有力的符號計算、高精度的數值計算、靈活的圖形顯示和高效的編程功能,為越來越 多的教師、學生和科研人員所喜愛,並成為他們進行數學處理的工具。??????? Maple軟體適用於解決微積分、解析幾何、線性代數、微分方程、計算方法、概率統計等數學分支中的常見計算問題。??????? Maple採用字元行輸入方式,輸入時需要按照規定的格式輸入,雖然與常見的數學格式不同,但靈活方式,也很容易理解。輸出則可以顯字元方式和圖形方式,產生的圖形結果可以很方便地剪貼到Windows應用程序內。
Mathematica
??????? Mathematica是目前比較流行的符號運算軟體之一,它不僅可以完成微積分、線性代數及數學各個分支公式推演中的符號演算,而且可以數值求解非線性方程、優化等問題。它不僅是數學建模的得力助手,也是大學數學教育和科學研究不可或缺的工具。??????? Mathematica 3.0是目前最新版本。若有興趣,請進一步瀏覽Wolfram公司主頁:http://www.wolfram.com/
LINDO
??????? LINDO是一種專門用於求解數學規劃問題的軟體包。由於LINDO執行速度快,易於方便地輸入、求解和分析數學規劃問題,因此在教學、科研和工業界得到廣泛應用。 LINDO主要用於求解線性規劃、非線性規劃、二次規劃和整數規劃等問題,也可以用於一些線性和非線性方程組的求解以及代數方程求根等。LINDO中包含了一種建模語言和許多常用的數學函數(包括大量概率函數),可供使用者建立數學規劃問題模型時調用。??????? LINDO有多種組件和版本,版權由美國Lindo System Inc.擁有,有關該軟體的發行版本、發行價格和最新信息可從該公司網站http://www.lindo.com/獲取。
一般老師會建議用MATLAB,功能強大,比較全面。
規劃時用lindo。
我現在用maple,只是算題方便。
還有很多其他軟體,就看你具體做什麼,不過還是把一個用熟了比較好。
⑹ 用遺傳演算法工具箱求解一個多目標優化問題,現在需要一個matlab程序,求高人指點
用遺傳演算法工具箱求解一個多目標優化問題的步驟:
1、根據題意,建立自定專義目標函數,ga_fun1(x)
2、在命令窗屬口中,輸入
>> optimtool %調用遺傳演算法工具箱
3、在遺傳演算法工具箱界面中,分別對Fitnessfunction框內輸入@ga_fun1();A框內輸入[1,1,1];b框內輸入16;Aeq框內輸入[];beq框內輸入[];Lower框內輸入[0,0,0];Upper框內輸入[];
4、單擊Start。得到x=4.508 y=2.513 z=1.912值。
⑺ 怎麼用Matlab遺傳演算法工具箱
推薦用抄shefiled的GA工具箱,裡面的子函數寫襲的很好,調用很方便。 配合一本gA的書 學的很快;
另外 關於你這個問題, 你的目標函數和約束函數是否在工作目錄下,還有 在調用的時候 在函數名前面加@試試, 希望能幫到你!
⑻ matlab 2011b 遺傳演算法工具箱問題
我的版本和你的不一樣,我的文件夾的名字是genetic,不是gabtx,還有就是這個文件夾里直接就是那些M文件(見圖),圖片不曉得傳上來沒,第一次回答這個,前段時間我為了這個工具箱搞了半天才弄好,希望能幫到你
⑼ 搜索演算法工具箱 - PSSL(一)
【CIKM-2021】【Gaoling School of Artificial Intelligence】 PSSL- Self-supervised Learning for Personalized Search with Contrastive Sampling
文章旨在解決現有個性化搜索場景下數據稀疏導致用戶嵌入表示不夠精確,排序模型性能受粗糙用戶表示影響而性能下降的問題。提出利用對比學習的方式增強表示學習的能力,採用對比抽樣方法從查詢日誌中的用戶行為序列中提取成對自監督樣本,並設計了四個輔助任務來預訓練seq2seq排序模型,以縮小相似用戶序列、查詢和文檔之間的距離。
對進行同樣查詢的所有用戶,返回相同的結果,不能夠滿足用戶的個性化需求。個性化搜索利用用戶歷史行為,學慣用戶的隱向量表示反應興趣偏好,在改善用戶搜索體驗方面發揮著至關重要的作用。雖然現有方法取得了巨大成功,他們仍然存在一些問題,
近些年預訓練語言模型取得了巨大的成功,作者認為在預訓練數據上進行表示,有利於提升各種下游任務的性能。 基於此,作者嘗試將預訓練模式引入到個性化搜索場景中,遵循預訓練語言模型的pipeline,在預訓練數據上進行大規模訓練,並在ranking任務上進行fine-tuning。
那麼問題來了,如何從日誌數據中利用預訓練任務獲得用戶偏好信息 ?作者採用最近大熱的自監督學習的思想,設計對比學習。
自監督學習在各種信息檢索任務中取得了巨大成功,例如序列推薦[38, 42]和ad-hoc ranking[6, 18]。自監督學習,通過構造對比樣本,解決數據稀疏性問題,適用於個性化搜索增強的場景。應用自監督學習進行解決個性化搜索問題時,需要構建兩類不同的表示學習任務
作者基於的假設是,
基於上述研究,作者提出自監督的個性化搜索學習框架,PSSL。該框架分為兩個階段,其整體框架如下圖所示。
個性化搜索問題可以形式化的定義為,
本節介紹了PSSL方法的研究背景和解決問題的基本思路,並介紹了PSSL方法的基本框架,下一節繼續介紹各個組成部分的細節。
個人感覺,搜索的要點是把用戶心中的那個答案排在首位。此時, 里的首位其實很重要,不像推薦中,一個session用戶可能點擊 多個,因為用戶目的明確。
此外,不同搜索場景,用戶點擊的數量也有較大差別。例如垂直場景,基本就點1到2個。信息流或資訊類搜索,可能點擊多個。這些都影響搜索模型的設計和數據構造。從純CTR和CVR的角度,如果夠准確,展示越少反而能夠提高這兩個指標。
query是搜索中相比推薦的最大優勢(其實應該說是區別),一般都會被重點對待。但個性化時,也必須結合用戶偏好和行為。畢竟同一個問題,不同人問是不同的意思。query和用戶特徵交互有很大作用。
[6] Wei-Cheng Chang, Felix X. Yu, Yin-Wen Chang, Yiming Yang, and Sanjiv Kumar. 2020. Pre-training Tasks for Embedding-based Large-scale Retrieval. In ICLR. OpenReview.net.
[8] Steve Cronen-Townsend and W Bruce Croft. 2002. Quantifying query ambiguity. In Proceedings of the second international conference on Human Language Technology Research. Morgan Kaufmann Publishers Inc., 104–109.
[12] Songwei Ge, Zhicheng Dou, Zhengbao Jiang, Jian-Yun Nie, and Ji-Rong Wen. 2018. Personalizing Search Results Using Hierarchical RNN with Query-aware Attention. In Proceedings of the 27th ACM International Conference on Information and Knowledge Management (CIKM 』18).
[18] Xinyu Ma, Jiafeng Guo, Ruqing Zhang, Yixing Fan, Xiang Ji, and Xueqi Cheng. 2021. PROP: Pre-training with Representative Words Prediction for Ad-hoc Retrieval. In WSDM. ACM, 283–291.
[27] Craig Silverstein, Hannes Marais, Monika Henzinger, and Michael Moricz. 1999. Analysis of a very large web search engine query log. In ACm SIGIR Forum, Vol. 33. ACM, 6–12.
[28] Yang Song, Hongning Wang, and Xiaodong He. 2014. Adapting deep ranknet for personalized search. In WSDM』2014. ACM, 83–92.
[32] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Łukasz Kaiser, and Illia Polosukhin. 2017. Attention is all you need. In Advances in neural information processing systems. 5998–6008.
[38] Xu Xie, Fei Sun, Zhaoyang Liu, Jinyang Gao, Bolin Ding, and Bin Cui. 2020. Contrastive Pre-training for Sequential Recommendation. CoRR abs/2010.14395 (2020).
[42] Kun Zhou, Hui Wang, Wayne Xin Zhao, Yutao Zhu, Sirui Wang, Fuzheng Zhang, Zhongyuan Wang, and Ji-Rong Wen. 2020. S3-Rec: Self-Supervised Learning for Sequential Recommendation with Mutual Information Maximization. In CIKM. ACM, 1893–1902.
⑽ Matlab自帶遺傳演算法工具箱簡介
Matlab提供遺傳演算法工具箱(Matlab2010版本之後),方便解決簡單的優化問題,官方提示後續可能取消該功能。個人不建議使用工具箱求解數學規劃問題,參數設置零散復雜,容易錯漏,但可學習作為Demo問題的演示工具。
按從上到下,從左到右的順序對Matlab自帶的遺傳演算法工具箱GUI界面進行介紹和使用注意事項說明。
對應於非線性約束求解器
指定另外一個最小值函數,在遺傳演算法結束之後計算,在整數值限制的時候不可用。