求迷宮中從入口到出口的所有路徑是一個經典的程序設計問題。由于計算機解迷宮室,通常用的是“窮舉求解”的方法,即從入口出發,順某一方向向前探索,若能走通,則繼續往前走;否則沿原路退回,換一個方向在繼續探索,直到所有可能的通路都探索到為止。為了保證在任何位置上都能沿原路返回,顯然需要用一個后進先出的結構來保存從入口到當前位置的路徑。因此,在球迷宮通路的算法中應用“棧”也就是自然而然的事了。
上傳時間: 2014-01-14
上傳用戶:ippler8
[輸入] 圖的頂點個數N,圖中頂點之間的關系及起點A和終點B [輸出] 若A到B無路徑,則輸出“There is no path” 否則輸出A到B路徑上個頂點 [存儲結構] 圖采用鄰接矩陣的方式存儲。 [算法的基本思想] 采用廣度優先搜索的方法,從頂點A開始,依次訪問與A鄰接的頂點VA1,VA2,...,VAK, 訪問遍之后,若沒有訪問B,則繼續訪問與VA1鄰接的頂點VA11,VA12,...,VA1M,再訪問與VA2鄰接頂點...,如此下去,直至找到B,最先到達B點的路徑,一定是邊數最少的路徑。實現時采用隊列記錄被訪問過的頂點。每次訪問與隊頭頂點相鄰接的頂點,然后將隊頭頂點從隊列中刪去。若隊空,則說明到不存在通路。在訪問頂點過程中,每次把當前頂點的序號作為與其鄰接的未訪問的頂點的前驅頂點記錄下來,以便輸出時回溯。 #include<stdio.h> int number //隊列類型 typedef struct{ int q[20]
標簽: 輸入
上傳時間: 2015-11-16
上傳用戶:ma1301115706
人工智能中的經典的迷宮算法,是否有通路走出maze,C++實現
上傳時間: 2014-01-16
上傳用戶:VRMMO
Floyd-Warshall算法描述 1)適用范圍: a)APSP(All Pairs Shortest Paths) b)稠密圖效果最佳 c)邊權可正可負 2)算法描述: a)初始化:dis[u,v]=w[u,v] b)For k:=1 to n For i:=1 to n For j:=1 to n If dis[i,j]>dis[i,k]+dis[k,j] Then Dis[I,j]:=dis[I,k]+dis[k,j] c)算法結束:dis即為所有點對的最短路徑矩陣 3)算法小結:此算法簡單有效,由于三重循環結構緊湊,對于稠密圖,效率要高于執行|V|次Dijkstra算法。時間復雜度O(n^3)。 考慮下列變形:如(I,j)∈E則dis[I,j]初始為1,else初始為0,這樣的Floyd算法最后的最短路徑矩陣即成為一個判斷I,j是否有通路的矩陣。更簡單的,我們可以把dis設成boolean類型,則每次可以用“dis[I,j]:=dis[I,j]or(dis[I,k]and dis[k,j])”來代替算法描述中的藍色部分,可以更直觀地得到I,j的連通情況。
標簽: Floyd-Warshall Shortest Pairs Paths
上傳時間: 2013-12-01
上傳用戶:dyctj
野人與修道士問題 這是一個古典的問題.假設有n個修道士和n個野人準備渡河,但只有一條能容納c人的小船,為了防止野人侵犯修道士,要求無論在何處,修道士的個數不得少于野人的人數(除非修道士個數為0).如果兩種人都會劃船,試設計一個算法,確定他們能否渡過河去,若能,則給出一個小船來回次數最少的最佳方案. 要求: (1) 用一個三元組(x1,x2,x3)表示渡河過程中各個狀態.其中,x1表示起始上岸修道士個數,x2表示起始岸上野人個數,x3表示小船位置(0-在目的岸,1-在起始岸).例如(2,1,1),表示起始岸有兩個修道士,一個野人,小船在起始岸一邊. 采用鄰接表做為存儲結構,將各種狀態之間的遷移圖保存下來. (2)采用廣度搜索法,得到首先搜索到邊數最少的一條通路. (3)輸出數據 若問題有解(能渡過河去),則輸出一個最佳方案.用三元組表示渡河過程中的狀態,并用箭頭指出這些狀態之間的遷移: 目的狀態<-...中間狀態<-...初始狀態. 若問題無解,則給出"渡河失敗"的信息. (4)求出所有的解.
上傳時間: 2016-02-23
上傳用戶:chenlong
voip語音技術,本書描述了因特網和IP的主要特征,包括包丟失和時延抖動,并讓讀者了解數字信號處理器(DSP)和語音編碼器在VoIP中所扮演的角色。本書還為讀者講述了如何通過ISDN、xDSL、HFC本地環路或其他途徑建立與業務提供商之間的通路,以及目前主要的IP電話協議。本書的覆蓋范圍包括:VoIP的全面解決方案;VoIP網關和網閘的作用;7號信令(SS7)和IP、H.323的網間互通;支持VoIP組播的協議(IGMP和MBONE),帶寬預留協議(RSVP、RTP、RTCP)及安全業務。本書是一本中、高級教科書,無論你是在對VoIP技術進行評估還是正在使用VoIP技術,本書都可以將你所需要深入理解的信息傳送給你,就如一位世界級的專家在你的身邊。
上傳時間: 2016-03-19
上傳用戶:懶龍1988
迷宮問題 任務:可以輸入一個任意大小的迷宮數據,用非遞歸的方法求出一條走出迷宮的路徑,并將路徑輸出; 要求: 在上交資料中請寫明:存儲結構、基本算法(可以使用程序流程圖)、源程序、測試數據和結果、算法的時間復雜度、另外可以提出算法的改進方法; [問題描述] 走迷宮是實驗心理學中一個古典問題。用計算機解迷宮路徑的程序,就是仿照人走迷宮而設計的,也是對盲人走路的一個機械模仿。 [實現提示] 假設迷宮是一個矩形,我們把它分成許多小方格,在每個小方格上或者已筑成墻或者沒有,這就成為一個迷宮。走迷宮就是從一個小方格沿前后左右四個方向到鄰近的方格,當然不能穿墻。設迷宮的入口是在西北角那個方格,而出口是東南角那個方格。在計算機中,迷宮可用一個矩陣表示。若某小方格是墻,則相應數組變量標為 0,否則為字符1,表示可走的路。現在要編寫一個程序,尋找一條從入口到出口的路線。我們可提出如下一般性問題尋找:一條從任何給定的方格到出口的路線。基本思想是: 在當前位置上向四個(或八個)方位探測前進方位,向探測到的通路方位前進一步,如此循環,直到迷宮的“出口”,或判斷后宣布這是一個不存在通路的死迷宮。
上傳時間: 2013-12-31
上傳用戶:wfl_yy
用FPGA實現大型設計時,可能需要FPGA具有以多個時鐘運行的多重數據通路,這種多時鐘FPGA設計必須特別小心,需要注意最大時鐘速率、抖動、最大時鐘數、異步時鐘設計和時鐘/數據關系。設計過程中最重要的一步是確定要用多少個不同的時鐘,以及如何進行布線
上傳時間: 2016-04-03
上傳用戶:ma1301115706
本書描述了因特網和IP的主要特征,包括包丟失和時延抖動,并讓讀者了解數字信號處理器(DSP)和語音編碼器在VoIP中所扮演的角色。本書還為讀者講述了如何通過ISDN、xDSL、HFC本地環路或其他途徑建立與業務提供商之間的通路,以及目前主要的IP電話協議。本書的覆蓋范圍包括:VoIP的全面解決方案;VoIP網關和網閘的作用;7號信令(SS7)和IP、H.323的網間互通;支持VoIP組播的協議(IGMP和MBONE),帶寬預留協議(RSVP、RTP、RTCP)及安全業務。本書是一本中、高級教科書,無論你是在對VoIP技術進行評估還是正在使用VoIP技術,本書都可以將你所需要深入理解的信息傳送給你,就如一位世界級的專家在你的身邊。
上傳時間: 2016-05-09
上傳用戶:gxrui1991
以長方形矩陣表示迷宮,0和1表通路和障礙,從入口求一條通路或的出沒有通路的結論
上傳時間: 2016-06-22
上傳用戶:aig85