xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

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

資源簡介

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

資源截圖

代碼片段和文件信息


#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個數中的隨機的一個
int?CSP_Queens::My_rand(int?begin?int?end)//左閉右開[begin?end)
{
return?rand()?%?(end?-?begin)?+?begin;
}
//原地shuffle算法,算法導論中的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數組
void?CSP_Queens::Init()
{
for?(int?i?=?0;?i? R[i]?=?i;
}
//下面隨機抽取調換兩行皇后位置
Randomize(R?0?N);//初始化N個皇后對應的R數組為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;
}
//初始化當前棋局的皇后所在位置的各個沖突數
for?(int?i?=?0;?i? col[R[i]]++;
pdiag[GetP(i?R[i])]++;
cdiag[GetC(i?R[i])]++;
}
}


//用最小沖突算法調整第row行的皇后的位置(初始化時每行都有一個皇后,調整后仍然在第row行)
//調整過后check一下看看是否已經沒有沖突,如果沒有沖突(達到終止狀態),返回true
bool?CSP_Queens::Adjust_row(int?row)
{
int?cur_col?=?R[row];
int?optimal_col?=?cur_col;//最佳列號,設置為當前列,然后更新
int?min_conflict?=?col[optimal_col]?+?pdiag[GetP(row?optimal_col)]?-?1
+?cdiag[GetC(row?optimal_col)]?-?1;//對角線沖突數為當前對角線皇后數減一
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相對更耗時,所以只在滿足上面基本條件后才檢查
}
}
//當前點就是最佳點,一切都保持不變
return?false;//如果都沒變的話,肯定不滿足終止條件,否則上一次就應該返回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個文件信息

評論

共有 條評論