久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

人工智能與專家系統課程設計解讀

時間:2019-05-13 01:50:06下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《人工智能與專家系統課程設計解讀》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《人工智能與專家系統課程設計解讀》。

第一篇:人工智能與專家系統課程設計解讀

目錄

1.設計任務 1.1 設計題目 1.2設計要求 1.3設計任務 2.方案設計 2.1原理

2.2 具體設計方法 3.系統實施

3.1 系統開發環境 3.2系統主要功能介紹 3.3處理流程圖 3.4 核心源程序 3.5系統運行結果 4.開發心得

4.1設計存在的問題

4.2進一步改進提高的設想 4.3經驗和體會 5.參考文獻 1.設計任務 1.1 設計題目

在一個3*3的方棋盤上放置著1,2,3,4,5,6,7,8八個數碼,每個數碼占一格,且有一個空格。這些數碼可以在棋盤上移動,該問題稱八數碼難題或者重排九宮問題。

1.2 設計要求

其移動規則是:與空格相鄰的數碼方格可以移入空格?,F在的問題是:對于指定的初始棋局和目標棋局,給出數碼的移動序列。

1.3 設計任務

利用人工智能的圖搜索技術進行搜索,解決八數碼問題來提高在推理中的水平,同時進行新方法的探討。

2.方案設計 2.1 原理

八數碼問題是個典型的狀態圖搜索問題。搜索方式有兩種基本的方式,即樹式搜索和線式搜索。搜索策略大體有盲目搜索和啟發式搜索兩大類。盲目搜索就是無“向導”的搜索,啟發式搜索就是有“向導”的搜索。

2.2 具體設計方法

啟發式搜索

由于時間和空間資源的限制,窮舉法只能解決一些狀態空間很小的簡單問題,而對于那些大狀態空間的問題,窮舉法就不能勝任,往往會導致“組合爆炸”。所以引入啟發式搜索策略。啟發式搜索就是利用啟發性信息進行制導的搜索。它有利于快速找到問題的解。由八數碼問題的部分狀態圖可以看出,從初始節點開始,在通向目標節點的路徑上,各節點的數碼格局同目標節點相比較,其數碼不同的位置個數在逐漸減少,最后為零。所以,這個數碼不同的位置個數便是標志一個節點到目標節點距離遠近的一個啟發性信息,利用這個信息就可以指導搜索。即可以利用啟發信息來擴展節點的選擇,減少搜索范圍,提高搜索速度。

啟發函數設定。對于八數碼問題,可以利用棋局差距作為一個度量。搜索過程中,差距會逐漸減少,最終為零,為零即搜索完成,得到目標棋局。

3.系統實施

3.1 系統開發環境

Windows操作系統、SQL Server 200X

3.2 系統主要功能介紹

該搜索為一個搜索樹。為了簡化問題,搜索樹節點設計如下: struct Chess//棋盤

3.4 核心源程序

#include “stdio.h” #include “stdlib.h” #include “time.h” #include “string.h” #include #include using namespace std;

const int N=3;//3*3棋盤

const int Max_Step=30;//最大搜索深度

enum Direction{None,Up,Down,Left,Right};//方向 struct Chess//棋盤 { int cell[N][N];//數碼數組

int Value;//評估值

Direction BelockDirec;//所屏蔽方向

struct Chess * Parent;//父節點 };

//打印棋盤

void PrintChess(struct Chess *TheChess){ printf(“----------n”);for(int i=0;i

printf(“t”);

for(int j=0;j

{

printf(“%dt”,TheChess->cell[i][j]);

}

printf(“n”);} printf(“tttt差距:%dn”,TheChess->Value);}

break;case Left:

t_j++;

if(t_j>=N)

AbleMove=false;

break;case Right:

t_j--;

if(t_j<0)

AbleMove=false;

break;};if(!AbleMove)//不可以移動則返回原節點

{

return TheChess;}

if(CreateNewChess){

NewChess=new Chess();

for(int x=0;x

{

for(int y=0;y

NewChess->cell[x][y]=TheChess->cell[x][y];

} } else

NewChess=TheChess;NewChess->cell[i][j]=NewChess->cell[t_i][t_j];NewChess->cell[t_i][t_j]=0;

return NewChess;}

//初始化一個初始棋盤

struct Chess * RandomChess(const struct Chess * TheChess)

p=NULL;queue Queue1;Queue1.push(Begin);//搜索

do{

p1=(struct Chess *)Queue1.front();

Queue1.pop();

for(int i=1;i<=4;i++)//分別從四個方向推導出新子節點

{

Direction Direct=(Direction)i;

if(Direct==p1->BelockDirec)//跳過屏蔽方向

continue;

p2=MoveChess(p1,Direct,true);//移動數碼

if(p2!=p1)//數碼是否可以移動

{

Appraisal(p2,Target);//對新節點估價

if(p2->Value<=p1->Value)//是否為優越節點

{

p2->Parent=p1;

switch(Direct)//設置屏蔽方向,防止往回推

{

case Up:p2->BelockDirec=Down;break;

case Down:p2->BelockDirec=Up;break;

case Left:p2->BelockDirec=Right;break;

case Right:p2->BelockDirec=Left;break;

}

Queue1.push(p2);//存儲節點到待處理隊列

if(p2->Value==0)//為0則,搜索完成{

p=p2;

i=5;

}

}

else

{

//打印

if(T){

/*把路徑倒序*/

Chess *p=T;

stackStack1;

while(p->Parent!=NULL)

{

Stack1.push(p);

p=p->Parent;

}

printf(“搜索結果:n”);

while(!Stack1.empty())

{

PrintChess(Stack1.top());

Stack1.pop();

}

printf(“n完成!”);}else

printf(“搜索不到結果.深度為%dn”,Max_Step);

scanf(“%d”,T);} 3.5 系統運行結果

4.開發心得

4.1 設計存在的問題

完全能解決簡單的八數碼問題,但對于復雜的八數碼問題還是無能為力。4.2 進一步改進提高的設想

可以改變數碼規模(N),來擴展成N*N的棋盤,即擴展為N數碼問題的求解過程。

2、內存泄漏。由于采用倒鏈表的搜索樹結

05.參考文獻

[1]王汝傳.計算機圖形學[M].北京:人民郵電出版社,1999:123-130.[2]劉榴娣,劉明奇,黨長民.實用數字圖像處理[M].北京:北京理工大學出版,2000:12-25..[3]丁兆海.Delphi基礎教程[M].北京:電子工業出版社,1999.[4]王小華.Delphi 5程序設計與控件參考[M].北京:電子工業出版社,1999:70-120.[5]趙子江.多媒體技術基礎[M].北京:機械工業出版社,2001:118-130.[6]段來盛,鄭城榮,曹恒.Delphi實戰演練[M].北京:人民郵政出版社,2002:80-95.

讀書的好處

1、行萬里路,讀萬卷書。

2、書山有路勤為徑,學海無涯苦作舟。

3、讀書破萬卷,下筆如有神。

4、我所學到的任何有價值的知識都是由自學中得來的。——達爾文

5、少壯不努力,老大徒悲傷。

6、黑發不知勤學早,白首方悔讀書遲?!佌媲?/p>

7、寶劍鋒從磨礪出,梅花香自苦寒來。

8、讀書要三到:心到、眼到、口到

9、玉不琢、不成器,人不學、不知義。

10、一日無書,百事荒廢?!悏?/p>

11、書是人類進步的階梯。

12、一日不讀口生,一日不寫手生。

13、我撲在書上,就像饑餓的人撲在面包上。——高爾基

14、書到用時方恨少、事非經過不知難。——陸游

15、讀一本好書,就如同和一個高尚的人在交談——歌德

16、讀一切好書,就是和許多高尚的人談話?!芽▋?/p>

17、學習永遠不晚?!郀柣?/p>

18、少而好學,如日出之陽;壯而好學,如日中之光;志而好學,如炳燭之光。——劉向

19、學而不思則惘,思而不學則殆?!鬃?/p>

20、讀書給人以快樂、給人以光彩、給人以才干?!喔?/p>

第二篇:人工智能與專家系統感想

姓名:萬偉

學號:1120100924

人工智能與專家系統感想

人工智能(Artificial Intelligence),英文縮寫為AI。它是研究、開發用于模擬、延伸和擴展人的智能的理論、方法、技術及應用系統的一門新的技術科學。人工智能是計算機科學的一個分支,它企圖了解智能的實質,并生產出一種新的能以人類智能相似的方式做出反應的智能機器,該領域的研究包括機器人、語言識別、圖像識別、自然語言處理和專家系統等。

人工智能技術導論這門課的學習,讓我知道了人工智能從誕生發展到今天經歷了一條漫長的路,許多科研人員為此而不懈努力。人工智能的開始可以追溯到電子學出現以前。象布爾和其他一些哲學家和數學家 建立的理論原則后來成為人工智能邏輯學的基礎。而人工智能真正引起 研究者的興趣則是1943年計算機發明以后的事。技術的發展最終使得人們可以仿真 人類的智能行為,至少看起來不太遙遠。接下來的四十年里,盡管碰到許多阻礙,人工智能仍然從最初只有十幾個研究者成長到現在數以千計的工程師和專家在研究; 從一開始只有一些下棋的小程序到現在的用于疾病診斷的專家系統,人工智能的發展有目共睹。

人工智能經過幾十年的發展,其應用在不少領域得到發展,在我們的日常生活和學習當中也有許多地方得到應用。我通過網絡查找,知道了以下領域的人工智能的發展。

專家系統是一種模擬人類專家解決領域問題的計算機程序系統。專家系統內部含有大量的某個領域的專家水平的知識與經驗,能夠運用人類專家的知識和解決 問題的方法進行推理和判斷,模擬人類專家的決策過程,來解決該領域的復雜問題。專家系統是人工智能應用研究最活躍和最廣泛的應用領域之一,涉及到社會各個 方面,各種專家系統已遍布各個專業領域,取得很大的成功。根據專家系統處理的問題的類型,把專家系統分為解釋型、診斷型、調試型、維修型、教育型、預測 型、規劃型、設計型和控制型等10種類型。具體應用就很多了,例如血液凝結疾病診斷系統、電話電纜維護專家系統、花布圖案設計和花布印染專家系統等等。為了實現專家系統,必須要存儲有該專門領域中經過事先總結、分析并按某種模式表示的專家知識(組成知識庫),以及擁有類似于領域專家解決實際問題的 推理機制(構成推理機)。系統能對輸入信息進行處理,并運用知識進行推理,做出決策和判斷,其解決問題的水平達到或接近專家的水平,因此能起到專家或專家 助手的作用。

開發專家系統的關鍵是表示和運用專家知識,即來自領域專家的己被證明對解決有關領域內的典型問題有用的事實和過程。目前,專家系統主要采用基于規則 的知識表示和推理技術。由于領域的知識更多是不精確或不確定的,因此,不確定的知識表示與知識推理是專家系統開發與研究的重要課題。此外,專家系統開發工 具的研制發展也很迅速,這對擴大專家系統的應用范圍,加快專家系統的開發過程,將起到積極地促進作用。隨著計算機科學技術整體水平的提高,分布式專家系 統、協同式專家系統等新一代專家系統的研究也發展很快。在新一代專家系統中,不但采用基于規則的推理方法,而且采用了諸如人工神經網絡的方法與技術。

一、人工智能與專家系統應用領域 1在管理系統中的應用

人工智能應用于企業管理的意義主要不在于提高效率,而是用計算機實現人們非常需要做,但工業工程信息技術是靠人工卻做不了或是很難做到的事情。智能教學系統(ITS)是人工智能與教育結合的主要形式,也是今后教學系統的發展方向。信息技術的飛速發展以及新的教學系統開發模式的提出和不斷完善,推動人們綜合運用超媒體技術、網絡基礎和人工智能技術區開發新的教學系統,計算機智能教學系統就是其中的典型代表。它包含學生模塊、教師模塊,體現了教學系統開發的全部內容,擁有著不可比擬的優勢和極大的吸引力。2在工程領域的應用

醫學專家系統是人工智能和專家系統理論和技術在醫學領域的重要應用,具有極大的科研和應用價值,它可以幫助醫生解決復雜的醫學問題,作為醫生診斷、治療的輔助工具。目前,醫學智能系統已通過其在醫學影像方面的重要作用,從而應用于內科、骨科等多個醫學領域中,并在不斷發展完善中。

3在技術研究中的應用 人工智能在電子技術領域的應用可謂由來已久。隨著網絡的迅速發展,網絡技術的安全是我們關心的重點,因此我們必須在傳統技術的基礎上進行網絡安全技術的改進和變更,大力發展數據挖掘技術、人工免疫技術等高效的AI技術,開發更高級AI通用和專用語言,和應用環境以及開發專用機器,而與人工智能技術則為我們提供了可能性。4人工智能在現實中的應用。

AI系統是設計出的一種計算機程序,這種程序具有某些像人和動物智能一樣的功能。在過去的30多年中,已經建立了一些具有一定“智能”的AI系統,例如下棋程序、定理證明系統、集成電路設計與分析系統、自然語言翻譯系統、智能信息檢索系統、疾病診斷系統等 在一年一度AT&T實驗室舉行的機器人足球賽中,每支球隊的“球員”都裝備上了AI軟件和許多感應器,它們都很清楚自己該踢什么位置,同時也明白有些情況下不能死守崗位。盡管現在的AI技術只能使它們大部分時間處于個人盤帶的狀態,但它們傳接配合的能力正在以很快的速度改進。5.機器翻譯

機器翻譯是利用計算機把一種自然語言轉變成另一種自然語言的過程,用以完成這一過程的軟件系統叫做機器翻譯系統。幾十年來,國內外許多專家、學者為 機器翻譯的研究付出了大量的心血和汗水。雖然至今還沒有一個實用、全面、高質量的自動翻譯系統出現,不過也取得了很大的進展,特別是作為人們的輔助翻譯工 具,機器翻譯已經得到大多數人的認可。目前,國內的機器翻譯軟件不下百種,根據這些軟件的翻譯特點,大致可以分為三大類:詞典翻譯類、漢化翻譯類和專業翻 譯類。詞典類翻譯軟件代表是“金山詞霸”了,堪稱是多快好省的電子詞典,它可以迅速查詢英文單詞或詞組的詞義,并提供單詞的發音,為用戶了解單詞或詞組含 義提供了極大的便利。漢化翻譯軟件的典型代表是“東方快車2000”,它首先提出了“智能漢化”的概念,使翻譯軟件的輔助翻譯作用更加明顯。以“譯星”、“雅信譯霸”為代表的專業翻譯系統,是面對專業或行業用戶的翻譯軟件,但其專業翻譯的質量與人們的實用性還有不少差距,有人評價說“滿篇英文難不住,滿篇 中文看不懂”,該說法雖然比較極端,但機譯譯文的質量確實卻一直是個老大難問題。這里,我們不妨對現有的機譯和人譯過程作一比較,從中可以看出一些原因。

機器翻譯:

1.一句一句處理,上下文缺乏聯系;

2.對源語言的分析只是求解句法關系,完全不是意義上的理解;

3.缺乏領域知識,從計算機到醫學,從化工到法律都通用,就換專業詞典;

4.譯文轉換是基于源語言的句法結構的,受源語言的句法結構的束縛;

5.翻譯只是句法結構的和詞匯的機械對應。

人工翻譯:

1.一般會先通讀全文,會前后照應;

2.對源語言是求得意義上的理解;

3.只有專業翻譯人員,而沒有萬能翻譯人員;

4.譯文是基于他對源語言的理解,不受源語言的句法結構的束縛;

5.翻譯是一個再創造的過程。

在目前的情況下,計算機輔助翻譯應該是一個比較好的實際選擇。事實上,在很多領域中,計算機輔助人類工作的方式已經得到了廣泛的應用,例如CAD軟 件。如果計算機輔助技術用于語言的翻譯研究,應該同樣可以起到很大的輔助作用,這就是所謂的“計算機輔助翻譯”。它集機器記憶式翻譯、語法分析式翻譯和人 際交互式翻譯為一體,把翻譯過程中機械、重復、瑣碎的工作交給計算機來完成。這樣,翻譯者只需將精力集中在創造性的思考上,有利于工作效率的提高。

機器翻譯研究歸根結底是一個知識處理問題,它涉及到有關語言內的知識、語言間的知識、以及語言外的世界知識,其中包括常識和相關領域的專門知識。隨 著因特網的普及與發展,機器翻譯的應用前景十分廣闊。作為人類探索自己智能和操作知識的機制的窗口,機器翻譯的研究與應用將更加誘人。國際上有關專家分析 認為機器翻譯要想達到類似人工翻譯一樣的流暢程度,至少還要經歷15年時間的持續研究,但在人類對語言研究還沒有清楚“人腦是如何進行語言的模糊識別和判 斷”的情況下,機器翻譯要想達到100%的準確率是不可能的。

二、人工智能與專家系統的發展前景 1 人工智能的研究新課題

人工智能的長遠目標是要理解人類智能的機器,用機器模擬人類的智能。這是一個十分漫長的過程,人工智能研究者獎通過多種途徑、從不同的研究課題入手進行探索。

在近期,有幾方面的研究課題可供選擇:更完善更新的人工智能理論框架;自動或半自動的知識獲取工具;能實現海量高速存儲并具有學習功能的聯想知識庫;新型推理機制和推理機;分布式人工智能與協同式專家系統;智能控制與智能管理;智能機器人;人工智能機;新一代的腦模型。

2人機融合

人機融合是一個相當長的發展過程,它將伴隨技術進步,逐級逐步地向前發展。首先實現的是低級和局部的融合,近幾年人工智能科授的進步不斷證實了這種趨勢。如最近美國科學家就明確宣布,他們研制的“神經芯片”首先就是用于改善人的中樞神經功能,“使截癱患者丟掉手杖”。隨著人機融合的升級,最終將在地球上產生一種人機高度融合、高智慧、能自行繁殖(復制)的“新智體”(或曰“新人類”)。因此,文明人類的演化由于技術的影響將經歷自然進化——人工促進人智能的進化——人機融合體(新智體)的自行進化的辯證發展過程。在人機融合時代,出于物理目標的不同,將存在多種多樣、多層次的智能機(體),但具有怨茁級智能的應是人機融合體。當今人工智能科技和其他高科技的種種發展動向表明,在人類進入“信息社會”之后,將有一場規模巨大的“智能革命”,智能革命的環境是人工智能對人、對社會的廣泛而深入的影響,就像今天的微電子技術對信息革命的影響一樣。人工智能科技將滲透到社會各個領域,人類將對人工智能科技進行大規模的研究、開發和應用。

當今人工智能科技和其他高科技的種種發展動向表明,在人類進入“信息社會”之后,將有一場規模巨大的“智能革命”,智能革命的環境是人工智能對人、對社會的廣泛而深入的影響,就像今天的微電子技術對信息革命的影響一樣。人工智能科技將滲透到社會各個領域,人類將對人工智能科技進行大規模的研究、開發和應用。

總之,人工智能的應用前景一片的好,當然,挑戰也很多,只有科學不斷發展突破進步,我們才能真正的享受智能化帶給我們的樂趣?

第三篇:人工智能專家系統實驗

河南城建學院

《 人工智能 》實驗報告

實驗名稱:__實驗四 名稱實現一個基于產生式系統的小型專家系統(動物識別)成績: 專業班級: 0814112 學號: 081411202 姓名: xxxxxxxxxxxx 實 驗 日 期 : 2014 年 5 月 20 日

實驗器材:VC6.0軟件,多媒體計算機。

一、實驗目的

掌握產生式系統的運行機制和基于規則推理的基本方法。通過一個實例了解小型專家系統的結構、設計和實現過程,初步掌握專家系統的設計和實現方法。

二、實驗要求

設計并實現一個某領域的小型專家系統(動物識別),該系統能對輸入的詢問回答分類或預測的結果,并根據推理過程回答“為什么”或“怎樣得出該結論”的問題。

三、實驗步驟

(1)定義變量,包括變量名和變量的值。(2)建立規則庫,其方法是:(a)輸入規則的條件:每條規則至少有一個條件和一個結論,選擇變量名,輸入條件(符號);選擇變量值,按確定按鈕就完成了一條條件的輸入。重復操作,可輸入多條條件;

(b)輸入規則的結論:輸入完規則的條件后,就可以輸入規則的結論了,每條規則必須也只能有一個結論。選擇變量名,輸入條件(符號),選擇變量值,按確定按鈕就完成了一個結論的輸入。重復以上兩步,完成整個規則庫的建立。

(3)建立事實庫(總數據庫):建立過程同步驟2。重復操作,可輸入多條事實。

該動物識別專家系統由15條規則組成,可以識別七種動物,在15條規則中,共出現 30個概念(也稱作事實),共30個事實,每個事實給一個編號,從編 號從1到30,在規則對象中我們不存儲事實概念,只有該事實的編號,同樣規則的結論也是事實概念的編號,事實與規則的數據以常量表示,其結構如下:

char *feature[]={“有毛”,“產奶”,“有羽毛”,“會飛”,“會下蛋”,“吃肉”,“有犬齒”,“有爪”,“眼睛盯前方”,“有蹄”,“反芻”,“黃褐色”,“有斑點”,“有黑色條紋”,“長脖”,“長腿”,“不會飛”,“會游泳”,“黑白兩色”,“善飛”,“哺乳類”,“鳥類”,“肉食類”,“蹄類”,“企鵝”,“海燕”,“鴕鳥”,“斑馬”,“長頸鹿”,“虎”,“金錢豹”};存放規則的結構體: typedef struct

{ int relation[5];

int name;}Rule;存放產生式規則推理過程的數組: Rule rule[15]={ {{0,-1},20}, {{1,-1},20}, {{2,-1},21}, {{3,4,-1},21}, {{20,5,-1},22}, {{6,7,8,-1},22}, {{20,8,-1},23}, {{20,9,-1},23}, {{22,11,12,-1},30}, {{22,11,13,-1},29}, {{23,14,15,12,-1},28}, {{23,13,-1},27},//如果動物是蹄類(23),且有黑色條紋(13),則該動物對應事實數組的第27個“斑馬”

{{21,14,15,16,-1},26}, {{21,19,-1},25},//如果動物是鳥類(21),且是肉食類(19),則該動物對應事實數組的第25個“海燕”。

{{21,17,18,16,-1},24} };程序用編號序列的方式表達了產生式規則,如資料中規則14,如果動物是鳥,且是肉食類,則該動物對應事實數組的第二十五個“海燕”。如資料中規則12,如果動物是蹄類,且有黑色條紋,則該動物對應事實數組的第二十七個“斑馬”。

(4)按“開始”或“單步”按鈕即可。

此外,利用實例演示,可以運行系統默認的產生式系統,并且可以進行正反向推理。其他的可參見其幫助文件。

三、源代碼

#include #include using namespace std;char *animal[]={“企鵝”,“海燕”,“鴕鳥”,“斑馬”,“長頸鹿”,“虎”,“金錢豹”};char *feature[]={“有毛”,“產奶”,“有羽毛”,“會飛”,“會下蛋”,“吃肉”,“有犬齒”,“有爪”,“眼睛盯前方”,“有蹄”,“反芻”,“黃褐色”,“有斑點”,//0

“有黑色條紋”,“長脖”,“長腿”,“不會飛”,“會游泳”,“黑白兩色”,“善飛”,“哺乳類”,“鳥類”,“肉食類”,“蹄類”,//13

“企鵝”,“海燕”,“鴕鳥”,“斑馬”,“長頸鹿”,“虎”,“金錢豹”};

//24

typedef struct //存放規則的結構體 { int relation[5];

int name;}Rule;Rule rule[15]={ {{0,-1},20}, {{1,-1},20}, {{2,-1},21}, {{3,4,-1},21}, {{20,5,-1},22}, {{6,7,8,-1},22}, {{20,8,-1},23}, {{20,9,-1},23}, {{22,11,12,-1},30}, {{22,11,13,-1},29}, {{23,14,15,12,-1},28}, {{23,13,-1},27}, {{21,14,15,16,-1},26}, {{21,19,-1},25}, {{21,17,18,16,-1},24}};int flag[23]={0};//標記各個特征是否選擇 int IsAnimal(int a);int inference();void input();void menu();void menu(){ int i=0;

for(i=0;i<24;i++){

if(i%4==0&&i!=0)

{

cout<

}

printf(“%-3d.%-15s”,i,feature[i]);

} } void input(){ int ti=0;for(int i=0;i<24;i++){

flag[i]=0;} while(ti!=-1){

cout<<“n輸入選擇(-1結束):”;

cin>> ti;

if(ti>=0&&ti<=23)

flag[ti]=1;

else if(ti!=-1)

{

cout<<“輸入錯誤!請輸入0~23//notanimal=25

cin.clear();//清除流錯誤錯誤標

cin.sync();////////////清空輸入緩沖區

} } } int IsAnimal(int a){ if(a>=24&&a<=30)

return 1;

else

return 0;} int inference()//正向推理 {

int ti;

int i,j;

int tres;

cout<

for(i=0;i<15;i++)

{

j=0;

之間的數字!”<< endl;

ti=rule[i].relation[j];

while(ti!=-1)//-1作為結束

{

if(flag[ti]==0)

break;

j++;

ti=rule[i].relation[j];

}

if(ti==-1)//ti==-1代表規則滿足

{

tres=rule[i].name;

flag[tres]=1;

printf(“運用了規則%d : ”,i);

j=0;

while(rule[i].relation[j]!=-1)

{

cout<

j++;

}

cout<<“====> ”<

if(IsAnimal(tres))

{

return 1;

}

}

}

if(i==15)

{

cout<<“沒有這種動物”;

}

return-1;} void main(){

char q;

while(q!='n')

{

menu();

input();

inference();

cout<<“n繼續?(Y/N)”<

cin>>q;

system(“cls”);

} }

四、結果分析

1、若已知:動物是蹄類(23),且有黑色條紋(13),則結果:該動物對應事實數組的第27個“斑馬”。使用了推理規則12,即:{{23,13,-1},27},使用規則運行結果如圖1所示:

圖1

2、若已知:動物是鳥類(21),且是肉食類(19),則結果該動物對應事實數組的第25個“海燕”。使用了推理規則14,即:{{21,19,-1},25},使用規則運行結果如圖2所示:

圖2

五、心得體會

本實驗環境主要提供一個能夠實現模擬產生式專家系統的驗證、設計和開發的可視化操作平臺。使用戶既能用本系統提供的范例進行演示或驗證性實驗,也能夠用它來設計并調試自己的實驗模型。

通過這次實驗,我對產生式系統有了更深刻的認識。產生式系統是由一組規則組成的、能夠協同作用的推理系統。其模型是設計各種智能專家系統的基礎.產生式系統主要由規則庫、綜合數據庫和推理機三大部分組成。產生式系統用來描述若干個不同的以一個基本概念為基礎的系統,這個基本概念就是產生式規則或產生式條件和操作對。在產生式系統中,論域的知識分為兩部分:用事實表示靜態知識;用產生式規則表示推理過程和行為。專家系統的規則是由專家定的,在該實驗中,是由本人制定的。

教師評語:

教師簽名:

第四篇:人工智能課程設計(五子棋)解讀

《人工智能導論》課程報告

課題名稱: 五子棋

姓名: X X 學號:114304xxxx 課題負責人名(學號): X X114304xxxx 同組成員名單(學號、角色): x x1143041325 XXX1143041036

指導教師: 張建州 評閱成績: 評閱意見:

提交報告時間:2014年 1 月 9 日 課程名稱:人工智能原理及其應用 學生姓名:何兵 學生學號:1143041163

五子棋

計算機科學與技術 專業 學生 XXX 指導老師

張建州

[摘要] 人類之所以不斷在進步,是因為我們人類一直不斷的在思考,五子棋游戲程序的開發符合人類進步也是促進人類進步的一大動力之一。五子棋游戲程序讓人們方便快捷的可以下五子棋,讓人們在何時都能通過下棋來提高邏輯思維能力,同時也培養兒童的興趣以及愛好,讓孩子更加聰明。

同時,五子棋游戲程序的開發也使得五子棋這個游戲得到了廣泛的推廣,讓世界各地的人們知道五子棋,玩上五子棋,這已經不是局限。五子棋游戲程序使得越來越多的人喜歡上了五子棋,熱愛下五子棋,它是具有很好的帶動性的。

關鍵詞:五子棋

進步

思考

-1-課程名稱:人工智能原理及其應用 學生姓名:何兵 學生學號:1143041163

目錄

《人工智能導論》課程報告..................................................................................0 1 引言.....................................................................................................................3

1.1 五子棋簡介...........................................................................................3 1.2 五子棋游戲的發展與現狀......................................................................3 2 研究問題描述......................................................................................................4

2.1 問題定義...................................................................................................4 2.2 可行性研究...............................................................................................4 2.3 需求分析...................................................................................................5 2.4 總體設計...................................................................................................5 2.5 詳細設計...................................................................................................6 2.6編碼和單元測試........................................................................................6 3 人工智能技術......................................................................................................6 4 算法設計.............................................................................................................7

4.1α-β剪枝算法.............................................................................................7 4.2極大極小樹................................................................................................7 4.3深度優先搜索(DFS).............................................................................8 4.4靜態估值函數............................................................................................9 5 軟件設計和實現..................................................................................................9

5.1 數據結構定義...........................................................................................9 5.2 程序流程圖.............................................................................................17 6 性能測試...........................................................................................................18

6.1 程序執行結果.........................................................................................18 7 總結...................................................................................................................21 參考文獻...............................................................................................................21

-2-課程名稱:人工智能原理及其應用 學生姓名:何兵 學生學號:1143041163 1 引言

1.1 五子棋簡介

五子棋是一種兩人對弈的純策略型漢族棋類益智游戲,棋具與圍棋通用,由中國漢族人發明,起源于中國上古時代的傳統黑白棋種之一。主要流行于華人和漢字文化圈的國家以及歐美一些地區。

容易上手,老少皆宜,而且趣味橫生,引人入勝;不僅能增強思維能力,提高智力,而且富含哲理,有助于修身養性。已在各個游戲平臺有應用。

古代五子棋棋盤與圍棋棋盤是通用的,漢魏時為十七路(17×17)棋盤,至南北朝時即已流行十九路(19×19)棋盤,直至1931年出現所謂五子棋專用棋盤。

1.2 五子棋游戲的發展與現狀

目前,連珠這一棋類運動已迅速在國際上發展起來。外國人都十分看好這一不起眼的智力游戲,并認為五子棋不僅能提高思維、開發智力、手腦并用、修身養性 而且富含哲理,具有東方的神秘和西方的直觀,是中西文化的交匯點。許多國家的人對五子棋都有不同的愛稱,例如韓國人把五子棋稱之為“情侶棋”,言下之意是情人之間下五子棋有利于增加情感的交流;歐洲人稱之為“中老年棋”,表示五子棋適合中老年人的生理特點和思維方式;美洲人喜歡將五子棋稱之為“商業棋”,就是說商人談生意時可一邊下棋一邊談生意,棋下完了生意也談成了。由此可見,盡管國度不同,語言各異,但人們都可以借助五子棋這一簡單而又深奧的棋藝進行交流、比賽,增進友誼。

當前,有40多個國家和地區都在下五子棋,并有各種規模和級別的比賽。1989年8月在日本京都、1991年8月在俄羅斯聯邦的莫斯科、1993年8月在瑞典、1995年8月在愛沙尼亞的塔林分別舉行了第一、二、三、四屆世界錦標賽。除第三屆的冠軍是愛沙尼亞人之外,其余三屆的冠軍都是日本人。五子棋 的世界錦標賽,每兩年舉辦一次,其申國競爭也十分激烈。日本目前擁有自己的五子棋職業棋手,并且對連珠(五子棋)技術的研究也相當普遍和全面,就水平也正在日益增強。同時,五子棋的理論研究與探索也呈現蓬勃發展的勢頭,從1858年第一部五子棋專著問世以來,目前,全世界有2000多種五子棋的書籍及期刊,分別以日文、俄文、英文、瑞典文及中文出版發行。五子棋在我國的北京、上海、天津、云南、浙江、廣東、四川、湖北、遼寧、新疆、河北等?。▍^)市都有很大的發展。北京多次舉辦了北京地區的五子棋賽,如“思曼杯”、“京空杯”、“奇奇童杯”、“北京第六屆民族團結杯”和“北京第四豈民族運動會”的五子棋比賽。上海地區舉辦了“上文杯”五子棋大賽。云南省以及其他省市亦舉辦過許多五子棋比賽。所有這些賽事都越來越多地吸引了無數人的關注,表明了根植于中國的五子棋有著廣泛的群眾基礎,-3-課程名稱:人工智能原理及其應用 學生姓名:何兵 學生學號:1143041163 是群眾喜聞樂見的體育活動。

而現在,很多很多游戲平臺上面都有五子棋游戲供我們玩,任何游戲平臺上面只要有棋牌類游戲的,那么它就有五子棋在里面,網絡五子棋比賽,在聯眾,263,QQ游戲,UC里進行了10幾年了可見,五子棋游戲在網絡上面是非常火暴的,而且在棋牌游戲里面玩家人數排名總會占到很前面,不愧是風靡全球的棋牌游戲啊!在未來中,將會有越來越多的人關注五子棋,喜歡五子棋,那么將其變為商業化也會越來越多,而且還可以以教育孩子的方式來將其嵌套進去,或者用來做測試等等,可以說以后的五子棋游戲會是那么的精彩,那么的讓人憧憬。那么對于它的游戲開發和發展也將會上升到舉足輕重的地位去,它的發展會是相當之快的,就讓我們拭目以待吧。研究問題描述

2.1 問題定義

問題定義的一個的關鍵問題是“要解決的問題是什么”,這個是這個階段必須要明確要回答的問題。在沒將問題定義好,試圖準備下個階段的任務。這明顯是不成熟,甚至不可能的事。

本次系統設計中首先明確了需要解決的問題是五子棋AI算法,基本的要求是設計一款能夠實現人機對戰、人人對戰和禁手的五子棋游戲,提供一些基本的操作如退出系統,向后悔棋等操作,重點是放在AI算法的研究。而并不是美工設計,也不是為了提供各種操作豐富的接口。主要是通過這種可視化的界面探討AI,當然增加可玩性和美工會給系統潤色不少。

上面只是很粗略的明確大概的方向,嚴格按照軟件工程的方法這個階段需要生產一份書面報告。需要通過對系統的實際用戶訪問調查,扼要地寫出他對問題的理解,并在用戶和使用部門負責人的會議上認真討論這份書面報告,澄清含糊不精的地方,改正理解不正確的地方,最后得出一份雙方都滿意的文檔。本系統的需求很少也很明顯了。

2.2 可行性研究

這個階段要回答的關鍵問題:“對于上一個階段所確定的問題是否可行?”為了回答這個問題,我們需要進行一次大大壓縮和簡化了的系統分析和設計的過程,也就是在較抽象的高層次上進行的分析和設計的過程。

可行性研究應該比較簡短,這個階段的任務不是具體解決問題,而是研究問題的范圍,探索這個問題是否值得去解,是否有可行的解決辦法。

可行性研究應該比較簡短,這個階段的任務不是具體解決問題,而是研究問題的范圍,探索這個問題是否值得去解,是否有可行的解決辦法??尚行匝?/p>

-4-課程名稱:人工智能原理及其應用 學生姓名:何兵 學生學號:1143041163 究以后的那些階段將需要投入要多的人力物力。及時中止不值得投資的工程項目,可以避免更大的浪費。

根據這些基本的概念,我在技術上主要是通過相關文檔資料的查找后確定可行性,憑著大學期間打下厚實的專業科基礎,特別是數據結構和算法,能夠在這段時間理解通透并應該有所改進,后來證明是對的。利用剩下時間也應該來說也比較充裕的。經濟上暫不考慮。

下面主要從技術上進行分析:

工具: Java是一種可以撰寫跨平臺應用軟件的面向對象的程序設計語言,是由Sun Microsystems公司于1995年5月推出的Java程序設計語言和Java平臺(即JavaSE, JavaEE, JavaME)的總稱。Java 技術具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用于個人PC、數據中心、游戲控制臺、科學超級計算機、移動電話和互聯網,同時擁有全球最大的開發者專業社群。在全球云計算和移動互聯網的產業環境下,Java更具備了顯著優勢和廣闊前景。所以用java來編寫是一個很好的選擇。

算法:在這圖論搜索技術這方面,前人已有很成熟的算法。如粗糙的有深度優先算法(DFS)和廣度優先算法(BFS)這兩個基本的算法,關鍵需要解決的是能夠設計出一種高效的剪枝函數,減小搜索問題的規模。目前博弈類游戲中的人工智能基本都采用極大極小值方法這對我來說是個挑戰,而剪枝的則采用Alpha-Beta,通過豐富的文檔資料初步了解到這些技術已經很成熟了。我們有信心能解決好這個問題。

2.3 需求分析

人工智能的第一大成就是下棋程序,在下棋程度中應用的某些技術,如向前看幾步,把困難的問題分解成一些較容易的子問題,發展成為搜索和問題歸納這樣的人工智能基本技術。今天的計算機程序已能夠達到下各種方盤棋和國際象棋的錦標賽水平。但是,尚未解決包括人類棋手具有的但尚不能明確表達的能力。如國際象棋大師們洞察棋局的能力。另一個問題是涉及問題的原概念,在人工智能中叫做問題表示的選擇,人們常能找到某種思考問題的方法,從而使求解變易而解決該問題。到目前為止,人工智能程序已能知道如何考慮它們要解決的問題,即搜索解答空間,尋找較優解答。

在設計本系統時考慮到用戶需要的是一個操作簡便界面簡單的游戲軟件,同時要提供人機和人人這樣的功能,特別是人機部分,要考慮到不同級別的用戶,電腦智能不能太低需要有一定的智能下棋功能等等。所以采用α-β剪枝法算法時就是為了達到這些目標。

2.4 總體設計

這個階段必須回答的關鍵問題是:“概括地說,應該如何解決這個問題?”

-5-課程名稱:人工智能原理及其應用 學生姓名:何兵 學生學號:1143041163 首先,應該考慮幾種可能的解決方案。如,目標系統的一些主要功能是用計算機自動完成還是用人工完成;如果使用計算機,那么是使用批處理方式還是人機交互方式;信息存儲使用傳統的文件系統還是數據庫??。通常至少應該考慮下述幾類可能的方案:

低成本的解決方案。系統只能完成最必要的工作,不能多做一點額處的工作。本系統的最基本要求就是能夠實現必要的操作,其他額外的一些工作在后面完成

中等成本的解決方案。這樣的系統不僅能夠很好地完成預定的任務,使用起來很方便,而且可能還具有用戶沒有具體指定的某些功能和特點。雖然用戶沒有提出這些具體要求,但是系統分析員根據自己的知識和經驗斷定,這些附加的能力在實踐中將證明是很有價值的。

這個成本方案在完成上面的低成本方案后添加的。如增加保存棋局,美化界面,實現觀看電腦與電腦之間的對戰等功能。

高成本的“十全十美”的系統。這樣的系統具有用戶可能希望有的所有功能和特點。

結構設計的一條基本原理就是程序應該模塊化,也就是一個大程序應該由許多規模適中的模塊按合理的層次結構組織而成??傮w設計階段的第二項主要任務就是設計軟件的結構,也就是確定程序由哪些模塊組成以及模塊間的關系。通常用層次圖或結構圖描繪軟件的結構。

2.5 詳細設計

總體設計階段以比較抽象概括的方式提出了解決問題的辦法。詳細設計階段的任務就是把解法具體化,也就是回答下面這個關鍵問題:“應該怎樣具體地實現這個系統呢?”

這個階段的任務還不是編寫程序,而是設計出程序的詳細規格說明。這種規格說明的作用很類似于其他工程領域中工程師經常使用的工程藍圖,它們應該包含必要的細節,程序員可以根據它們寫出實際的程序代碼。

2.6編碼和單元測試

這個階段的關鍵任務是根據以上階段分析的軟件模型,編寫各個功能模塊。

要注意的是程序的擴張性和可讀性。以便以后軟件的升級修改。同時要仔細的測試每個功能編寫好的功能模塊。人工智能技術

人工智能也就是所謂的AI(Artificial Intelligence),它是一門很抽象的技術,-6-課程名稱:人工智能原理及其應用 學生姓名:何兵 學生學號:1143041163 AI程序的編寫不需要依據任何既定的思考模式或者規則。尤其是游戲中的AI可以完全依程序設計者本身的思考邏輯制作。我個人認為人工智能的核心應該是使計算機具有自動的處理事件的能力,而我們的所有的研究也應該圍繞著這一方向。我們今天討論的是策略類的人工智能。

策略類人工智能可以說是AI中比較復雜的一種,最常見的策略類AI游戲就是棋盤式游戲。在這類游戲中,通常的策略類AI程序都是使計算機判斷目前狀況下所有可走的棋與可能的獲勝狀況,并計算當前計算機可走棋步的獲勝分數或者玩家可走棋步的獲勝分數,然后再決定出一個最佳走法。本課程設計是基于AI中α-β剪枝算法的五子棋的博弈游戲,下面讓我們來具體介紹一下相關的內容。算法設計

4.1α-β剪枝算法

我們的程序主要是用α-β剪枝法實現的。其基本思想或算法是,邊生成博弈樹邊計算評估各節點的倒推值,并且根據評估出的倒推值范圍,及時停止擴展那些已無必要再擴展的子節點,即相當于剪去了博弈樹上的一些分枝,從而節約了機器開銷,提高了搜索效率。具體的剪枝方法如下:

(1)對于一個與節點MIN,若能估計出其倒推值的上確界β,并且這個β值不大于 MIN的父節點(一定是或節點)的估計倒推值的下確界α,即α≥β,則就不必再擴展該 MIN節點的其余子節點了(因為這些節點的估值對MIN父節點的倒推值已無任何影響 了)。這一過程稱為α剪枝。

(2)對于一個或節點MAX,若能估計出其倒推值的下確界α,并且這個α值不小于 MAX的父節點(一定是與節點)的估計倒推值的上確界β,即α≥β,則就不必再擴展該MAX節點的其余子節點了(因為這些節點的估值對MAX父節點的倒推值已無任何影響 了)。這一過程稱為β剪枝。

4.2極大極小樹

目前絕大部分的博弈類游戲中的人工算法都采用這種方法。假設己方為MAX點,對方則為MIN點。如果當層的節點為奇數時那么就為MAX層,同樣為偶數時就為MIN層。當在MAX層時,該層的值就應該為下一個MIN層中的最大一個的值。當在MIN層是,該層的值就應該為它子層MAX的最小的一個。通俗的說就是當輪到我方時,我們就應該選擇一個最有利于我們的點,預測對方可能下的最有利他方的點(相對我方來說就是最壞的點)。這樣反復計算下去就能夠得到根節點的最大值,這個點也就是我們最佳下棋點。在計算這個點時可以很明顯的看出這是一個不斷遞歸的過程,到達葉子節點時根據相關

-7-課程名稱:人工智能原理及其應用 學生姓名:何兵 學生學號:1143041163 的計算規則算出該值然后向上一層不斷的返回。下圖中矩形代表極大層,橢圓代表極小層。

4.3深度優先搜索(DFS)

在圖論中有兩個很重要的遍歷的方法,一個是深度優先搜索(DFS),另外一個是廣度優先搜索(BFS).這兩個方法的主要區別在于下一個節點的選擇。DFS首先選擇它的連接節點,若它的下個節點已經全部被遍歷過或者不存在的話。則向上返回到上一個節點,在遍歷其他的未被訪問過的點。很容易想到這要用到堆棧結構,使用一個遞歸來實現。而BFS則是逐個的遍歷它的聯接接點,將已經訪問過的點放入隊列中。然后再依次取出繼續這個過程。

DFS遍歷過程如下:

首先從A點出發訪問它的領接點B,因為B的領接點C,F均未被訪問過,所以B點選擇C(當然也可以選擇F點)作為下一個要訪問的點,C點的領接點是D,F選擇下個節點D,而D的鄰接點只有一個E且未被訪問過,就將E作為了它下個節點。這時因為E已經沒有可訪問的鄰點,所以向上一層返回到D,發現D也已經沒有可訪問的點了,繼續向上層返回到C,由于C的鄰節點F未被訪問過,那么就訪問F。所以整個過程的遍歷結果為:

-8-課程名稱:人工智能原理及其應用 學生姓名:何兵 學生學號:1143041163 A?B?E?C?F?D。

BFS的遍歷過程為A?B?E?C?F?D。

4.4靜態估值函數

當極大極小樹到達葉子節點時,需要估算一下當前盤面的值。這個就根據某個計算規則計算也即是估值函數。因為這個值是已經確定的所以稱為靜態。

當只有一個點時,并且相鄰的無對方的棋子或者不是邊界等“阻礙物” 就給他50,否則給予10。

當兩個點時,并且相鄰的無對方的棋子或者不是邊界等“阻礙物”給予1000,若存在一方有“阻礙物”則給以100,否則給予10。

當是活三的時候給予3600,當存在一邊被堵時,就給予500。否則給予10。當是活四的時候給以500000,當一邊被堵時,給予50000。否則給予10 當是五連子的時候就給予最高分1000000。最后判斷是否是己方的,若不是則給予負號。

靜態估值函數會很嚴重的影響到算法的智能,所以可根據在下棋的過程中不斷的做出調整,使其更加的合理。根據一些測試,這組靜態估值函數能夠很好的反映棋盤重要性指標。軟件設計和實現

5.1 數據結構定義

本程序定義15*15的五子棋棋盤,實現算法,在算法中采用的數據結構包括:int isChessOn[][]描述當前棋盤,0表示黑子,1表示白字,2表示無子;int pre[][]用來記錄棋點的x,y坐標。

由于本課程設計是基于Java語言開發的,在Java中只能用類來表示并實現所定義的數據結構。所以下面將用類來描述相應的數據結構及算法:

public class ChessPanel extends JPanel{ private ImageIcon map;

//棋盤背景位圖

private ImageIcon blackchess;

//黑子位圖

private ImageIcon whitechess;

//白子位圖

public int isChessOn [][];

//棋局

protected boolean win = false;

// 是否已經分出勝負

protected int win_bw;

// 勝利棋色

protected int deep = 3, weight = 7;

// 搜索的深度以及廣度

public int drawn_num = 110;

// 和棋步數

int chess_num = 0;

// 總落子數目

-9-課程名稱:人工智能原理及其應用 學生姓名:何兵 學生學號:1143041163

public int[][] pre = new int[drawn_num + 1][2];

// 記錄下棋點的x,y坐標

最多(drawn_num + 1)個

public int sbw = 0;

//玩家棋色黑色0,白色1

public int bw = 0;

// 當前應該下的棋色

0:黑色(默認),1:白色

// 邊界值,用于速度優化

protected int x_max = 15, x_min = 0;

protected int y_max = 15, y_min = 0;

protected boolean able_flag = true;

// 是否選擇禁手標志 0:無禁手

1:有禁手(默認

private int h;

//棋子長

private int w;

//棋子寬

private int insx;

//插入棋子的位置

private int insy;

private Point mousePoint;

//鼠標當前位置

private int winer;

//獲勝方

private boolean humanhuman=false;

//是否是人人對弈

private int plast=0;

//走了幾步了,public int BLACK_ONE;

//0表黑子

public int WHITE_ONE;

//1表白子

public int NONE_ONE;

//2表無子

public int N;

//棋盤邊長

//---------搜索當前搜索狀態極大值-//

//alpha 祖先節點得到的當前最小最大值,用于alpha 剪枝

//beta 祖先節點得到的當前最大最小值,用于beta 剪枝。

//step 還要搜索的步數

//return 當前搜索子樹極大值

protected int findMax(int alpha, int beta, int step){

int max = alpha;

if(step == 0){

return evaluate();

}

int[][] rt = getBests(1sbw)== 1)

//電腦可取勝

return 100 *(getMark(1)+ step*1000);

isChessOn[x][y] = 11);

isChessOn[x][y] = 2;

// 還原預設邊界值

x_min=temp1;

x_max=temp2;

y_min=temp3;

y_max=temp4;

if(t > max)

max = t;

//beta 剪枝

if(max >= beta)

return max;

}

return max;

}

//-----------------------搜索當前搜索狀態極小值--//

//alpha 祖先節點得到的當前最小最大值,用于alpha 剪枝

//beta 祖先節點得到的當前最大最小值,用于beta 剪枝

//step 還要搜索的步數

//return 當前搜索子樹極小值。

protected int findMin(int alpha, int beta, int step){

int min = beta;

if(step == 0){

return evaluate();

}

int[][] rt = getBests(sbw);

for(int i = 0;i < rt.length;i++){

int x = rt[i][0];

int y = rt[i][1];

int type = getType(x, y, sbw);

if(type == 1)

//玩家成5

return-100 *(getMark(1)+ step*1000);

// 預存當前邊界值

int temp1=x_min,temp2=x_max,temp3=y_min,temp4=y_max;

isChessOn[x][y] = sbw;

resetMaxMin(x,y);

int t = findMax(alpha, min, stepbwf);

if(able_flag && bwf==0 &&(type_1 == 20 || type_1 == 21 || type_1 == 22))// 禁手棋位置,不記錄

continue;

rt[n][0] = i;

rt[n][1] = j;

rt[n][2] = getMark(type_1)+ getMark(type_2);

n++;

-12-課程名稱:人工智能原理及其應用 學生姓名:何兵 學生學號:1143041163

}

// 對二維數組排序

Arrays.sort(rt, new ArrComparator());

int size = weight > n? n:weight;

int[][] bests = new int[size][3];

System.arraycopy(rt, 0, bests, 0, size);

return bests;

} //----------------------------計算指定方位上的棋型-------------------//

// x,y 方向線基準一點。

//ex,ey 指定方向步進向量。

// k 棋子顏色,0:黑色,1:白色

// 該方向上的棋子數目 以及 活度

private int[] count(int x, int y, int ex, int ey, int bwf){

// 該方向沒意義,返回0

if(!makesense(x, y, ex, ey, bwf))

return new int[] {0, 1};

// 正方向 以及 反方向棋子個數

int rt_1 = 1,rt_2 = 1;

// 總棋子個數

int rt = 1;

// 正方向 以及 反方向連子的活度

int ok_1 = 0,ok_2 =0;

// 總活度

int ok = 0;

// 連子中間有無空格

boolean flag_mid1 =false,flag_mid2 = false;

// 連子中間空格的位置

int flag_i1 = 1,flag_i2 = 1;

if(isChessOn[x][y]!= 2){

throw new IllegalArgumentException(“position x,y must be empty!..”);

}

int i;

// 往正方向搜索

for(i = 1;x + i * ex < 15 && x + i * ex >= 0 && y + i * ey < 15 && y + i * ey >= 0;i++){

if(isChessOn[x + i * ex][y + i * ey] == bwf)

rt_1++;

-13-課程名稱:人工智能原理及其應用 學生姓名:何兵 學生學號:1143041163

// 位置為空,若中空標志為false,則記為中空并繼續搜索

否則,break

else if(isChessOn[x + i * ex][y + i * ey] == 2){

if(!flag_mid1){

flag_mid1 = true;

flag_i1 = i;

}

else

break;

}

// 位置為對方棋子

else

break;

}

// 計算正方向活度,,// 最后一個位置不超過邊界

if(x + i * ex < 15 && x + i * ex >= 0 && y + i * ey < 15 && y + i * ey >= 0){

// 最后一個位置為空位 +1活

if(isChessOn[x + i * ex][y + i * ey] == 2){

ok_1++;

// 若是在尾部檢測到連續的空格而退出搜索,則不算有中空

if(rt_1 == flag_i1)

flag_mid1 = false;

// 若中空的位置在4以下 且 棋子數>=4,則這一邊的4非活

if(flag_mid1 && rt_1 > 3 && flag_i1 < 4){

ok_1--;

}

}

// 最后一個位置不是空格,且搜索了2步以上,若前一個是空格, 則不算中空,且為活的邊

else if(isChessOn[x + i * ex][y + i * ey]!= bwf && i >= 2)

if(isChessOn[x +(i-1)* ex][y +(i-1)* ey] == 2){

ok_1++;

flag_mid1 = false;

}

}

// 最后一個位置是邊界

搜索了2步以上,且前一個是空格, 則不算中空,且為活的邊

else if(i >= 2 && isChessOn[x +(i-1)* ex][y +(i-1)* ey] == 2){

-14-課程名稱:人工智能原理及其應用 學生姓名:何兵 學生學號:1143041163

ok_1++;

flag_mid1 = false;

}

// 往反方向搜索

for(i = 1;xi * ex < 15 && yi * ey < 15;i++){

if(isChessOn[xi * ey] == bwf)

ey >= 0){

rt_2++;

else if(isChessOn[xi * ey] == 2){

if(!flag_mid2){

flag_mid2 = true;

flag_i2 = i;

}

else

break;

}

else

break;} // 計算反方向活度

if(xi * ex >= 0 && yi * if(isChessOn[xi * ey] == 2){

ok_2++;

if(rt_2 == flag_i2)

flag_mid2 = false;

if(flag_mid2 && rt_2 > 3 && flag_i2 < 4){

ok_2--;

} } else if(isChessOn[xi * ey]!= bwf && i >= 2)

if(isChessOn[x(i-1)* ey] == 2){

ok_2++;

flag_mid2 = false;

} } else if(i >= 2 && isChessOn[x(i-1)* ey] == 2){ ok_2++;flag_mid2 = false;}

課程名稱:人工智能原理及其應用 學生姓名:何兵 學生學號:1143041163

//------------------分析棋子類型

// 兩邊都沒中空,直接合成

if(!flag_mid1 &&!flag_mid2){

rt = rt_1 + rt_21;

// 判斷中間的純連子數,在5以上,直接返回;為4,返回活4;

if(temp >= 5)

return new int[] {temp, 2};

if(temp == 4)

return new int[] {temp, 2};

// 先看有沒死4,再看有沒活3,剩下只能是死3

if(rt_1 + flag_i21 >= 4)

return new int[] {4, 1};

if(rt_1+flag_i2-1 == 3 && ok_1 > 0 || rt_2+flag_i1-1 == 3 && ok_2 > 0)

return new int[] {3, 2};

return new int[] {3, 1};

}

// 有一邊有中空

else {

// 總棋子數少于5,直接合成if(rt_1 + rt_21, ok_1 + ok_2};

// 多于5,先找成5,再找活4,剩下的只能是死4

else {

if(flag_mid1 && rt_2 + flag_i11, ok_2 + 1};

if(flag_mid2 && rt_1 + flag_i21, ok_1 + 1};

if(flag_mid1 &&(rt_2 + flag_i11 == 4 && ok_1 == 1 || flag_i2 == 4))

-16-課程名稱:人工智能原理及其應用 學生姓名:何兵 學生學號:1143041163

}

}

} return new int[] {4, 2};

return new int[] {4, 1};5.2 程序流程圖

-17-課程名稱:人工智能原理及其應用 學生姓名:何兵 學生學號:1143041163 6 性能測試

6.1 程序執行結果

1.初始界面

2.人機博弈

3.人人博弈

-18-課程名稱:人工智能原理及其應用 學生姓名:何兵 學生學號:1143041163

4.禁手選擇

5.悔棋選擇

-19-課程名稱:人工智能原理及其應用 學生姓名:何兵 學生學號:1143041163

6.規則界面

-20-課程名稱:人工智能原理及其應用 學生姓名:何兵 學生學號:1143041163 7 總結

本程序是使用α-β搜索的算法完成的一個簡單的五子棋博弈游戲。雖然α-βAlpha-Beta已經盡力做到細致、全面,但由于α-β搜索存在博弈樹算法中普遍存在的一個缺點?一隨著搜索層數的增加,算法的效率大大下降。所以該搜索的效率還是不怎么理想,五子棋程序的“智力”也不高。因此可以在上述程序的基礎上,針對五子棋本身的特點和規律對α-β搜索算法進行優化與修正,比如用啟發式搜索。還有就是雖然使用了禁手思維的算法,但是這并不能平衡先后手之間的差距,依然是“先行必勝”,這個問題還有待進一步解決。

參考文獻

[1] 明日科技.Java項目案例分析.清華大學出版社

[2](美)??藸栔?陳昊鵬 譯.Java編程思想.機械工業出版社-21-

讀書的好處

1、行萬里路,讀萬卷書。

2、書山有路勤為徑,學海無涯苦作舟。

3、讀書破萬卷,下筆如有神。

4、我所學到的任何有價值的知識都是由自學中得來的?!_爾文

5、少壯不努力,老大徒悲傷。

6、黑發不知勤學早,白首方悔讀書遲。——顏真卿

7、寶劍鋒從磨礪出,梅花香自苦寒來。

8、讀書要三到:心到、眼到、口到

9、玉不琢、不成器,人不學、不知義。

10、一日無書,百事荒廢?!悏?/p>

11、書是人類進步的階梯。

12、一日不讀口生,一日不寫手生。

13、我撲在書上,就像饑餓的人撲在面包上?!郀柣?/p>

14、書到用時方恨少、事非經過不知難。——陸游

15、讀一本好書,就如同和一個高尚的人在交談——歌德

16、讀一切好書,就是和許多高尚的人談話。——笛卡兒

17、學習永遠不晚?!郀柣?/p>

18、少而好學,如日出之陽;壯而好學,如日中之光;志而好學,如炳燭之光?!獎⑾?/p>

19、學而不思則惘,思而不學則殆?!鬃?/p>

20、讀書給人以快樂、給人以光彩、給人以才干?!喔?/p>

第五篇:人工智能與電子商務解讀

人工智能與電子商務

2013年6月16日

人工智能在電子商務中的應用

摘要:人工智能技術和電子商務的飛速發展推動了全球科技經濟領域的進步,基于人工智能技術的電子商務更趨向完美和成熟。隨著電子商務的不斷發張和人工智能的不斷完善,兩者在各自領域、各個層次的相互融合將更加緊密。作為各自的成功因素,電子商務和人工智能技術的融合必將成為一種關鍵技術。

關鍵詞:電子商務;人工智能;數據倉庫;數據挖掘

一、引言

電子商務的飛速發展給全球經濟帶來的沖擊是巨大的。基于人工智能技術的電子商務將能更好地為其發展帶來良好的基礎.這過程是電子商務向著良性發展的必然趨勢。本文從人工智能技術與電子商務的國內外動態人工智能技術在電子商務中的應川例子,以及數據挖掘技術在web上的應用等幾個方面對其進行論述。

二、人工智能

人工智能(artificialintelligence,AI)是在計算機科學、控制論、信息論、神經心理學、哲學、語言學、等多種學科研究的基礎上發展起來的一門綜合性很強的交叉科學,是一門新思想、新觀念、新理論、新技術不斷出現的新興科學以及正在迅速發展的前沿學科【1】。人工智能是研究使機器具備人所具有的智能功能的一門高新技術學科。其目的是模擬、延伸和擴展人的智能,以實現某些腦力勞動的自動化。實質上,它是開拓計算機應用、研制新一代計算機和擴展計算機應用領域的技術基礎,也是探索人腦奧秘的重要科學途徑。人工智能、原子能技術、空間技術,被稱2O世紀的三大尖端科技。進入21世紀后,人工智能仍是適應信息時代需求的關鍵技術之一。明確上述人工智能定義后,不難指明智能化與電腦化的區別。“人工智能”是指,采用人工能理論方法和技術,并具有某種或某些擬人智能特性或功能。有電腦后不一定采用人工智能方法,也不一定具有擬人智能特性,故不一定能被稱為“智能化”。

三、電子商務

電子商務,源于英文ELECTR0NICC0MMERCE,簡寫為EC,指的是利用簡單、快捷、低成本的電子通訊方式,買賣雙方不謀面地進行各種商貿活動?!?】其內容包含兩個方面:一是電子方式;二是商貿活動。電子商務可以通過多種電子通訊方式來完成,但是,現在人們所探討的電子商務主要是以EDI(電子數據交換)和INTER—NET來完成的。尤其是隨著INTERNET技術的日益成熟,電子商務真正的發展將是建立在INTERNET技術上的,所以也有人把電子商務簡稱為IC(INTERNETC0MMERCEo從貿易活動的角度分析,電子商務可以在多個環節實現,由此也可以將電子商務分為兩個層次,較低層次的電子商務如電子商情、電子貿易、電子合同等;最完整的也是最高級的電子商務應該是利用INTENET網絡能夠進行全部的貿易活動,即在網上將信息流、商流、資金流和部分的物流完整地實現,也就是說,你可以從尋找客戶開始,一直到洽談、訂貨、在線付(收)款、開據電子發票以至到電子報關、電子納稅等通過INTERNET一氣呵成。要實現完整的電子商務,還會涉及到很多方面,除了買家、賣家外,還要有銀行或金融機構、政府機構、認證機構、配送中心等機構的加入才行。由于參與電子商務中的各方在物理上是互不謀面的,因此整個電子商務過程并不是物理世界商務活動的翻版,網上銀行、在線電子支付等條件和數據加密、電子簽名等技術在電子商務中發揮著重要的、不可或缺的作用。

四、人工智能國內外的動態

從1955年正式提出人工智能學科算起40多年來人工智能學科取得了長足的發展.成為一門廣泛的交叉和前沿科學??偟恼f來人工智能的目的就是讓計算機這臺機器能夠像人一樣思考,如果希望做出一臺能夠思考的機器月B就必須知道什么是思考更進一步講就是什么是智慧。什么樣的機器才是智慧的呢,科學家已經作出了汽車火車飛機收音機等等.它們我們身體器官的功能但是能不能模仿人類大腦的功能呢7到目前為止我也僅僅知道這個裝在我們天靈蓋里面的東西是由數十億個神經細胞組成的器官.我們對這個東西知之甚少,模仿它或許是天下最困難的事情了當計算機出現后人類開始真正有了個可以模擬人類思維的工具在以后的歲月中無數科學家為這個目標努力著.現在人“商場現代化"2007年10月(上甸刊j總 整個數據倉庫系統是一個包含四個層次的體系結構。

(1)數據源。是數據倉庫系統的基礎,是整個系統的數據源泉通常包括企業內部信息和外部信息。內部信息包括存放于RDBMS中的各種業務處理數據和各類文檔數據;外部信息包括各類法律法規、市場信息和競爭對手的信息等等。(2).數據的存儲與管理。是整個數據倉庫系統的核心。數據倉庫的真正關鍵是數據的存儲和管理。數據倉庫的組織管理方式決定了它有別于傳統數據庫,同時也決定其對外部數據的表現形式。要決定采用什么產品和技術來建立數據倉庫的核心,則需要從數據倉庫的技術特點著手分析。針對現有各業務系統的數據,進行抽取、清理,并有效集成,按照主題進行組織。數據倉庫按照數據的覆蓋范圍可以分為企業級數據倉庫和部門級數據倉庫(通常稱為數據集市)。(3).OLAP(On—lineAnalysis&Processing)fJ~.務器。對分析

需要的數據進行有效集成,按多維模型予以組織,以便進行多角度、多層次的分析,并發現趨勢。其具體實現可以分為ROLAP、MOLAP和HOLAP。ROLAP基本數據和聚合數據均存放在RDBMS之中;MOLAP基本數據和聚合數據均存放于多維數據庫中;HOLAP基本數據存放于RDBMS之中,聚合數據存放于多維數據庫中。

(4).前端工具。主要包括各種報表工具、查詢工具、數據分析工具、數據挖掘工具以及各種基于數據倉庫或數據集市的應用開發工具。其中,數據分析工具主要針對OLAP服務器;報表工具、數據挖掘工具主要針對數據倉庫。

2、數據倉庫的作用

數據倉庫究竟能幫我們干點什么?簡單地說,假設你用自動柜員機取200元,當你等待柜員機交易確認時,銀行可以查看一下你的賬號,告訴你現金賬上錢太多,應該換另一個賬號,以便獲得更多利息。如果銀行這么對待你,作為消費者你肯定會覺得這是一個好銀行。然而沒有數據倉庫,銀行就做不到這一點?,F在上網購物常常給人帶來意外的驚喜。網站在你不知不覺中記錄你的行蹤,抓到你的喜好。如果你在網上點擊一下襯衫,之后又看了一下書和褲子,網站就會記住你的點擊順序,記下你在每個產品上停留的時間以及你買了什么,沒買什么。這些信息都由數據倉庫保存整理。假如你買了褲子,沒買襯衫,下次你上網時,數據倉庫會跟你說,“歡迎再次光顧,上次您買了褲子,現在我們有一件襯衫可以優惠賣給你。你感興趣嗎?”顧客遇到這種情況,一定是又驚又喜。這就是數據倉庫的魅力。

數據倉庫及管理軟件的市場潛力十分巨大。用一句話說,新經濟的基礎是用互聯網武裝各種類型的公司,并使之自我發展,這個過程中產生許多數據。如果沒有數據倉庫軟件,這些數據就根本沒有用處。有了數據倉庫,就可以了解客戶是誰,他需要什么,怎樣提供更好的服務給他,并以此創造更多利潤。

(二)、數據挖掘與知識發現

1、數據挖掘與知識發現

數據挖掘(DMDataM川ng)和數據庫知識發現(KDDKwowledgeDiscoveryinDatebase)是隨著數據庫技術人工智能拄術和網絡技術的發展而提名的。尤其是隨著電子商務的開展.信 萬方數據電孑商務息總量不斷增加.更迫切地需要有效的信息分析工具以便能發現大量商業數據問隱藏的依賴關系.從而抽取有用的信息或知識指導商業決策【5】。過去只有簡單的數據統計技術,還未達到成為智…能數據分析工具。因此.在數據生成和數據理解之間還存在很大的差距。DM和KDD就是種新型的數據分折技術.旨在從大型數、據庫中提取隱藏的

預測性信息構建高校的數據倉庫,發掘數據問潛在的模式以便于用理解和觀察的形式反映給用戶,從而為企業做出前瞻的.基于知識的決策參考意見?!?】DM與KDD需要解決的問題有:超大規模數據庫和高維數據.數據丟失:變化中的數據和知識.模式的易懂性非標準格式數據,多媒體數據以及面向對象數據的處理.與其他系統的集成.網絡與分布式環境下的KDD問題等。DM與KDD的區別是.KDD是一個綜合的過程包括實驗記錄疊代求解用戶交互以及許多定制要求和決策設計等而DM只是KDD中的一個具體但又是關鍵的步驟.,當然.它們都對數據倉庫進行有效利用的技術手段。

2、數據挖掘實際應用

DM(KDD)工具和軟件已在各個部門得到很好的應用,并收到明顯的效益。

[1]金融方面:銀行信用卡和保險行業,預測存/貸款趨勢,優化存/貸款策略,用DM將市場分成有意義的群組和部門,從而協助市場經理和業務執行人員更好地集中于有促進作用的活動和設計新的市場運動。

[2]在客戶關系管理方面:DM能找出產品使用模式或協助了解客戶行為,從而可以改進通道管理(如銀行分支和ATM等)。又如正確時間銷售(RightTimeMarKeting)就是基于顧客生活周期模型來實施的。

[3]在零售業/市場營銷方面:是數據挖掘技術應用最早也是最重要的領域,DM用于顧客購貨籃的分析可以協助貨架布置,促銷活動時間,促銷商品組合以及了解滯銷和暢銷商品狀況等商業活動。通過對一種廠家商品在各連鎖店的市場共享分析,客戶統計以及歷史狀況的分析,可以確定銷售和廣告業務的有效性。

[4]在過程控制/質量監督保證方面:DM協助管理大數量變量之間的相互作用,DM能自動發現出某些不正常的數據分布,暴露制造和裝配操作過程中變化情況和各種因素,從而協助質量工程師很快地注意到問題發生范圍和采取改正措施。

[5]在遠程通訊部門:基于DM的分析協助組織策略變更以適應外部世界的變化,確定市場變化模式以指導銷售計劃.在網絡容量利用方面,DM能提供對客戶組類服務使用的結構和模式的了解,從而指導容量計劃人員對網絡設施作出最佳投資決策。

[6]化學/制藥行業:從各種文獻資料總自動抽取有關化學反應的信息,發現新的有用化學成分。在遙感領域針對每天從衛星上及其它方面來的巨額數據,對氣象預報,臭氧層監測等能起很大作用。

[7]軍事方面:使用DM進行軍事信息系統中的目標特征提取、態勢關聯規則挖掘等。總之,DM可廣泛應用于銀行金融、零售與批發、制造、保險、公共設施、政府、教育、遠程通訊、軟件開發、運輸等各個企事業單位及國防科研上。據報導,DM的投資回報率有達400%甚至10倍的事例。

(三)、生物認證技術

目前,許多磁卡、存單大都是用密碼進行安全保障的。一旦密碼泄露,也就不安全了。在電子商務中,電子貨幣將得到急速的發展。對安全水平的要求也相應提高。從而帶動了人工智能的一個分支領域——生物認證技術的研究與開發。

生物認證技術是指利用人體某一具有特征的部位?;騻€人的習慣,如指紋、掌紋、手形、網膜、虹膜、臉型、聲紋及筆記等來識別人們的身份的技術。這種識別技術與磁卡式的靠持有物認證的方法和密碼式的靠只是認證的方法相比,具有極大的優越性。它不會丟失,被盜和偽造。

生物認證技術作為一種準確、快速和高效的身份認證方法,正應用于如銀行、海關、醫療保險、重要通道控制、信息網絡安全等領域。這是一項集現代化生物科技與計算機科學相結合

的高科技實用項目。微軟公司宣布把生物認證技術添加到自己的視窗操作系統中。這對這項新技術的發展將起到促進作用。

(四)、智能數據庫信息檢索 在電子商務平臺應用實踐中,如何根據用戶的意圖,興趣和特點自適應地和智能地從現有的客戶信息、商品庫信息等大量數據信息中對信息進行相關性排列,調整匹配機制,以獲得用戶滿意的檢索輸出,成為電子商務今后;應用所面臨的一個技術問題。

六、結論

本文從人工智能技術和電子商務技術的發展,人工智能技術在電子商務中的應用實例,以及數據挖掘技術和數據倉庫技術的實際應用進行概括的論述。隨著電子商務的不斷發展和人工智能的不斷完善,兩者在各個領域、各個層次的相互融合將更加密切。

總而言之,作為一種商務活動過程,人工智能在電子商務中的應用將帶來一場史無前例的革命,其對社會經濟的影響會遠遠超過商務本身。除了上述這些影響之外,他還將對就業、法律制度以及文化教育等帶來巨大的影響。

參考文獻

【1】王萬良。人工智能及其應用(10、一日無書,百事荒廢?!悏?/p>

11、書是人類進步的階梯。

12、一日不讀口生,一日不寫手生。

13、我撲在書上,就像饑餓的人撲在面包上。——高爾基

14、書到用時方恨少、事非經過不知難。——陸游

15、讀一本好書,就如同和一個高尚的人在交談——歌德

16、讀一切好書,就是和許多高尚的人談話?!芽▋?/p>

17、學習永遠不晚。——高爾基

18、少而好學,如日出之陽;壯而好學,如日中之光;志而好學,如炳燭之光?!獎⑾?/p>

19、學而不思則惘,思而不學則殆?!鬃?/p>

20、讀書給人以快樂、給人以光彩、給人以才干。——培根

下載人工智能與專家系統課程設計解讀word格式文檔
下載人工智能與專家系統課程設計解讀.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    人工智能課程設計報告-n皇后問題解讀

    人工智能課程設計報告 課 程:人工智能課程設計報告 班 級: 姓 名: 學 號: 指導教師:趙曼 2015年11月 人工智能課程設計報告 人工智能課程設計報告 課程背景 人工智能(Arti......

    人工智能與專家系統外文文獻譯文和原文(共五篇)

    人工智能與專家系統外文文獻譯文和原文 ARTIFICIAL INTELLIGENCE AND EXPERT SYSTEM 1.History of AI The seed of AI were sown only two years after General Electri......

    人工智能發展史解讀(★)

    人工智能學科誕生于20世紀50年代中期,當時由于計算機的產生與發展,人們開始了具有真正意義的人工智能的研究。(雖然計算機為AI提供了必要的技術基礎,但直到50年代早期人們才注......

    人工智能論文解讀

    人工智能結課論文 系別:計算機科學與技術系班級:姓名:于靜學號: 13計算機專接本一班 知識處理 ***0 摘要:進入2l 世紀,計算機硬件和軟件更新的速度越來越快,計算機這個以......

    人工智能課程論文解讀

    人工智能課程論文 題目:人工智能:用科學解密生命與智慧 姓名:學號:指導老師:人工智能:用科學解密生命與智慧 摘要 本文是對人工智能及其應用的一個綜述。首先介紹了人工智能的理......

    人工智能導論論文解讀

    終結者會出現嗎? -----對于人工智能技術發展趨勢的思考 摘要:1、時間過去30年了,當回想起這部電影,我們不禁想問幾個問題:“終結者”會出現嗎?在現在的技術水平下能制造出如此復......

    人工智能大作業解讀(大全5篇)

    實現遺傳算法的0-1背包問題求解 目錄 摘要.........................................................................................................2 一.問題描述.........

    人工智能的歷史、現實與未來解讀

    人工智能的歷史、現實與未來 計科、 090213 引言 人類夢想發明各種機械工具和動力機器,協助甚至代替人們從事各種體力勞動。18世紀第一次工業革命中,瓦特發明的蒸汽機開辟了利......

主站蜘蛛池模板: 久久久久国产精品人妻aⅴ天堂| 国语少妇高潮对白在线| 中文字幕日韩精品一区二区三区| 亚洲欧美日韩中文加勒比| 精品亚洲成a人无码成a在线观看| 国产亚洲精品久久久久久小舞| 亚洲国产精品无码久久久久高潮| 久久久女人与动物群交毛片| 国产内射在线激情一区| 中文乱码人妻系列一区| 亚洲色偷偷综合亚洲av78| 国产三级精品三级在线专1| 国产精品国产午夜免费看福利| 国产精品线在线精品| 久久久久久中文字幕有精品| 国产精品免费一区二区三区四区| 亚洲va欧美va日韩va成人网| 亚洲成a人片在线不卡一二三区| 天堂岛国av无码免费无禁网站| 99久久精品视香蕉蕉| 欧美一进一出抽搐大尺度视频| 蜜臀av999无码精品国产专区| av无码天堂一区二区三区| 成人国产精品免费视频| 久久国产精品偷任你爽任你| 久久国产亚洲精品无码| 日日麻批免费40分钟无码| 一区二区三区国产| 人人澡人人人人天天夜夜| 久久99精品久久久久久琪琪| 国产熟妇久久777777| 亚洲 成人 无码 在线观看| 欧美真人性野外做爰| 亚洲精品卡2卡三卡4卡2卡乱码| 国语少妇高潮对白在线| 蜜桃精品免费久久久久影院| 亚洲欧美日韩另类丝袜一区| 午夜成人无码免费看试看| 风流老熟女一区二区三区| 亚洲国产成人久久三区| 日韩人妻无码一区二区三区|