회원가입 ID/PW 찾기

1) 지식 창고는 본인이 작성한 콘텐츠(팁/노하우/리소스/강좌 등)을 무료 혹은 가상화폐인 납포인트를 통해 공유하는 공간입니다.
2) 본인이 작성한 콘텐츠에 대해서만 지식 창고에 등록할 수 있으며, 저작권에 위배되는 콘텐츠는 사전경고 없이 삭제될 수 있습니다.
3) 콘텐츠 구매 및 첨부파일 다운로드는 회원그룹 '연구원' 이상 가능하오니, 경험치를 쌓아 진급한 후에 이용 부탁드립니다.
4) 무료 콘텐츠의 본문은 구매절차 없이 즉시 이용할 수 있으며, 판매 납포인트가 있는 콘텐츠는 구매 후 이용할 수 있습니다.
5) 콘텐츠 판매에 따른 납포인트 수익은 지정한 비율(50%)에 따라 판매자에게 지급하며, 납포인트 수익을 통해 진급을 빨리할 수 있습니다.
6) 구매 후 평가를 하면 구매 납포인트의 20%를 돌려 드립니다.

콘텐츠 수 1,041
판매자 rcc 판매 납포인트 무료 평점 0점 / 총 0명 참여

A*? - 상태 공간 안의 특정한 상태에 이웃한, 즉 인접한 상태들을 조사해 나가면서 시작

                 상태로부터 목표 상태로 이르는 가장 싼 비용의 경로를 찾는 알고리즘

             - 아직 조사하지 않은 상태들 중 가장 유망한 상태를 조사하는 과정을 반복하는 것

            - 현재 상태에 인접한 상태들중 TotalCost(x)가 가장 낮은 상태를 찾음

 

2. A*가 관리하는 상태 목록 - 열린목록(openlist) : 아직 조사하지 않은 상태를 담음

                                        - 닫힌목록(closelist) : 이미 조사한 상태들을 담음

      CostFromStart(X) : 현재에서 목표에 이르는 가장 싼 비용

      CostFromGoal(X) : 현재에서 목표에 이르는 가장 싼 추정비용

      TotalCost(x) = 총경로비용 . (CostFromStart(X) +CostFromGoal(X))

                x:"유망함“을 평가하기 위한 정보를 가짐

 

3. A*의 특징 - A*는 시작으로부터 목표에 이르는 하나의 경로를 찾음

                        A*는 최적의 경로를 찾음(CostToGoal()이 항상 과소평가)

                         A*는 휴리스틱을 가장 효율적으로 사용

 

4. 상태표현 - 위치 또는 장소 (위치를 어떻게 표현할 것인가?)

                  - 추가고려사항 : 유닛의 방향이나 속도의 영향 -> 직선적인 경로 선택

                                         : 길의 상태 및 맵의 상태

 

     * 공간을 나누는 방법 - 정사각형 격자 : () 내가 고려해야 할 부분이 많음.

                            [2D]                맵의 크기가 ↑ -> 검색시간 ↑

                          - 쿼드트리 : 모두 같은 성분(동일한 지형)이 될 때까지 계속 4등분

                            [3D]      () 내가 고려해야 할 부분이 줄어듦

                                           사각형 ↑(개수↓) -> 검색시간 ↓, 표현저장용이

                                         () 연산이 ↑보다 복잡.

                                            영역자체가 커지면 뒤에 해줘야하는 작업이 복잡

                          - 블록다각형 : 다각형의 크기가 다름-> Vertex수가 ↑->구조적으로복잡

                            [3D]

                          - 가시점 : 면과 선의 충돌체크

                            [2D]     () 빠르고 복잡한 구조에서 구현하기 쉽다.

                                         () 장애물 벽에 딱 달라붙어 가게 됨

                          - 원통형태

                                

5. 두 위치들 사이의 경로 비용 - 그 경로가 최적인지 아닌지를 비교하기 위한 값

                                           (이동한거리, 이동에 걸린 시간, 소비한 이동력, 소비한 연료)

                                           - 유닛의 종류에 따라, 양끝에 해당하는 위치의 차이에 따라

                                            비용이 달라지기도 함

 

6. 이웃한 상태들 - 맵의 표현이나 분할방식에 따라

                         - 지형 or 유닛의 종류에 따라 이웃결정

 

7. 추정 - 최적의 경로 찾기 : 주어진 위치부터 목표까지의 실제 맵상의 최단거리 * 단위 거리당

                                          최소 지형 비용

         - 검색속도

 

8. 휴리스틱 함수(추정치) -> 두점사이의 거리

       - 과소평가 : (연산) 시간이 많이 걸림

       - 과대평가 : 길을 못찾을 수도 있다

    => 최적의 경로를 찾는 것보다 빠른 검색 속도가 더 중요하다면 목표까지의 비용을 “과대평가”할수도 있다.

    => 가중치가 ↑ -> 직선적으로 찾아감

 

9. A*의 단점 - 현명하게 사용하지 않으면 시간 낭비가 될 수도 있음

                   - 상당히 많은 CPU 시간을 잡아 먹음

                   - 메모리를 전부 잡아 먹을 수도 있음

                  - 시작 위치에서 목표까지의 경로가 존재하지 않는 상황에서 A*는 상당히 비효율적이다. 그런 경우 A*는 시작위치로부터 도달할 수 있는 모든 위치들을 조사한 후에야 목표에 도달할 수 없다는 것을 깨닫게 됨

 

10. 검색 속도냐? 최적의 경로냐?

 

11. A*의 미학적 최적화 - ① 직선적 경로 : A*알고리즘 안에서 직선화된 경로 만듦

                                        (비용가중치(휴리스틱가중치)를 신중하게 선택하는 것에 관련

                                         - 매 단계에서 인접한 위치를 평가하는 방식을 약간 수정

                                         : A*로 경로 결정한 다음에 그것을 직선화

                                         (격자형 검색 공간 안에서의 직선화된 경로)

                                 ~ 알고리즘 수행시

                          ② 매끄러운 경로 : Catmull-Rom 스플라인이 적합(보간)

                                 ~ 알고리즘 수행후

                          ③ 계통적 길찾기에서 미학적 최적화(좀더 직접적인 경로를 만듦)

                                          : () 사람이 실제로 길을 가는 방식과 흡사

                                                검색 성능이 보통의 A*보다 우월

                                          : () 전반적인 경로의 모습이 부자연스러움

        * Catmull-Rom 스플라인

                        : 주어진 네 개의 입력점들로부터 두 번째와 세 번째 점을 지나는 매끄러운

                         곡선을 돌려줌, 제어점을 지나감

                        : 첫 번째A와 두 번째B 제어점들 사이의 점 - AABC

                        : 두 번째B와 세 번째C 제어점들 사이의 점 - ABCD

                        : 세 번째C와 네 번째D 제어점들 사이의 점 - BCDD

                          (최초 시작시에는 첫 번째 제어점을 두 번 사용하고 목표에 도달할

                          때에는 마지막 제어점(목표)을 두 번 사용해야 한다)

                        : u의 간격을 좁힌다면 좀더 매끄러운 곡선을 얻을 수 있음

 

        * 격자의 크기 ↓ -> A*검색노드가 ↑ -> 검색시간 ↑

          격자의 크기 ↑ -> 보기에 이상(자연스럽지 X)

 

        * 실제 적용 - 행렬 / 보간 - 쿼터니언  (행렬↔쿼터니언 변화할 줄 알아야함)

 

12. 게임에서의 길찾기의 목표 : 유닛이 ‘좀 더 지능적이고 자연스럽게’ 행동하도록 만드는 것

 

13. 게이머가 체감하는 반응 시간을 단축시키기 - 소리이용, 곧 움직일 것이라는 느낌을 주는 눈속임 애니메이션 이용

 

14. 속도 최적화 - ① 검색 공간의 최적화

                         : 검색공간의 단순화 - 사각or육각형격자/ 실제다각형바닥

                                                       /특수화된 다각형  바닥 / 가시점방식

                   A*알고리즘 최적화

                         : 휴리스틱 함수

                         : 메모리 관리 - 길찾기 데이터를 분리

                                       - 메모리(길찾기에 사용되는 메모리)를 미리 할당, 노드뱅크

                                       - 마스트노드 목록

                                       - 오픈 리스트의 열린 목록의 최적화 => 우선순위 큐

                  ③ 자원의 최적화 (openlist closelist를 어떻게 관리, 정렬?-> 메모리관련)

                  A*의 사용유무

        

        * A*의 속도는 검색 공간의 크기에 크게 영향을 받음

              => 검색공간 자체를 최적화 => A*구현 자체를 최적화

        

        * 검색공간의 단순화

        - 사각 또는 육각형 격자 : () 장애물이나 캐릭터들을 격자안에서 표현하기 쉬움.

                                            [2D] 연산용이

                                             () 검색 공간의 크기가 가장 큼.(메모리 많이 차지)

                                              3D X, 칸단위 이동으로 이동경로가 부자연스러움

        - 실제 다각형 바닥 : () 데이터 구조가 이미 3D맵에 들어있음. 빠른 검색 가능

                                      () 맵이 복잡 -> 다각형의 개수가 매우 많아짐..

                                        공간 안의 캐릭터나 장애물들을 표현 X

                                        다각형 안의 제어점들을 선택하기 위한 알고리즘 필요

        - 특수화된 다각형 바닥 : 레벨 디자이너가 길 찾기에 적합한 형태의 다각형 바닥 데이터를 직접 만드는 방식

                                () 검색 공간 작음. 빠른 검색. 장애물 표현가능

                                () 레벨 디자이너의 수작업 필요. 공간안의 캐릭터 표현 X

                                     다각형 안의 제어점들을 선택하기 위한 알고리즘 필요

        - 가시점 방식 : () 가장 작은 검색공간 , 장애물 표현가능

                                결과로 얻는 경로가 완전히 직접적

                              () 알고리즘 또는 수작업을 통해서 사전에 그래프를 만들어야 함

                             장애물이 파괴되어도 그래프 상에는 여전히 장애물이 있는 상태로 남음

                             공간안의 캐릭터 표현 X

                             넓게 늘어선 캐릭터들처럼 너비가 큰 캐체들을 제대로 다루지 못함

                             곡선으로 된 벽이 존재하면 그래프가 필요이상으로 복잡해짐


profile
뚱뚱한팬더 2008.11.26 20:56
그렇군요. 일단 그리디 최단경로를 써보자는 막막한 견해로 시작했는데 확연하게 정리된 알고리즘의 구성설명을 듣고나니 뭘 해야할지 감이 제법 오기 시작합니다. 추천 1표
profile
Nipol 2009.05.15 20:32
좋은 자료 감사합니다.
profile
친절한금수씨 2009.07.26 13:56
설명 감사합니다.
profile
노바 2010.01.26 10:49
대단하다.
profile
철방이 2010.05.11 00:09
와 장난아니넨요..
profile
소이숭 2010.06.07 15:40
와 짱이네요...
profile
바부팅이~ 2010.07.29 11:58
대단하시네요~^^  추천 꾹 누르고 갑니다^^
profile
워터[젤리] 2010.12.03 21:57
대단하시네요^^
profile
시나브로69 2017.06.24 16:38
좋은 자료 감사합니다.
search
List of Articles
번호 분류 제목 평점 포인트 판매자 등록일 구매수 조회 수
공지 공공의 목적으로 공유하고자 하는 소프트웨어는 '소프트웨어 자료실'에 업로드를 요청드립니다.
공지 구매후 평점 댓글을 남겨주시면 구매포인트의 20%를 돌려드립니다.
381 펌웨어 & 코딩언어 트리로 구현한 단어검색프로그램 도와주세요 ㅡㅜ [3] 무료 델리트 2008-07-14 0 2467
» 머신러닝, AI & 알고리즘 A* (길찾기 알고리즘) [9] 무료 rcc 2008-07-07 0 4275
379 마이크로프로세서 AT89S51의 회로 구성 및 병렬 I/O 포트 [5] 무료 빠라삐리뽀 2008-07-06 0 3297
378 마이크로프로세서 AT90CAN128 CAN데모 : IAR컴파일러 [8] 무료 아크마 2008-07-02 0 8513
377 마이크로프로세서 가감속테이블 강좌입니다. [12] 무료 아로얀 2008-06-24 0 3493
376 마이크로프로세서 RTOS RTX51 Tiny 사용법 설명서 [2] 무료 가진e 2008-06-13 0 2471
375 마이크로프로세서 IAR 사용법 [9] 무료 마지막여행 2008-06-03 0 4980
374 마이크로프로세서 일명 MCU인공 호흡 입니다. [7] 무료 마지막여행 2008-06-03 0 5136
373 펌웨어 & 코딩언어 중복인지 모르겠지만 C컴파이일러입니다 [5] 무료 microjoe 2008-06-01 0 1740
372 마이크로프로세서 디지털 제어 산업기사 기출 자료 올립니다 ^ㅡ^ [8] 무료 쑤잉아 2008-05-28 0 3338
371 마이크로프로세서 keil51 사용법 [4] 무료 던칸의후예 2008-05-27 0 3311
370 마이크로프로세서 ds-EWz80 [3] 무료 이상수 2008-05-27 0 4046
369 마이크로프로세서 z80 어셈 [5] 무료 이상수 2008-05-27 0 4538
368 마이크로프로세서 avr 프로그래밍 입출력 [6] 무료 이상수 2008-05-27 0 4361
367 마이크로프로세서 8051개발자를 위한 C언어 테크닉 [47] 무료 던칸의후예 2008-05-22 0 4669
366 마이크로프로세서 8051-8051 으용 기초자료 종합 [49] 무료 던칸의후예 2008-05-22 0 3761
365 머신러닝, AI & 알고리즘 matlab 강의자료 ppt [23] 무료 나도 2008-05-19 0 7430
364 마이크로프로세서 8051핵심자료 [14] 무료 deny 2008-05-18 0 4548
363 마이크로프로세서 ponyprogV206f 입니다~ [4] 무료 곰복 2008-05-17 0 4147
362 마이크로프로세서 7segment [8] 무료 sevenfan 2008-05-16 0 2142
  • 일반적인 인간을 아는 것은 한 사람 한 사람의 인간을 아는 것보다 쉽다.
    - 라 로슈프코
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.