資源簡介
禁忌搜索算法+蟻群算法,兩種算法的融合解決矩形排樣

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Text;
using?System.Collections;
namespace?TabuAnt
{
????class?Ant
????{
????????public?int?usedArea;//螞蟻已切割的面積
????????public?bool[]?selectedRectangle;//當前螞蟻已經選擇的矩形
????????public?bool[]?allowedRectangle;//當前螞蟻允許選擇的矩形
????????public?int[]?oldFitness;//記錄以前2次的適應度值
????????public?Ant[]?ant;//蟻群
????????public?Rectangle[]?rectangle;//矩形
????????public?int[][]?plank;//木板
????????public?int?maxArea;//木板面積
????????public?int?maxLength;//木板長度
????????public?int?maxWide;//木板寬度
????????public?int[]?sequence;//矩形件切割的次序
????????
????????///?
????????///?螞蟻構造函數
????????///?
????????///?蟻群
????????///?矩形
????????///?木板
????????///?木板長度
????????///?木板寬度
????????public?Ant(Ant[]?ant?Rectangle[]?rectangle?int[][]?plank?int?maxLength?int?maxWide)
????????{
????????????usedArea?=?0;
????????????this.ant?=?ant;
????????????this.rectangle?=?rectangle;
????????????this.plank?=?plank;
????????????this.maxLength?=?maxLength;
????????????this.maxWide?=?maxWide;
????????????maxArea?=?maxLength?*?maxWide;
????????????selectedRectangle?=?new?bool[rectangle.Length];
????????????allowedRectangle?=?new?bool[rectangle.Length];
????????????oldFitness?=?new?int[2]?{?0?0?};
???????????sequence??=?new?int[rectangle.Length];
???????????for?(int?i?=?0;?i????????????{
???????????????sequence[i]?=?i?+?1;
???????????}
????????}
????????///?
????????///?初始化螞蟻的解
????????///?
????????public?void?InitAnt()
????????{
????????????usedArea?=?0;
????????????for?(int?i?=?0;?i?????????????{?
????????????????selectedRectangle[i]?=?false;
????????????????allowedRectangle[i]?=?true;
????????????}
????????}
????????///?
????????///?計算螞蟻還允許選擇的矩形
????????///?
????????public?void?CountAllowed()
????????{
????????????RectanglePaking?rping?=?new?RectanglePaking();
????????????for?(int?i?=?0;?i?????????????{
????????????????//檢查是否能插入
????????????????if?(!selectedRectangle[i]?&&?!rping.CanInsert(plank?rectangle[i].wide?rectangle[i].length))
????????????????????allowedRectangle[i]?=?false;
????????????}
????????}
????????///?
????????///?得到當前螞蟻的適應度值
????????///?
????????///?適應度值
????????public?double?FitnessValue()
????????{
????????????double?area?=?0;
????????????for?(int?i?=?0;?i?????????????{
????????????????if?(selectedRectangle[i])
????????????????????//適應度值?=?矩形件的長度?*?矩形件的寬度
????????????????????area?+=?rectangle[i].length?*?rectangle[i].wide;
????????????}
????????????return?area?/?maxArea;
????????}
????????///?
????????///?螞蟻的下一步選擇
????????///?
????????///?表示
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????5504??2010-11-02?11:46??TabuAnt\TabuAnt\Ant.cs
?????文件??????12288??2010-11-02?11:50??TabuAnt\TabuAnt\bin\Debug\TabuAnt.exe
?????文件??????38400??2010-11-02?11:50??TabuAnt\TabuAnt\bin\Debug\TabuAnt.pdb
?????文件??????14328??2010-11-02?11:50??TabuAnt\TabuAnt\bin\Debug\TabuAnt.vshost.exe
?????文件????????490??2009-06-11?05:14??TabuAnt\TabuAnt\bin\Debug\TabuAnt.vshost.exe.manifest
?????文件????????690??2010-10-22?21:00??TabuAnt\TabuAnt\bin\Debug\testFile.txt
?????文件????????143??2010-10-20?02:49??TabuAnt\TabuAnt\bin\Debug\testFile2.txt
?????文件?????????83??2010-10-30?21:14??TabuAnt\TabuAnt\bin\Debug\testFile3.txt
?????文件????????299??2010-11-02?11:50??TabuAnt\TabuAnt\obj\Debug\TabuAnt.csproj.FileListAbsolute.txt
?????文件??????12288??2010-11-02?11:50??TabuAnt\TabuAnt\obj\Debug\TabuAnt.exe
?????文件??????38400??2010-11-02?11:50??TabuAnt\TabuAnt\obj\Debug\TabuAnt.pdb
?????文件???????7969??2010-11-02?11:46??TabuAnt\TabuAnt\Program.cs
?????文件???????1358??2010-11-02?11:48??TabuAnt\TabuAnt\Properties\AssemblyInfo.cs
?????文件???????7322??2010-11-02?11:46??TabuAnt\TabuAnt\RectanglePaking.cs
?????文件???????2594??2010-11-02?11:46??TabuAnt\TabuAnt\Retangle.cs
?????文件???????2647??2010-11-02?11:50??TabuAnt\TabuAnt\TabuAnt.csproj
?????文件???????7875??2010-11-02?11:46??TabuAnt\TabuAnt\TabuSearch.cs
?????文件????????911??2010-11-02?11:48??TabuAnt\TabuAnt.sln
????..A..H.?????10752??2010-11-02?11:50??TabuAnt\TabuAnt.suo
?????目錄??????????0??2010-11-02?11:48??TabuAnt\TabuAnt\obj\Debug\TempPE
?????目錄??????????0??2010-11-02?11:50??TabuAnt\TabuAnt\bin\Debug
?????目錄??????????0??2010-11-02?11:50??TabuAnt\TabuAnt\obj\Debug
?????目錄??????????0??2010-11-02?11:48??TabuAnt\TabuAnt\bin
?????目錄??????????0??2010-11-02?11:48??TabuAnt\TabuAnt\obj
?????目錄??????????0??2010-11-02?11:48??TabuAnt\TabuAnt\Properties
?????目錄??????????0??2010-11-02?11:49??TabuAnt\TabuAnt
?????目錄??????????0??2010-11-02?11:48??TabuAnt
-----------?---------??----------?-----??----
???????????????164341????????????????????27
............此處省略0個文件信息
評論
共有 條評論