freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

人工智能實(shí)驗(yàn)報(bào)告大全[小編整理](參考版)

2024-10-18 06:25本頁(yè)面
  

【正文】 事實(shí)為: 哺乳。k++。break。num++。amp。for(i=0。num++。fact[i]=a。iif(fact[i]==1)scanf(“%d”,amp。for(i=0。num)。printf(“請(qǐng)輸入描述該動(dòng)物特征的個(gè)數(shù):”)。while(flag==1){ printf(“動(dòng)物的特征如下:n”)。int fact[N],temp[N]。下面是程序運(yùn)行的結(jié)果:【實(shí)驗(yàn)程序】include define N 23 void main(){int i,j,k,a,b,c。此時(shí),事實(shí)庫(kù)的內(nèi)容變?yōu)椋河杏鹈⑸骑w、不怕風(fēng)浪、鳥(niǎo);此后,R4~R14均匹配失敗,接著取R15,該前提“善飛+不怕風(fēng)浪+鳥(niǎo)”與已知事實(shí)相匹配,R15被執(zhí)行,并推出“該動(dòng)物是海燕”。系統(tǒng)的推理過(guò)程如下:先從規(guī)則庫(kù)中取出第一條規(guī)則R1,檢查其前提是否可與事實(shí)庫(kù)中的已知事實(shí)相匹配。如有多條匹配規(guī)則需從中選一條作為使用規(guī)則,本算法是根據(jù)規(guī)則的順序依次選擇,且規(guī)則中不存在同一組事實(shí)對(duì)應(yīng)多條匹配規(guī)則。216。216。216。推理過(guò)程是: 216。為了便于設(shè)計(jì),我們把要識(shí)別的動(dòng)物限于7種,這樣所需要的產(chǎn)生式規(guī)則就比較少。如果未識(shí)別出來(lái),則可以重新選擇,或者退出。,能根據(jù)輸入的動(dòng)物特征判斷是那種動(dòng)物或給出相應(yīng)的回答。在產(chǎn)生式系統(tǒng)中,論域的知識(shí)分為兩部分:用事實(shí)表示靜態(tài)知識(shí);用產(chǎn)生式規(guī)則表示推理過(guò)程和行為。,掌握基于規(guī)則推理的基本方法。} elseprintf(“程序認(rèn)定該起始狀態(tài)無(wú)法道達(dá)目標(biāo)狀態(tài)!n”)。printf(“Press Enter key to exit!”)。printf(“擴(kuò)展節(jié)點(diǎn)數(shù):n”)。printf(“n”)。Closed, m)。goal, amp。result = Process(amp。Putinto(org,amp。while((c = getchar())!= 10)。scanf(“%d”,amp。Checkinput(goal)。Checkinput(org)。printf(“=================================n”)。printf(“說(shuō)明:狀態(tài)矩陣由08 九個(gè)數(shù)字表示,n請(qǐng)依次按照九宮格上的行列順序輸入,每個(gè)數(shù)字間用空格隔開(kāi)。int k。int m。Node * goal =(Node *)malloc(sizeof(Node))。//初始狀態(tài)節(jié)點(diǎn)orgf =1。Node * org =(Node *)malloc(sizeof(Node))。Lstack Closed =(Stack *)malloc(sizeof(Stack))。}void main(){//主函數(shù)//初始操作,建立open和closed表Lstack Open =(Stack *)malloc(sizeof(Stack))。s=snext。} } }int meassure(Lstack s){ int k=0。i = 0。else if(flag ==2)printf(“輸入的數(shù)字有重復(fù)!n請(qǐng)重新輸入:n”)。}elseif(flag = 0)flag =1。i++。j i。flag = 1。039。amp。039。){if(flag = 0)flag = 0。while(i 9){while(((c = getchar())!= 10)){if(c == 39。} }void Checkinput(Node *suc){//檢查輸入int i = 0,j = 0,flag = 0。}}printf(“n”)。j++){if(resultdata[i*3+j]!= 0)printf(“ %d ”,resultdata[i*3+j])。for(int j = 0。i 3。printf(“第%d步:”,n)。//當(dāng)前節(jié)點(diǎn)不是目標(biāo)節(jié)點(diǎn)時(shí)擴(kuò)展當(dāng)前節(jié)點(diǎn)的后繼節(jié)點(diǎn)} }int Shownum(Node * result){//遞歸顯示從初始狀態(tài)到達(dá)目標(biāo)狀態(tài)的移動(dòng)方法if(result == NULL)return 0。//如果當(dāng)前節(jié)點(diǎn)是目標(biāo)節(jié)點(diǎn),則成功退出Spread(amp。//從OPEN表中取出f值最小的節(jié)點(diǎn)Putinto(minf, Closed)。} } } ///////////////////////擴(kuò)展后繼節(jié)點(diǎn)部分的函數(shù)結(jié)束//////////////////////////////////Node * Process(Lnode * org, Lnode * goal, Lstack * Open, Lstack * Closed, int m){//總執(zhí)行函數(shù)while(1){if((*Open)next == NULL)return NULL。//向該方向移動(dòng)空格生成子節(jié)點(diǎn)if(BelongProgram(amp。//算子節(jié)點(diǎn)的g值childparent =(*suc)。i++){if(Canspread(**suc, i+1))//判斷某個(gè)方向上的子節(jié)點(diǎn)可否擴(kuò)展{child =(Node *)malloc(sizeof(Node))。for(i = 0。}void Spread(Lnode * suc, Lstack * Open, Lstack * Closed, Node goal, int m){//擴(kuò)展后繼節(jié)點(diǎn)總函數(shù)int i。childdata[i] = temp。elseloc = i%3+1+(i/3)*3。else if(n==1)loc = i%3+(i/3 + 1)*3。i++)if(childdata[i] == 0)break。for(i = 0。i 9。}void Spreadchild(Node * child,int n){//擴(kuò)展child節(jié)點(diǎn)的字節(jié)點(diǎn)n表示方向,表示空格向上向下向左向右移int i,loc,temp。default:break。case 4:if(i%3!= 2)flag = 1。case 3:if(i%3!= 0)flag = 1。case 2:if(i/3!= 2)flag = 1。switch(n){ case 1:if(i/3!= 0)flag = 1。i 9。}int Canspread(Node suc, int n){//判斷空格可否向該方向移動(dòng),表示空格向上向下向左向右移int i,flag = 0。(*suc)f = Fvalue(**suc, goal, m)。flag = 1。tempg =(*suc)g。else temp = Belong(*suc,Closed)。int flag = 0。} return double(fabs(h1/3h2%3))。k++){if([k] == i)h1 = k。for(k = 0。} return w。for(i=0。}}int error(Node suc,Node goal){//計(jì)算錯(cuò)位個(gè)數(shù)int w,i。//f = h + g。i p = p + Distance(suc, goal, i)。double p = 0。return w+。int w=0。(*list)next = temp。tempnpoint = suc。}void Putinto(Node * suc,Lstack * list){//把節(jié)點(diǎn)放入OPEN 或CLOSED 表中Stack * temp。temp = tempnext。if(temp == NULL)return NULL。return 1。i 9。else return 0。 goaldata[j]!= 0)b++。if((goaldata[i] goaldata[j])amp。amp。j i。i 9。}int Canslove(Node * suc, Node * goal){//判斷是否可解int a = 0,b = 0,i,j。free(temp)。temp = minpnext。}temp = tempnext。while(tempnext!= NULL){if((tempnextnpointf)npointf)){min = tempnext。Node * Minf(Lstack * Open){//選取OPEN表上f值最小的節(jié)點(diǎn),返回該節(jié)點(diǎn)地址Lstack temp =(*Open)next,min =(*Open)next,minp =(*Open)。struct Stack * next。}Node,*Lnode。double f,g。內(nèi)存泄漏?,F(xiàn)存在的一些優(yōu)缺點(diǎn)。局部搜索樹(shù)樣例:*搜索過(guò)程搜索采用廣度搜索方式,利用待處理隊(duì)列輔助,逐層搜索(跳過(guò)劣質(zhì)節(jié)點(diǎn))。父節(jié)點(diǎn):指向父親節(jié)點(diǎn)。數(shù)碼數(shù)組:記錄棋局?jǐn)?shù)碼擺放狀態(tài)。//父節(jié)點(diǎn) }Node,*Lnode。double f,g。該搜索為一個(gè)搜索樹(shù)。⑵ 分析上述⑴中兩種估價(jià)函數(shù)求解8數(shù)碼問(wèn)題的效率差別,給出一個(gè)是p(n)的上界的h(n)的定義,并測(cè)試使用該估價(jià)函數(shù)是否使算法失去可采納性。238。w(n),f(n)=d(n)+237。⑴ 編制程序?qū)崿F(xiàn)求解8數(shù)碼問(wèn)題A*算法,采用估價(jià)函數(shù)236。因而應(yīng)在學(xué)習(xí)之后及時(shí)進(jìn)行上機(jī)實(shí)驗(yàn),并且達(dá)到熟練掌握與運(yùn)用的階段。但一旦應(yīng)用于實(shí)踐時(shí),發(fā)現(xiàn)雖然每個(gè)部分模塊自己都可以理解并且熟悉,但是對(duì)于實(shí)際應(yīng)用,并且切實(shí)地解決實(shí)際問(wèn)題仍存在較大的困難。但是遺傳算法可以考慮到的問(wèn)題復(fù)雜度更高,更適合應(yīng)用于實(shí)際。通過(guò)每次迭代求出的局部最優(yōu)解和最終求出的全局最優(yōu)解。成功找到種群中適應(yīng)度值最優(yōu)的染色體作為問(wèn)題的滿意解或最優(yōu)解。(6)沒(méi)有滿足某種停止條件,則轉(zhuǎn)第(2)步,否則進(jìn)入(7);(7)輸出種群中適應(yīng)度值最優(yōu)的染色體作為問(wèn)題的滿意解或最優(yōu)解。(4)按概率Pc進(jìn)行交叉操作。要求說(shuō)明是否搜索到了最優(yōu)解,如果沒(méi)有,請(qǐng)分析原因本題中根據(jù)隨機(jī)生成的cities個(gè)城市之間的相互距離、隨機(jī)產(chǎn)生初試群,通過(guò)TSP算法,通過(guò)以下步驟:(1)初始化群體。group[i].city[temp2]=point。point=group[i].city[temp1]。i{if(bianyiflag[i]==1){temp1=rand()%10。}}//變異操作,即交換染色體的兩個(gè)節(jié)點(diǎn)srand((unsigned)time(NULL))。i{if(bianyip[i]{bianyiflag[i]=1。}//確定可以變異的染色體t=0。i{bianyip[i]=(rand()%100)。//隨機(jī)產(chǎn)生變異概率srand((unsigned)time(NULL))。}}temp1=temp2+1。kkif(group[temp2].city[k]==group[temp2].city[kk]){group[temp2].city[k]=map2[group[temp2].city[k]]。}}for(k=point2+1。kkif(group[temp2].city[k]==group[temp2].city[kk]){group[temp2].city[k]=map2[group[temp2].city[k]]。}}for(k=0。kkif(group[temp1].city[k]==group[temp1].city[kk]){group[temp1].city[k]=map1[group[temp1].city[k]]。}}for(k=point2+1。kkif(group[temp1].city[k]==group[temp1].city[kk]){group[temp1].city[k]=map1[group[temp1].city[k]]。}//處理產(chǎn)生的沖突基因for(k=0。group[temp1].city[k]=group[temp2].city[k]。}for(k=point2+1。group[temp1].city[k]=group[temp2].city[k]。}//斷點(diǎn)兩邊的基因互換for(k=0。k{map1[group[temp1].city[k]]=group[temp2].city[k]。memset(map2,1,sizeof(map2))。point2=temp。}//進(jìn)行基因交配if(point1point2)//保證point1{temp=point1。jif(jiaopeiflag[j]==1){temp2=j。break。for(j=temp1。i{point1=rand()%cities。i交叉算子就是把兩個(gè)父代個(gè)體的部分結(jié)構(gòu)加以替換重組而生成新個(gè)體的操作。} } } //拷貝種群for(i=0。iif(xuanze[i]{xuan[i]=j。i} gradient[0]=group[0].p。//種群的總路徑 } 是: P(xi)=f(xi)229。}RanSeTi [i].adapt=sumdistance。n2= RanSeTi [i].city[j]。采用的選擇、交叉、變異操作算子的具體操作1)選擇操作我們定義f(xi)為第i(i=1,2,3.....popsize)個(gè)染色體的適應(yīng)度,則每個(gè)個(gè)體被選中的概率popsizefor(i=0。TSP問(wèn)題中適應(yīng)度函數(shù)常取路徑長(zhǎng)度的倒數(shù)(或倒數(shù)的相關(guān)函數(shù)),如:f(x1,x2,L,xn)=N229。在進(jìn)行遺傳操作和種群進(jìn)化的時(shí)候,每個(gè)染色體的適應(yīng)值是決定它是否進(jìn)入下一輪種群進(jìn)化的關(guān)鍵因素。//
點(diǎn)擊復(fù)制文檔內(nèi)容
語(yǔ)文相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1