최대 흐름 정합을 기반으로 하는 게임 시스템 및 그것의 캐릭터 ...

13
, . . , , (emergence) . Keyword : , , , In this paper, a method for analyzing characteristics of game characters based on maximum flow matching is proposed. The weight factor of characteristics is assigned with various internal or external conditions of character. As a result, it is possible to consider many conditional variables of characteristics for operations and to generate game characters that have adaptability and emergence like real creatures. Therefore more interesting games can be produced by using proposed method. Keyword : character search, maximum flow matching, multi characteristics matching * ([email protected]) . PC , , , (Online game) . , , . , (role playing game) (simulation game) . , , (Table Role-Playing

Transcript of 최대 흐름 정합을 기반으로 하는 게임 시스템 및 그것의 캐릭터 ...

한국컴퓨터게임학회논문지

No.11 December 2007.

최대 흐름 정합을 기반으로 하는 게임 시스템 및

그것의 캐릭터 특성 분석 방법

오 덕 신*

Game system and method for analyzing characteristics of game

characters based on maximum flow matching

Duk-Shin OH

요 약

본 논문에서는 최대 흐름 정합 알고리즘을 사용하여 다수의 캐릭터에 대한 특성 데이터가 저장된 데이터베이스로부터

다중 특징을 만족하는 캐릭터를 검색하고, 그 결과를 근거로 하여 해당 캐릭터의 전력을 평가하는 방법을 제안한다. 캐릭터의 특징 정보들은 해당 캐릭터가 처한 환경 또는 상황에 따라 다양한 종류의 가중치가 주어지게 된다. 그 결과 게임에서 아군과 적군이 처한 대 내외적인 요건들과 상황 변수들을 모두 고려하여 보다 다양한 전략과 전술을 구사할 수 있고, 게임 캐릭터가 살아있는 듯한 적응성, 창발성(emergence) 등의 복합적인 특성들을 나타낼 수 있게 되어 게임의 재미를높일 수 있게 된다.

Keyword : 캐릭터 검색, 최대 흐름 정합, 캐릭터 전력 평가, 다중 특징 정합

ABSTRACT

In this paper, a method for analyzing characteristics of game characters based on maximum flow matching is proposed. The weight factor of characteristics is assigned with various internal or external conditions of character. As a result, it is possible to consider many conditional variables of characteristics for operations and to generate game characters that have adaptability and emergence like real creatures. Therefore more interesting games can be produced by using proposed method.

Keyword : character search, maximum flow matching, multi characteristics matching

*삼육대학교 디지털경영학부 부교수([email protected])

Ⅰ. 서 론

불과 몇 년 전만 해도 게임은 PC 게임, 비디오 게임,

가정용 게임으로 구분되었으나, 인터넷의 발전에 힘입어

온라인 게임(Online game)이 일반인들에게 대중화 되었

다. 온라인 게임이란, 그래픽으로 구성되어 있고, 여러

명의 사용자가 동시에 접근해서 즐길 수 있는 게임을 말

한다.

현존하는 대부분의 게임은, 롤플레잉 게임(role playing

game)과 시뮬레이션 게임(simulation game)으로 구분된다.

롤플레잉 게임은, 역할을 수행하는 놀이를 통해 캐릭

터의 성격을 형성하고 문제를 해결해 나가는 형태의 게

임으로, 컴퓨터가 없이 이야기와 함께 대화를 통해 게임

을 진행하는 테이블 롤플레잉 게임(Table Role-Playing

최대 흐름 정합을 기반으로 하는 게임 시스템 및 그것의 캐릭터 특성 분석 방법 29

[그림 1] 제안된 게임 시스템의 전체 블록도

Game)에서 유래됐다. 그리고 시뮬레이션 게임은, 적군과

아군이 동시에 용병술을 행하여 승패를 가르는 컴퓨터

게임의 한 종류로, 전략시뮬레이션게임, 또는 실시간 전

략 게임(Real-time Strategy Game)으로 더 잘 알려져 있다.

모의실험이라는 뜻을 가진 시뮬레이션은, 턴 방식과

실시간 방식이 있다. 이가운데 턴 방식은 매턴이 존재하

고 자신에게 할당된 턴마다 이동과 공격 등을 하여 최종

적으로 승리를 이끌어내는 게임으로, 장기나 체스와 같은

놀이에서 그 원형을 찾을 수 있다. 즉, 적군과 아군이 나

누어져 있어, 지휘관의 위치에서 특정한 용병술을 구사하

여 적을 함락시키는 것을 기본적 구조로 한다. 컴퓨터 및

통신 관련 기술이 발달함에 따라, 적군과 아군이 같은 시

간에 실시간으로 움직이는 상황을 연출하는 것이 가능해

졌고, 이에 따라 전략게임이 더욱 실감나는 형태로 진화

했다. 실시간 전략게임에서는, 게임 속에서의 시간의 흐

름에 따라 적군과 아군의 용병술이 동시에 이루어지기

때문에, 좀더 실감나는 전쟁 상황을 연출하는 것이 가능

하다.

현재 제공되고 있는 대부분의 게임에서는, 아군과 적

군이 가지고 있는 몇 가지 속성에 대한 단순 비교에 의해

승자와 패자를 결정하고 있다. 예를 들어, 지력, 체력, 감

성의 3가지 속성을 가지고 전투를 수행할 경우, 지력이

100이고, 체력이 200이며, 감성이 50인 제1전사와, 지력

이 200이고, 체력이 100이며, 감성이 50인 제2전사가 가

지고 있는 통합 전투력은 서로 동일한 것으로 취급되고,

결국 두 전사는 싸움에서 비기는 결과를 초래한다. 하지

만, 두 전사간에 이루어지는 전투는 통합 전투력의 단순

비교만으로 우열을 가늠하는 것이 불합리할 경우가 있다.

왜냐하면, 게임에서 두 전사가 위치해 있는 환경 등의 외

부 요인으로 인해 단순 체력만으로 우열을 가릴 수 없는

경우가 존재하기 때문이다. 이럴 경우에는 지력이 우수한

전사가 유리하거나, 또는 외부 환경이 유리한 전사가 좀

더 유리할 수 있다. 예를 들면, 제1전사가 제2전사에 비해

공격하기 좋은 위치를 선점하고 있거나, 제1전사가 제2전

사에 비해 무기를 획득하기에 좋은 위치에 있거나, 또는

제1전사가 현재 위치에서 최대의 효력을 발휘할 수 있는

무기를 가지고 있는 경우 등은 제1전사가 제2전사에 비

해 훨씬 유리한 외부 요건을 가지고 있다. 따라서, 이와

같은 대 내외적인 요건들과 상황 변수들을 모두 고려하

여아군과적군에 대한 우열을 가릴수 있고, 더 나아가서

는 보다 다양한 전략과 전술을 구사할 수 있는 새로운 방

안이 요구된다.

본 논문에서는 게임 캐릭터의 대 내외적인 요건들과

상황 변수들이 모두 복합된 다중 특징 정보를 이용하여

다양한 전략과 전술을 구사할 수 있는 게임 시스템 및 그

것의 캐릭터 특성 분석 방법을 제안하고자 한다.

Ⅱ. 시스템 구성

본 논문에서 제안하는 게임 시스템 및 캐릭터 특성 분

석 방법은 최대 흐름 정합 알고리즘을 사용하여 다수의

캐릭터에 대한 특성 데이터가 저장된 데이터베이스로부

터 다중 특징을 만족하는 캐릭터를 검색하고, 상기 검색

결과를 근거로 하여 해당 캐릭터의 전력을 평가한다. 상

기 캐릭터의 특징 정보들은, 해당 캐릭터가 처한 환경 또

는 상황에 따라 다양한 종류의 가중치가 주어지게 된다.

그 결과, 게임에서 아군과 적군이 처한 대 내외적인 요건

들과 상황 변수들을 모두 고려하여 보다 다양한 전략과

30 한국컴퓨터게임학회논문지 (2007. 12)

전술을 구사할 수 있고, 게임 캐릭터가 살아있는 듯한 적

응성, 창발성(emergence) 등의 복합적인 특성들을 나타낼

수 있게 되어, 게임의 재미를 높일 수 있게 된다.

[그림 1]은 논문에서 제안하는 게임 시스템의 전체 블

록도이다. 게임 서버는, 인터페이스, 게임엔진, 다중 특징

정합부, 및 데이터베이스를 포함한다. 인터페이스는, 게

임 서버와 클라이언트들간의 인터페이스를 수행한다. 예

를 들면, 게임 설정에 관한 게임 운영 인터페이스와, 게임

실행에 대한 사용자 인터페이스, 게임 컨텐츠에 대한 인

터페이스, 그리고 게임 서버에서 수행된 전략 분석 결과

에 대한 인터페이스 등을 수행한다. 게임엔진은, 그래픽

스 및 사운드 효과를 통하여 내부/외부 환경과, 캐릭터/비

캐릭터들의 동작을 생성한다. 그리고 검색 엔진은 게임

컨텐츠에 대한 입출력을 수행한다. 게임엔진으로부터 입

출력 되는 게임 컨텐츠는 인터페이스를 통해 복수의 클

라이언트들로 제공된다. 데이터베이스에는 다수의 캐릭

터에 대한 특성이 저장된다. 다중 특징 정합부는, 데이터

베이스에 저장되어 있는 다수의 캐릭터에 대한 특성 정

보들을 검색하여, 특정 조건(특히, 복수 개의 조건에 부합

된 다중 특징)을 만족하는 캐릭터를 추출하고, 상기 검색

결과를 근거로 하여 해당 캐릭터의 전력을 평가한다. 이

를 위해 다중 특징 정합부는 인터페이스를 통해 사용자

가 지정한 캐릭터 정보를 받아들이고, 게임엔진으로부터

해당 캐릭터의 대 내외적인 정보(해당 캐릭터의 환경 정

보 등)를 받아들인다. 다중 특징 정합부는 다수의 캐릭터

에 대한 특성 정보들을 검색함에 있어서, WBM(Weighted

Bipartite Matching)[1] 또는 NMFM(Near Maximum Flow

Matching)[2]정합을 실행하여 각 캐릭터에 대한 특성 정보

를 비교하고 최적 유사도를 획득한다.

다중 특징 정합부는 복수 개의 조건에 부합된 다중 특

징(예를 들면, 캐릭터가 처한 환경등과같은 대내외적인

특징)에 대한 정합을 수행한다. 예를 들면, 캐릭터에 부가

된 다중 특징을 복합적으로 고려하여, 이에 해당되는 캐

릭터의 전투력을 결정한다. 이와 같은 전투력의 평가 결

과는, 온라인으로 접속된 클라이언트들에게 실시간으로

제공되어 각 클라이언트들이 전략을 짜는데 도움을 주게

되고, 각 클라이언트들의 게임 성적 순위를 매기는데 사

용된다. 따라서 각 클라이언트는 실시간으로 전송되는 캐

릭터들의 전투력 평가 정보 등을 통해, 보다 다양한 전략

과 전술을 구사할수 있게 된다. 이와같은 캐릭터의 전투

력 평가 정보는, 단일 특징 정보(예를 들면, 적군과 아군

의 전투력에 대한 단순 수치 비교)를 이용할 때 보다 더

욱 다양하게 제공된다.

Ⅲ. 다중특징 정합

다중 특징 정합부는 다중 특징에 대한 정합을 수행함

에있어서, 각 캐릭터 자신이 취한행동 또는 각 캐릭터가

처해 있는 환경 정보 등에 의해 해당 캐릭터가 유리/불리

해 졌는가에 따라서 가중치를 부여하여 정합을 수행한다.

예를 들면, 어떠한 환경에 처하거나, 또는 어떠한 선택을

하게 된 것이 캐릭터에게 유리하게 작용하는 경우에는

+1의 가중치를 부여하고, 불리하게 작용하게 되는 경우

에는 -1의 가중치를 부여하게 된다. 그리고 캐릭터에게

아무런 영향도 미치지 않을 경우에는 0의 가중치를 부여

하게 된다. 위 가중치는 게임의 개발 시 프로그래머에 의

해 각 상활 별로 설정될 수도 있다. 이처럼 각 상황 별로

차별화된 가중치를 부여하게 되면, 게임에 등장하는 캐릭

터들이 마치 생명체와도 같이 행동하고, 주변의 상황에

영향을 받게 되어, 적응성, 창발성 등의 복합적인 특성들

을 나타낼 수 있게 되고 게임의 재미를 한층 더 높일 수

있게 된다.

다중 특징 정합부에서 다중 특징(예를 들면, 캐릭터가

처한 환경 등과 같은 대 내외적인 특징)에 대한 정합을

수행하는데 사용되는 알고리즘에 대해 살펴보면 다음과

같다.

일반적으로, 다중 특징 정보는 그 정보의 속성이 다양

하기 때문에, 단일 특징 정보를 이용했을 때보다 비교 동

작에 따른 연산에 어려움이 있다. 다중 특징 정보의 비교

를 수행하기 위해서는, 탐색 방법과 결합된 정합 방법이

사용될 수 있으나, 다중 특징 정보를 활용한 캐릭터의 특

성 정합은 2원화된 정보의 비교 정합으로 볼 수 있으므

로, 본 논문에서는 Bipartite Graph 정합을 이용하여 다중

특징 정보의 비교를 수행하였다. Bipartite Graph[3]를 이

용해서 두 쌍의 다중 특징 정보를 비교하여 유사도를 계

산하기위해서는최대흐름 정합(max flow matching) 방법

을이용할 수있다. 그리고특징정보의 속성에 따라서로

다른 가중치를 부여하여 비교를 수행하게 되면, Bipartite

Graph의 최대 흐름 정합은 가중치가 적용된 Bipartite

Graph 문제, 즉 WBM(Weighted Bipartite Matching) 문제

최대 흐름 정합을 기반으로 하는 게임 시스템 및 그것의 캐릭터 특성 분석 방법 31

[그림 2] 유사도 비교 그래프

로 간주할 수 있게 된다.

WBM을 정합에 이용하게 되면 주위 환경 등에 변화가

발생하여도 그 변화에 적응하여 캐릭터의 특성을 비교

할 수 있는 장점을 가진다. 그러나 WBM은 복잡도가 큰

편에 속하기 때문에, 대용량 데이터베이스의 비교 및 실

시간 비교에서 많은 연산량과 시간을 요하는 단점을 가

진다. 따라서 본 논문에서는 이와 같은 WBM의 단점을

극복하기 위해서 대략적 최대 흐름의 값을 유추하는

NMFM을 제안한다. 이 방법은 오차가 발생할 가능성이

높은 영역을 제거하고 최대 정합이 발생 할 수 있는 최상

단 노드쌍 경우의 흐름 값을 유추하여 대략적으로 최대

흐름을 계산해 내는 방법으로서, WBM과 같은 성능을 가

지면서 속도가 빠른 장점을 가지고 있어, 실시간으로 캐

릭터의 특성을 검색하는 경우에 사용이 용이하다.

[그림 2]는 [그림1]에 도시된 다중 특징 정합부에서 수

행되는 가중치 Bipartite Graph를 이용한 최소 비용 계산

방법을 설명하기 그림으로, 최소 소요 비용이 발생되는

유사도 비교 그래프의 예이다.

[그림 2]와 같이 각 정점에 연결된 정점마다 가중치가

부여된 그래프를 가중치 Bipartite Graph라고 한다. 가중

치 Bipartite Graph에서, 좌측의 1V의 각 정점이 우측의 2V 정점과 정합을 하는 문제가 발생되는데, 이와 같은 정합

의 문제에서 두 그래프의 유사도를 구하는 부분을 최대

흐름문제(Maximum flow problem)로 변환 할 수 있다. 1V

의 각 정점을 출발지라 하고 2V 의 정점들을 도착지라 하

면, 1V 과 2V 사이의 연결선은두 정점을 잇는경로로 간주할 수 있고, 출발지로부터 도착지로 화물을 수송했을 때

각 경로의 용량의 합을 최대화하는 문제를 최대 흐름 문

제라 할 수 있다.

가중치 Bipartite Graph에서 가중치의 값이 최대가 되

는 때를 최대 흐름의 조건에 의한 정합이라고 하며, 최대

흐름의 조건에 의한 정합을 WBM이라고 한다. 최대 흐름

정합을 수식으로 표시하면 다음과 같다.

å= ))max(,,(max ijwEVGflow (1)

수식(1)에서, 그래프 G=(V, E)에서 정합된 한 개의 정

점은 E0이고, 이 때 E0가 가지는 가중치 값은 jiw ,,0 이고, 각 정점에 연결된 에지(edge)의 가중치 합은å jiw ,,0 로 표시

된다. 수식(1)의 G=(V, E)는 완전그래프(Complete Graph)

에서 임의의 온전그래프(Perfect Graph)를 의미한다. 온전

그래프의 가중치 합이 최대가 될 때의 그래프가 최대 흐

름 정합을 가지는 그래프가 된다. 이 같은 온전그래프를

찾아 정합을 하는 것이 바로 WBM 정합이다. WBM 정합

을 이용하지 않고 순차적으로 연산을 수행한다면, 모든

온전그래프의 åW의 값을 구하여야 한다. 이경우 n!번의åW을 구하기 때문에, 매우 큰 복잡도를 가지게 된다. 따

라서, 모든 가능한 온전그래프의 가중치 합을 구하지 않

고 최소의 연산으로 최대 흐름도를 찾는 알고리즘인

WBM을 이용한다.

WBM 정합에서는 헝가리안 메소드[4-6] 등을 이용하여

최소 소요 비용을 얻어내고, 이를 통해 정합을 찾아낸다.

헝가리안 메소드의 기본적인 개념은 각각의 에지에서 최

소값을 빼도 최적화 흐름에는 관계하지 않는다는 전제에

서 출발한다. 헝가리안 메소드에서는 최대 흐름 값을 얻

기 위해 최소 비용 값을 이용한다.

최소 소요 비용이란, 특정 정점에서 다른 정점으로의

이동에 드는 비용을 의미한다. G=(V, E) 그래프에서 임의

의 에지(a,b)의 최대 흐름이 Wmax이고 (a,b)의 가중치가

W(a,b)라할때, 최소흐름비용Wmin은아래수식과같다.

Wmin = Wmax - W(a,b) (2)

수식(2)에서 Wmin을 이용하여 최소 소요 비용을 찾아

내는 것은 최대 흐름의 정합쌍을 찾는 것과 같다. 이와

같이 최소 소요 비용을 찾는 방법을 이용하는 것은 유사

도 비교에 많이 이용된다.

WBM 정합에서는 Wmax를 가지고 있지 않아도 유사

도 비교에서 Wmin을 얻을 수 있다. 예컨대, G=(V, E)에

32 한국컴퓨터게임학회논문지 (2007. 12)

[그림 3] WBM 수행 과정

å å=

++=n

jijyxxy wEE

1'' )min(j

서 1V 과 2V 의 각 정점이 고유의 값을 가지고 있고, 1V 과

2V 가 같은 속성을 가진 그룹이라고할 때, 두 그룹의 유사도가 얼마나 비슷한지는 최소 소요 비용을 이용하여 결

정된다.

[그림 2]에는 하나의 온전 Bipartite Graph가 설정된 경

우, 각정점이가지고 있는 고유의 값의차이를이용한 최

소 흐름이 도시되어 있다. 예를 들어, 한 정점의 값이 7이

고, 비교 정점의 값이 5일 경우 두 개의 유사도 차는 2가

되며 이 2의 값이 최소 흐름 비용이 된다.

가능성 있는 모든 온전그래프의 모든 값을 구한 후에

그 중 최대 흐름도를 구성하는 온전그래프를 선택하게

되면 많은 연산을하게 된다. 하지만 몇개의정점이 연결

된 상태에서 나머지 정점들이 모두 최대값으로 연결되었

다고 가정하면 해당 온전그래프의 가능성 있는 최대값을

예측할 수 있다. 이 예측값이 다른 온전그래프 정합 쌍의

예측값 보다 작을 경우 해당 온전그래프는 최대 흐름값

을 가질 수가 없기 때문에 더 이상 연산을 하지 않는다.

이런 방법을 이용하여 최대 흐름도가 되는 정합쌍을 구

하는 것이 바로 WBM 알고리즘이다.

[그림 3]은 다중 특징 정합부에서 수행되는 WBM의

구성 방법을 설명하기 위한 그림으로, WBM을 할 때 발

생되는 4가지 경우의 예가 각각 표시되어 있다. [그림 3]

의 (a)에는 한 개의 노드(1, d) 가 설정된 상태에서 연결

가능한 경로{(2, a), (3, b), (4,c)}가 설정된 경우가 도시되

어 있고, (b)에는 두 개의 노드{(1, d), (2, a)}만 연결되었

을 경우가 표시되어 있다. 그리고 (c)에는 한 개의 노드

(1, c) 가 완전히 연결되고 한 개의노드 (2, a)가 연결되었

다 가정할 때, 다른 연결 가능한 경로들이 표시되어 있고,

(d)에는 온전한 정합 상태가 각각 표시되어 있다.

한 개의 노드가 완전히 연결된 상태라면 [그림 3]의 (a)

와 같은 온전그래프가 (n-1)!개 만들어지며, 각각의 비용

(cost) 값이 예측된다. 이 때 X 그룹의 정점 2가 a에 설정

될 때 가장 작은 최소 비용이 나온다면, (1, d), (2, a) 가

연결된 상태로볼 수 있다. 이경우 나머지 정점들도 다양

한 여러 형태로 연결될 수 있으며, [그림 3]의 (c)가 두 개

의 정점이 연결된 이후에 연결 가능한 쌍을 나타내고 있

다. 가능성 있는 온전그래프에서 (a)와 같은 형태가 여러

개가나올수 있는데, 이중에서 최소비용이나올 수 없는

온전그래프를 제거하여 (b)를 구성한다. (b)에서는 가능성

있는 연결을 예측하여 (c)를 구성한다. 이 때, (b)를 구성

할 때와 마찬가지 방법으로 최소 비용이 나올 수 없는 온

전그래프를 제거하면서 최소 비용이 나오는 정합쌍을 구

성한다.

아래 수식(3)은 WBM에서 임의의 에지 쌍을 설정하였

을 때 전체 흐름 값을 계산하는 식이다.

(3)

수식(3)에서 E는 현재 설정되어 있는 에지 쌍의 총 흐

름 값을 의미하고, Exy는 현재 최대 정합으로 설정된 에

지의 흐름 값이 된다. '' yxj 는 새롭게 최대 정합의 후보로

설정된 에지의 흐름 값을 의미하며, )min( ijw 는 정합되어

있지 않는 나머지 노드들 중에서 연결 가능한 최소값을

의미한다. 수식(3)에서 알 수 있듯이 WBM은 흐름 값이

최소가 되는 모든 에지 쌍을 후보로 선정하면서 반복적

으로 노드를 증가하면서 E 값을 구하고, 노드가 증가되기

이전의 E 값이 현재의 E 값보다 흐름 값이 크게 되면 상

위의 정합 쌍은 연결 불가능 경로가 된다.

Bipartite Graph에서 WBM을 수행하기 위한 대표적인

방법은, 쿤(Kuhn)에 의해서 고안된 헝가리안 방법

(Hungarian Method)이다. 이 방법은 헝가리안 트리를 이

용하여 뿌리에서 가장 큰 영양분의 흐름을 가진 줄기는

최대 흐름 정합을 기반으로 하는 게임 시스템 및 그것의 캐릭터 특성 분석 방법 33

(a) (b)

(c) (d)

(e)

[그림 4] 헝가리안 방법 적용 예

[그림 5] 온전한 정합을 찾기 위한 헝가리안 트리

계속 자라고 그 외 작은 영양분을 흐르게 하는 가지들은

더 이상 자라지 않는 형태를 알고리즘에 적용한 것이다.

이 방법은 행렬을 표기하여 최소값을 더하거나 빼 주는

방법이 있으며, 트리를 이용하여 연산하는 방법이 있다.

행렬을 이용하는 방법은, 기본적으로 각 행이나 열에서

같은 값을 더해주거나 빼주어도 최적 해는 변하지 않는

다는 점에 근거를 두고 있다. 따라서 각행이나 열에서 적

당한 값을 빼거나 더해주어 가중치의 모든 값이 0보다 크

거나 같으면서 0이 많이 들어 있도록 행렬을 바꾸어 나가

게 된다. 만일 이렇게 하여 가중치가 0이 되는 것으로만

할당할 수 있게 되면 이것이 바로 최적해가 되는 것이다.

[그림 4]는 다중 특징 정합부에서 헝가리안 방법을 이

용하여 최적 해를 구하는 방법을 설명하기 위한 그림이

다. [그림 4]의 (a)에는 각각의 노드들이 연결되었을 때의

가중치를 설정한 예가 표시되어 있다. (a)에서는 각 행에

대하여 행에 있는 비용 중 최소값을 선택하여 그 행의 비

용에 감한 값을 설정하는 동작을 수행한다. (a)에서 각 행

의 최소값을 선택하고, 그값으로 나머지 행의 값을빼 주

게 되면 (b)의 형태가 된다. (b)에서는 각 열에 대하여 열

에 있는 비용 중 최소값을 구하여 그 열의 각 비용을 감

한 값을 설정하는 동작을 수행한다. (b)에서 각 열의 최소

값을 선택하고, 그 값으로 나머지 열의 값을 빼주게 되면

(c)의 형태가 된다.

(a)와 (b)의 과정을 수행하고 나면, 0의 값이 여러 개

생기게 된다. 이때 이 0의 값이 모두 지워질 수 있도록 행

과 열을 직선으로 연결하는 방법들 중에서 직선의 수가

최소가 되는 경우를 결정한다. 그리고 결정된 직선의 수

가 행의 숫자보다 적으면 다음 단계를 수행하고, 직선의

수가 행의 숫자와 같으면 최적해가 만들어지게 된다. 예

를 들어, (c)에서 0을 모두 지울 수 있는 선을 긋게 되면,

1행과 4열이 여기에 해당된다. 이 때, 그어진 선은 2개로

서 전체 행의 숫자인 4 보다 작으므로, 다음 단계를 수행

하게 된다. 즉, (c)에서는 직선의 수가 행의 숫자 보다 적

을 경우, 먼저 직선으로 지워지지 않는 비용 중에서 최소

비용을 구하고, 이 비용을 직선으로 지워지지 않는 비용

에서 빼주고 직선으로 두 번 교차된 영역에는 더해주는

동작을 다시 수행하게 된다.

[그림 4]의 (c)에서, 선을 긋지 않고 남은 부분 중에서

최소값은 3행 1열의 1이 된다. 이 경우, 선을 긋지 않은

나머지 부분에서 1을 빼주고 두 번 겹치게 된 1행 4열 의

0의 값에는 1을 더해주는 동작을 수행하며, 그 결과는 (d)

가 된다. 계속해서, (d)에서도 (c)에서 수행된 것과 같은

방법으로 0을 지우는 직선을 긋게 되면, 3개의 직선이 나

오게된다. 이 경우, 같은 방법으로최소값 2를구하고, 두

34 한국컴퓨터게임학회논문지 (2007. 12)

(a) (b) (c)

[그림 6] 너비 우선 검색을 사용하는 헝가리안 트리

선이 만나는 부분에는 2를 더하고, 그리고 직선이 지나지

않는 부분에서 2 값을 빼면, (e)와 같은 결과가 얻어지게

된다.(e)에서는 그을 수 있는 직선이 모두 4개이므로, 모

든 방법이 끝나게 된다. 최적 해는 도 4의 (e)에서 0이 한

번 나타나는 행 또는 열을 구하여 0값을 갖는 칸에 1을

채워 나가면 된다.

[그림 5]는 가중치 Bipartite Graph에서 좌측의 1V 의 각

정점이 0, 1, 2, 3으로 설정되고, 우측의 2V 정점이A, B, C, D로 설정되었을 때, 헝가리안 트리로 모든 연결 가능

한 경우를 보여주는 그림이다.

[그림 5]를 참조하면 첫 번째 레벨은 A와 0, 1, 2, 3 이

결합하고, 나머지 값은 최소로 설정되었을 때의 비용이

된다. 두 번째 레벨은 A와 첫 번째 레벨에서 설정된 항목

을 제외하고 가능성 있는 경로를 B에 할당하고 나머지

부분에서 최소값을 설정한다. 같은 방법으로 세 번째 레

벨은 두 개의 결합이 이루어진 나머지 두 개의 결합을 설

정하였을 때의 최소 비용이다. 각 레벨의 특징은, 하위 레

벨은 상위 레벨의 비용보다 큰 비용이 나올 수 없다는 것

이다. 상위 레벨은, 현재 설정된 쌍 외에 나머지에서 쌍의

결정 없이 최소의 비용을 선택하기 때문에, 하위 레벨의

비용들이 상위 레벨의 비용과 같거나 큰 값이 나오게 되

어 있다. 하위레벨보다큰 비용을 가지고 있는상위 레벨

이 있다면, 상위레벨은더 이상 작은비용을발생하는 하

위 레벨을 가질수가 없기 때문에, 헝가리안 트리가더 이

상 자랄 필요가 없게 된다. 따라서 하나의 루트를 선택하

고 가지를 만들었을 때 그 가지가 다른 루트 보다 작은

값이 설정되었다면, 해당 루트의 가지는 만들 필요가 없

게 된다. 이 방법을 이용하여 더 이상 자랄 수 없는 부모

레벨의 연산을 하지 않음으로 빠르게 정합을 유추할 수

가 있다.

헝가리안 트리를 이용할 때, 같은 레벨의 루트를 먼저

연산하는 너비 우선 검색(Breath First Search) 방법과, 하

나의 루트를 선택하고 자식노드를 만들어 가는 깊이 우

선 검색(Depth First Search) 방법이 사용될 수 있다. 너비

우선검색을 이용하였을 경우 자식 노드의 값이 최소값으

로 설정되면 매우 빠른 속도로 계산이 완료된다. 반면 많

은 레벨의 연산 후에 결과가 결정되는 경우는 깊이 우선

검색 방법이 빠르다. 다중특징 정합부에서는, 비교되는

캐릭터 정보 데이터들 간의 유사성이 높을 경우, 너비 우

선 검색 대신 깊이 우선 검색 방법을 이용한다. 왜냐하면,

너비 우선 검색을 이용하게 되면 많은 레벨의 이동 후에

자라지 못하는 부모 노드가 설정되기 때문에, 깊이 우선

검색 방법을 이용하는 것이 용이하기 때문이다. 그러나

캐릭터의 특징이 완벽하게 분리되는 그룹에서는 너비 우

선 검색 방법을 이용하는 것이 용이하다.

[그림 6]은 너비 우선 검색을 사용하는 헝가리안 트리

의 이용 예를 보여주는 것이다. [그림 6] (a)에는 너비 우

선 검색의 첫 번째 스텝이 도시되어 있다. [그림 6] (a)는

(A, 0)이 결합되고 나머지 값이 모두 최소가 되는 형태로,

노드가 연결되었을 때 가중치 값이 101이 되고, 나머지

루트들은 105, 99, 108형태의 값을 가지게 된다. 헝가리안

트리에서 최초 루트는 가장 최소 비용이 드는 곳을 선택

하는 것이 일반적이다.

3개의 연결 노드 중에서 (A, 2), (B, 1)인 경우가 103일

최대 흐름 정합을 기반으로 하는 게임 시스템 및 그것의 캐릭터 특성 분석 방법 35

(a) (b) (c)

[그림 7] 깊이 우선 검색을 사용하는 헝가리안 트리

때 가장 작은 비용을 가지게 된다. 여기에서 상위 레벨의

노드 값들이 103보다 큰 루트는, 더 이상 작은 값이 나올

수 없는상태이기때문에, 더 자랄 수없는 경로로 설정된

다. [그림 6] (a)에서 (A, 1) 과 (A, 3)는 103 보다 큰 값을

가지기 때문에, 더 이상 자식 노드를 만들지 않게 된다.

너비 우선 검색은, 자식 노드로 한 레벨 내려갔을 때,

활성화 되어있는 노드도 함께 자식 노드를 만드는 형태

이다. [그림 6] (b)에는 (A, 0) 쌍에 자식 노드가 만들어진

형태가 도시되어 있다. [그림 6] (b)를 참조하면, (A, 0) 과

(A, 2)의 쌍에서 가장 작은 비용이 드는 노드가 (A, 2) (B,

1)이 된다. 따라서 가장 작은 비용이 드는 쌍을 우선 선택

하여 자식 노드를 만들어가게 된다.

그리고 [그림 6] (c)에는 (A, 2) (B, 1)에 자식 노드가 만

들어진 형태가 도시되어 있다. [그림 6] (c)를 참조하면,

(A, 2), (B, 1), (C, 0), (D, 3) 은 103의 최소 값을 가지게

되어, 103 보다 큰 값을 가지는 상위의 모든 노드들은 더

이상 자랄 필요가 없게 되어, 정합은 종료된다.

[그림 7]은 깊이 우선 검색을 사용하는 헝가리안 트리

의 이용 예를 보여주는 도면이다. 깊이 우선 검색 알고리

즘은, 최소 비용이 설정된 하나의 노드를 만들고, 그 노드

의 자식 노드를 최소 비용이 설정되는 노드로 만들어 간

후에, 최소 비용에 해당하는 자식 노드가 레벨 끝에 갔을

경우 부모 노드로 올라오면서 그 다음 최소 비용의 자식

노드를 만들어 가는 방법이다.

[그림 7] (a)를 참조하면, 최소 비용에 해당하는 (A, 2)

노드에서 자식 노드를 만들고, 자식 노드에서 가장 작은

비용이 설정된 (A, 2), (B, 1)이 선택되면, (A, 1)과 (A, 3)

는 자랄 수 없는 노드가 된다. 이때 (A, 2), (B, 1)이 선택

된 후에 (A, 2), (B, 1) 다음으로 자식 노드를 만들어 깊이

로 우선 탐색을 하게 된다. [그림 7] (b)에서는 (A, 2), (B,

1)에서 다음 노드를 만들게 되는데, (A, 2), (B, 1), (C, 0),

(D, 3)의 값이 최소값으로 설정되면, (A, 0)의 루트 노드

를 제외한 모든 노드들은 더 이상 자랄 수 없는 노드가

된다. 이같이 최소 비용의 루트노드를 선택하고 깊이 탐

색이끝나게되면, 자랄 수 있는상위 노드를 선택하여 다

시 깊이 탐색을 수행하게 된다. [그림 7] (c)는 루트 노드

인 (A, 0)에서 자식 노드를 만든 형태이다. 자식 노드를

만든후에, 각 노드의 최소 비용을계산했을때 최소 비용

이 (A, 2)의 최 하단 자식 노드의 값보다 크기 때문에 더

이상 자랄 수 없는 노드가 되어서 (A, 2), (B, 1), (C, 0),

(D, 3)의 최적화된 결과가 된다.

이상에서, 깊이 우선 검색은 깊이 탐색을 해가면서 노

드가 늘어날 수 있는 경로인가를 확인한다. 따라서 깊이

우선검색은, 너비 우선 검색처럼 자랄 수없는 트리를 검

색하는 새로운 연결이 필요 없게 된다. 깊이 우선 검색은

먼저루트를만든 다음, 해당 루트의최소비용 루트를 선

택한다. 그리고 나서, 깊이 우선 검색은 해당 루트에서 자

식 노드를 만들고, 자식 노드를 만든 각각의 자식 노드들

이 또 자식 노드를 만드는 재귀화 방법을 이용한다. 깊이

우선 검색에서는, 자식 노드를 만들기 전에 자식 노드가

만들어져야 하는지의 필요성을 검사해야 한다. 이를 위해

서는, 자식 노드를 만들고 최소 비용을 계산한 다음, 그

값이 지금의 현재 최소 비용보다 작고 현재 최소 비용을

가진노드보다 하위 노드인 것이확인될 경우, 해당 노드

36 한국컴퓨터게임학회논문지 (2007. 12)

를 최소 비용 노드로 설정한다.

너비 우선 검색 알고리즘 및 깊이 우선 알고리즘이 적

용되는 WBM은, 지금까지 네트워크 분야에서 최대 흐름

및 최대 흐름 정합쌍을 유추하는데 이용되어 왔으며, 게

임 시스템에서는 이용되지 않았다. 그러나 본 발명과 같

이 형태 정보와 색상 정보를 포함하는 다중 정보를 이용

한 검색일 경우, WBM 은 매우 효과적인 검색 결과를 도

출해 낼 수 있다. 뿐만 아니라, WBM을 이용하면 최대 흐

름도와 최대 흐름 정합쌍 두 개의 정보를 동시에 얻을 수

있다.

캐릭터 특성의 비교에서 있어서, 만일 유사도 여부만

을 확인한다면 최대 흐름 정합쌍은 구할 필요가 없다. 따

라서, 유사도 여부를 확인하는데 대한 연산을 제거할 수

있다면, WBM과 같은 성능을 가지면서도 매우 빠른 검색

을 수행할 수 있게 된다. 따라서, 다중 특징 정합부에서

는, 최대 흐름 정합쌍을 구하지 않고 캐릭터의 유사도 여

부만을 확인하는 NMFM 정합을 다중 특징 정합에 이용

한다. 이 방법은 오차가 발생할 가능성이 높은 영역을 제

거하고, 최대 정합이 발생 할 수 있는 최상 단 노드쌍 경

우의 흐름 값을 유추하여, 최대 흐름을 대략적으로 계산

해 낸다. 이 방법은, WBM과 같은 성능을 가지면서 속도

가 빠른 장점을 가지고 있다. 따라서, 실시간으로 캐릭터

의 특성을 검색하는데 사용이 용이하다.

WBM에 의해 얻어진 최대 흐름도와 최대 흐름 정합쌍

정보에 의하면, 다중 특징 정합부는, 데이터베이스에 저

장되어 있는 다수의 캐릭터에 대한 특성 정보들 중 특정

조건(특히, 복수 개의 조건에 부합된 다중 특징)을 만족하

는 캐릭터를 추출할수 있게 된다. 그리고 상기검색 결과

를 근거로 하여 해당 캐릭터의 전투력에 대한 순위를 실

시간으로 매기고, 상기 전투력을 수치적으로 평가할 수

있게 된다. 이와 같은 전투력의 평가 결과는 온라인으로

접속된 클라이언트들에게 제공되어, 각 클라이언트들이

전략을 짜는데 도움을 주게 되고, 각 클라이언트들의 게

임 성적 순위를 매기는데 사용된다.

Ⅳ. NMFM(Near Maximum Flow Matching)

NMFM 정합은 캐릭터 객체가 가지고 있는 다중 특징

을 추출하고 비교할 때 통계적인 방법을 이용하여 문턱

값을 추출한다. 그리고 이 값을 이용하여 유사도 측정을

수행한다. 통계적인 방법을 이용할 때는 많은 캐릭터의

비교 실험을 통하여 캐릭터들의 거리차 분포를 구한 다

음, 유사한 특성을 가지는 캐릭터들의 특정 거리차 σ를

구한다. 그리고 질의 캐릭터 특성과의 비교 값이 σ이하이

면, 동일한 캐릭터로 처리한다. NMFM 정합에서 사용되

는 대부분의 캐릭터 특성 비교는, 통계적인 방법을 이용

하고, 판별을 요구할 때에는 통계의 의해 결정지어진 σ를

특정 문턱값으로 이용한다. 따라서 WBM을 이용하여 캐

릭터 특성을 비교할 때에도 실험을 통해 σ값을 구해야 한

다. σ값이 없을 경우 WBM은 단순히 유사도가 큰 순서로

캐릭터들을 정렬한다.

지금까지 특정 문턱값으로 σ를 이용하는 방법은, 캐릭

터의 특성 정보들을 비교한 후에, σ 값을 갖는 캐릭터 특

성 정보가 존재하는가를 판단하는데 이용하였다. 그러나,

본 논문에서 제안하는 NMFM은, σ값을 예측 지수로 활용

을 하는 특징을 가진다. 그리고, 문턱값 σ는 고정된 값이

아니라, 데이터의 누적에 따라 통계적으로 계속적으로 변

화되는 값이며, 사용자에 의해 조절되도록 구성할 수도

있다.

특정 문턱값 σ는 캐릭터 특성의 유사도 분포를 이용하

여 통계적인 방법으로 계산된다. 문턱값 σ를 구하기 위한

유사도 분포식은 아래와 같다.

여기서, Di는 질의 캐릭터 특성인 Ws와, 데이터베이스

에 저장되어 있는 캐릭터 특성인 Wd와의 거리차를 의미

한다. 그리고 N(Di)는 총 n개의 캐릭터 특성을 모두 비교

하였을 때 i 값의 거리 차가 있는 수를 표시한다. 그리고

전체적인 분포는, N(Di) 값의 총 합을 의미하는데, 이 값

이 S(D)이다.

[그림 8]은 식(4)로부터 획득된 동일 섹터 캐릭터 특성

의분포곡선이다. [그림 8]에 도시된 문턱값 σ는, 실제 실

험 후 표준 편차를 결정할 때 시스템에 따라서 달라질 수

있다. 예를 들어, 95%의 정확도를 요구하는 시스템일 경

우, 같은 캐릭터 특성의 95%가 있는 영역의 끝점이 σ로

결정되며, NMFM에서 σ는 Bipartite Graph에서 더 이상

자라지 않는 노드의 설정에 이용된다.

å=-=

)()( i

dsi

DNDSWWD

(4)

최대 흐름 정합을 기반으로 하는 게임 시스템 및 그것의 캐릭터 특성 분석 방법 37

[그림 8] 동일 섹터 캐릭터의 특성 분포 곡선

[그림 9] NMFM 전체 알고리즘 흐름도

[그림10] NMFM 정합 예

NMFM에서는 N개의 에지를 설정하고, 각 에지의 최

소 비용을 행렬로 설정한 후, 최소의 비용을 가지는 쌍을

구하게 되는데, 가장 최소의 흐름을 찾아내는 방법은 아

래 식(5)와 같다.

M(x,y) = min(sigma -Wx'y' ) (5)

식(5)에서 M(x,y)는 최소 흐름을 가지는 쌍이고, Wx'y'

는 특정 섹터에 연결된 가중치 값들이다. 최소 흐름 쌍이

정해지게 되면 해당 쌍을 제거 한 후, 식(5)를 이용하여

다음 쌍을 반복하여 구해 나간다. 이와 같이, NMFM는

최소 비용을 가지는 쌍이 구해지게 되면, 총 흐름을 얻어

내고, 이 흐름을 대략적 최대 흐름으로 보게 된다.

NMFM 알고리즘에서 만일 전체 쌍의 가중치가 모두 σ값

보다 클 경우(즉, 어떠한 최소 흐름쌍도존재하지 않는 경

우에는), NMFM 대신 WBM을 이용하여 최적화 흐름을

유도한다.

이와 같은 NMFM의 전체 알고리즘을 살펴보면 [그림

9]와 같다.

[그림 9]는 다중 특징 정합부에서 수행되는 NMFM 정

합 방법을 보여주는 흐름도이고, [그림 10]은 NMFM의

정합 예를 보여준다.

[그림 9] 및 [그림 10]을 참조하면, 논문에서 제안한

NMFM 정합 방법은 먼저 Bipartite Graph에서 연결 가능

한 모든 연결을 설정하고, 최소 비용을 얻는 쌍을 추출한

다. 그리고 최소 비용을 얻는 쌍의 가중치와 σ의 차이 값

을 계산한다. 여기서, σ는 통계적인 방법을 이용하여 계

산된 변수로서, 많은 캐릭터 특성 데이터의 비교 실험을

통하여 캐릭터 특성 데이터들 사이의 거리차 분포를 구

한후, 같은 캐릭터 특성을 갖는경우들에대한 특정 거리

38 한국컴퓨터게임학회논문지 (2007. 12)

g

g

-=å-

=

n

WMax

n

iyx

0),(

(6)

차를 구한 것이다. 이어서, 전체 쌍의 가중치가 모두 σ 보

다 큰지의 여부(즉, 캐릭터 특성 데이터들 사이의 거리차

분포가 σ의 범위를 벗어났는지의 여부)가 판별된다. 판별

결과 전체 쌍의 가중치가 모두 σ 보다 크면(즉, 캐릭터 특

성 데이터들 사이의 거리차 분포가 σ의 범위를 벗어났으

면) WBM 정합을 수행하여 최적의 흐름과 정합쌍을 구한

다. 판별 결과 전체쌍의가중치가 모두 σ 보다 크지 않으

면(즉, 캐릭터 특성 데이터들 사이의 거리차 분포가 σ의

범위를 벗어나지 않았으면) 계속해서 연결 쌍을 구하게

된다. 이 때, 구해지는 연결 쌍은 식(5)에 의해 결정되며,

오차의 범위 내에서 무시할 수 있는 에지의 계수를 설정

하고, 순서적으로 해당 계수를 넘는 쌍은 무시하게 된다.

그리고 나서, 평균 흐름 값을 계산하여 대략적 최대 흐름

을 구한다.

즉, 캐릭터 특성 데이터가 σ의 구간 안에 속할 경우에

는 NMFM 정합을 수행하여 대략적 최대 흐름을 구한다.

그리고, 캐릭터 특성 데이터가 σ의 범위를 벗어났거나,

또는 σ구간에 있는 캐릭터 특성 데이터가 하나도 없을 때

에는, 해당 캐릭터 특성 데이터가 동일하지 않은 것으로

처리하게 된다. 이와 같은 특성에 의해 NMFM은 다음의

두 가지 경우에서 시간을 줄일 수 있다. 첫 번째는, σ값의

영역 내에 있는 캐릭터 특성 데이터가 존재하지 않을 경

우, 더 이상 계산을 하지 않고 전혀 다른 특성 데이터로

처리함으로써, 연산 속도가 빨라지게 된다. 그리고 두 번

째는, 모든 캐릭터 특성 데이터에서 거리차를 계산하여

정렬하는 경우로서, σ안에 있는 캐릭터 특성 데이터들에

대해서는 NMFM을 이용하여 연산을 수행하여 시간을 절

약하고, 나머지 부분에 대해서는 WBM을 이용하여 연산

을 수행하여 유사한 캐릭터 특성 데이터들을 정렬할 수

있게 된다.

그리고 NMFM에서는 거리차가 매우 크게 나타나는

캐릭터 특성 데이터는 무시하고, 나머지 캐릭터 특성 데

이터만 가지고 최대 흐름을 유지한다. 식(6)은 최대 흐름

을 구하는 식이다.

여기서, g 는무시하고자하는섹터의개수를의미한다.

[그림 9]에서 알 수 있는 바와 같이, 제안된 캐릭터 특

성 검색 방법에서는, 전체 쌍의 가중치가 모두 σ 보다 큰

지 여부를 판별하고, 전체 쌍의 가중치가 모두 σ 보다 큰

경우에는(즉, σ값의 영역 내에 속하는 캐릭터 특성 데이

터들이 존재하지 않는 경우) WBM을 수행하여 최적 흐름

을 구한다. 그리고, σ 값의 영역 내에 속하는 캐릭터 특성

데이터들이 존재하는 경우에는 NMFM을 수행하여 대략

적 최대 흐름을 구하게 된다.

이러한 NMFM과 WBM 간의 큰 차이점은, 정합쌍을

추출하는가와 그렇지 않은가에 있다. WBM은, 최대 흐름

도와 함께 최대 흐름도가 이루어 질 때의 정합쌍도 동시

에 구한다. 이에 반해, NMFM은 최대 흐름도는 추출하지

만, 정합쌍은 구하지 않는다. 캐릭터 특성 정합의 목적은,

정합쌍을 찾는 것이 아니고, 최대흐름도를 구하는 데 있

다. 따라서 정합쌍을 찾는 불필요한 연산이 필요 없게 되

어, 연산 복잡도가 매우 작다. WBM 알고리즘을 N개의

정점에 적용하는 가장 빠른 방법은, n-1개의 순회를 수행

하는 것이다. NMFM의 n-1개의 순회 중 σ값보다 작거나

같은 흐름도가 나오면 더 이상 순회를 할 필요가 없게 된

다. 따라서, NMFM은언제나 WBM의연산과같거나작게

된다. 그 결과, NMFM의 연산은 WBM보다 빠르게 된다.

Ⅴ. 캐릭터 특성 검색

이같은특징을가지는WBM 및 NMFM 알고리즘이어

떻게 캐릭터 특성 검색에 적용되는지를 살펴보기로 하자.

WBM을 캐릭터 특성 검색에 이용하기 위해서는, 캐릭

터 특성의 정보를 n개의 섹터로 나눈다. n개의 섹터로 나

누고 해당 섹터의 환경 정보가 각 섹터의 가중치 값이 된

다. 각 섹터의 가중치는 예를 들면, -1, 0, +1의 3개의 값

이 된다. 상기와 같은 가중치는, 각 캐릭터가 처한 환경

정보 등으로 인해 해당 캐릭터가 유리/불리해 졌는가에

대한 가중치가 된다. 즉, 각각의 캐릭터는 자신이 취한 행

동으로 인해 발생한 환경의 변화에 따라 가중치가 결정

된다. 이와 같은 가중치의 값은 환경의 변화뿐만 아니라,

어떠한 상황에서 캐릭터에 의해 수행된 선택의 결과에

의해서도 결정된다. 예를 들면, 어떠한 환경에 처하거나,

또는 어떠한 선택을 하게 된 것이 캐릭터에게 유리하게

작용하는 경우에는 +1의 가중치를 가지게 되고, 불리하

게 작용하게 되는 경우에는 -1의 가중치를 가지게 된다.

최대 흐름 정합을 기반으로 하는 게임 시스템 및 그것의 캐릭터 특성 분석 방법 39

[그림11] 다중 특징 정합부에서 유사도 정렬을 위한

NMFM 사용 방법

그리고 캐릭터에게 유리하게도 불리하게도 영향을 미치

지 않을 경우에는 0의 가중치를 가지게 된다. 그리고 캐

릭터 전사들의 전투에 있어서, 아군의 캐릭터 전사가 적

군의 캐릭터 전사를 공격할 때에는 +1의 가중치를 가지

게 되고, 아군의 캐릭터 전사가 적군으로부터 공격을 받

을 때에는 -1의 가중치를 가지게 된다. 이와 같은 각 상황

별로 차별화된 가중치의 부여는, 게임에 등장하는 캐릭터

들이 마치 생명체와도 같이 행동하고, 주변의 상황에 영

향을 받게 된다.

또한, 아군 및 적군의 전투력이 지력, 체력, 감성의 3가

지 속성을 가지는 경우, 캐릭터가 처한 환경과, 캐릭터가

수행한 선택 결과에 따라, 각 속성별 전투력에 대한 가중

치가 달라지게 된다. 그리고 각 상황 별로, 각 속성별 전

투력이 효력을 발휘하게 된다. 따라서 각 상황 별로 캐릭

터들의 전투력이 달라지게 된다. 이와 같은 차별화된 가

중치의 부여에 따르면, 기존의 단순 수치 비교에 의한 우

세/열세의 판단 대신, 보다 복합적이고 종합적인 우세/열

세의 판단을 수행할수 있게 되고, 보다다양한전략과 전

술을 구사할 수 있게 된다.

캐릭터 특성의 비교에 WBM을 사용할 경우, 깊이 우

선 검색이 너비 우선 검색에 비해 좀 더 유리하다. 그 이

유는 최소 거리차를 계산하는데 사용되는 정보가 단일정

보가 아니라 복합 정보이기 때문이다. 이와 같은 특성을

이용하면, 좀더 빠른 알고리즘을 개발할 수 있고, 실시간

캐릭터 특성 검색에 이용할 수 있다.

WBM은 최대 흐름 값을 유추하기 위한 목적으로 사용

된다. WBM은 대략적 최대 흐름을 유도하여 캐릭터 특성

데이터의 거리차를 구할 수 있기 때문에, 정확한 정합을

유도할 필요가 없다. NMFM은 두 갈래 그래프에서 최대

흐름을 계산하지 않고 대략적인 최대 흐름 값을 계산하

게 된다. 온전한 정합(complete matching)을 만들기 위해,

트리 형태의 노드를 이용하여 계산이 수행된다. 이 트리

는 부모 노드의 흐름이 자식 노드의 흐름보다 크지 않고,

자식 노드의 흐름보다 작은 부모 노드는 최대 흐름에서

제거되는 특징을 가지고 있다. NMFM의 이 특징을 이용

하여 트리의 부모에서 미리 대략적 흐름을 예측하고 예

측된 결과의 최대 흐름 값을 얻어내는 것이다. WBM 방

법은 최적의 쌍을 유도하나, 최적의 쌍은 본 시스템에서

무의미하기 때문에 빠르게 동작하는 시스템이 필요하다.

하지만, 본 발명에서 제안하는 NMFM은 예측값을 이용

하여 WBM의 검색 단계를모두 탐색하지 않고 탐색 중간

에 결정을 내리기 때문에 WBM 보다 약 1/2의 연산량이

줄어든다. 따라서 실시간 데이터의 검색을 위해서는

NMFM을 사용하여 검색을 하는 것이 용이하다.

다중 특징 정합부에서 수행되는 검색 기능은, 유사도

에 따라 정렬하는 경우와, 정렬하지 않는 경우의 두 가지

동작으로 구분될 수 있다. 캐릭터 특성을 유사도에 따라

정렬하는 경우에는, 비교하는 캐릭터 특성의 거리차를 모

두 설정해주어야 한다. 그리고 정렬할 필요 없이 유사한

캐릭터 특성만 검색하고자 하는 경우에는, NMFM을 사

용하고 σ값의 영역 안에 있는 섹터가 있는가를 확인한다.

그리고 나서 σ영역 안에 있는 섹터가 없을 경우 서로 다

른 것으로 간주하게 된다. 그러나 유사도 정렬을 할 경우

에는 서로 같지 않은 캐릭터 특성일 경우에도 거리차 값

을 설정해주어야 한다.

[그림 11]은 다중 특징 정합부에서 유사도 정렬을 위해

NMFM를 사용하는 방법을 설명하기 위한 그림이다. 그

림11을 참조하면, 다중 특징 정합부가 캐릭터 특성의 섹

터들을 비교한후, 비교 결과 값의 행렬 안에 σ값 영역 안

에 있는 섹터가 하나라도 있게 되면, 해당 캐릭터 특성은

NMFM의 방법을 그대로 사용하게 된다. 그림11에서 상

단에 있는 행렬 데이터는 σ영역 안의 데이터가 존재하는

형태이다. 이럴 경우 NMFM 의 값을 그대로 이용하여 거

리차(W=1.64)가 나오게 된다. [그림 11]의 하단부에 있는

행렬 데이터는 σ영역 안에 값이 하나도 존재하지 않는 경

우이다. 이 경우 WBM으로 들어가는 첫 단계를 시도하여

가능성 있는 최소비용 값을 구하고, 동시에 NMFM에서 σ

를 생각하지 않고 최소 비용의 값 순서대로 쌍을 연결하

고 해당 값과의 차이를 구했을 때 평균 표준 편차 안에

40 한국컴퓨터게임학회논문지 (2007. 12)

<著 者 紹 介>오 덕 신 (Duk-Shin OH) 정회원

received the B.S. degree from Korean Sahmyook University, Korea in 1982, the M.S. degree from Dankook University, Seoul, korea in 1988, and the Ph.D complete the whole course of study from Sangmyung University, Seoul, Korea in 2004,respectively. He has been a professor in Korean Sahmyook University in Korea since 1991.Currently his research interests include management/computer Information Systems, e-Business and system analysis and design and e-Learning systems.

있으면 해당 값을 최소 비용으로 간주한다. 그렇지 않을

경우 WBM을 이용하여 최소 비용을 얻어낸다.

Ⅵ. 결론

본 논문에서는 다수의 캐릭터에 대한 다중 특성 정보

들을검색함에 있어서 WBM(Weighted Bipartite Matching)

또는 NMFM(Near Maximum Flow Matching)를 실행하여

각 캐릭터에 대한 특성 정보를 실시간으로 비교하고 최

적 유사도를 계산 하는 방법을 제안하였다. 제안된 시스

템의 다중 특징 정합부는 복수 개의 조건에 부합된 다중

특징(캐릭터가 처한 환경 등과 같은 대 내외적인 특징)에

대한 정합 결과 얻어진 최적 유사도를 근거로 하여 캐릭

터의 전투력을 평가한다. 이와 같은 전투력의 평가 결과

는, 온라인으로 접속된 클라이언트들에게 제공되어, 각

클라이언트들이 전략을 짜는데 도움을 주게 되고, 각 클

라이언트들의 게임 성적 순위를 매기는데 사용된다. 따라

서, 각 클라이언트들은, 실시간으로 전송되는 캐릭터들의

전투력 평가 정보 등을 통해, 보다 다양한 전략과 전술을

구사할 수 있게된다. 이와 같은 캐릭터의 전투력평가 정

보는 전투력에 대한 단순 수치 비교 등의 단일 특징 정보

를 이용할 때 보다 더욱 다양하게 제공된다.

또한, 다중 특징 정합부는 다중 특징에 대한 정합을 수

행함에 있어서, 각캐릭터자신이 취한 행동 또는각 캐릭

터가 처해 있는환경 정보 등에 의해해당 캐릭터가 유리/

불리해 졌는가에 따라서 가중치를 부여하여 정합을 수행

하기 때문에, 게임에 등장하는 캐릭터들이 마치 생명체와

도 같이 행동하고, 주변의 상황에 영향을 받게 되어, 게임

의 재미를 한층 더 높일 수 있게 된다.

참고문헌

[1] Y. Bartal, "Probabilistic approximations of metric spaces

and its algorithmic applications, "IEEE Symposium on

Foundations of Computer Science, 1996, pp. 184-193.

[2] Eva Tardos, Jon Kleinberg Algorithm Design, Pearson

Education, 2006.

[3] Armen S. Asratian, Tristan M.J. Denley and Roland

Haggkvist, Bipartite Graphs and their Applications,

Cambridge University Press, 1998

[4] Kuhn, H. W. "The Hungarian method for the

assignment problem," Naval Research Logistics

Quarterly, vol. 2, pp. 83-87.

[5] R. Jonker and A. Volgenant, "A Shortest Augmenting

Path Algorithm for Dense and Sparse Linear

Assignment Problems," Computing, vol. 38, issue 4,

pp. 325-340, 1987.

[6] Thomas H. Cormen, Charles E. Leiserson, Ronald L.

Rivest and Clifford Stein, Introduction to Algorithms

–second edition, The MIT Press, 2001.