版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、人工智能課程設(shè)計(jì)報(bào)告 課 程:人工智能能課程設(shè)計(jì)計(jì)報(bào)告 班 級(jí): 姓 名: 學(xué) 號(hào): 指導(dǎo)教師:趙曼 2015年年11月 - 24 -人工智能課課程設(shè)計(jì)報(bào)報(bào)告課程背景 人工智能(AArtifficiaal Inntellligennce),英英文縮寫為為AI。它它是研究、開發(fā)用于于模擬、延延伸和擴(kuò)展展人的智能能的理論、方法、技技術(shù)及應(yīng)用用系統(tǒng)的一一門新的技技術(shù)科學(xué)。 人工智智能是計(jì)算算機(jī)科學(xué)的的一個(gè)分支支,它企圖圖了解智能能的實(shí)質(zhì),并并生產(chǎn)出一一種新的能能以人類智智能相似的的方式做出出反應(yīng)的智智能機(jī)器,該該領(lǐng)域的研研究包括機(jī)機(jī)器人、語(yǔ)語(yǔ)言識(shí)別、圖像識(shí)別別、自然語(yǔ)語(yǔ)言處理和和專家系統(tǒng)統(tǒng)等。人工工
2、智能從誕誕生以來,理理論和技術(shù)術(shù)日益成熟熟,應(yīng)用領(lǐng)領(lǐng)域也不斷斷擴(kuò)大,可可以設(shè)想,未未來人工智智能帶來的的科技產(chǎn)品品,將會(huì)是是人類智慧慧的“容器”。人工智能是是對(duì)人的意意識(shí)、思維維的信息過過程的模擬擬。人工智智能不是人人的智能,但但能像人那那樣思考、也可能超超過人的智智能。人工智能是是一門極富富挑戰(zhàn)性的的科學(xué),從從事這項(xiàng)工工作的人必必須懂得計(jì)計(jì)算機(jī)知識(shí)識(shí),心理學(xué)學(xué)和哲學(xué)。人工智能能是包括十十分廣泛的的科學(xué),它它由不同的的領(lǐng)域組成成,如機(jī)器器學(xué)習(xí),計(jì)計(jì)算機(jī)視覺覺等等,總總的說來,人人工智能研研究的一個(gè)個(gè)主要目標(biāo)標(biāo)是使機(jī)器器能夠勝任任一些通常常需要人類類智能才能能完成的復(fù)復(fù)雜工作。但不同的的時(shí)代、不
3、不同的人對(duì)對(duì)這種“復(fù)雜工作作”的理解是是不同的。人工智能是是計(jì)算機(jī)學(xué)學(xué)科的一個(gè)個(gè)分支,二二十世紀(jì)七七十年代以以來被稱為為世界三大大尖端技術(shù)術(shù)之一(空空間技術(shù)、能源技術(shù)術(shù)、人工智智能)。也也被認(rèn)為是是二十一世世紀(jì)三大尖尖端技術(shù)(基基因工程、納米科學(xué)學(xué)、人工智智能)之一一。這是因因?yàn)榻陙硭@獲得了迅速速的發(fā)展,在在很多學(xué)科科領(lǐng)域都獲獲得了廣泛泛應(yīng)用,并并取得了豐豐碩的成果果,人工智智能已逐步步成為一個(gè)個(gè)獨(dú)立的分分支,無(wú)論論在理論和和實(shí)踐上都都已自成一一個(gè)系統(tǒng)。人工智能是是研究使計(jì)計(jì)算機(jī)來模模擬人的某某些思維過過程和智能能行為(如如學(xué)習(xí)、推推理、思考考、規(guī)劃等等)的學(xué)科科,主要包包括計(jì)算機(jī)機(jī)
4、實(shí)現(xiàn)智能能的原理、制造類似似于人腦智智能的計(jì)算算機(jī),使計(jì)計(jì)算機(jī)能實(shí)實(shí)現(xiàn)更高層層次的應(yīng)用用。人工智智能將涉及及到計(jì)算機(jī)機(jī)科學(xué)、心心理學(xué)、哲哲學(xué)和語(yǔ)言言學(xué)等學(xué)科科??梢哉f說幾乎是自自然科學(xué)和和社會(huì)科學(xué)學(xué)的所有學(xué)學(xué)科,其范范圍已遠(yuǎn)遠(yuǎn)遠(yuǎn)超出了計(jì)計(jì)算機(jī)科學(xué)學(xué)的范疇,人人工智能與與思維科學(xué)學(xué)的關(guān)系是是實(shí)踐和理理論的關(guān)系系,人工智智能是處于于思維科學(xué)學(xué)的技術(shù)應(yīng)應(yīng)用層次,是是它的一個(gè)個(gè)應(yīng)用分支支。從思維維觀點(diǎn)看,人人工智能不不僅限于邏邏輯思維,要要考慮形象象思維、靈靈感思維才才能促進(jìn)人人工智能的的突破性的的發(fā)展,數(shù)數(shù)學(xué)常被認(rèn)認(rèn)為是多種種學(xué)科的基基礎(chǔ)科學(xué),數(shù)數(shù)學(xué)也進(jìn)入入語(yǔ)言、思思維領(lǐng)域,人人工智能學(xué)學(xué)科也必須須
5、借用數(shù)學(xué)學(xué)工具,數(shù)數(shù)學(xué)不僅在在標(biāo)準(zhǔn)邏輯輯、模糊數(shù)數(shù)學(xué)等范圍圍發(fā)揮作用用,數(shù)學(xué)進(jìn)進(jìn)入人工智智能學(xué)科,它它們將互相相促進(jìn)而更更快地發(fā)展展。題目二:nn皇后問題題一.問題描描述分別用回溯溯法(遞歸歸)、GAA算法和CSP的的最小沖突突法求解nn皇后問題題。即如何能夠夠在 nn 的國(guó)際際象棋棋盤盤上放置nn個(gè)皇后,使使得任何一一個(gè)皇后都都無(wú)法直接接吃掉其他他的皇后?為了達(dá)到到此目的,任任兩個(gè)皇后后都不能處處于同一條條橫行、縱縱行或斜線線上。要求:. 輸入入n,并用用運(yùn)行時(shí)間間比較幾種種算法在相相同規(guī)模的的問題時(shí)的的求解效率率,并列表表給出結(jié)果果。. 比較較同一算法法在n不相相同時(shí)的運(yùn)運(yùn)行時(shí)間,分分析算
6、法的的時(shí)間復(fù)雜雜性,并列列表給出結(jié)結(jié)果。如八皇后問問題的一個(gè)個(gè)解二.設(shè)計(jì)分分析1.算法分分析 1) 回溯法(遞遞歸)回溯法解題題的一般步步驟編輯(1)針對(duì)對(duì)所給問題題,定義問問題的解空空間;(2)確定定易于搜索索的解空間間結(jié)構(gòu);(3)以深深度優(yōu)先方方式搜索解解空間,并并在搜索過過程中用剪剪枝函數(shù)避避免無(wú)效搜搜索。引入一個(gè)整整型一維數(shù)數(shù)組coll來存存放最終結(jié)結(jié)果,cooli就表示在在棋盤第ii列、cooli行有一個(gè)個(gè)皇后,為為了使程序序再找完了了全部解后后回到最初初位置,設(shè)設(shè)定coll0的的初值為00,即當(dāng)回回溯到第00列時(shí),說說明以求得得全部解,結(jié)結(jié)束程序運(yùn)運(yùn)行。為了了方便算法法的實(shí)現(xiàn),引引
7、入三個(gè)整整型數(shù)組來來表示當(dāng)前前列在三個(gè)個(gè)方向上的的狀態(tài) :a aai=0表示第第i行上還還沒有皇后后;b bbi=0表示第第i列反斜斜線/上沒沒有皇后;c cci=0表示第第i列正斜斜線上沒沒有皇后。棋盤中同一一反斜線/上的方格格的行號(hào)與與列號(hào)相同同;同一正正斜線上上的方格的的行號(hào)與列列號(hào)之差均均相同,這這就是判斷斷斜線的依依據(jù)。初始時(shí),所所有行和斜斜線上都沒沒有皇后,從從第1列的的第1行配配置第一個(gè)個(gè)皇后開始始,在第mm列,coolm行放置了了一個(gè)合理理的皇后,準(zhǔn)準(zhǔn)備考察第第m+1列列時(shí),在數(shù)數(shù)組a,b和c中為第mm列,coolm行的位置置設(shè)定有皇皇后的標(biāo)志志;當(dāng)從第第m列回溯溯到m-11列
8、時(shí),并并準(zhǔn)備調(diào)整整第m-11列的皇后后配置時(shí),清清除在數(shù)組組a,b和和c對(duì)對(duì)應(yīng)位置的的值都為11來確定。 2)遺遺傳算法遺傳算法的的基本運(yùn)算算過程如下下:a)初始化化:設(shè)置進(jìn)進(jìn)化代數(shù)計(jì)計(jì)數(shù)器t=0,設(shè)置置最大進(jìn)化化代數(shù)T,隨隨機(jī)生成MM個(gè)個(gè)體作作為初始群群體P(00)。b)個(gè)體評(píng)評(píng)價(jià):計(jì)算算群體P(t)中各各個(gè)個(gè)體的的適應(yīng)度。遺傳算法遺傳算法c)選擇運(yùn)運(yùn)算:將選選擇算子作作用于群體體。選擇的的目的是把把優(yōu)化的個(gè)個(gè)體直接遺遺傳到下一一代或通過過配對(duì)交叉叉產(chǎn)生新的的個(gè)體再遺遺傳到下一一代。選擇擇操作是建建立在群體體中個(gè)體的的適應(yīng)度評(píng)評(píng)估基礎(chǔ)上上的。d)交叉運(yùn)運(yùn)算:將交交叉算子作作用于群體體。遺傳算
9、算法中起核核心作用的的就是交叉叉算子。e)變異運(yùn)運(yùn)算:將變變異算子作作用于群體體。即是對(duì)對(duì)群體中的的個(gè)體串的的某些基因因座上的基基因值作變變動(dòng)。群體P(tt)經(jīng)過選選擇、交叉叉、變異運(yùn)運(yùn)算之后得得到下一代代群體P(t+1)。f)終止條條件判斷:若t=TT,則以進(jìn)進(jìn)化過程中中所得到的的具有最大大適應(yīng)度個(gè)個(gè)體作為最最優(yōu)解輸出出,終止計(jì)計(jì)算。3)cspp最小沖突突法(1)初始始化N個(gè)皇皇后的一個(gè)個(gè)放置,允允許有沖突突(2)考慮慮某一行的的某個(gè)皇后后,她可能能與x個(gè)皇皇后沖突,然然后看看將將這個(gè)皇后后移動(dòng)到這這一行的哪哪個(gè)空位能能使得與其其沖突的皇皇后個(gè)數(shù)最最少,就移移動(dòng)到那里里。(也可可以考慮列列,
10、是等價(jià)價(jià)的)(3)不斷斷執(zhí)行(22),直到到?jīng)]有沖突突為止2.數(shù)據(jù)結(jié)結(jié)構(gòu)使用數(shù)組結(jié)結(jié)構(gòu)存儲(chǔ)相相關(guān)數(shù)據(jù)一維數(shù)組:二維數(shù)組:3.算法設(shè)設(shè)計(jì)1)/回回溯搜索 void Funcctionn1:DDFS(iint t,booll isShhowTiime)if (t = n)/說明已經(jīng)經(jīng)排了n行行了(從00開始的),即即排列結(jié)束束了forr (intt i = 0; in; i+)reeci = bboarddi;if (! iisShoowTimme )PPrinttChesssBoaard();/輸輸出棋局couunt+;retturn;for (intt i = 0; in; i+)/有有沖突i
11、f (verri = 11|ruui - t + nn = 1|rdii + tt = 1) conttinuee;/沒沒有沖突verri = 1;rui - t + nn = 1;rdi + t = 1;boaardtt = i;DFSS(t + 11, issShowwTimee);/深深搜遞歸/后后退處理rdi + t = 0;rui - t + nn = 0;verri = 0;retuurn;2)遺傳算算法void CGAQQueenn:PrrintCChesssBoarrd(boool PrinntCheessBooard)booll DissplayyAllAAnsurres=P
12、PrinttChesssBoaard;/是否否輸出所有有棋盤結(jié)果果int g = 0, num = 0;InittialPPopullatioon();whille (gg = 0 & numm Iteeratiion)numm+;g = 0;forr (intt k = 0; k Poopulaationn ; kk+)thhis-FilllAreaa(k);thhis-CCostMMatriixk = tthis-CosstFunnc(k);thiis-PPopullatioonSorrt();if (thiis-CCostMMatriix0 = 0)/已經(jīng)完成成計(jì)算g = 1;if (D
13、issplayyAllAAnsurres)PrrintTTheBeestAnnsuree();/*for (i = 0; i = CheessBooradLLenghht - 1; ii+)ccout row: i col: CChrommosommeMattrixi00 enddl;coout GGenerrateCCrosssOverrMatrrix();thiis-MMatinng();thiis-AApplyyMutaationn();coutt 實(shí)際迭迭代: nnum 次次 endll;if (DispplayAAllAnnsurees)couut 最佳佳答案為: PPrinttTh
14、eBBestAAnsurre();3)CSPP最小沖突突算法/用最小小沖突算法法調(diào)整第rrow行的的皇后的位位置(初始始化時(shí)每行行都有一個(gè)個(gè)皇后,調(diào)調(diào)整后仍然然在第roow行)/調(diào)整過過后cheeck一下下看看是否否已經(jīng)沒有有沖突,如如果沒有沖沖突(達(dá)到到終止?fàn)顟B(tài)態(tài)),返回回trueebool CSP_Queeens:Adjuust_rrow(iint row)int cur_col = Rrow;int optiimal_col = cuur_cool;/最佳列號(hào)號(hào),設(shè)置為為當(dāng)前列,然然后更新/計(jì)算算總沖突數(shù)數(shù)int min_confflictt = ccolooptimmal_ccol +
15、 pddiagGetPP(roww, opptimaal_cool) - 1+ ccdiaggGettC(roow, ooptimmal_ccol) - 11;/對(duì)對(duì)角線沖突突數(shù)為當(dāng)前前對(duì)角線皇皇后數(shù)減一一,三次重重疊了/逐個(gè)個(gè)檢查第rrow行的的每個(gè)位置置,看看是是否存在沖沖突數(shù)更小小的位置for (intt i = 0; i N; ii+) if (i = cuur_cool) ccontiinue;intt connflicct = coli + pdiiagGGetP(row, i) + cddiagGetCC(roww, i);if (connflicct min_confflict
16、t) miin_coonfliict = connflicct;opptimaal_cool = i;/如果果最佳列位位置改變,則則皇后移向向新的最小小沖突位置置,要更新新col,pdiaag,cddiag,if (optiimal_col != ccur_ccol) collcurr_coll-;pdiiagGGetP(row, cuur_cool);cdiiagGGetC(row, cur_col)-;collopttimall_coll+;pdiiagGGetP(row, optiimal_col)+;cdiiagGGetC(row, optiimal_col)+;Rrrow = opp
17、timaal_cool;if (collcurr_coll = 1 & coolopptimaal_cool = 1& pdiiagGGetP(row, optiimal_col) = 1 & cddiagGetCC(roww, opptimaal_cool) = 11) reeturnn Quaalifyy();/quaalifyy相對(duì)更耗耗時(shí),所以以只在滿足足上面基本本條件后才才檢查/否則則當(dāng)前點(diǎn)就就是最佳點(diǎn)點(diǎn),一切都都保持不變變r(jià)etuurn falsse;/如果果都沒變的的話,肯定定不滿足終終止條件,否否則上一次次就應(yīng)該返返回truue并終止止了/檢查沖沖突bool CSP_Queee
18、ns:Quallify()for (intt i = 0; i N; ii+)if (collRii != 1 |pddiagGetPP(i, Ri) != 1 |cddiagGetCC(i, Ri) != 1) reeturnn falsse;retuurn truee;/最終用用戶調(diào)用函函數(shù),nuumOfQQueenns為輸入入皇后數(shù),PPrinttChesssBoaard判斷斷是否輸出出棋盤表示示int CCSP_QQueenns:CCSPAllgoriithmss(boool PrinntCheessBoord)srannd(uunsiggned)timee(NULLL);Initt(
19、);if (Quallify() /運(yùn)氣氣很好,初初始化后就就滿足終止止條件if (PriintChhessBBord)Prinnt_reesultt();retturn 0;booll endd = ffalsee;whille (!end) forr (intt i = 0; i 1000)時(shí),前前兩者都不不能再解決決,此時(shí),CCSP最小小沖突法的的效率最高高,且與nn值沒有必必然的聯(lián)系系??偨Y(jié) 通通過此次課課程實(shí)習(xí)不不僅大大加加深了我對(duì)對(duì)幾種經(jīng)典典搜索算法法的理解,而而且?guī)椭椅液芎玫膹?fù)復(fù)習(xí)了隊(duì)列列、堆棧、圖、文件件讀寫這幾幾部分的內(nèi)內(nèi)容,使我我對(duì)幾種基基本的數(shù)據(jù)據(jù)結(jié)構(gòu)類型型的運(yùn)用更更加
20、熟練。在解決這這些問題的的過程中我我不但很好好的鞏固了了數(shù)據(jù)結(jié)構(gòu)構(gòu)的相關(guān)知知識(shí),而且且提高了編編程及程序序調(diào)試能力力,增強(qiáng)了了自己編程程的信心。 總之之,在這次次課程實(shí)習(xí)習(xí)過程中我我是實(shí)實(shí)在在在學(xué)到了了一些課堂堂上學(xué)不到到的東西,同同時(shí)也提高高了實(shí)踐能能力。同時(shí)時(shí)在這個(gè)過過程中也暴暴露了自己己的不少問問題,在今今后的學(xué)習(xí)習(xí)過程成也也會(huì)更加有有針對(duì)性。最后還要要感謝老師師的悉心指指導(dǎo),解答答我編程過過程中的疑疑問、指出出我程序中中的不足,及及提出可行行的解決方方法,讓我我的程序的的功能更加加完善。CSP算法法源代碼:/CSPPAlgoorithhms.hh#praggma onceeclasss
21、 CSP_Queeenspubliic:/構(gòu)造造函數(shù),nnumOffQueeens為輸輸入皇后數(shù)數(shù),CSP_Queeens(iint nnumOffQueeens);CSPP_Queeens();privaate:/roowi表示當(dāng)前前擺放方式式下第i行行的皇后數(shù)數(shù),int *roww;/cooli表示當(dāng)前前擺放方式式下第i列列的皇后沖沖突數(shù)int *coll;int N; /放置NN個(gè)皇后在在N*N棋棋盤上/從左左上到右下下的對(duì)角線線上roww-coll值是相同同的,但是是這個(gè)值有有可能是負(fù)負(fù)值,最小小為-(NN-1),/所以以可以做個(gè)個(gè)偏移,統(tǒng)統(tǒng)一加上NN-1,這這樣這個(gè)值值就在00,2*
22、NN-2范范圍內(nèi),將將這個(gè)值作作為該對(duì)角角線的編號(hào)號(hào)/pddiagi表示示當(dāng)前擺放放方式下編編號(hào)為i的的對(duì)角線上上的皇后數(shù)數(shù)int *pdiiag;/priincippal ddiagoonal,主對(duì)角線線,左上到到右下(表表示和主對(duì)對(duì)角線平行行的2N-1條對(duì)角角線)/從右右上到左下下的對(duì)角線線row+col的的值相同,取取值范圍為為0, 2 * N - 2,22*N-11條,作為為對(duì)角線編編號(hào)/cddiagi表示示編號(hào)為ii的對(duì)角線線上的皇后后數(shù)int *cdiiag;/couunterr diaagonaal,副對(duì)對(duì)角線/R用來存存儲(chǔ)皇后放放置位置,RRroww = col表表示(roow
23、,cool)處,即“第rrow行第第col列列”有個(gè)皇皇后int *R;publiic:int swapp(intt &a, intt &b);/給定定二維矩陣陣的一個(gè)點(diǎn)點(diǎn)坐標(biāo),返返回其對(duì)應(yīng)應(yīng)的左上到到右下的對(duì)對(duì)角線編號(hào)號(hào)int GetPP(intt roww, innt cool);/給定定二維矩陣陣的一個(gè)點(diǎn)點(diǎn)坐標(biāo),返返回其對(duì)應(yīng)應(yīng)的右上到到左下的對(duì)對(duì)角線編號(hào)號(hào)int GetCC(intt roww, innt cool);/返回回begiin, bbeginn + 11, , end - 1 這endd - bbeginn個(gè)數(shù)中的的隨機(jī)的一一個(gè)int My_rrand(int bbeginn
24、, innt ennd);/左閉右右開beegin, endd)/原地地shufffle算算法,算法法導(dǎo)論中的的randdomizze inn plaace算法法voidd Ranndomiize(iint aa, int bbeginn, innt ennd);/ 左閉閉右開/初初始化皇后后的擺放,同同時(shí)初始化化row,col,pdiaag,cddiag數(shù)數(shù)組voidd Iniit();/用最最小沖突算算法調(diào)整第第row行行的皇后的的位置(初初始化時(shí)每每行都有一一個(gè)皇后,調(diào)調(diào)整后仍然然在第roow行)/調(diào)整整過后chheck一一下看看是是否已經(jīng)沒沒有沖突,如如果沒有沖沖突(達(dá)到到終止?fàn)顟B(tài)態(tài))
25、,返回回trueebooll Adjjust_row(int rrow);booll Quaalifyy();voidd Priint_rresullt();/最終終用戶調(diào)用用函數(shù) PPrinttChesssBoaard判斷斷是否輸出出棋盤表示示int CSPAAlgorrithmms(boool PPrinttChesssBorrd);/CSPPAlgoorithhms.ccpp#inclludeCSPAAlgorrithmms.h#incllude #incllude #incllude #inclludeusingg nameespacce sttd;CSP_QQueenns:CCSP_
26、QQueenns(innt numOOfQueeens)srannd(uunsiggned)timee(NULLL);N = numOOfQueeens;row = neew intNN;col = neew intNN;pdiaag=neew int22 * NN;cdiaag=neew int22 * NN;R=neew intNN;CSP_QQueenns:CSP_Queeens()if (NULLL != row)deleeterow;if (NULLL != col)deleetecol;if (NULLL != pdiaag)deeleteepddiag;if (NULLL !=
27、cdiaag)deeleteecddiag;if (NULLL != R)deeleteeR;int CCSP_QQueenns:sswap(int &a, intt &b)int t = a; a = b; b = tt;retuurn 00;/int CCSP_QQueenns:GGetP(int row, int col)retuurn row - coll + NN - 11;int CCSP_QQueenns:GGetC(int row, int col)retuurn row + coll;/返回bbeginn, beegin + 1, , eend - 1 這這end - bee
28、gin個(gè)個(gè)數(shù)中的隨隨機(jī)的一個(gè)個(gè)int CCSP_QQueenns:MMy_raand(iint begiin, intt end)/左閉閉右開bbeginn, ennd)retuurn rrand() % (endd - beegin) + bbeginn;/原地sshufffle算法法,算法導(dǎo)導(dǎo)論中的rrandoomizee in placce算法void CSP_Queeens:Randdomizze(innt a, int begiin, intt end)/ 左左閉右開for (intt i = beggin; i = endd - 22; i+)intt x = My_randd(i
29、, end);swaap(ai, ax);/初始化化皇后的擺擺放,同時(shí)時(shí)初始化rrow,ccol,ppdiagg,cdiiag數(shù)組組void CSP_Queeens:Initt()for (intt i = 0; i N; ii+)/首先先全部安放放在主對(duì)角角線上Rii = i;/下面面隨機(jī)抽取取調(diào)換兩行行皇后位置置Randdomizze(R, 0, N);/初始化化N個(gè)皇后后對(duì)應(yīng)的RR數(shù)組為00N-11的一個(gè)排排列,/此時(shí)時(shí) 即沒有有任意皇后后同列,也也沒有任何何皇后同行行for (intt i = 0; i N; ii+)rowwi = 1;/每行行恰好一個(gè)個(gè)皇后colli = 0;for
30、 (intt i = 0; i 2 * N - 1; ii+)pdiiagii = 0;cdiiagii = 0;/初始始化當(dāng)前棋棋局的皇后后所在位置置的各個(gè)沖沖突數(shù)for (intt i = 0; i N; ii+)collRii+;pdiiagGGetP(i, RRi)+;cdiiagGGetC(i, RRi)+;/用最小小沖突算法法調(diào)整第rrow行的的皇后的位位置(初始始化時(shí)每行行都有一個(gè)個(gè)皇后,調(diào)調(diào)整后仍然然在第roow行)/調(diào)整過過后cheeck一下下看看是否否已經(jīng)沒有有沖突,如如果沒有沖沖突(達(dá)到到終止?fàn)顟B(tài)態(tài)),返回回trueebool CSP_Queeens:Adjuust_rr
31、ow(iint row)int cur_col = Rrow;int optiimal_col = cuur_cool;/最佳列號(hào)號(hào),設(shè)置為為當(dāng)前列,然然后更新int min_confflictt = ccolooptimmal_ccol + pddiagGetPP(roww, opptimaal_cool) - 1+ ccdiaggGettC(roow, ooptimmal_ccol) - 11;/對(duì)對(duì)角線沖突突數(shù)為當(dāng)前前對(duì)角線皇皇后數(shù)減一一for (intt i = 0; i N; ii+) /逐逐個(gè)檢查第第row行行的每個(gè)位位置if (i = cuur_cool) coontinnue;
32、intt connflicct = coli + pdiiagGGetP(row, i) + cddiagGetCC(roww, i);if (connflicct min_confflictt) miin_coonfliict = connflicct;opptimaal_cool = i;if (optiimal_col != ccur_ccol) /要要更新cool,pddiag,cdiaagcollcurr_coll-;pdiiagGGetP(row, cur_col)-;cdiiagGGetC(row, cur_col)-;collopttimall_coll+;pdiiagGGet
33、P(row, optiimal_col)+;cdiiagGGetC(row, optiimal_col)+;Rrrow = opptimaal_cool;if (collcurr_coll = 1 & coolopptimaal_cool = 1& pdiiagGGetP(row, optiimal_col) = 1 & cddiagGetCC(roww, opptimaal_cool) = 11) reeturnn Quaalifyy();/quaalifyy相對(duì)更耗耗時(shí),所以以只在滿足足上面基本本條件后才才檢查/當(dāng)前前點(diǎn)就是最最佳點(diǎn),一一切都保持持不變r(jià)etuurn falsse;/如果果都沒變的的話,肯定定不滿足終終止條件,否
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)L肉堿鹽酸鹽行業(yè)運(yùn)行現(xiàn)狀及投資發(fā)展前景預(yù)測(cè)報(bào)告
- 2024年鄂州職業(yè)大學(xué)高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
- 2025年滬科版共同必修2物理上冊(cè)階段測(cè)試試卷
- 2024版廣告投放代理合同
- 2025年度鮮豬肉冷鏈配送及售后服務(wù)保障協(xié)議3篇
- 2024版地方酒水分銷商代理協(xié)議版B版
- 2024年版物業(yè)服務(wù)協(xié)議補(bǔ)充協(xié)議專業(yè)模板一
- 2025年人教版選擇性必修1化學(xué)上冊(cè)月考試卷含答案
- 二零二五年度魚塘休閑漁業(yè)發(fā)展合作協(xié)議3篇
- 二手房交易2024法律協(xié)議模板一
- 2025寒假散學(xué)典禮(休業(yè)式)上校長(zhǎng)精彩講話:以董宇輝的創(chuàng)新、羅振宇的堅(jiān)持、馬龍的熱愛啟迪未來
- 安徽省示范高中2024-2025學(xué)年高一(上)期末綜合測(cè)試物理試卷(含答案)
- 安徽省合肥市包河區(qū)2023-2024學(xué)年九年級(jí)上學(xué)期期末化學(xué)試題
- 《酸堿罐區(qū)設(shè)計(jì)規(guī)范》編制說明
- PMC主管年終總結(jié)報(bào)告
- 售樓部保安管理培訓(xùn)
- 倉(cāng)儲(chǔ)培訓(xùn)課件模板
- 2025屆高考地理一輪復(fù)習(xí)第七講水循環(huán)與洋流自主練含解析
- Art285 中國(guó)視覺藝術(shù)史
- 中小學(xué)道德與法治高級(jí)教師職稱評(píng)審答辯題目與答案
- 項(xiàng)目前期投標(biāo)文件技術(shù)標(biāo)
評(píng)論
0/150
提交評(píng)論