人工智能實(shí)驗(yàn)報(bào)告大全_第1頁(yè)
人工智能實(shí)驗(yàn)報(bào)告大全_第2頁(yè)
人工智能實(shí)驗(yàn)報(bào)告大全_第3頁(yè)
人工智能實(shí)驗(yàn)報(bào)告大全_第4頁(yè)
人工智能實(shí)驗(yàn)報(bào)告大全_第5頁(yè)
已閱讀5頁(yè),還剩62頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

/人工智能課內(nèi)實(shí)驗(yàn)報(bào)告〔8次學(xué)院:自動(dòng)化學(xué)院班級(jí):智能1501姓名:劉少鵬〔34學(xué)號(hào):06153034目錄課內(nèi)實(shí)驗(yàn)1:猴子摘香蕉問(wèn)題的VC編程實(shí)現(xiàn)……1課內(nèi)實(shí)驗(yàn)2:編程實(shí)現(xiàn)簡(jiǎn)單動(dòng)物識(shí)別系統(tǒng)的知識(shí)表示………5課內(nèi)實(shí)驗(yàn)3:盲目搜索求解8數(shù)碼問(wèn)題………18課內(nèi)實(shí)驗(yàn)4:回溯算法求解四皇后問(wèn)題………33課內(nèi)實(shí)驗(yàn)5:編程實(shí)現(xiàn)一字棋游戲……………37課內(nèi)實(shí)驗(yàn)6:字句集消解實(shí)驗(yàn)…………………46課內(nèi)實(shí)驗(yàn)7:簡(jiǎn)單動(dòng)物識(shí)別系統(tǒng)的產(chǎn)生式推理………………66課內(nèi)實(shí)驗(yàn)8:編程實(shí)現(xiàn)D-S證據(jù)推理算法……78人工智能課內(nèi)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)1:猴子摘香蕉問(wèn)題的VC編程實(shí)現(xiàn)學(xué)院:自動(dòng)化學(xué)院班級(jí):智能1501姓名:劉少鵬〔33學(xué)號(hào):06153034日期:2017-3-810:15-12:00實(shí)驗(yàn)1:猴子摘香蕉問(wèn)題的VC編程實(shí)現(xiàn)實(shí)驗(yàn)?zāi)康摹?熟悉謂詞邏輯表示法;〔2掌握人工智能謂詞邏輯中的經(jīng)典例子——猴子摘香蕉問(wèn)題的編程實(shí)現(xiàn)。二、編程環(huán)境VC語(yǔ)言問(wèn)題描述房子里有一只猴子〔即機(jī)器人.位于a處。在c處上方的天花板上有一串香蕉.猴子想吃.但摘不到。房間的b處還有一個(gè)箱子.如果猴子站到箱子上.就可以摸著天花板。如圖1所示.對(duì)于上述問(wèn)題.可以通過(guò)謂詞邏輯表示法來(lái)描述知識(shí)。要求通過(guò)VC語(yǔ)言編程實(shí)現(xiàn)猴子摘香蕉問(wèn)題的求解過(guò)程。圖1猴子摘香蕉問(wèn)題源代碼#include<stdio.h>unsignedinti;voidMonkey_Go_Box<unsignedcharx,unsignedchary>{ printf<"Step%d:monkey從%c走到%c\n",++i,x,y>;//x表示猴子的位置.y為箱子的位置}voidMonkey_Move_Box<charx,chary>{ printf<"Step%d:monkey把箱子從%c運(yùn)到%c\n",++i,x,y>;//x表示箱子的位置.y為香蕉的位置}voidMonkey_On_Box<>{ printf<"Step%d:monkey爬上箱子\n",++i>;}voidMonkey_Get_Banana<>{ printf<"Step%d:monkey摘到香蕉\n",++i>;}voidmain<>{unsignedcharMonkey,Box,Banana; printf<"********智能1501班**********\n">; printf<"********06153034************\n">; printf<"********劉少鵬**************\n">; printf<"請(qǐng)用abc來(lái)表示猴子箱子香蕉的位置\n">; printf<"Monkey\tbox\tbanana\n">;scanf<"%c",&Monkey>; getchar<>; printf<"\t">;scanf<"%c",&Box>; getchar<>; printf<"\t\t">; scanf<"%c",&Banana>; getchar<>; printf<"\n操作步驟如下\n">;if<Monkey!=Box> { Monkey_Go_Box<Monkey,Box>; }if<Box!=Banana> { Monkey_Move_Box<Box,Banana>; } Monkey_On_Box<>; Monkey_Get_Banana<>; printf<"\n">; getchar<>;}實(shí)驗(yàn)結(jié)果相關(guān)截圖六、心得體會(huì)通過(guò)本次實(shí)驗(yàn).我初步了學(xué)會(huì)了使用VC的新建工程.并且進(jìn)行簡(jiǎn)單的程序編寫(xiě)。此外我還學(xué)會(huì)如何使用一些謂詞來(lái)解決生活中的一些簡(jiǎn)單問(wèn)題.并且用VC編程給出具體的操作步驟,感覺(jué)對(duì)VC編程有了新的認(rèn)識(shí)。在實(shí)驗(yàn)中我也遇到過(guò)許多問(wèn)題.比如在我寫(xiě)完代碼進(jìn)行編譯時(shí)總是會(huì)出現(xiàn)一個(gè)錯(cuò)誤"fatalerrorC1010:在查找預(yù)編譯頭時(shí)遇到意外的文件結(jié)尾.是否忘記了向源中添加"#include‘stdafx.h’"關(guān)于這個(gè)錯(cuò)誤我我問(wèn)了幾個(gè)同學(xué)得不出答案后.我決定通過(guò)上網(wǎng)查找.最終找到了解決方法.需要在該項(xiàng)目的每一個(gè)cpp結(jié)尾的文件屬性中設(shè)置不使用預(yù)編譯頭即可。在這個(gè)過(guò)程中也鍛煉了自己解決問(wèn)題的能力。人工智能課內(nèi)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)2:編程實(shí)現(xiàn)簡(jiǎn)單動(dòng)物識(shí)別系統(tǒng)的知識(shí)表示學(xué)院:自動(dòng)化學(xué)院班級(jí):智能1501姓名:劉少鵬〔33學(xué)號(hào):06153034日期:2017-3-1310:15-12:00實(shí)驗(yàn)2:編程實(shí)現(xiàn)簡(jiǎn)單動(dòng)物識(shí)別系統(tǒng)的知識(shí)表示一、實(shí)驗(yàn)?zāi)康?、理解和掌握產(chǎn)生式知識(shí)表示方法;2、能夠通過(guò)VC編程語(yǔ)言實(shí)現(xiàn)產(chǎn)生式系統(tǒng)的規(guī)則庫(kù)。二、實(shí)驗(yàn)內(nèi)容1、以動(dòng)物識(shí)別系統(tǒng)的產(chǎn)生式規(guī)則為例;2、用選定的編程語(yǔ)言建造規(guī)則庫(kù)和綜合數(shù)據(jù)庫(kù).并能對(duì)它們進(jìn)行增加、刪除和修改操作。實(shí)驗(yàn)步驟確定需要識(shí)別的動(dòng)物及其屬性本次實(shí)驗(yàn)的簡(jiǎn)單動(dòng)物識(shí)別系統(tǒng)總共能識(shí)別7種動(dòng)物.即:老虎、金錢豹、斑馬、長(zhǎng)頸鹿、企鵝、鴕鳥(niǎo)和信天翁。建立識(shí)別七種動(dòng)物識(shí)別系統(tǒng)的規(guī)則選定編程語(yǔ)言并確定綜合數(shù)據(jù)庫(kù)和規(guī)則庫(kù)結(jié)構(gòu)選用C語(yǔ)言作為編程語(yǔ)言〔2綜合數(shù)據(jù)庫(kù)的建立〔3規(guī)則庫(kù)的建立四、程序源代碼#include<iostream>#include<string>usingnamespacestd;structRULES{intcount;charpre[255];charback[255];intmark;};voidcheck<>;RULESr[100]={ {1,"有毛發(fā)","哺乳動(dòng)物",0}, //所有規(guī)則靜態(tài)數(shù)據(jù)庫(kù) {1,"有奶","哺乳動(dòng)物",0}, {1,"有羽毛","鳥(niǎo)",0}, {2,"會(huì)飛&下蛋&","鳥(niǎo)",0}, {1,"吃肉","食肉動(dòng)物",0}, {3,"有鋒利的牙齒&有爪&眼睛盯著前方&","食肉動(dòng)物",0}, {2,"哺乳動(dòng)物&有蹄&","有蹄類哺乳動(dòng)物",0}, {2,"哺乳動(dòng)物&反芻&","有偶蹄類哺乳動(dòng)物",0}, {4,"哺乳動(dòng)物&食肉動(dòng)物&黃褐色&有暗斑&","金錢豹",0}, {4,"哺乳動(dòng)物&食肉動(dòng)物&黃褐色&黑色條紋&","老虎",0}, {4,"有蹄類哺乳動(dòng)物&有長(zhǎng)脖子&有長(zhǎng)腿&有暗斑&","長(zhǎng)頸鹿",0}, {2,"有蹄類哺乳動(dòng)物&黑條紋&","斑馬",0},{5,"鳥(niǎo)&不會(huì)飛&有長(zhǎng)脖子&有長(zhǎng)腿&黑白色&","鴕鳥(niǎo)",0}, {4,"鳥(niǎo)&不會(huì)飛&會(huì)游泳&黑白色&","企鵝",0},{2,"鳥(niǎo)&會(huì)飛&","信天翁",0}, {1,"反芻","哺乳動(dòng)物",0}};intnumber;intm;intcat=15;inta;intlength; //輸入的事實(shí)長(zhǎng)度stringf[255]; //輸入的事實(shí)數(shù)組voidinput<>{while<1> { cat++; cout<<"number"<<endl; cin>>r[cat].count; cout<<"輸入事實(shí).兩種以上的事實(shí)請(qǐng)?jiān)诿總€(gè)事實(shí)后加上‘&’符號(hào)"<<endl; cin>>r[cat].pre; cout<<"輸入結(jié)果"<<endl; cin>>r[cat].back; r[cat].mark=0;while<1> { cout<<"輸入"1"繼續(xù)添加規(guī)則,輸入"2"查看規(guī)則庫(kù)"<<endl;intp; cin>>p;if<p==1> { input<>; }else {if<p==2> { check<>; }else { cout<<"輸入錯(cuò)誤.重新輸入"<<endl; } } } }}voiddelate<>{ cout<<"輸入要?jiǎng)h除的條數(shù)"<<endl;intbar; cin>>bar;for<intt=0;t<=cat;t++> { r[bar-1]=r[bar]; bar++; } cat--; check<>;}voidcheck<>{ cout<<endl<<"規(guī)則庫(kù)如下"<<endl;for<inti=0;i<=cat;i++> { cout<<i+1<<"."<<"由"<<r[i].pre<<"可得"<<r[i].back<<endl; } cout<<endl;while<1> { cout<<"輸入"1"繼續(xù)添加規(guī)則.輸入"3"刪除選定的規(guī)則"<<endl; cin>>m;if<m==1> { input<>; }else {if<m==3> delate<>; } }}intfind_rule<ints> //查找規(guī)則庫(kù)中是否還有可使用的規(guī)則{for<inti=0;i<=15;i++>s=s*r[i].mark;//cout<<"find_rule結(jié)果"<<s<<endl;returns;}intcompare1<RULESr>//當(dāng)前提條件為1時(shí){intj=0,i=1;stringstr,str2; str=r.pre;while<i<=length> {if<f[i]==str> { str2=r.back; f[length+1]=str2; //加入事實(shí)庫(kù) length++; //事實(shí)庫(kù)的長(zhǎng)度加1r.mark=1; //標(biāo)記規(guī)則已使用過(guò)break; }else i++; }returnr.mark;}intcompare2<RULESr> //前提條件不為1{stringb[10];stringstr,str2;inti,j=1,num=0;inta=0; str=r.pre;for<i=0;i!=10;++i>//轉(zhuǎn)換數(shù)組 { b[i]=""; }for<i=0;i!=str.length<>;++i> {if<str.at<i>!='&'> { b[j]+=str.at<i>; }else { j++; } } i=1;while<i<=r.count> {for<j=1;j!=length+1;j++> {if<f[j]==b[i]> { a+=1; } } i++; }if<a==r.count> { str2=r.back; f[length+1]=str2; //加入事實(shí)庫(kù) length++; //事實(shí)庫(kù)的長(zhǎng)度加1r.mark=1; //標(biāo)記規(guī)則已使用過(guò) }returnr.mark;}voidresult<>{inti=1,m=0;while<i!=length+1> {if<f[i]=="金錢豹"> { cout<<"該動(dòng)物是金錢豹"<<endl; m=1;break; }elseif<f[i]=="老虎"> { cout<<"該動(dòng)物是老虎"<<endl; m=1;break; }elseif<f[i]=="長(zhǎng)頸鹿"> { cout<<"該動(dòng)物是長(zhǎng)頸鹿"<<endl; m=1;break; }elseif<f[i]=="斑馬"> { cout<<"該動(dòng)物是斑馬"<<endl; m=1;break; }elseif<f[i]=="鴕鳥(niǎo)"> { cout<<"該動(dòng)物是鴕鳥(niǎo)"<<endl; m=1;break; }elseif<f[i]=="企鵝"> { cout<<"該動(dòng)物是企鵝"<<endl; m=1;break; }elseif<f[i]=="信天翁"> { cout<<"信天翁"<<endl; m=1;break; }else i++; }if<m==0> cout<<"沒(méi)有符合的動(dòng)物.請(qǐng)確認(rèn)特征.重新輸入"<<endl;}voididetify<>{inti=0,u=0;if<find_rule<u>==0>//如果規(guī)則庫(kù)中還有未使用的規(guī)則 {//cout<<"還有未使用的規(guī)則"<<endl;intnum=length;while<i<16> //從第一條規(guī)則開(kāi)始遍歷 {if<r[i].mark==0> //如果該條規(guī)則未使用 {if<r[i].count==1> //該條規(guī)則前提數(shù)為1 { u=compare1<r[i]>;if<u==1> r[i].mark=1;if<r[i].mark==1> { cout<<"使用規(guī)則"<<i+1; cout<<"且加入的新事實(shí)為"<<r[i].back<<endl; } }else { u=compare2<r[i]>;if<u==1> r[i].mark=1;if<r[i].mark==1> { cout<<"使用規(guī)則"<<i+1; cout<<"且加入的新事實(shí)為"<<r[i].back<<endl; } } }if<i==15> {if<num!=length> { i=0; num=length; }else i=16; }else { i++; } } }else { cout<<"所有的規(guī)則都已使用"<<endl; } result<>;}/*主函數(shù)*/voidmain<>{ cout<<"******智能1501班********"<<endl; cout<<"******06153034**********"<<endl;cout<<"******劉少鵬************"<<endl; cout<<"進(jìn)行動(dòng)物識(shí)別請(qǐng)輸入7"<<endl; cout<<"進(jìn)行規(guī)則庫(kù)操作請(qǐng)輸入8"<<endl; cin>>a;while<a==8> {while<1> { cout<<"添加規(guī)則輸入‘1’,查看已有規(guī)則輸入‘2’"<<endl; cin>>m;if<m==1> { input<>; }else {if<m==2> { check<>; }else cout<<"輸入錯(cuò)誤請(qǐng)重新輸入"<<endl; } } }if<a==7> {intu=0; cout<<"請(qǐng)輸入動(dòng)物的特征數(shù)"<<endl; cin>>length; cout<<"請(qǐng)輸入動(dòng)物的特征"<<endl;for<inti=1;i<=length;i++> cin>>f[i]; idetify<>;} system<"pause">;}實(shí)驗(yàn)結(jié)果相關(guān)截圖1、程序總體結(jié)構(gòu)規(guī)則庫(kù)操作→查看規(guī)則庫(kù)規(guī)則庫(kù)操作→添加規(guī)則→添加袋鼠規(guī)則規(guī)則庫(kù)操作→刪除規(guī)則→刪除袋鼠規(guī)則5、動(dòng)物識(shí)別→識(shí)別長(zhǎng)頸鹿六、心得體會(huì)通過(guò)本次實(shí)驗(yàn)我深刻的理解和掌握產(chǎn)生式知識(shí)表示方法.并且能夠通過(guò)VC編程語(yǔ)言實(shí)現(xiàn)產(chǎn)生式系統(tǒng)的規(guī)則庫(kù)。本次實(shí)驗(yàn)我同樣遇到許多問(wèn)題.我通過(guò)自己查閱資料.與同學(xué)們討論.逐步的將自己的問(wèn)題解決.在這個(gè)過(guò)程中提高了我的問(wèn)題解決能力。最后因?yàn)楸敬螌?shí)驗(yàn)只有對(duì)數(shù)據(jù)庫(kù)有清楚的掌握.同時(shí)熟悉規(guī)則才能合理編程.因此我在平時(shí)的學(xué)習(xí)中應(yīng)當(dāng)加大數(shù)據(jù)庫(kù)與數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)力度.提高自己的編程能力。人工智能課內(nèi)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)3:盲目搜索求解八數(shù)碼問(wèn)題學(xué)院:自動(dòng)化學(xué)院班級(jí):智能1501姓名:劉少鵬〔33學(xué)號(hào):06153034日期:2017-03-3010:15-12:00人工智能課內(nèi)實(shí)驗(yàn)3:盲目搜索求解8數(shù)碼問(wèn)題實(shí)驗(yàn)?zāi)康氖煜と斯ぶ悄芟到y(tǒng)中的問(wèn)題求解過(guò)程;熟悉狀態(tài)空間中的盲目搜索策略;掌握盲目搜索算法.重點(diǎn)是寬度優(yōu)先搜索和深度優(yōu)先搜索算法。實(shí)驗(yàn)要求用VC語(yǔ)言編程.采用寬度優(yōu)先搜索和深度優(yōu)先搜索方法.求解8數(shù)碼問(wèn)題實(shí)驗(yàn)內(nèi)容采用寬度優(yōu)先算法.運(yùn)行程序.要求輸入初始狀態(tài)假設(shè)給定如下初始狀態(tài)S0283164705和目標(biāo)狀態(tài)Sg216408753驗(yàn)證程序的輸出結(jié)果.寫(xiě)出心得體會(huì)?!?對(duì)代碼進(jìn)行修改〔選作.實(shí)現(xiàn)深度優(yōu)先搜索求解該問(wèn)題提示:每次選擴(kuò)展節(jié)點(diǎn)時(shí).從數(shù)組的最后一個(gè)生成的節(jié)點(diǎn)開(kāi)始找.找一個(gè)沒(méi)有被擴(kuò)展的節(jié)點(diǎn)。這樣也需要對(duì)節(jié)點(diǎn)添加一個(gè)是否被擴(kuò)展過(guò)的標(biāo)志。4源代碼及實(shí)驗(yàn)結(jié)果截圖實(shí)驗(yàn)源代碼#include<stdlib.h>#include<stdio.h>TypedefstructNode{intnum[9];//棋盤狀態(tài) intdeepth;//派生的深度g<n> intdiffnum;//不在位的數(shù)目h<n>intvalue;//耗散值f<n>=g<n>+h<n> structNode*pre; structNode*next; structNode*parent;}numNode;/*--endofstructnumNode--*/intorigin[9];//棋盤初始狀態(tài)inttarget[9];//棋盤目標(biāo)狀態(tài)intnumNode_num,total_step;numNode*open,*close;//Open表和Close表numNode*create_numNode<>{ return<numNode*>malloc<sizeof<numNode>>;}numNode*open_getfirst<numNode*head>;//返回第一項(xiàng).并從Open表中刪除voidopen_insert<numNode*head,numNode*item>;//向Open表中按序插入新節(jié)點(diǎn)voidclose_append<numNode*head,numNode*item>;//向Close表中插入新節(jié)點(diǎn)intexpand<numNode*item>;//擴(kuò)展節(jié)點(diǎn)intprint_result<numNode*item>;//打印結(jié)果numNode*copy_numNode<numNode*orgin>;charisNewNode<numNode*open,numNode*close,intnum[9]>;//是否在Open表或Close表中voidprint_num<intnum[9]>;//打印棋盤狀態(tài)intdiff<intnum[9]>;//求不在位棋子的個(gè)數(shù)voidinit<>;//初始化.獲得棋盤初始狀態(tài)和目標(biāo)狀態(tài)voidswap<int*a,int*b>;intoperate<intnum[],intop>;voidfree_list<numNode*head>;//*Name:主函數(shù)//*Description:程序入口intmain<intargc,char*argv[]>{ //初始化Open表和Close表 printf<"*****智能1501****\n">; printf<"*****劉少鵬******\n">; printf<"*****06153034****\n">; open=create_numNode<>; close=create_numNode<>; open->pre=open->next=close->pre=close->next=NULL; init<>;//由用戶輸入初始和目標(biāo)狀態(tài) //初始化初始節(jié)點(diǎn) numNode*p1; p1=create_numNode<>; p1->parent=NULL; p1->deepth=0; inti=0; for<i=0;i<9;i++> { p1->num[i]=origin[i]; } open_insert<open,p1>; numNode_num=1; p1=open_getfirst<open>; while<p1!=NULL> { close_append<close,p1>; if<expand<p1>> returnEXIT_SUCCESS; p1=open_getfirst<open>; } printf<"Nosolution!\n">; returnEXIT_SUCCESS;}/*endoffunctionmain*/voidinit<>{ while<1> { printf<"Pleaseinputopriginalstatus:\nForexample:123456780standsfor\n" "123\n" "456\n" "780\n">; chartemp[10]; scanf<"%s",&temp>; inti=0; for<i=0;i<9&&temp[i]-'0'>=0&&temp[i]-'0'<=8;i++> { origin[i]=temp[i]-'0'; } printf<"Pleaseinputtargetstatus:\n">; scanf<"%s",&temp>; intj=0; for<j=0;j<9&&temp[j]-'0'>=0&&temp[j]-'0'<=8;j++> { target[j]=temp[j]-'0'; } system<"cls">; if<i==9&&j==9> { break; } }}/*endoffunctioninit*/voidopen_insert<numNode*head,numNode*item>{ numNode*p,*q; p=head->next; q=head; while<p!=NULL&&item->value>p->value> { q=p; p=p->next; } q->next=item; item->pre=q; item->next=p; if<p!=NULL> { p->pre=item; }}/*endoffunctionopen_insert*/numNode*open_getfirst<numNode*head>{ numNode*p; if<head->next==NULL> { returnNULL; } p=head->next; head->next=p->next; if<p->next!=NULL> { p->next->pre=head; } p->pre=NULL; p->next=NULL; returnp;}/*endoffunctionopen_getfirst*/voidclose_append<numNode*head,numNode*item>{ item->next=head->next; item->pre=head; head->next=item; if<item->next!=NULL> { item->next->pre=item; }}/*endoffunctionclose_append*/intexpand<numNode*p1>{ numNode*p2; intop=1; for<op=1;op<=4;op++> { p2=copy_numNode<p1>; operate<p2->num,op>; if<isNewNode<open,close,p2->num>=='N'> { p2->parent=p1; p2->deepth=p1->deepth+1; p2->diffnum=diff<p2->num>; p2->value=p2->deepth+p2->diffnum; if<p2->diffnum==0> { total_step=print_result<p2>; printf<"Totalstep:%d\n",total_step>; free_list<open>; free_list<close>; return1; } else{ numNode_num++; open_insert<open,p2>; } } else free<p2>; } return0;}/*endoffunctionexpand*/intoperate<intm[],intop>{ intblank; blank=0; while<m[blank]!=0&&blank<9> ++blank; if<blank==9> return1; switch<op>{ case1:/*up*/ if<blank>2> swap<m+blank,m+blank-3>; break; case2:/*down*/ if<blank<6> swap<m+blank,m+blank+3>; break; case3:/*left*/ if<blank!=0&&blank!=3&&blank!=6> swap<m+blank,m+blank-1>; break; case4:/*right*/ if<blank!=2&&blank!=5&&blank!=8> swap<m+blank,m+blank+1>; break; default:return1; } return0;}voidswap<int*a,int*b>{ intc; c=*a; *a=*b; *b=c;}numNode*copy_numNode<numNode*origin>{ numNode*p; p=create_numNode<>; p->deepth=origin->deepth; p->diffnum=origin->diffnum; p->value=origin->value; inti; for<i=0;i<9;i++> { <p->num>[i]=<origin->num>[i]; } returnp;}/*endoffunctioncopy_numNode*/intdiff<intnum[9]>{ inti,diffnum=0; for<i=0;i<9;i++> if<num[i]!=target[i]> diffnum++; returndiffnum;}/*endoffunctiondiff*/charisNewNode<numNode*open,numNode*close,intnum[9]>{ numNode*p; inti=0; p=open->next; while<p!=NULL> { for<i=0;i<9;i++> { if<p->num[i]!=num[i]> break; } if<i==9> return'O';//Open p=p->next; } p=close->next; while<p!=NULL> { for<i=0;i<9;i++> { if<p->num[i]!=num[i]> break; } if<i==9> return'C';//Close p=p->next; } return'N';}/*endoffunctionisNewNode*/voidfree_list<numNode*head>{ numNode*p,*q; p=head->next; while<p!=NULL> {q=p->next; free<p>; p=q; } free<head>;}/*endoffunctionfree_list*/voidprint_num<intnum[9]>{inti; for<i=0;i<9;i++> { printf<"%d\t",num[i]>; if<<i%3>==2> printf<"\n">; }}/*endoffunctionprint_num*/intprint_result<numNode*item>{ numNode*p; intstep; p=item; if<p!=NULL> { step=print_result<p->parent>; printf<"\nStep%d:\n",step+1>; print_num<p->num>; returnstep+1; } else { return-1; }}〔2實(shí)驗(yàn)截圖5心得體會(huì)本次實(shí)驗(yàn)對(duì)我最大的收獲就是我再解決問(wèn)題的過(guò)程中提高了C語(yǔ)言編程能力.對(duì)用編程解決實(shí)際問(wèn)題有了更加深刻的認(rèn)識(shí)。此次實(shí)驗(yàn)我采用了寬度優(yōu)先算法.成功的完成了本次實(shí)驗(yàn).我對(duì)寬度優(yōu)先算法有了更為深刻的理解.我相信我再經(jīng)過(guò)幾次寬度優(yōu)先算法的練習(xí).我就可以用它來(lái)解決一些生活中的實(shí)際問(wèn)題。人工智能課內(nèi)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)4:回溯算法求解四皇后問(wèn)題學(xué)院:自動(dòng)化學(xué)院班級(jí):智能1501姓名:劉少鵬〔33學(xué)號(hào):06153034日期:2017-04-0510:15-12:00實(shí)驗(yàn)4回溯算法求解四皇后問(wèn)題1實(shí)驗(yàn)?zāi)康?理解搜索的概念,掌握回溯搜索算法,用回溯算法求解四皇后問(wèn)題.2實(shí)驗(yàn)要求:用VC編程實(shí)現(xiàn)求解四皇后問(wèn)題的回溯過(guò)程,根據(jù)實(shí)驗(yàn)結(jié)果寫(xiě)出回溯算法的總結(jié).3實(shí)驗(yàn)結(jié)果分析:回朔算法總結(jié):回朔算法是從一條路往前走.能進(jìn)則進(jìn).不能進(jìn)則退回來(lái).換一條路再試。本次四皇后就是回溯算法.第一步按照順序放一個(gè)皇后.然后第二步符合要求放第2個(gè)皇后.如果沒(méi)有位置符合要求.那么就要改變第一個(gè)皇后的位置.重新放第2個(gè)皇后的位置.直到找到符合條件的位置就可以了?;厮匪惴ㄊ且粋€(gè)既帶有系統(tǒng)性又帶有跳躍性的的搜索算法。它在包含問(wèn)題的所有解的解空間樹(shù)中.按照深度優(yōu)先的策略.從根結(jié)點(diǎn)出發(fā)搜索解空間樹(shù)。算法搜索至解空間樹(shù)的任一結(jié)點(diǎn)時(shí).總是先判斷該結(jié)點(diǎn)是否肯定不包含問(wèn)題的解。如果肯定不包含.則跳過(guò)對(duì)以該結(jié)點(diǎn)為根的子樹(shù)的系統(tǒng)搜索.逐層向其祖先結(jié)點(diǎn)回溯。否則.進(jìn)入該子樹(shù).繼續(xù)按深度優(yōu)先的策略進(jìn)行搜索?;厮莘ㄔ谟脕?lái)求問(wèn)題的所有解時(shí).要回溯到根.且根結(jié)點(diǎn)的所有子樹(shù)都已被搜索遍才結(jié)束。而回朔算法在用來(lái)求問(wèn)題的任一解時(shí).只要搜索到問(wèn)題的一個(gè)解就可以結(jié)束。這種以深度優(yōu)先的方式系統(tǒng)地搜索問(wèn)題的解的算法稱為回溯法.它適用于解一些組合數(shù)較大的問(wèn)題。4實(shí)驗(yàn)的心得體會(huì):通過(guò)本次實(shí)驗(yàn)我理解了搜索的概念,掌握了回溯搜索算法,學(xué)會(huì)了用回溯算法求解四皇后問(wèn)題。實(shí)驗(yàn)中我遇到了很多問(wèn)題.但是通過(guò)自己的努力.和同學(xué)的幫助.我順利的完成了實(shí)驗(yàn).在此過(guò)程中我有了很大的收獲.我對(duì)回朔算法有了更深刻的理解.我在此次實(shí)驗(yàn)結(jié)束后.我想回朔算法可以求解四皇后問(wèn)題.那么八皇后.十皇后.N皇后問(wèn)題該怎么解決.我想通過(guò)自己的不斷學(xué)習(xí)這些問(wèn)題都將一一解決。參考示例代碼:#include<stdio.h>#defineboolint#definefalse0#definetrue1intNum=1;//用來(lái)記錄有幾種實(shí)現(xiàn)方法intq[5];boolC[5];//C[1]~C[4],布爾型變量.當(dāng)前列是否安全boolL[9];//L[2]~L[8].布爾型變量.〔i-j對(duì)角線〔從左上角到右下角是否安全2<=<i-j>+5<=8;boolR[9];//R[2]~R[8],布爾型變量.〔i+j對(duì)角線〔從右上角到左下角是否安全2<=i+j<=8intqipan[4][4]={{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};voidTry<inti>//皇后放置函數(shù){intj,k,n,m; for<j=1;j<5;j++> { if<<C[j]==true>&&<L[i-j+5]==true>&&<R[i+j]==true>>//表示第i行第j列是安全的 {q[i]=j;//第一件事.既然i行.j列安全.就放置皇后在〔i.j處 C[j]=false;//i行.j列放置皇后后不再安全 L[i-j+5]=false;//<i,j>所在的從左上角到右下角的對(duì)角線將不再安全 R[i+j]=false;if<i<4>//第二件事.判斷是否放完4個(gè)皇后 { Try<i+1>;//未放完四個(gè)皇后.則接著放下一個(gè) } else//四個(gè)皇后已經(jīng)放完 { Num++; printf<"方案:%d\n",Num>; for<k=1;k<5;k++> { qipan[k-1][q[k]-1]=1;//輸出棋盤.皇后用1表示,0表示該位置無(wú)皇后 } for<m=0;m<4;m++> { for<n=0;n<4;n++> printf<"%d\t",qipan[m][n]>; printf<"\n">; }for<m=0;m<4;m++>//棋盤再次初始化 for<n=0;n<4;n++> qipan[m][n]=0; } C[j]=true;//第三件事.修改安全的標(biāo)志.回溯 L[i-j+5]=true; R[i+j]=true; } }}intmain<void>{ inti; Num=0; printf<"****實(shí)驗(yàn)四回溯算法四皇后******\n">;printf<"****智能1501班****\n">; printf<"****06153034******\n">; printf<"****劉少鵬********\n">; printf<"1表示該位置有皇后,0表示該位置無(wú)皇后\n">; for<i=1;i<5;i++> { C[i]=true; } for<i=0;i<9;i++> { L[i]=R[i]=true; } Try<1>; return0;}人工智能課內(nèi)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)5:編程實(shí)現(xiàn)一字棋游戲?qū)W院:自動(dòng)化學(xué)院班級(jí):智能1501姓名:劉少鵬〔33學(xué)號(hào):06153034日期:2017-04-1110:15-12:00實(shí)驗(yàn)5編程實(shí)現(xiàn)一字棋游戲1實(shí)驗(yàn)?zāi)康?〔1理解和掌握博弈樹(shù)的啟發(fā)式搜索過(guò)程;〔2熟悉博弈中兩種最基本的搜索方法——極大極小過(guò)程和過(guò)程;〔3能夠用VC編程語(yǔ)言設(shè)計(jì)簡(jiǎn)單的博弈游戲。2實(shí)驗(yàn)要求:用VC編程實(shí)現(xiàn)一字棋,根據(jù)實(shí)驗(yàn)結(jié)果寫(xiě)出總結(jié)。3實(shí)驗(yàn)結(jié)果分析:3.1實(shí)驗(yàn)代碼#include<iostream>#include<windows.h>#include<conio.h>#include<string>#include<ctime>usingnamespacestd;#defineMAX_NUM1000//計(jì)算機(jī)獲勝的標(biāo)志#defineNO_BLANK-1001//人獲勝的標(biāo)志#defineTREE_DEPTH3//遞歸深度#defineNIL1001//根節(jié)點(diǎn)的函數(shù)走步評(píng)估值classState//棋盤狀態(tài)節(jié)點(diǎn).一個(gè)State實(shí)例就是一個(gè)棋盤的狀態(tài)節(jié)點(diǎn).從而形成一顆樹(shù)狀結(jié)構(gòu){public:intQP[3][3];//當(dāng)前棋盤數(shù)組inte_fun;//評(píng)分結(jié)果intchild[9];//當(dāng)前棋盤狀態(tài)下的后一步的所有狀態(tài)節(jié)點(diǎn)intparent;//當(dāng)前棋盤狀態(tài)下的父母節(jié)點(diǎn)下標(biāo)intbestChild;//在child[9]里e_fun最優(yōu)的節(jié)點(diǎn)下標(biāo)};classTic{public:inttmpQP[3][3];//用于層遞歸的臨時(shí)棋盤staticints_count;//葉子節(jié)點(diǎn)的靜態(tài)總數(shù)StateStates[MAX_NUM];//棋盤狀態(tài)節(jié)點(diǎn)數(shù)組 Tic<> {}voidinit<>//初始化棋盤.將各個(gè)位置的棋盤都置為 { s_count=0;for<inti=0;i<3;i++>for<intj=0;j<3;j++> { States[0].QP[i][j]=0; } States[0].parent=NIL; }voidPrintQP<>//棋盤界面顯示 {for<inti=0;i<3;i++> {for<intj=0;j<3;j++> { cout<<States[0].QP[i][j]<<'\t'; } cout<<endl; } }intIsWin<States>//判斷當(dāng)前的棋盤狀態(tài)是否有令任何一方獲勝 {inti=0;for<i=0;i<3;i++> {if<s.QP[i][0]==1&&s.QP[i][1]==1&&s.QP[i][2]==1>return1;if<s.QP[i][0]==-1&&s.QP[i][1]==-1&&s.QP[i][2]==-1>return-1; }for<i=0;i<3;i++> {if<s.QP[0][i]==1&&s.QP[1][i]==1&&s.QP[2][i]==1>return1;if<s.QP[0][i]==-1&&s.QP[1][i]==-1&&s.QP[2][i]==-1>return-1; }if<<s.QP[0][0]==1&&s.QP[1][1]==1&&s.QP[2][2]==1>||<s.QP[2][0]==1&&s.QP[1][1]==1&&s.QP[0][2]==1>>return1;if<<s.QP[0][0]==-1&&s.QP[1][1]==-1&&s.QP[2][2]==-1>||<s.QP[2][0]==-1&&s.QP[1][1]==-1&&s.QP[0][2]==-1>>return-1;return0; }inte_fun<States>//機(jī)器智能判定評(píng)價(jià)函數(shù) {boolflag=true;inti=0;for<i=0;i<3;i++>for<intj=0;j<3;j++>if<s.QP[i][j]==0>flag=false;if<flag>returnNO_BLANK;if<IsWin<s>==-1>return-MAX_NUM;if<IsWin<s>==1>returnMAX_NUM;intcount=0;for<i=0;i<3;i++>for<intj=0;j<3;j++>if<s.QP[i][j]==0>tmpQP[i][j]=1;elsetmpQP[i][j]=s.QP[i][j];for<i=0;i<3;i++> count+=<tmpQP[i][0]+tmpQP[i][1]+tmpQP[i][2]>/3;for<i=0;i<3;i++> count+=<tmpQP[0][i]+tmpQP[1][i]+tmpQP[2][i]>/3; count+=<tmpQP[0][0]+tmpQP[1][1]+tmpQP[2][2]>/3; count+=<tmpQP[2][0]+tmpQP[1][1]+tmpQP[0][2]>/3;for<i=0;i<3;i++>for<intj=0;j<3;j++>if<s.QP[i][j]==0>tmpQP[i][j]=-1;elsetmpQP[i][j]=s.QP[i][j];for<i=0;i<3;i++> count+=<tmpQP[i][0]+tmpQP[i][1]+tmpQP[i][2]>/3;for<i=0;i<3;i++> count+=<tmpQP[0][i]+tmpQP[1][i]+tmpQP[2][i]>/3; count+=<tmpQP[0][0]+tmpQP[1][1]+tmpQP[2][2]>/3; count+=<tmpQP[2][0]+tmpQP[1][1]+tmpQP[0][2]>/3;returncount; }virtualboolAutoDone<> {returnfalse; }voidUserInput<>//獲取用戶的輸入 {intpos,x,y; L1:cout<<"請(qǐng)輸入棋子的坐標(biāo)xy:"; cin>>pos; x=pos/10,y=pos%10;if<x>0&&x<4&&y>0&&y<4&&States[0].QP[x-1][y-1]==0> States[0].QP[x-1][y-1]=-1;else { cout<<"非法輸入!";gotoL1; } }};intTic::s_count=0;//初始化棋盤狀態(tài)節(jié)點(diǎn)總數(shù).剛開(kāi)始置為classdemo:publicTic{public: demo<> {}boolJudge<> {inti,j,a=0;for<i=0;i<3;i++>for<j=0;j<3;j++>if<States[0].QP[i][j]==0>a++;if<a==0>returntrue;returnfalse; }virtualboolAutoDone<> {inta,b,i,j,m,n,max,min,x,y;if<IsWin<States[0]>==-1> { cout<<"恭喜您獲勝!"<<endl;returntrue; } a=0,b=0; max=-10000;for<x=0;x<3;x++>for<y=0;y<3;y++> States[11].QP[x][y]=States[0].QP[x][y];for<i=0;i<3;i++>for<j=0;j<3;j++> {if<States[0].QP[i][j]==0> { a=1;for<x=0;x<3;x++>for<y=0;y<3;y++> States[a].QP[x][y]=States[0].QP[x][y]; States[a].QP[i][j]=1; min=10000;for<m=0;m<3;m++>for<n=0;n<3;n++> {if<States[a].QP[m][n]==0> { b=1;for<x=0;x<3;x++>for<y=0;y<3;y++> States[10].QP[x][y]=States[a].QP[x][y]; States[10].QP[m][n]=-1; States[10].e_fun=e_fun<States[10]>;if<States[10].e_fun<min>min=States[10].e_fun; } } States[a].e_fun=min;if<States[a].e_fun>max> { max=States[a].e_fun;for<x=0;x<3;x++>for<y=0;y<3;y++> States[11].QP[x][y]=States[a].QP[x][y]; } } }for<x=0;x<3;x++>for<y=0;y<3;y++>States[0].QP[x][y]=States[11].QP[x][y]; cout<<"計(jì)算機(jī)走棋"<<endl; PrintQP<>;if<IsWin<States[0]>==1> { cout<<"抱歉你輸了.計(jì)算機(jī)獲勝!"<<endl;returntrue; }elseif<IsWin<States[0]>==-1> { cout<<"恭喜您獲勝!"<<endl;returntrue;}returnfalse; }};voidmain<>{ cout<<"****項(xiàng)目名稱:一字棋游戲的實(shí)現(xiàn)****"<<endl; cout<<"****班級(jí):智能1501****"<<endl; cout<<"****姓名:劉少鵬****"<<endl; cout<<"****學(xué)號(hào):06153034****"<<endl;cout<<"****說(shuō)明:-1代表人落子位置,1代表電腦落子位置,0代表該位置無(wú)棋子****"<<endl; system<"title#子棋智能小游戲">; system<"colorA2">;charIsFirst;boolIsFinish; cout<<"若您為先手.請(qǐng)輸入'Y'!反之.請(qǐng)輸入'N':"<<endl; cin>>IsFirst;demo*p=newdemo<>; p->init<>; cout<<"棋盤的初始狀態(tài):"<<endl; p->PrintQP<>;do{if<!p->Judge<>> {if<IsFirst=='Y'> { p->UserInput<>;p->PrintQP<>;if<!p->Judge<>> { IsFinish=p->AutoDone<>; } }elseif<IsFirst=='N'> { IsFinish=p->AutoDone<>;if<!p->Judge<>> {if<!IsFinish>{p->UserInput<>;p->PrintQP<>;} } } }if<p->Judge<>>IsFinish=true; }while<!IsFinish>;if<<p->IsWin<p->States[0]>==0>&&p->Judge<>> { cout<<"平局"<<endl; } system<"pause">;}3.2、實(shí)驗(yàn)運(yùn)行結(jié)果截圖4、實(shí)驗(yàn)心得本次實(shí)驗(yàn).我通過(guò)學(xué)習(xí)用VC編程語(yǔ)言設(shè)計(jì)簡(jiǎn)單的博弈游戲.從而理解和掌握博弈樹(shù)的啟發(fā)式搜索過(guò)程.熟悉博弈中兩種最基本的搜索方法——極大極小過(guò)程和過(guò)程。并且將這種思想通過(guò)代碼表現(xiàn)出來(lái)。本次實(shí)驗(yàn)我最大的收獲不僅僅是學(xué)到了課本上的知識(shí).更是學(xué)會(huì)了如何主動(dòng)的求解問(wèn)題的答案。實(shí)驗(yàn)中我遇到了許多困難.不僅僅是有關(guān)編程算法方面的.還有一些代碼邏輯流程的設(shè)計(jì)。這些困難我通過(guò)上網(wǎng)和去圖書(shū)館查找資料或者向同學(xué)請(qǐng)教等方式.逐一解決了困難.我收獲良多。人工智能課內(nèi)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)6:子句集消解實(shí)驗(yàn)學(xué)院:自動(dòng)化學(xué)院班級(jí):智能1501姓名:劉少鵬〔33學(xué)號(hào):06153034日期:2017-05-810:15-12:00實(shí)驗(yàn)6子句集消解實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康氖煜ぷ泳浼?jiǎn)的九個(gè)步驟;理解消解規(guī)則.能把任意謂詞公式轉(zhuǎn)換成子句集。二、編程環(huán)境VisualStudio2017三、實(shí)驗(yàn)原理在謂詞邏輯中.任何一個(gè)謂詞公式都可以通過(guò)應(yīng)用等價(jià)關(guān)系及推理規(guī)則化成相應(yīng)的子句集。其化簡(jiǎn)步驟如下:<1>消去連接詞"→"和"?"反復(fù)使用如下等價(jià)公式:P→Q?﹁P∨QP?Q?<P∧Q>∨<﹁P∧﹁Q>即可消去謂詞公式中的連接詞"→"和"?"。<2>減少否定符號(hào)的轄域反復(fù)使用雙重否定率﹁<﹁P>?P摩根定律﹁<P∧Q>?﹁P∨﹁Q﹁<P∨Q>?﹁P∧﹁Q量詞轉(zhuǎn)換率﹁<?x>P<x>?<?x>﹁P<x>﹁<?x>P<x>?<?x>¬P<x>將每個(gè)否定符號(hào)"﹁"移到僅靠謂詞的位置.使得每個(gè)否定符號(hào)最多只作用于一個(gè)謂詞上。<3>對(duì)變?cè)獦?biāo)準(zhǔn)化在一個(gè)量詞的轄域內(nèi).把謂詞公式中受該量詞約束的變?cè)坑昧硗庖粋€(gè)沒(méi)有出現(xiàn)過(guò)的任意變?cè)?使不同量詞約束的變?cè)胁煌拿帧?lt;4>化為前束范式化為前束范式的方法:把所有量詞都移到公式的左邊.并且在移動(dòng)時(shí)不能改變其相對(duì)順序。消去存在量詞<6>化為Skolem標(biāo)準(zhǔn)形對(duì)上述前束范式的母式應(yīng)用以下等價(jià)關(guān)系P∨<Q∧R>?<P∨Q>∧<P∨R>消去全稱量詞<8>消去合取詞在母式中消去所有合取詞.把母式用子句集的形式表示出來(lái)。其中.子句集中的每一個(gè)元素都是一個(gè)子句。<9>更換變量名稱對(duì)子句集中的某些變量重新命名.使任意兩個(gè)子句中不出現(xiàn)相同的變量名。四、實(shí)驗(yàn)結(jié)果及代碼//化簡(jiǎn)子句集的九步法演示//作者:劉少鵬//時(shí)間:2017.5#include<iostream>#include<sstream>#include<stack>#include<queue>usingnamespacestd;//一些函數(shù)的定義voidinitString<string&ini>;//初始化stringdel_inlclue<stringtemp>;//消去蘊(yùn)涵符號(hào)stringdec_neg_rand<stringtemp>;//減少否定符號(hào)的轄域stringstandard_var<stringtemp>;//對(duì)變量標(biāo)準(zhǔn)化stringdel_exists<stringtemp>;//消去存在量詞stringconvert_to_front<stringtemp>;//化為前束形stringconvert_to_and<stringtemp>;//把母式化為合取范式stringdel_all<stringtemp>;//消去全稱量詞stringdel_and<stringtemp>;//消去連接符號(hào)合取%stringchange_name<stringtemp>;//更換變量名稱 //輔助函數(shù)定義boolisAlbum<chartemp>;//是字母stringdel_null_bracket<stringtemp>;//刪除多余的括號(hào)stringdel_blank<stringtemp>;//刪除多余的空格voidcheckLegal<stringtemp>;//檢查合法性charnumAfectChar<inttemp>;//數(shù)字顯示為字符 //主函數(shù)voidmain<>{ cout<<"求子句集九步法演示"<<endl; system<"color0A">; //orign="Q<x,y>%~<P<y>"; //orign="<@x><P<y>>P>"; //orign="~<#x>y<x>"; //orign="~<<@x>x!b<x>>"; //orign="~<x!y>"; //orign="~<~a<b>>"; stringorign,temp; charcommand,command0,command1,command2,command3,command4,command5, command6,command7,command8,command9,command10; //============================================================================= cout<<"請(qǐng)輸入<Y/y>初始化謂詞演算公式"<<endl; cin>>command; if<command=='y'||command=='Y'> initString<orign>; else exit<0>; //============================================================================= cout<<"請(qǐng)輸入<Y/y>消除空格"<<endl; cin>>command0; if<command0=='y'||command0=='Y'> { //del_blank<orign>;//undone cout<<"消除空格后是"<<endl <<orign<<endl; } else exit<0>; //============================================================================= cout<<"請(qǐng)輸入<Y/y>消去蘊(yùn)涵項(xiàng)"<<endl; cin>>command1; if<command1=='y'||command1=='Y'> { orign=del_inlclue<orign>; cout<<"消去蘊(yùn)涵項(xiàng)后是"<<endl <<orign<<endl; } else exit<0>; //============================================================================= cout<<"請(qǐng)輸入<Y/y>減少否定符號(hào)的轄域"<<endl; cin>>command2; if<command2=='y'||command2=='Y'> { do { temp=orign; orign=dec_neg_rand<orign>; }while<temp!=orign>; cout<<"減少否定符號(hào)的轄域后是"<<endl <<orign<<endl; } else exit<0>; //============================================================================= cout<<"請(qǐng)輸入<Y/y>對(duì)變量進(jìn)行標(biāo)準(zhǔn)化"<<endl; cin>>command3; if<command3=='y'||command3=='Y'> { orign=standard_var<orign>; cout<<"對(duì)變量進(jìn)行標(biāo)準(zhǔn)化后是"<<endl <<orign<<endl; } else exit<0>; //============================================================================= cout<<"請(qǐng)輸入<Y/y>消去存在量詞"<<endl; cin>>command4; if<command4=='y'||command4=='Y'> { orign=del_exists<orign>; cout<<"消去存在量詞后是<w=g<x>是一個(gè)Skolem函數(shù)>"<<endl <<orign<<endl; } else exit<0>; //============================================================================= cout<<"請(qǐng)輸入<Y/y>化為前束形"<<endl; cin>>command5; if<command5=='y'||command5=='Y'> { orign=convert_to_front<orign>; cout<<"化為前束形后是"<<endl <<orign<<endl; } else exit<0>; //============================================================================= cout<<"請(qǐng)輸入<Y/y>把母式化為合取方式"<<endl; cin>>command6; if<command6=='y'||command6=='Y'> { orign=convert_to_and<orign>; cout<<"把母式化為合取方式后是"<<endl <<orign<<endl; } else exit<0>; //============================================================================= cout<<"請(qǐng)輸入<Y/y>消去全稱量詞"<<endl; cin>>command7; if<command7=='y'||command7=='Y'> { orign=del_all<orign>; cout<<"消去全稱量詞后是"<<endl <<orign<<endl; } else exit<0>; //============================================================================= cout<<"請(qǐng)輸入<Y/y>消去連接符號(hào)"<<endl; cin>>command8; if<command8=='y'||command8=='Y'> { orign=del_and<orign>; cout<<"消去連接符號(hào)后是"<<endl <<orign<<endl; } else exit<0>; //============================================================================= cout<<"請(qǐng)輸入<Y/y>變量分離標(biāo)準(zhǔn)化"<<endl; cin>>command9; if<command9=='y'||command9=='Y'> { orign=change_name<orign>; cout<<"變量分離標(biāo)準(zhǔn)化后是<x1,x2,x3代替變量x>"<<endl <<orign<<endl; } else exit<0>; //============================================================================ cout<<"完畢"<<endl; cout<<"<請(qǐng)輸入Y/y>結(jié)束"<<endl; do { }while<'y'==getchar<>||'Y'==getchar<>>; exit<0>;}voidinitString<string&ini

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論