반응형

Future works로 남겨두었던 여러 부분들이 해결되었따~

핸드북이 없어서 해결하지 못했던 부분들이였는데,

힌트를 얻고 해결~!!

화재쪽두 어느정도 틀이 있는데,
시간이 없어서 투자를 할수가 없네.

자세한 공식은 나중에 업댓하죠~
반응형
반응형
3개월남짓 프로젝트를 진행하였던 3D FX-Finder이다.
이 프로그램은 기존에 나와있는 피난 시뮬레이션(Simulex, Pathfinder등..)처럼 상용화 할수 있는 시뮬레이션 프로그램을 만들고 싶어서 제작하게 된 프로그램이다.

우리나라의 경우 피난 시뮬레이션 개발에 미비한 수준이다.
그리하여 나(TA2K)를 비롯한 총 6명의 대학생이 개발에 도전하게 되었다.

이 프로그램의 특징은 피난 시뮬레이션에 화재 정보를 대입하여
화재+피난 시뮬레이션을 구현하였다는 것에 있다.


우리나라에서는 화재정보를 처음으로 도입한 피난 프로그램이고,
해외에서도 화재를 도입하여 피난 프로그램을 제작하는 프로그래밍 많이 없다.


우리의 경우 미국 NIST 에서 제작한 화재 시뮬레이션인 FDS의  Output File을 이용하여,
화재정보를 대입하였다.


초반에 여러 대학교 교수님에게 이메일도 보내보고, 알려달라고 부탁도 해보았지만
도와주는 교수님이 너무 없어서 힘들었던 프로젝트 였다.

나의 전공자체가 Computer Science였기에, 프로 젝트를 진행하는 내내 화제, 피난 시뮬레이팅 관련 서적과 사이트를
읽고 또 읽을수 밖에 없었다.

어렵게 어렵게 탄생한  3D FX-Finder!!
아직은 개선사항들이 남아있기는 하다.

이번 소프트웨어 공모전에 출품하였다.
잘 되었으면 좋겠다.
-TA2K-


다음은 시연회 동영상 이다.

자세한 정보는 공모전 후에 공개할 것이다.
반응형
반응형

3D FX-Finder

(3D Fire&Exit Finder)

 

 

 

 

9.11테러, 대구지하철 참사에 인명피해가 많이 발생했던 이유는 무엇이며 사람들은 어떠한 방식으로 피난을 했을까? 이러한 궁금증을 해소시켜줄 FX-Finder는 건물의 도면 CAD파일을 이용하여 공간을 자동으로 시각화 시켜준 뒤, 피난자들의 특성(속도, 성별, 건물이해도 등)에 따라 그들의 피난시간을 고려하여 피난정보를 산출하게 된다. 최근 초고층 건물이 늘어나면서 선진국가는 고층건물 내 피난 문제를 미리 예견하는 피난시뮬레이팅 프로그램의 제작이 활발해지고 있다. 그러나 국내실정은 미약한 상황이다. 이 같은 프로그램들은 서울대 등 소수 대학원 연구실에서 연구목적으로 개발된 프로그램들 뿐이다. 이 같은 프로그램은 실제 현장에서 사용되기에는 무리가 있다. 그리하여 기존의 국내 프로그램의 부족한 부분을 개선하고, 선진국에서 개발된 피난 프로그램의 특징인 사람군집현상을 적용한 모델을 도입하였다. FX-Finder는 국내 최초로 FDS(화재 시뮬레이션 프로그램)의 결과값을 이용한 화재+피난 시뮬레이션 프로그램을 개발하였다.

 

 


 

 




1절 프로젝트 개요

 

9.11테러, 대구지하철 참사에 인명피해가 많이 발생했던 이유는 무엇이며 사람들은 어떠한 방식으로 피난을 했을까? 이 물음에 답을 구하기 위해 기존 분석 시스템은 사람들의 이야기를 종합하고 피난경로 및 상황을 수동으로 유추 한 후 피난정보를 산출하였다. 그러나 이와 같은 방식은 사람들의 실제 행동을 반영하지 않으므로 정확한 분석결과라 보기 어려웠다.

 

 

 

 

 

 

<그림1.1 [9.11]테러>

<그림 1.2 대구 지하철 사고 >

 

그리하여 우리는 보다 정확한 정보를 추출할 수 있는 FX-Finder를 개발하게 되였다. Fx-Finder는 건물의 도면 CAD파일을 이용하여 공간을 자동으로 시각화 시켜준 뒤, 피난자들의 특성(속도, 성별, 건물이해도 등)에 따라 각각의 피난시간을 고려하여 피난정보를 산출하게 된다.

 

1.1개발 배경 및 목적

 

화재 피난 프로그램을 개발을 시작 하게 된 것은 두 가지 동기에 의해서 였다. 첫번째로 대전 소방본부 에서 Pyrosim이라는 화재 분석 시뮬레이션 도입하였다는 뉴스를 접한 후 였다. 그러나 우리나라에서는 이 같은 프로그램을 개발하는 곳이 없어 비싼 로열티를 들여 기업 및 공공기관에서 프로그램을 구매하여 사용한다는 것이였다. 안타까워 하던 중 문득 이런 생각이 들었다.“화재가 났을 때 건물 내 화재 정보뿐 아니라 사람이 피난하는 모습까지 시뮬레이팅 할 수 있는 프로그램을 만들어 보면 어떨까?”라는 생각이 들었다.

 

두번째로 도심의 인구가 증가하고 건축기술이 발전함에 따라 면적당 최대 수용인원을 늘리기 위하여 건물들이 초고층화 되어가고 있다. 초고층 건물에서 화재 등의 위급상황이 발생할 경우, 건물의 특성상 피난시간이 오래 걸리게 된다. 사전에 계획된 피난 시나리오가 없다면 많은 인명피해가 예상 되어 진다. 그렇다면 건물을 짓기 전에 피난 문제를 분석할 수 있는 도구를 만들면 어떨까? 라는 생각을 가지게 되었다. 그리하여 시뮬레이팅 프로그램 개발을 시작하게 되었다. 그렇다면 선진국에서는 피난시뮬레이션 프로그램이 어느정도 개발이 되어 있을까?

 

 

 

 

 

 

 

 

<외국에서 개발된 피난 프로그램의 종류>

 

 

 

 

 

 

<그림1.3>

영국 IES사의 시뮬렉스

가격은 500만원선

<그림1.4>

미국 Thunderhead Engineering사의

 Pathfinder가격은1000만원선(7200달러)

<그림1.5>

영국 Legion사에서 개발된 Legion Limited가격은 약 1억원선(45000파운드)

 

  인명피해를 사고 이전에 계산할 수 있다는 장점을 가진 공간 및 피난 분석 프로그램들을 선진국에서는 1990년대 중반부터 개발하기 시작하였다. 그리하여 각 국가 연구소에서는 피난 분석 프로그램을 만들어 실제 현장에서 사용되고 있는 반면, 국내에서는 아직 시작단계로, 많이 뒤쳐져 있는 상황이다. 이와 같은 문제를 인지하여 본 프로그램을 개발하게 되었고, 이것을 통하여 인명피해의 결과를 계산하여 피해를 최소화 할 수 있도록 도와주는 프로그램을 제작 하게 되었다.

 

1.2추진체계 및 일정

 

기간 :4월5째주`~7월4째주(14주)+a
   팀장 : 나

팀원 : 6명

-       분석, 설계, 검증 : 나

-       제작 : 2명

-       3D그래픽, 테스트: 2명

-       WPF UI: 1명

 

4월

5월

6월

7월

5

1

2

3

4

5

1

2

3

4

1

2

3

4

주제선정

 

 

 

 

 

 

 

 

 

 

 

 

 

 

자료수집

 

 

 

 

 

 

 

 

 

 

 

 

 

 

관련 기술 스터디

 

 

 

 

 

 

 

 

 

 

 

 

 

 

알고리즘및

 관련 논문분석

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FDS학습 및 분석

 

 

 

 

 

 

 

 

 

 

 

 

 

 

사 프로그램 분석

 

 

 

 

 

 

 

 

 

 

 

 

 

 

평면도, 단면도 정보추출

 

 

 

 

 

 

 

 

 

 

 

 

 

 

단층 시뮬레이션 엔진구현

 

 

 

 

 

 

 

 

 

 

 

 

 

 

다층 시뮬레이션 엔진구현

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CAD정보 WPF3D 형태로 변환

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2D, 3D mapping

 

 

 

 

 

 

 

 

 

 

 

 

 

 

사람특성에 맞게

엔진변경

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FDS Output 연산

 엔진구현

 

 

 

 

 

 

 

 

 

 

 

 

 

 

UI 및 기타 기능구현

 

 

 

 

 

 

 

 

 

 

 

 

 

 

스트

디버깅

 

 

 

 

 

 

 

 

 

 

 

 

 

 

검증

 

 

 

 

 

 

 

 

 

 

 

 

 

 

문서 정리

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<표1.2.1> 프로젝트 일정표

 

1.3부분 별 수행 업무 수행 및 담당자

 

분 야

담당 업무

사용 툴/ 언어/ 라이브러리

담 당 자

논문 분석 및 적용

-논문을 분석한 뒤 적용범위 선정 및 프로그래밍 할 수 있도록 설계

-


평면도, 단면도 정보추출

- CAD파일에서 얻어온 Raw Data를 받아와 정보화 시키는 작업.

Visual C#, Vector Draw

단층 시뮬레이션 구현

-키르히너 모델을 적용하여 단층에서 피난이 가능하도록 구현

Visual C#, Vector Draw

다층시뮬레이션 구현

- 층과 층 사이를 계단으로 연결시켜주어 다층 피난이 가능하도록 구현

Visual C#, Vector Draw

CAD정보 WPF3D 형태로 변환

-  CAD정보로 WPF폼에 3D건물을 증축

Visual C#, Vector Draw

FDS Output 연산

 엔진구현

-FDS화제모델 설계

- 시뮬레이팅후 DEVE 파일이용 엔진구현

Visual C#,FDS,MS -SQL2005


UI 및 기타 기능구현

-UI설계, 디자인

- 프로그램의 기타 기능 구현

Visual C#, Vector Draw,Chart FX


<표1.3.1> 프로젝트 업무수행 및 담당자

 

1.4 프로젝트 개발 범위

 

본 프로젝트는 한국에서 개발된 피난 시뮬레이션들과 다른 알고리즘을 가진 모델로 개발하고자 하였다. 인간의 시각적 인지를 이용한 서울대의 프로그램이 독자화 되서 사용되어왔던 것을 계기로, 우리프로그램만의 특별한 알고리즘 계산법을 적용 시키고 싶었다. 그리고 피난 프로그램중 가장 유명한 Simulex 및 PathFinder를 롤 모델로 삼았다. 그 이유는 이미 검증된 피난 프로그램으로, 우리가 제작한 프로그램과의 결과값 비교시 유사한 값이 나오도록 하기 위해서 였다. 그리하여 각각의 프로그램의 장점을 파악하여, 우리 프로그램에 적용하였다.

엔진의 경우 인천대에서 개발된 프로그램 및 미국 Thunder 사에서 개발된 PathFinder의 경우 둘다 A* 알고리즘을 적용하였는데, 우리 프로젝트의 경우 그와 유사한 Static Floor Field 알고리즘을 적용하였다. 왜냐하면 개미의 페로몬 현상을 응용한 위급상황시 군집하게되는 현상을 적용하기 위해서 A*알고리즘 보다는 Static Floor Field가 적합하다고 생각하기 때문이다. 그러나 피난자들이 군집하게 되면서 서로 밀고 밀리는 Push Force현상은 적용하지 않았다.

그래픽의 경우 CAD파일을 정보화 시켜 2D및 3D화 시켜주는데 초점을 맞추었다. 화려한 디자인과 실제 피난자 케릭터가 이동하려는 모습을 구현하려 하였으나, WPF3D폼에 엔진과 연동하여 움직이게 하는데에 충분한 학습시간이 부족하여 구현하지 못하였다.

화제관련하여, 기본적으로 화제모델을 설정할줄 알아야 화제에 대한 정보를 적용시킬수 있기 때문에 FDS(화제시뮬레이션) Output 파일의 경우, 사용자를 FDS를 사용할수 있는 사용자로 제한하였다.  보통 FDS 시뮬레이팅 후 2차 검증과정으로 피난 시뮬레이션을 하는 것을 보며 FDS사용자에게 잘 맞는 피난 시뮬레이션이라고 생각 하였다.


2절 배경지식

 

2.1. 기존 피난 시뮬레이션 프로그램 설명

2.1.1. 시뮬레이션 프로그램의 흐름

 

시뮬레이션 기술은 우리에게 멀리 있는 일처럼 느껴지곤 한다. 그러나 우리는 정말 시뮬레이션과 가깝게 지내고 있다. 매일 시뮬레이션 한 날씨 정보를 통하여 하루의 일상을 계획하기도 하고, 스타크래프트 같은 가상전쟁 전략시뮬레이션 게임을 하기도 한다. 이처럼 무언가 예상하여 행할수 있는 프로그램들을 통칭하여 시뮬레이션이라고 한다.

그럼 연구 및 데이터를 습득하기 위한 시뮬레이션은 언제 행하여 질까? 실제로 실험하기 위험한 상황이나 많은 제약이 따르는 실험, 비용이 많이 발생하는 실험등에 시뮬레이션을 주로 사용하고 있다. 과거에는 간단한 시뮬레이션만을 구현하였지만, 현재는 컴퓨터 연산속도가 향상됨에 따라 복잡한 시뮬레이션과 다양한 시뮬레이션 프로그램이 개발될 수 있게 되었다. 심지어 대륙과 대륙간 피난을 계산하는 복잡한 시뮬레이션 프로그램도 등장하고 있다. 대부분의 시뮬레이팅 프로그램은 고가인데, 피난 시뮬레이션의 경우 500만원부터 1억원이 넘는 프로그램까지 다양하다.

 

2.1.2. Simulex

 

시뮬렉스는 인간의 개인행동 모델을 적용한 피난 시뮬레이션 프로그램 이다. 이 프로그램은 영국IES사에1994년 개발되어 지금까지도 사용되고있는 프로그램이다. 피난 시뮬레이션 프로그램 중 가장 유명한 프로그램이기도 한 시뮬렉스는 지금까지 개발되고 있는 피난 프로그램의 롤모델로 자리잡고 있다. 그만큼 실제와 유사하다는 평을 받고 있다.

다음은 개략적인 시뮬렉스의 주요 특징이다.

u              건물 모델을 CAD DXF파일을 이용해 건물을 생성할수 있다.

u              다층건물 묘사를 위하여 계단으로 각 층을 연결하였다,

u              최종출구를 건물 안이나 밖에 정의 할수 있다.

u               0.2m * 0.2m 간격의 Mesh가 자동으로 생성된다

u              링크는 각 층을 연결하거나, 문의 기능으로도 사용이 가능하다

u              Mesh내 모든점과 출구까지 최단경로를 계산한 Distance map을 이용해 피난경로를 계산한다.

u              구성원을 체형, 이동속도, 반응시간등의 값의 변경으로 다양하게 정의가 가능하다

u              신체 사이즈를 고려하였다.

u              밀도에 의한 속도 감속이 이루어 진다

이러한 특징 때문에 사용자들이 쉽게 시뮬레이팅을 할수 있다.

 

2.1.3. PathFinder

 

PathFinder는 미국 Thunderhead 사에서 개발한 피난 프로그램이다. 이 회사에서는 FDS엔진을 이용한 화재 시뮬레이션 프로그램인 Pyrosim을 만든회사로도 유명하다. PathFinder는 피난 시뮬레이팅 하는 방식을 두가지로 두었다. SFPE Mode와 Steering Mode 로서, SFPE Mode는 SFPE HandBook에 나온 수치를 기준으로 적용하여 피난하는 방식이고, Steering Mode는 우리가 만든 FX-Finder와 마찬가지로 특정 논문에 의거하여 피난하는 방식이다. Craig Reynolds' paper "Steering Behaviors For Autonomous Characters" 의 논문을 참조하였다.[1] 특히 PathFinder의 경우 우리가 만든 FX-Finder와 유사한 경우가 많은데, 사람의 최단경로를 고려하여 A*알고리즘을 적용하였다는 것이고, 사람의 특성을 고려하기 위해 논문을 참조하여 적용하였다는 점이다. PathFinder는 시뮬렉스의 기본기능(피난자의 속성을 변경하여 피난할수 있음)을 흡수하여 구현하였고, 다른 피난 프로그램들과의 차이점은 3D로도 피난모습을 보여줄 수 있다는 점이다.

 

2.2. Kirhiner Model

2.2.1. 모델설명

 

현재 추세에 있는 피난 시뮬레이션은 Cellular automation model 방식으로 진행되고있다. Kirhiner Model은 생물학적으로 접근하여 관계를 설명할 수 있다 보행자가 피난시 사용하는 방법을 chemotaxis(주화성)이라 한다. 즉 생물이 특정한 화학반응에 의하여 이동하는 성질을 적용한 모델이다. 여기에는 Static Floor Field 와 Dynamic Floor Field 라는 필드가 존재한다. 이 두가지 필드는 조화를 이루어 최단경로를 찾기 위해 피난자의 보행을 예측하게 되는데, 지적능력과 군중현상을 대표하는 필드이다.(A profer combination of herding and use of knowledge about the shortest way to the exit)[2].

 

2.2.2. 알고리즘 소개

2.2.2.1. Static floor field

 

Static Floor Field의 경우는 우리가 흔히 접해왔던 최단경로를 찾는 알고리즘이라고 생각하면 된다. 이것과 비교되는 알고리즘으로는 A*알고리즘이 있다. 둘의 차이점은 다음과 같다. A*의 경우는 현재 위치에서 출구까지의 경로를 계산하는 방식이고, Static Floor field의 경우는 출구에서부터 피난자의 위치까지의 피난소요 경로를 계산하는 방식이다. 이 논문에서는 동, 서, 남, 북 4방향만 고려하여 피난을 고려하였다. 그러나 우리가 실제 프로그램을 구현할때에는 사람이 모두 움직일수 있는 8방향으로 고려하여 프로그램을 설계하였다.

 

2.2.2.2. Dynamic floor field

  

                            

 

<그림 2.1 개미의 페로몬 확산현상을 반영한 FX-Finder의 모습>

베르나르 베르베르가 쓴 <개미>를 읽어보면 이러한 내용이 소개된다. 개미는 왜 멀리가도 길을 잃지 않는가에 대한 내용이다. 흥미롭게도 개미는 자신이 이동할 때 페로몬을 뿌려 돌아올때도 페로몬이 있는 것을 확인하여 경로를 설정하여 돌아 온다고 한다. 많은 개미들이 많이 이동할수록 많은 페로몬들이 증가와 확산을 반복할 것이고, 그중 많은 페로몬이 뿌려진 길을 선택하게 된다. 이유는 많은 개미가 선택한 길이기 때문에 보다 정확하다고 생각하기 때문이다. 개미처럼 군집하여 타인에게 의존하는 현상을 화재에 적용해 보았다. 보통 화재나 위급상황시 자신이 독단적으로 건물의 출구를 빠져나가는 것은 건물의 이해도가 높지 않은 이상은 시도하기 어렵다. 보다 많은 사람들이 선택한 길을 통하여 탈출하려 하는 습성을 개미의 Chemical trace에 접목한 필드가 바로 Dynamic floor field이다.

 

2.2.2.3. 계산 및 위치선정 방식

 

위에서 언급한 Dynamic Floor Field 와 Static Floor Field 의 값을 연산하여 출구를 찾아간다. 이동하는 경로에 장애물이나, 피난자가 있을 때 까지 고려하여 이동할 수 있도록 고려하였다. 자세한 내용은 아래의Core Techniques에서 설명하도록 하겠다. 또한 각각의 사람들마다 개성을 부여하기 위하여 피난 속도, 반응시간 등을 적용시킬수 있도록 설계하였다. 보통 피난 시간을 계산할 경우

 

       피난시간(REST) = 피난전 행동시간 + 피난시간

피난시간(REST) = Td+Ta+To+Ti+Te

여기서

Td : 불이 감지되는데 걸리는 시간

Ta : 불이감지되어서부터 거주자들이 인지하는데 걸리는 시간

To : 불이 난 것을 인지했을 때부터 거주자들이 행동을 취할 때까지 걸리는 시간

Ti : 행동을 취하기로 결정한 때부터 피난을 시작하는 데까지 걸린 시간

Te : 피난하기 시작하면서부터 피난이 끝날 때까지 걸리는 시간

 

으로 계산되는데,  FX-Finder의 경우 Td+Ta+To+Ti 시간 과 Te의 두개의 시간, 즉 피난전 행동시간과 피난시간으로 구분하여 설정 할 수 있도록 고려해 주었다.

 

2.3. FDS(화제 시뮬레이션)

 

FDS(Fire Dynamics Simulator)프로그램은 미국 NIST의 Kevin B. McGrattan에 의해 개발된 화제시뮬레이션 프로그램이다. 화염이나 연기와 같이 화재에 의해 유도된 유체흐름에 대해 해석하는 전산유체역학(CFD)모델이다. 이 소프트웨어는 수적으로 느린 속도, 불로부터 나온 열과 연기에 초점을 맞춘 열적 구동되는되는 흐름에 대해 적절한 Navier-Strokes 방정식을 풀 때 사용된다. 이 방정식은 저속흐름 그리고 화재로부터 생성된 연기나 열전달에 중점을 두는 열적유동의 해석에 적당하다.[3] 시뮬레이팅의 결과를 OpenGL기술을 이용한 SmokeView를 제공한다. 그리하여 보다 쉽게 연산된 결과를 볼 수 있다. 현재 NIST사 에서도 화제와 피난을 접목시킨 FDS+EVAC beta버전을 출시하였다.

 



[1] 자세한레퍼런스 공개는 공모전 이후에 하겠습니다.



 

<화재정보를 보여주고 있는 3D FX-Finder>





<distance map>



 

<각종 화재정보를 시간의 흐름에 따라 그래프로 보여주고 있는 FX-Finder > 

 

5절 결론 및 개선방향

 

5.1 결론 및 기대효과

 

FX-Finder를 통하여 얻을 수 있는 효과는 다음과 같다. 건물의 정보가 있는 CAD파일만 가지고 있다면 화재나 위급상황의 발생전에 위험을 미리 평가하고 위험에 대처할 수 있다. 또한 방송영상 자료나 안전도 검증자료로도 다양하게 활용될 수 있다.

피난프로그램의 대부분을 수입에 의존하는 국내 상황에서 FX-Finder는 국내 재난프로그램에 많은 변화와 발전을 가져오는 계기가 될 것이다.

테스트시 비교군으로 썼던 Thunderhead사의 PathFinder의 경우는 약 1000만원 정도 하는 고가의 프로그램이다. 그러나 이 프로그램 조차도 시뮬레이션 프로그램중에는 저가에 속한다. 1억원이 넘는 피난프로그램이 있을 정도로 대부분의 피난 프로그램들의 단가가 높은데, 국내기술로 피난프로그램을 개발한다면 외화 절감에도 상당한 효과를 가져올 수 있다.

 

 

 

 

5.2 테스트 및 검증

5.2.1 국내외 시뮬레이션 프로그램 비교

 

국내외 시뮬레이션 프로그램 비교

 프로그램명(회사명)

<국가>

FX-Finder(RaOn)

<한국>

피난 시뮬레이션(인천대)

<한국>

PathFinder(Thunderhead)

<미국>

Simulex (IES)

<영국>

Agent-Based?

O

O

O

O

사람의 특성을 적용?

O

X

O

O

사용 알고리즘은?

 키르히너 모델

(최단경로 모델+군집현상)

 A* 알고리즘(최단경로 모델)

 A* 알고리즘+Craig Reynolds 모델

(최단경로 모델+군집현상)

(최단경로 모델+군집현상)

화재데이터 표시?

O

X

X

X

사용자 편의성 고려기능

차트, 사람추가 및 출구추가등 기본기능 구현

없음

기본기능(사람추가 삭제, 출구추가 등)

기본기능(사람추가 삭제, 출구추가 등)

사용 용도

사람의 특성을 적용한 화재 피난

가장 빠른 경로 피난만 가능

사람의 행동 특성을 적용한 피난 프로그램

사람의 행동 특성을 적용한 피난 프로그램

피난시간(인지시간+대피시간)구현

O

X

O

O

3D보기 기능

O

X

O

X

속도 가속/감속 및 속도 변환 옵션

O

(밀도에 의한 속도감속은 구현 안됨)

X

O

O

개발시기

09년

08년

09년

1994년

 

화재시뮬레이션 적용,3D

3D

3D, 인간행동 특성 반영

인간행동의 특성을 반영

 

.

.

1000만원

700만원

 

우리가 만든 FX-Finder와 Thunderhead사에서 만든 Pathfiner를 같은 조건하에 비교 실험 해 보았다. 실험 모델은 선문대학교 신축 기숙사를 선정하였고, 11가지 상황을 3번씩, 총 33번의 테스트를 해 보았다. 다음은 실험에 대한 결과이다.

 

 

 

 

5.2.2 대학 신축기숙사 테스트 결과(피난시간)

  

테스트 결과

테스트 맵

기숙사

개발 프로그램

FX-FINDER

비교군

PATHFINER

 

test내용

프로그램

1차

2차

3차

1

직선으로 피난시

FX-Finder

38

37

38

 

 

PathFinder

37.5

37.5

37.5

2

11개방에 4명씩 44명 (노인, 어린이, 성인남녀)

FX-Finder

79

80

80

 

 

PathFinder

81

81.3

81

3

군집현상(입구)100명

FX-Finder

8

10

9

 

 

PathFinder

21

22

22

4

대규모이동(200)명

FX-Finder

78

83

81

 

 

PathFinder

81.3

81.8

81.3

 

 

 

1차

2차

3차

5

22명 (각방에1명씩)11개방

FX-Finder

47

47

48

 

 

PathFinder

49.3

49.5

49.3

6

80명(각방에4명)

FX-Finder

49

49

50

 

 

PathFinder

51.5

51.5

51.5

7

44명(위에 각방의 4명씩 11방)

FX-Finder

49

48

49

 

 

PathFinder

51.5

52

51

 전체피난

1차

2차

3차

8

복도끝에서 출구까지-1명

FX-Finder

44

44

44

 

 

PathFinder

46.3

46.3

46.3

9

복도끝에서 출구까지-36명 일때

FX-Finder

50

49

49

 

 

PathFinder

53

53

52.8

10

복도끝에서 출구까지-100명 일때

FX-Finder

59

58

56

 

 

PathFinder

61.3

61.3

63

11

복도끝에서 출구까지-200명 일때

FX-Finder

70

69

67

 

 

PathFinder

76

76

74

 

 

 

 

 

 

 


 

5.2.3 대학 신축기숙사 테스트 결과(오차범위)

오차범위

 

 

오차범위

1차

2차

3차

1

직선으로 피난시

0.5

0.5

0.5

0.5

 

 

 

 

 

 

2

11개방에 4명씩 44명 (노인,어린이,성인남녀)

1.4333333

2

1.3

1

 

 

 

 

 

 

3

군집현상(입구)100명

12.666667

13

12

13

 

 

 

 

 

 

4

대규모이동(200)명

1.6

3.3

1.2

0.3

 

 

 

 

 

 

 

 

 

 

 

 

5

22명 (각방에1명씩)11개방

2.0333333

2.3

2.5

1.3

 

 

 

 

 

 

6

80명(각방에4명)

2.1666667

2.5

2.5

1.5

 

 

 

 

 

 

7

44명(위에 각방의 4명씩 11방)

2.8333333

2.5

4

2

 

 

 

 

 

 

 

전체피난

 

 

 

 

8

복도끝에서 출구까지-1명

2.3

2.3

2.3

2.3

 

 

 

 

 

 

9

복도끝에서 출구까지-36명 일때

3.6

3

4

3.8

 

 

 

 

 

 

10

복도끝에서 출구까지-100명 일때

4.2

2.3

3.3

7

 

 

 

 

 

 

11

복도끝에서 출구까지-200명 일때

6.6666667

6

7

7

 

 

 

 

 

 

평균 오차

3.6363636

기록원 : 장**

 

실험결과 대량의 군집현상을 제외하고는 비교군인 Pathfinder와 유사한 결과가 나오는 것을 볼 수 있다. 각기 다른 알고리즘을 사용하였지만, 사람의 행동특성을 반영한 알고리즘이라는 유사성 때문에 비슷한 결과가 나올수 있었다. 

 

자세한 프로필 및 연락 주실 분들은
amhoya@hanmail.net
으로 메일 주세요. 


 

반응형
반응형
쉽게 설명해 놓은 A스타 알고리즘.

시뮬레이팅 할때 최단거리가 필요하진 않지만, 인천대에서 이 알고리즘을 통해 시뮬레이팅 프로그램을 작성한 논문을 보고, 한번더 공부하게 되었던 A* 알고리즘!


 

당신이 쉽게 A* 알고리즘을 이해할 때, 이 A*알고리즘은 초보자에게는 복잡하게 느껴질수도 있습니다. A*알고리즘을 해석한 논설들이 웹상에 많이 존재합니다. 그러나 그 글들의 대부분은 이미 기본적인 것을 이해한 사람들을 위해 쓰여진 글들이지만. 그와 달리 이 글은 진정 초보자들을 위한 것입니다.

 

이 논설은 A* 길찾기 알고리즘의 주제를 완벽히 보여주도록 노력하지는 않습니다. 그보다는 당신이 앞으로 관련된 다른 좀더 구체적인 글들을 읽고 이해하는데 필요한 A*길찾기 알고리즘의 원리와 기본적인 것들을 설명하고 있습니다. 나중에 여러분들이 읽을수 있도록 최고의 몇몇 웹사이트 링크를 마지막 부분에 제공합니다.

 

마지막으로, 이 논설은 어느한쪽으로 특유화된 프로그램이 아닙니다. 나는 이 논설의 마지막 부분에 C++과 Blitz Basic 두가지 버전의 샘플프로그램 패키지의 링크를 넣어 놓았지만 당신은 어떤 컴퓨터 언어로든 A*알고리즘을 적용하는 것이 가능할 것입니다.

샘플프로그램에는 당신이 A*가 동작하는 것을 볼수있도록 실행파일도 포함시켜 놓았습니다.

AStar.zip

 

자~ 처음부터 시작해 보자... 우리스스로 헤처나가 보자 ~Let's Go(^^b)

도입: 범위 찾기(The Search Area)

자~ 가정해 보자 누군가가 A지점에서 B지점으로 가기를 원한다. 그리고 벽이 이 두 지점을 분리시켜놓고 있다. 이것에 대한 그림이 아래에 있다. 녹색은 출발지점A, 빨간 것은 도착지점B, 그리고 파란색으로 채워진 사각형은 양쪽사이에 있는 벽이다.

 


 

먼저 알수 있는 것은 우리의 검색지역이 사각형 격자들(Grid) 로 나누어져 있다는 것이다. 우리는 이 단순화된 검색지역 사용한다. 우리가 첫 단계로 할 것은 길 찾기이다(당근이쥐!). (격자들로 지역을 단순화시킨) 이런 특별한 방법은 우리의 검색지역을 단순한 2차원배열로 만들어준다. 각각의 아이템(시작지점,도착지점,벽,길 등등)은 사각형 격자위에 하나의 2차원배열로 묘사된다. 그리고 이것은 ‘갈수 있는곳’, ‘갈수없는곳‘ 이런식으로 상태가 기록된다. 우리가 A에서 B로 갈 수 있는 길은 어떠한 사각형들의 모양으로 나타난다. 사각형의 중앙에서 다음 사각형의 중앙으로의 이동을 목표에 도착할때까지 하면서 길이 찾아진다.

 

이 중심점들을 노드 라고 부른다. 당신이 다른곳에서 길찾기에 대해 들을때, 사람들이 노드에 대해 토론하는 것을 종종 볼수 있을것이다(그런사람 없는데ㅡㅡ;). 왜 그것들을 사각형으로 사용하지 않지?(사각형을 사용하지 않는 사람들도 있나보다.) 왜냐하면 사각형보다 좀더 다른 것으로 검색지역을 나누는 것이 가능하기 때문이지. 그들은 직사각형, 육각형 또는 어떤모양이든 할수 있어~, 진짜루-. 그리고 노드는 그 형태 안에서 중심, 외각선사이 또는 다른 어디이든 위치할수 있어. 우리는 이 방식을 사용할거야 왜냐면 이것이 가장 단순한 방식이니까!(사각형을 쓰는것이? 아니면 A*길찾기 방식이? 이 방식이란 뭘 말하는것일까^^)

 

다음의 순서들을 실행 하므로써 우리는 길 찾기를 한다.

 

1. 지점A로부터 충분히 검토된 사각형을 열린목록(open list)에 추가한다. 열린목록은 쇼핑목록과 비슷하다. 지금은 목록상에 아이템이 하나이지만 나중에 좀더 갖게 될 것이다. 이것은 당신이 갖기를 원하는 길을  따라 저장 할 수도 있다. 그러나 그럴 수는 없다. 기본적으로 이사각형들의 목록은 검사가 필요하기 때문이다.

 

2. 시작점 근처에 붙어있고 지나갈 수 있는 모든 사각형들을 보아라. 벽, 물 또는 다른 잘못된 지역들은 무시해라. 그리고 그것들(정상적인 사각형) 역시 열린목록에 추가해라. 각각의 그 사각형들에게 지점A를 저장하라 ‘부모사각형’이라고~. 이 ‘부모사각형’은 우리의 길을 거슬러 올러갈 때 아주 중요하다. 좀더 후에 이것에 대해 확실하게 알게 될 것이다.

 

3. 시작사각형 A를 열린목록에서 빼고, 이것을 다시는 볼 필요가 없는 사각형들의 목록인 닫힌목록(closed list)에 추가해라

 

이 시점에서, 당신은 다음과 같은 그림을 얻을수 있다. 이 그림에서 중심에 어두운 녹색 사각형은 출발사각형이다. 이것은 밝은파란 외곽선으로 되어있고 이것은 닫힌목록에 추가되었음을 의미한다. 그리고 인접한 모든 사각형들은 검사되어진후 열린목록에 들어가 있다. 그리고 그것들은 밝은녹색 외곽으로 되어있다. 각각은 회색의 포인터를 가지고 있고 이것은 부모사각형인 시작점을 가리키고 있다.

 

 

다음으로, 우리는 열린목록에 있는 인접한 사각형중에 하나를 선택하고 앞에서 했던 처리를 아래에 설명된 방법으로 반복한다.  좀더 많이 할 수도 있고 덜 할 수도 있다. 그런데 어떤 사각형을 선택해야 할까? 그것은 바로 가장 작은 F비용을 가진 것을 선택한다.

(F비용이 무엇 일까요?? ^^ 아래를 보면 알게 된다구요.~)

 길 기록(Path Scoring)

길을 찾아내야 할 때 사용할 사각형을 선택하는 방법은 바로 다음 방정식이다.

F = G + H

 

G, H 요것들이 무엇이냐 하 믄~

? G = 출발점 A로부터 얻어진 새로운 사각형까지의 이동비용이다. 길을 찾아가면서 생성되게 된다.

? H = 얻어진 사각형으로부터 최종목적지점 B까지의 예상이동비용이다. 이것은 매번 조회될때마다 발견된다. 이것은 좀 당황스러울수 있다. 왜냐면 예상이동비용라고 불리듯이 이값은 추측이기 때문이다. 우리는 완전한 길을 찾을때까지 정확한 거리를 알수 없다. 왜냐하면 모든성격의 것들(물,벽,기타등등 갈수없는사각형)이 길위에 있기 때문이다. 당신은 H를 계산하는 한가지 방법을 연습을 통해 알게 될것이다. 그리고 H를 계산하는 방법은 웹상에 다른 많은 방법이 존재한다.

 

우리의 길은 열린목록과 F비용이 작은 사각형을 선택하는것의 반복을 통해서 얻어진다. 이 반복처리는 앞으로 이 논술 안에서 좀더 자세히 설명 될 것이다. 일단 우리가 어떻게 이 방정식을 계산하는지 세심히 보자.

 

위에 설명된 것처럼, G는 출발점으로부터 길을 만들기 위해 얻게 되는 사각형으로 이동하는데 드는 이동비용이다. 이 예제에서 우리는 세로 또는 가로로 이동하는데 각각 10의 비용을 할당 할 것이다 그리고 대각선이동에 대해서는 14의비용을 할당 할 것이다. 우리는 이 숫자들을 사용할것이다. 왜냐하면 대각선으로 이동하는 비용은 2의 루트이고 또는 대충 가로또는 세로로 이동하는거의 1.414배이기 때문이다. 단순하게 하기위해 우리는 10과 14를 사용한다. 비율은 거의 맞다. 그러므로써 우리는 루트 계산과 10진법을 피한다. 이것은 우리가 벙어리이거나 수학을 싫어하기 때문이 아니다. 그와 같은 숫자들을 사용하는 것은 컴퓨터에서도 역시 매우 빠르기 때문이다. 그것들과 같이 단순화 시킨 숫자들을 사용하지 않는다면 길찾기가 매우 느려진다는 것을 당신은 금방 알게 될 것이다.

 

우리는 얻어지는 사각형의 일정한 길을 따라 G 비용을 계산하기 때문에, 사각형의 G비용을 알아내는 방법은 그 부모로부터 G비용을 가져와서 부모로부터 직각으로 움직였냐 대각선으로 움직였냐에 따라서 10또는 14를 추가해 주는것이다. 이 방법이 좀더 명확하게 되도록 하기위해서 이 예제상에서 좀더 멀리까지 해볼 필요가 있다. 그래서 우리는 시작점으로부터 떨어져 있는 하나 이상의 사각형을 얻는다.

 

H 는 길들의 변화 안에서 어림잡아 예측될 수 있다. 우리가 사용하는 이 방법을 맨하탄방식(Manhattan method)이라고 부른다. 당신은 현재사각형에서 목표사각형에 도달하기 까지의 대각선이동을 제외한 가로 또는 세로로 이동한 총숫자를 계산할수 있다. 그리고 거기에 10을 곱한다. 이것이 바로 맨하탄방식인데 이것은 도시에 한쪽에서 다른 한쪽까지의 블록을 계산하는것과 같은 방식이기 때문이다. 여기서 당신은 대각선으로 블록을 가로질러 자를수는 없다. 중요하게도, H비용을 계산할 때 우리는 어떤 끼여드는 방해물도 무시한다. H비용은 단지 남은거리에 대한 어림잡은 추측일 뿐이다. 진짜 거리가 아니다. 또한 발견적방식이라고 불리는 이유이기도하다. 좀더 알기를 원하는가? 당신은 발견적방식상의 방정식들과 추가적인 사항들을 여기(http://www.policyalmanac.org/games/heuristics.htm)에서 발견할수 있을 것이다.

 

G 와 H를 더하므로써 F 가 계산된다.우리의 검색의 첫단계의 결과를 아래 그림에서 볼수있다. F,G,H 비용이 각각의 사각형에 표시되어 있다. 시작사각형에 오른쪽에 있는 사각형안에 표시된것처럼, F는 좌상단에, G는 좌하단에, 그리고 H는 우하단에 표시되어 있다.


그럼, 저 사각형들을 살펴보자. 글자와 같이 있는 사각형을 보면, G비용이 10이다. 이것은 시작 사각형으로부터 수평방향으로 위치한 사각형이기 때문이다. 즉, 시작사각형으로부터 위, 아래, 왼쪽, 오른쪽에 있는 모든사각형들은 모두 똑같이 G비용이 10이다. 대각선으로 위치한 사각형들은 14의 G비용을 갖는다.

그리서 보다 몇몇의 그 사각형들을. 사각형 안에 그것들 안에있는 문자안에, G=10, 이것은 왜냐면 이것은 단지 한 사각형이다. 출발사각형으로부터의 가로 방향. 사각형들은 즉시 상하 하지 않는다. 그리고 왼쪽으로의 출발사각으로부터 것드은 모두 똑같이 갖는다 G점수가 10을. 대각선 사각형은 G점수가 14를 갖는다.

 

H 비용은 맨하탄 방식으로 빨간 목적지 사각형까지의 거리를 추측하여 계산된다. 가로, 세로 방향으로만 움직이고 길위에 있는 장애물들은 그냥 무시된다. 이 방식대로 한번 해보자, 시작사각형에 오른쪽에 있는 사각형은 목표사각형으로부터 3개의 사각형만큼의 거리에 있으므로 H비용은 30이다. 이사각형에 위에 있는 사각형은 4개의 사각형만큼 떨어져 있으므로 H비용이 40이다(가로,세로 로만 움직인다는 것을 명심해라). 이제 당신도 다른 사각형들의 H비용을 어떻게 계산해야 할지 느낌이 올것이다.

 

이제 F비용은 단순히 H 와 G 값을 더하면 되는것이다.

 

찾기 계속하기(Continuing the Search)

계속 찾기를 해 나가기위해서 우리는 단순히 열린목록에 있는 사각형들 중에서 가장 작은 F비용을 가지고 있는 사각형을 선택하고 그 선택된 사각형으로 다음의 과정을 하면 된다.

 

4. 이것을 열림목록에서 빼고 단힌목록에 추가한다.

5. 인접한 모든 사각형을 검사해서 닫힌목록에 있거나 갈수없는것(벽,물,그밖에 장애물)들을 제외하고 나머지중에서 열린목록에 들어가 있지 않은것들을 열린목록에 추가한다. 선택되었던 사각형을 새로운 사각형들의 부모로 만든다.(선택되었던 사각형이란 4.에서 단힌목록에 추가된 그 사각형을 말한다. 새로운 사각형이란 5.에서 열린목록에 새롭게 추가된 사각형을 말한다.)

6. 만약 인접한 사각형중에 이미 열린목록에 있는 사각형이 있다면 이사각형으로 가는길이 더 좋은 길인지 확인해 봐라. 다시 말하면, 우리가 현재 선택된 사각형보다 G비용이 더 작은지를 검사해 봐라. 만약 아니라면 아무것도 할 필요가 없다. 그러나 새로운 길이 G비용이 더 작다면 선택되었던 사각형의 인접사각형들의 부모를 새로운 사각형으로 바꿔라(위쪽 그림에서 보면, 선택된 사각형으로 향하는 포인터들의 방향을 바꾸는 것을 말한다.). 마지막으로, 그 사각형의 F와 G를 다시 계산해라. 이것이 좀 복잡하게 느껴진다면, 아래 그림을 보아라.

좋았어~, 이제 이작업들을 직접해보자. 최초에 9개의 사각형중에 우리는 시작사각형을 닫힌목록에 넣은후 열린목록에 8개의 사각형을 가지고 있다. 이들중에서 F비용이 가장작은 것은 시작사각형에 오른쪽에 있는 사각형 하나이다. 이사각형은 다음 그림에서 파란색 안에 강조되어 있다.(사실 뭐 강조되어 있지는 않다. 그냥 하늘색 외곽선에 쌓여 있을뿐^^)


제일 먼저 할 것은, 이것을 열린목록에서 빼는것이다.. 그리고 닫힌목록에 넣는다. (이것이 바로 지금 저 사각형이 파란색 외관선으로 강조된 이유이다). 그리고 우리는 인접한 사각형들을 검사한다. 오른쪽에 있는 사각형은 벽이다. 그래서 이것들은 무시한다. 왼쪽에 있는 것은 시작사각형이고 이것은 닫힌목록에 있다. 그래서 이것역시 무시한다.

 

다른 4 개의 사각형들은 이미 열린목록에 있다. 그래서 우리는 그것들을 이용한 길 중에 현재 이사각형을 이용하는 것 보다 좋은 것이 있는지 G비용을 이용한 검사가 필요한다. 우상단의 사각형을 보자. 이것의 G비용은 14이다. 만약 우리가 선택된 사각형을 거쳐서 그곳으로 이동한다고 하면 G비용은 20과 같을것이다(현재사각형이 G비용이 10이고 이것에서 수직으로 위쪽으로 한번 이동하였으므로 10을 더한다.). G비용 20은 14보다 크다. 그래서 이것은 좋은 길이 아니다. 그림을 보면 좀더 알기쉬울것이다. 단순히 시작사각형에서 대각선으로 1번 움직이는 것이 가로로 한번 세로로 한번 이렇게 움직이는거 보다 더 직접적이다.

 

우리가 열린목록상에 이미 있는 4 개의 인접한 사각형에 대한 처리를 할때, 현재의 사각형으로는 더 이상 길을 개선할 수 없다는 것을 알게 된다. 그래서 우리는 아무것도 변경하지 않고 이제는 인접한 사각형들에 주목하자. 이제 우리는 이것을 가지고 처리 할 것이고, 다음 사각형으로 이동할 준비를 할 것이다.

 

그럼 열린목록에 있는 사각형은 7 개로 줄었다. 그중에 가장 작은 F비용을 가지고 있는 것을 하나 고르자. 흥미롭게도 이 경우 두개의 사각형이 54의 F비용을 가지고 있다. 어떤 것을 사용할까? 이건 사실 별로 중요한 문제는 아니다. 속도상의 목적으로는 둘중 열린목록에 더 늦게 추가된 것을 선택하는 것이 속도상 빠르다. 이것은 그냥 단지 하나의 성향인데 당신이 목표에 다가갈 때 검색상에서 더 늦게 발견된 사각형들을 선호하는 검색성향일 뿐이다. (각각 다른 두개의 A* 버전을 만들더라도 길이가 같은 각각 두개의 길을 찾게 될 것이기 때문에 F점수가 둘 다 같더라도 서로 다르게 처리해도 상관없다.)

 

그래서, 우리는 그냥 단지 아래쪽에 있는 것을 선택하자, 그리고 다음 그림에 보여지는 시작사각형의 오른편을 보자

 

이제, 우리는 인접한 사각형들을 검사할 때 바로 오른쪽에 사각형이 벽이라는 것을 발견하게 된다. 그래서 우리는 이것을 무시한다. 그 바로위도 똑같이 벽이기 때문에 이것도 역시 무시한다. 그리고 우리는 벽 바로 아래 사각형도 무시한다. 왜그럴까? 왜냐하면 당신은 벽의 모서리 부분을 자르지 않고는 그 사각형으로 바로 갈수가 없기 때문이다.(뽀쪽한게 막구있잖아요~). 당신은 일단 밑으로 내려가서 그다음 그사각형을 거쳐서 지나간다. 이 처리에서는 이렇게 코너를 돌아서 이동한다. (노트: 코너를 자르는 규칙은 옵션이다. 당신의 노드를 어떻게 위치시키느냐에 따라서 사용된다.)

 

이렇게 5 개의 사각형이 계산에서 빠진다. 현재사각형 아래에 있는 2개의 사각형은 열린목록에 없는것이다. 그래서 우리는 이것들을 추가한다. 그리고 현재 사각형은 이것들의 부모가 된다. 다른 3개의 사각형중 2개는 이미 닫힌목록(시작사각형과 현재사각형위에있는 사각형, 둘다 파란색 외관선안에 있다)상에 있다. 그래서 우리는 이것들을 무시한다. 그리고 바로 왼쪽에 있는 마지막 사각형은 현재사각형을 통해서 가는것보다 G비용이 적은지 검사를 해보자. 아니군~, 그래서 이제 다 했고 열린목록에서 다음으로 이동할 사각형을 검사해보자

 

우리는 목표사각형을 열린목록에 추가 할때까지 이 처리를 계속 반복한다. 이것에 대해 정리된 그림을 아래에서 볼수 있다.

 

시작사각형으로부터 2 개의 사각형만큼 밑에 있는 사각형의 부모사각형이 이전 그림에서 변경되었다는 것을 주목하라. 전에 이것은 G비용이 28이었고 오른쪽위에 사각형을 가리키고 있었다. 지금은 G비용은 20이고 위쪽 사각형을 가리키고 있다. 이 일은 우리가 길찾기를 처리해 나가면서 어디선가에서 일어난 것이다. 어딘가에서 G비용을 검사했고 여기서 더 비용이 적게드는 길을 찾아냈다 그러므로써 부모가 바뀌것이고 G, F비용이 다시 계산되어진것이다. 이변화가 일어나는 동안에 예제에서 아주 중요하다고 보이는 것은 없는 것 같다.

가능성이 많은 장소들에서 이 검사는 목표지점으로 가는 가장 좋은 길을 찾아가면서 모든 것들을 다르게 만들것이다.(모든것들이란~ 더 빨리 갈 수 있는 곳을 말하는듯~-_- 그러니까 좀더 좋은 길은 G,F 값이 전하고 다른게 바뀐다. 이런 뜻인 것 같다.)

 

그래 그러면 이제 어떻게 최종적인 진짜 길을 찾아내지? 단순히, 단지 빨간 목표지점에서 시작해서 화살표를 따라서 부모사각형으로 한걸음씩 거슬러 올라가면 된다. 이렇게하면 결국 시작사각형까지 되돌아 가게된다. 그리고 그것이 당신의 최종적인 길이다. 이것은 다음의 그림에서 볼수있다. 시작지점 A에서 목표지점 B까지 이동하는 것은 단순히 길을 따라있는 각각의 사각형의 중심(노드)에서 다음사각형의 중심으로 이동하면 된다. 당신이 목표지점에 도달할때까지~ 쉽지~ㅋ

 

 

 A* 방식의 요약(Summary of the A* Method)

좋다. 지금시점에서 이제 당신은 설명을 통해서 했던 것 들은 까먹었을 것이다. 차례차례 이 A* 방식을 여기에서 정리해보자.

 

1. 시작사각형을 열린목록에서 넣는다.

2. 다음의 과정들을 반복한다.

a) 열린목록에서 가장 낮은 F 비용을 찾는다. 그리고 우리는 이것을 현재사각형으로 선택한다.

b) 이것을 닫힌목록으로 바꾼다.

c) 현재 사각형에 인접한 8 개의 사각형에 대해?

● 만약 인접한사각형이 갈수없는 것 이거나 그것이 닫힌목록상에 있다면 이것은 무시한다. 그렇지 않은것은 다음을 계속한다.

● 만약이것이 열린목록에 있지 않다면, 이것을 열린목록에 추가한다. 이사각형의 부모를 현재 사각형으로 만든다. 사각형의 F,G,H 비용을 기록한다.

●  만약 이것이 이미 열린목록에 있다면, 사각형 G비용을 이용하여 이사각형이 더 나은가 알아본다. 그것의 G비용이 더 작으면 그것이 더 나은 길이라는 것을 의미한다. 만약 그렇다면, 부모 사각형을 그 (G비용이 더 작은)사각형으로 바꾸어라, 그리고 그 사각형의 G,F비용을 다시 계산해라. 만약 당신이 당신의 열린목록을 F비용으로 정렬하고 있다면 바뀐것에 따라서 열린목록을 다시 정렬해야한다.

d) 그만할 때

● 길을 찾다는 중 목표사각형을 열린목록에 추가하였을때,

● 열린목록이 비어있게 될 경우 이때는 목표사각형을 찾는데 실패한것인데 이 경우 길이 없는경우다.

반응형
반응형

정리는 나중에 노트보면서~!?

대피층이 왜 필요한지,
고층빌딩에서 대피층이 필요한 이유,
외국의 경우 대피층을 어떻게 정의 하고 있는지


공간의 가시성
터널엣올
공간분석이론 VGA의 확장
피난시간계산방법

출처  네이버 FDS 포럼 카페
반응형
반응형

관련사이트

http://fseg.gre.ac.uk/exodus/exodus_products.html
●EXODUS/SMARTFIRE 피난 해석 소프트웨어

●프로그램 개요
EXODUS는 영국 Greenwich 대학 화재 안전 공학 그룹(FSEG)에서 연구 개발된 피난 해석 시뮬레이션 소프트웨어입니다. 포럼에이트에서는 이하의 3제품에 대해서 2006년 12월에 판매・서포트를 개시하였습니다.
・buildingEXODUS 건축 환경을 위한 피난 모델
・maritimeEXODUS 해양 환경을 위한 피난 모델
・SMARTFIRE 화재 모델링의 SMART CFD 시스템



 ■ building EXODUS

buildingEXODUS는 비상시・일반시의 사람들의 움직임・행동을 평가하는 컴퓨터 베이스의 실험실입니다. 사람과 사람, 사람과 화재, 사람과 구조물의 상호 작용을 시뮬레이션 하는 것은 물론, 열, 연기, 유독가스등의 영향을 받아 실내에서 피난하는 각 개인의 경로를 추적합니다.
FSEG는 연구・컨설팅 활동을 통해서 인간 행동을 예측하는 계산 화재 공학(CFE) 툴의 개발・적용에 임하고 있어 시뮬레이션을 컨트롤 하기 위해서 규칙 기반의 소프트웨어 기술을 사용하고 있습니다. 더욱 유연성을 갖기 위해서 이러한 규칙들은 피난자, 움직임, 행동, 유독성의 행동 모델로써 알려진 5개의 상호 작용 서브 모델로 분류되어 실내 형상으로 정의된 공간 영역에서 동작합니다. 내부적으로 형상은 절점의 메쉬에 커버되고 원호 시스템으로 링크됩니다. 각 절점은 한명에 의해서 일반적으로 점유되는 공간 영역을 표현합니다.

●buildingEXODUS 가 사용된 유명한 프로젝트
・ Dusseldolf 공항 재개발
・ 골든 피라미드 프라자 이집트
・ 2nd Avenue Subway확장(뉴욕)
・ 샌프란시스코 지하철
・ 런던 밀레니엄 돔
・ 시드니 올림픽 스터디움 ・ 911WTC (세계 무역 센터)
  


●buildingEXODUS 의 적용사례

▲시가지 팝 콘서트

 ▲고층 건물 피난(911WTC)



▲하역의 순환


 
 ▲철도역 밀집 시뮬레이션

●buildingEXODUS 의 기능과 특징
・ vrEXODUS 포스트부 VR 애니메이션 툴
・ 사용하기 쉽다/고속 처리/표준 PC 가 필요
・ 대화형 런타임 2D 그래픽에 의한 점유자의 조사가 가능
・ 2D 그래픽은 개개의 점유자/인구밀도/연기와 온도 분포의 표시 가능
・ 일괄 처리에 의한 복수 해석을 신속히 실행
・ 일반시 출구와 비상시 출구를 구별하고 점유자 친밀성에 따라 출구 이용을 할당하는 기능
・ 각 점유자의 밀집으로 소비되는 시간을 정합니다.
・ 절점・선의 조사에 의해 구조물 내에서 기록되는 임의 지점에 있어서 유동 통계치를 구하는 것이 가능
・ FED 모델로 결정한 유독성 계산이 가능
・ 자극성 화재 가스에 대한 점유자의 반응을 구할 수가 있습니다.
・ 복수 해석에 의한 대용량 출력 파일의 해석을 지원하기 위해서 설계된 툴 「askEXODUS」 을 이용 가능
・ 순회 기능에 의한 태스크의 할당이 가능
・ 표식의 가시화에 의한 관할 구역 결정
・ 밀집상태에 근거하는 출구 선택이 가능
・ 일반시 순환 어플리케이션에 대해서 신지물(e.g. 소스 절점)의 범위를 설정
・ CFAST 화재 시뮬레이션 이력 파일의 열기가 가능
・ SMARTFIRE CFD 화재 시뮬레이션 파일의 열기가 가능





▲SMARTFIRE 에서 예측되는 연소와 buildingEXODUS 시뮬레이션의 표시
(VR 이미지는 vrEXODUS 에 의한 연기 확산에 의해 기어가는 점유자를 나타내는 피난 시뮬레이션 결과)



▲방과 통로부의 자동 탐지 및 공간 그래프 생성


▲EXODUS VR 엔진





 ■ maritime EXODUS

maritimeEXODUS 는 비상시・일반시의 승객과 선원의 움직임・행동을 평가하는 컴퓨터 기반의 실험실입니다. 이 모델은 지정 집합장소에 모여 배를 떠나가는 순번을 기다리는 승객의 경로를 추적합니다. 화재의 영향을 받는 승객을 상정하여 승객이 열, 연기, 유독가스등의 영향을 벗어날 수 있을까 예측합니다. 또한 순항속도에 있어서 트림 힐의 영향도 평가하고 침몰 단계를 시뮬레이트 합니다.
세계 최대의 선박 시뮬레이터 SHEBA 로 생성된 인간 성능 데이터를 이용합니다. 이것은 복도, 오르막 계단, 60도 계단, 트림 힐 역각에서의 연직은 연직 사다리를 이동하는 인간 성능, 수밀성비・승강구의 개폐를 포함합니다. 최근에는 연기를 포함한 동적 경사 상태에서의 인간 성능을 포함하도록 확장되었습니다.

●maritimeEXODUS 의 적용사례
maritimeEXODUS 는 영국, 네덜란드, 이탈리아, 한국, 캐나다에 있어서 롤 온・롤 오프・페리나 관광선등의 대형여객선, HSC, 프리게이트함이나 항공모함등의 해군함정, 템즈강의 배나 페리등의 대형선박의 해석이나 인근 연안 산업으로써는 석유 플랫폼의 피난 해석에 사용되었습니다.
2002년의 선박 안전을 위한 RINA/LR 상과 선박 조작의 IT 혁명을 위한 CITIS 상 등의 해운산업으로써 최고로 높은 상을 몇 개정도 수상하여 유명해져 UK MOD 에 의한 「군함의 피난 설계 지도・평가 개발에 MOD 가 가장 필요로 하는 피난 툴」로써 승인되었습니다. EXODUS 패밀리의 하나인 BCS prize 2001, Queen's Anniversary Award 2002, European IST prize 2004 를 통해서 영예를 안을 수 있었습니다.

●maritimeEXODUS 의 기능과 특징
・ IMO MSC 1033 (집합 시뮬레이션)에 전면 준거
・ 순항 속도에 대한 트림 힐, 구명구 착용의 영향, 구명구 검색
・ 일방통행 기능, 소화 활동등의 선원・승객 행동 표시의 기능
・ 화재, 연기, 열, 유독가스의 삽입 기능, 연기와 배의 기울기 결합(EU/FIRE-EXIT)
・ 침몰 단계 시뮬레이트 기능, 승선등의 비피난 행동의 시뮬레이트 기능
・ 사다리, 승강구, 수밀비, 60도 계단의 편성
・ CFD 화재 시뮬레이션 소프트웨어와의 직접 연결(EU/Fire-Exit)





▲대형여객선에 있어서 승객의 집합 시간 예측 사례




 ■ SMARTFIRE

SMARTFIRE 는 다른 화재 시뮬레이션 CFD 소프트웨어와 달리, 화재 공학으로 사용되는 화재 시뮬레이션 툴로써 명확하게 설계 개발되어 FSEG 의 20 년 이상의 CFD 화재 모델링 경험에 기초를 둔 화재 시뮬레이션 소프트웨어입니다. 또한 화재 공학자에게 고속 화재 시뮬레이션 해석이 가능한 탁상 화재 실험실을 탁상 화재 실험실을 제공하고 화재 공학자가 설계에 집중할 수 있도록 하는 등 많은 독자 기능을 가지고 있습니다.

●SMARTFIRE 의 조요한 소프트웨어 컴포넌트
전 처리 툴
시나리오 설계자는 SMARTFIRE 시스템에 2D CAD 도면을 간단하게 임포트 할 수 있습니다. GUI와 자동 메쉬 툴로 복잡한 모델링 시나리오의 작성을 가능하게 합니다. 패키지 소프트웨어 EXODUS 에 링크하는 것도 가능합니다.

CFD 엔진
2D 단면가시화, 대화형 3D 데이터 가시화, 그래프 표시로 완전 대화형 컨트롤이나 결과 모니터링이 가능합니다.

후 처리 툴
CFD 엔진 혹은 데이터 뷰어로 이용할 수 있는 버추얼 리얼리티(VR)형 그래픽에 대한 실행이 가능합니다. 데이터 뷰어에 의해서 고객에게 프리젠테이션으로 사용하는 VR형 그래픽이나 애니메이션을 간단하게 작성할 수 있습니다.


●SMARTFIRE 의 기능과 특징
・ 복잡한 형상을 고속 모델화 하는 CAD 인터페이스
・ 화재 해석에 대한 자동 메쉬 생성
・ 물리・수치 파라미터의 고속 설정이나 해석 경과의 대화형 그래피컬 모니터링을 가능하게 하는 GUI
・ 극적으로 계산 시간을 단축하는 병렬 계산 기능
・ EXODUS 로의 반 자동 링크
・ 해석결과로의 고속 액세스를 가능하게 하는 강력한 후 처리 가시화 환경
・ 3개의 방사 모델의 선택 ・ 가스 연소 모델


▲SMARTFIRE 시각화 환경

▲스프링클러・물안개의 모델화 기능


▲완전 비구조 메쉬 기능

●SMARTFIREの適用事例


▲사고 조사(캐나다에서의 스위스 항공기 추락)




▼신 항공기 개념의 설계와 테스트




■EXODUS & SMARTFIRE 영어판:릴리스 중, 일본어판 릴리스 예정일:2월말
  FSEG(그리니치 대학 화재 안전 공학 그룹) URL:http://fseg.gre.ac.uk

(Up&Coming '07 신춘특별호 게재)


FORUM8
반응형
반응형
http://www.petrostudies.com/pscmain.htm

사이트 직접가서 참조하는게 더빠를듯.

반응형
반응형





탈출하는 부분이 잘 표현 되어있다.
특히 3D로 자연스럽게 표현하였음.

모델로 사용한 것은
In his 1987 paper, Flocks, Herds, and Schools: A distributed Behavioral Model, Craig Reynolds introduced the concept of steering behaviors He showed that by combining three behaviors (collision avoidance, velocity matching, and flock centering) it was possible to efficiently simulate the movement of a flock of birds in real time - a feat that was otherwise computationally unmanageable.

워킹 스피드 값도 조절가능함


문의 위치를 입력 해야함

Quickly sketch geometry ->도면을 스캔한 이미지를 불러와서
쉽게 다시 도면파일로 그려줄수 있게 하였음.
특정 선택한 대피자들을 특정한 문으로 탈출할수 있도록 고려함

복층건물에서도 계단을 통해 대피하는 시뮬레이션 을 제공함
Number of occupant in seleted room 같은 도표를 제공함으로써
방에서 사람들이 얼마나 점거하고있는지 한눈에 보이게 하였다.

Flow rates for seleted doors
->view door flow rate, original or averaged
간단한 리뷰.끝

더 참고하거나 다운로드시 아래의 사이트를 방문하세요.
http://www.thunderheadeng.com/pathfinder/index.html

 




 

반응형

+ Recent posts