91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 415KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-13
  • 語言: 其他
  • 標(biāo)簽:

資源簡介

人工智能-CSP最小沖突法解決n皇后問題,(中國地質(zhì)大學(xué),計算機(jī)學(xué)院~~)

資源截圖

代碼片段和文件信息


#include“CSPAlgorithms.h“

#include?
#include?
#include?
#include
using?namespace?std;



CSP_Queens::CSP_Queens(int?numOfQueens)
{
srand((unsigned)time(NULL));

N?=?numOfQueens;
row?=?new?int[N];
col?=?new?int[N];
pdiag=new?int[2?*?N];
cdiag=new?int[2?*?N];
R=new?int[N];
}

CSP_Queens::~CSP_Queens()
{
if?(NULL?!=?row)delete[]row;
if?(NULL?!=?col)delete[]col;
if?(NULL?!=?pdiag)delete[]pdiag;
if?(NULL?!=?cdiag)delete[]cdiag;
if?(NULL?!=?R)delete[]R;
}
int?CSP_Queens::swap(int?&a?int?&b)
{
int?t?=?a;?a?=?b;?b?=?t;
return?0;
}
//
int?CSP_Queens::GetP(int?row?int?col)
{
return?row?-?col?+?N?-?1;
}

int?CSP_Queens::GetC(int?row?int?col)
{
return?row?+?col;
}
//返回begin?begin?+?1?...??end?-?1?這end?-?begin個數(shù)中的隨機(jī)的一個
int?CSP_Queens::My_rand(int?begin?int?end)//左閉右開[begin?end)
{
return?rand()?%?(end?-?begin)?+?begin;
}
//原地shuffle算法,算法導(dǎo)論中的randomize?in?place算法
void?CSP_Queens::Randomize(int?a[]?int?begin?int?end)//?左閉右開
{
for?(int?i?=?begin;?i?<=?end?-?2;?i++){
int?x?=?My_rand(i?end);
swap(a[i]?a[x]);
}
}
//初始化皇后的擺放,同時初始化rowcolpdiagcdiag數(shù)組
void?CSP_Queens::Init()
{
for?(int?i?=?0;?i? R[i]?=?i;
}
//下面隨機(jī)抽取調(diào)換兩行皇后位置
Randomize(R?0?N);//初始化N個皇后對應(yīng)的R數(shù)組為0~N-1的一個排列,
//此時?即沒有任意皇后同列,也沒有任何皇后同行
for?(int?i?=?0;?i? row[i]?=?1;//每行恰好一個皇后
col[i]?=?0;
}
for?(int?i?=?0;?i? pdiag[i]?=?0;
cdiag[i]?=?0;
}
//初始化當(dāng)前棋局的皇后所在位置的各個沖突數(shù)
for?(int?i?=?0;?i? col[R[i]]++;
pdiag[GetP(i?R[i])]++;
cdiag[GetC(i?R[i])]++;
}
}


//用最小沖突算法調(diào)整第row行的皇后的位置(初始化時每行都有一個皇后,調(diào)整后仍然在第row行)
//調(diào)整過后check一下看看是否已經(jīng)沒有沖突,如果沒有沖突(達(dá)到終止?fàn)顟B(tài)),返回true
bool?CSP_Queens::Adjust_row(int?row)
{
int?cur_col?=?R[row];
int?optimal_col?=?cur_col;//最佳列號,設(shè)置為當(dāng)前列,然后更新
int?min_conflict?=?col[optimal_col]?+?pdiag[GetP(row?optimal_col)]?-?1
+?cdiag[GetC(row?optimal_col)]?-?1;//對角線沖突數(shù)為當(dāng)前對角線皇后數(shù)減一
for?(int?i?=?0;?i? if?(i?==?cur_col)?{
continue;
}
int?conflict?=?col[i]?+?pdiag[GetP(row?i)]?+?cdiag[GetC(row?i)];
if?(conflict? min_conflict?=?conflict;
optimal_col?=?i;
}
}
if?(optimal_col?!=?cur_col)?{//要更新colpdiagcdiag
col[cur_col]--;
pdiag[GetP(row?cur_col)]--;
cdiag[GetC(row?cur_col)]--;

col[optimal_col]++;
pdiag[GetP(row?optimal_col)]++;
cdiag[GetC(row?optimal_col)]++;
R[row]?=?optimal_col;
if?(col[cur_col]?==?1?&&?col[optimal_col]?==?1
&&?pdiag[GetP(row?optimal_col)]?==?1?&&?cdiag[GetC(row?optimal_col)]?==?1)?{
return?Qualify();//qualify相對更耗時,所以只在滿足上面基本條件后才檢查
}
}
//當(dāng)前點(diǎn)就是最佳點(diǎn),一切都保持不變
return?false;//如果都沒變的話,肯定不滿足終止條件,否則上一次就應(yīng)該返回true并終止了
}

//檢查沖突
bool?CSP_Queens::Qualify()
{
for?(int?i?=?0;?i? if?(col[R[i]]?!=?1?||
pdiag[GetP(i?R[i])]?!=?1?||
cdiag[GetC(i?R[i])]?!=?1)?{
return?false;
}
}
return?true;
}
void?CSP_Queens:

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????4026??2015-11-14?18:18??CSPAlgorithms\CSPAlgorithms\CSPAlgorithms.cpp

?????文件???????1816??2015-11-14?11:56??CSPAlgorithms\CSPAlgorithms\CSPAlgorithms.h

?????文件???????4215??2015-11-14?11:56??CSPAlgorithms\CSPAlgorithms\CSPAlgorithms.vcxproj

?????文件???????1187??2015-11-14?11:56??CSPAlgorithms\CSPAlgorithms\CSPAlgorithms.vcxproj.filters

?????文件???????1671??2015-11-14?19:34??CSPAlgorithms\CSPAlgorithms\Debug\CSPAlgorithms.log

?????文件?????162801??2015-11-14?18:18??CSPAlgorithms\CSPAlgorithms\Debug\CSPAlgorithms.obj

?????文件???????1538??2015-11-14?19:34??CSPAlgorithms\CSPAlgorithms\Debug\CSPAlgorithms.tlog\cl.command.1.tlog

?????文件??????25442??2015-11-14?19:34??CSPAlgorithms\CSPAlgorithms\Debug\CSPAlgorithms.tlog\CL.read.1.tlog

?????文件???????2438??2015-11-14?19:34??CSPAlgorithms\CSPAlgorithms\Debug\CSPAlgorithms.tlog\CL.write.1.tlog

?????文件????????204??2015-11-14?19:34??CSPAlgorithms\CSPAlgorithms\Debug\CSPAlgorithms.tlog\CSPAlgorithms.lastbuildstate

?????文件???????2938??2015-11-14?19:34??CSPAlgorithms\CSPAlgorithms\Debug\CSPAlgorithms.tlog\link.command.1.tlog

?????文件???????3046??2015-11-14?19:34??CSPAlgorithms\CSPAlgorithms\Debug\CSPAlgorithms.tlog\link.read.1.tlog

?????文件????????844??2015-11-14?19:34??CSPAlgorithms\CSPAlgorithms\Debug\CSPAlgorithms.tlog\link.write.1.tlog

?????文件?????164483??2015-11-14?19:34??CSPAlgorithms\CSPAlgorithms\Debug\Source.obj

?????文件?????363520??2015-11-14?19:34??CSPAlgorithms\CSPAlgorithms\Debug\vc120.idb

?????文件?????348160??2015-11-14?19:34??CSPAlgorithms\CSPAlgorithms\Debug\vc120.pdb

?????文件???????4940??2015-11-14?18:21??CSPAlgorithms\CSPAlgorithms\Source.cpp

?????文件????????985??2015-11-14?00:45??CSPAlgorithms\CSPAlgorithms.sln

????..A..H.?????32256??2015-11-14?20:13??CSPAlgorithms\CSPAlgorithms.v12.suo

?????文件??????72192??2015-11-14?19:34??CSPAlgorithms\Debug\CSPAlgorithms.exe

?????文件?????570068??2015-11-14?19:34??CSPAlgorithms\Debug\CSPAlgorithms.ilk

?????文件?????904192??2015-11-14?19:34??CSPAlgorithms\Debug\CSPAlgorithms.pdb

?????目錄??????????0??2015-11-14?19:34??CSPAlgorithms\CSPAlgorithms\Debug\CSPAlgorithms.tlog

?????目錄??????????0??2015-11-14?19:34??CSPAlgorithms\CSPAlgorithms\Debug

?????目錄??????????0??2015-11-14?18:21??CSPAlgorithms\CSPAlgorithms

?????目錄??????????0??2015-11-14?12:06??CSPAlgorithms\Debug

?????目錄??????????0??2015-11-14?00:46??CSPAlgorithms

-----------?---------??----------?-----??----

??????????????2672962????????????????????27



............此處省略0個文件信息

評論

共有 條評論