• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
무정보 그래프 탐색
 

무정보 그래프 탐색

on

  • 449 views

http://wawworld.me

http://wawworld.me

changhoonpark@gmail.com

Statistics

Views

Total Views
449
Views on SlideShare
440
Embed Views
9

Actions

Likes
0
Downloads
0
Comments
0

2 Embeds 9

http://genesis.imrlab.hoseo.edu 7
http://www.wawworld.me 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    무정보 그래프 탐색 무정보 그래프 탐색 Presentation Transcript

    • 게임 인공지능 GameAI 그래프 탐색 알고리즘 By Changhoon Park http://changhoonpark.wordpress.com Last Update : 2011. 08. 2811년 9월 1일 목요일
    • 2 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 2 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 2 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 2 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 2 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 2 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 2 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 2 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 2 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 2 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 2 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 2 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 2 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 3 template<class graph_type> class Graph_SearchDFS { private: enum {visited, unvisited, no_parent_assigned}; typedef typename graph_type::EdgeType Edge; typedef typename graph_type::NodeType Node; private: const graph_type & m_Graph; std::vector<int> m_Visited; std::vector<int> m_Route; int m_iSource, m_iTarget; bool m_bFound; bool Search(); 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 4 public: Graph_SearchDFS(const graph_type& graph, int source, int target = -1 ): m_Graph(graph), m_iSource(source), m_iTarget(target), m_bFound(false), m_Visited(m_Graph.NumNodes(), unvisited), m_Route(m_Graph.NumNodes(), no_parent_assigned) { m_bFound = Search(); } bool Found()const{return m_bFound;} std::list<int> GetPathToTarget()const; }; 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 5 template <class graph_type> bool Graph_SearchDFS<graph_type>::Search() { std::stack<const Edge*> stack; //create a std stack of pointers to edges Edge Dummy(m_iSource, m_iSource, 0); //create a dummy edge stack.push(&Dummy); // and put on the stack while (!stack.empty()) //while there are edges on the stack keep searching { const Edge* Next = stack.top(); //grab the next edge stack.pop(); //remove the edge from the stack m_Route[Next->To] = Next->From(); //make a note of the parent of the node this edge points to m_Visited[Next->To()] = visited; //and mark it visited 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 6 if (Next->To() == m_iTarget) //if the target has been found the method can return success { return true; } //push the edges leading from the node this edge points to onto the stack (provided the edge does not point to a previously visited node) graph_type::ConstEdgeIterator ConstEdgeItr(m_Graph, Next->To()); for (const Edge* pE=ConstEdgeItr.begin();!ConstEdgeItr.end(); pE=ConstEdgeItr.next() { if (m_Visited[pE->To()] == unvisited) { stack.push(pE); } } } //while return false; //no path to target } 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 7 1 m_Route m_Visited stack [1] [1] T 3 [2] [2] 2 4 [3] [3] S 5 [4] [4] [5] [5] 6 [6] [6] 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 8 1 m_Route m_Visited stack [1] [1] T 5-5 3 [2] [2] 2 4 [3] [3] S 5 [4] [4] [5] [5] 6 [6] [6] 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 9 5-5 1 m_Route m_Visited stack [1] [1] T 3 [2] [2] 2 4 [3] [3] S 5 [4] [4] [5] 5 [5] v 6 [6] [6] 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 10 1 m_Route m_Visited stack [1] [1] T 5-2 3 [2] [2] 2 5-4 4 [3] [3] 5-6 S 5 [4] [4] [5] 5 [5] v 6 [6] [6] 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 11 5-2 1 m_Route m_Visited stack [1] [1] T 5-4 [2] 5 [2] v 2 3 5-6 4 [3] [3] S 5 [4] [4] [5] 5 [5] v 6 [6] [6] 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 12 1 m_Route m_Visited stack [1] [1] T 2-1 3 [2] 5 [2] v 5-4 2 4 5-6 [3] [3] S 5 [4] [4] [5] 5 [5] v 6 [6] [6] 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 13 2-1 1 m_Route m_Visited stack [1] 2 [1] v T 5-4 3 [2] 5 [2] v 2 5-6 4 [3] [3] S 5 [4] [4] [5] 5 [5] v 6 [6] [6] 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 14 1 m_Route m_Visited stack [1] 2 [1] v T 1-3 3 [2] 5 [2] v 2 5-4 4 [3] [3] 5-6 S 5 [4] [4] [5] 5 [5] v 6 [6] [6] 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • template <class Graph> std::list<int> Graph_SearchDFS<Graph>::GetPathToTarget()const { std::list<int> path; //just return an empty path if no path to target found or if no target has been specified if (!m_bFound || m_iTarget<0) return path; int nd = m_iTarget; path.push_back(nd); while (nd != m_iSource) { nd = m_Route[nd]; path.push_back(nd); } return path; } 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • template <class graph_type> bool Graph_SearchBFS< graph_type>::Search() { std::queue<const Edge*> Q; //create a std queue of pointers edges const Edge Dummy(m_iSource, m_iSource, 0); //create a dummy edge and put on the queue Q.push(&Dummy); m_Visited[m_iSource] = visited; //mark the source node as visited while (!Q.empty()) //while there are edges in the queue keep searching { const Edge* Next = Q.front(); Q.pop(); m_Route[Next->To()] = Next->From(); //exit if the target has been found if (Next->To() == m_iTarget) { return true; } 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • graph_type::ConstEdgeIterator ConstEdgeItr(m_Graph, Next->To()); for (const Edge* pE=ConstEdgeItr.begin(); !ConstEdgeItr.end(); pE=ConstEdgeItr.next()) { //if the node hasnt already been visited we can push the edge onto the queue if (m_Visited[pE->To()] == unvisited) { Q.push(pE); m_Visited[pE->To()] = visited; } } } return false; //no path to target } 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 19 1 m_Route m_Visited queue [1] [1] T 3 [2] [2] 2 4 [3] [3] S 5 [4] [4] [5] [5] v 6 [6] [6] 5-5 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 20 5-5 1 m_Route m_Visited queue [1] [1] T 3 [2] [2] 2 4 [3] [3] S 5 [4] [4] [5] 5 [5] v 6 [6] [6] 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 21 1 m_Route m_Visited queue [1] [1] T 3 [2] [2] v 2 4 [3] [3] S 5 [4] [4] v 5-2 [5] 5 [5] v 5-4 6 [6] [6] v 5-6 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 22 5-6 1 m_Route m_Visited queue [1] [1] T 3 [2] [2] v 2 4 [3] [3] S 5 [4] [4] v [5] 5 [5] v 5-2 6 [6] 5 [6] v 5-4 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 23 5-4 1 m_Route m_Visited queue [1] [1] T 3 [2] [2] v 2 4 [3] [3] S 5 [4] 5 [4] v [5] 5 [5] v 6 [6] 5 [6] v 5-2 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 24 1 m_Route m_Visited queue [1] [1] T 3 [2] [2] v 2 4 S [3] [3] v 5 [4] 5 [4] v [5] 5 [5] v 4-3 6 [6] 5 [6] v 5-2 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 25 5-2 1 m_Route m_Visited queue [1] [1] T 3 [2] 5 [2] v 2 4 S [3] [3] v 5 [4] 5 [4] v [5] 5 [5] v 6 [6] 5 [6] v 4-3 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 26 1 m_Route m_Visited queue [1] [1] v T 3 [2] 5 [2] v 2 4 S [3] [3] v 5 [4] 5 [4] v [5] 5 [5] v 2-1 6 [6] 5 [6] v 4-3 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 27 4-3 1 m_Route m_Visited queue [1] [1] v T 3 [2] 5 [2] v 2 4 S [3] 4 [3] v 5 [4] 5 [4] v [5] 5 [5] v 6 [6] 5 [6] v 2-1 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일
    • 28 그래프 탐색 알고리즘 무정보 그래프 탐색 깊이우선탐색(DFS) 비용 기반 그래프 탐색 너비우선탐색(BFS) By Changhoon Park http://changhoonpark.wordpress.com11년 9월 1일 목요일