SlideShare a Scribd company logo
By	POSTECH	Computer	Algorithm	Team
AI 세미나 (1)
김승진
완전탐색과 스코어링
Contents
POSTECH Computer Algorithm Team
AI란? 0
스코어링 2
완전탐색 1
POSTECH Computer Algorithm Team
AI는 무엇일까?
- 다양한 정의가 있을 수 있지만, 사람이 할 수 있는 생각을 기계도 하는 것이라고 정의할 수 있다.
- 우리의 목표는 사람이 할 수 있는 생각을 할 수 있는 프로그램을 만드는 것이다.
(사실은 포카전 AI를 이기기 위한 것이다..)
- 우리는 주로 게임 AI를 구현할 것이다.
AI란? Introduction
POSTECH Computer Algorithm Team
Introduction
Zero	vs	Non-Zero	Sum	Game
- Zero	sum	game	:	모든 플레이어의 이득과 손해의 합이 항상 0인 게임이다.
- 2인 가위바위보가 있다.
- 누군가 이긴다면 (+1) 다른 사람은 진 것이고 (-1)
- 한사람이 비겼다면(0) 다른사람도 비겨야 한다(0).
- Non	Zero	sum	game:	모든 플레이어의 이득과 손해의 합이 0이 아닐때가 있는 게임이다.
- 3인 이상이서 하는 가위바위보가 있다.
- 누군가 한 사람이 나머지 두사람을 이길 경우 합은 -1
- 누군가 한 사람만이 졌을 경우 +1
POSTECH Computer Algorithm Team
Introduction
Sequential	vs	Simultaneous	Game
- Sequential	Game은 모든 플레이어가 순서대로 게임을 진행한다.
- 체스가 있다.
- 내가 행동을 마칠 때까지 상대방은 행동할 수 없다.
- 상대의 이전 행동을 볼 수 있다는 장점이 존재한다.
- Simultaneous	Game은 모든 플레이어가 동시에 게임을 진행한다.
- 스타크래프트와 같은 컴퓨터 게임들이 이에 속한다.
- 상대방의 행동을 예측을 해야한다.
POSTECH Computer Algorithm Team
Introduction
Q)	컴퓨터 연산능력 짱짱인데 그냥 모든 수를 다 보면 안되나요?
A)	됩니다. 만약 컴퓨터가 모든 경우를 저장할 능력이 되면 말이죠.
- 바둑의 경우의 수는 1구골(10^100)보다 더 큽니다.
- 그리고 계산이 시간 안에 되는 것도 확인해야 합니다.
- 답을 구하기 위해서 무한한 시간이 걸리는 것을 참을 수만 있다면 말리지는 않겠습니다.
POSTECH Computer Algorithm Team
Introduction
- 그렇다면 완전탐색을 하면 안되나?
- 그건 또 아니다 쉬운 게임은 완전탐색이 더 효율적이다.
- 틱택토를 생각해보자.	
- 수가 아무리 길어져도 9개이며, 한 번에 할 수 있는 행동도 9개가 최대이다.
- 중간에 게임이 종료될 수도 있다.
- 이 정도라면 충분이 연산을 시킬 수 있다.
- 다음주에 할 내용은 이 완전탐색을 기반으로 하기에 완전탐색에 대해서 실습을 할 것이다.!
POSTECH Computer Algorithm Team
- 솔리테어 체스는 혼자서 플레이 할 수 있는 보드게임이다.
- 이 게임은 4x4의 말에서 체스 기물들을 움직인다.
- 게임을 시작하면 문제마다 정해진 위치에 기물이 배치된다.
Solitaire Chess 완전탐색
POSTECH Computer Algorithm Team
완전탐색
<규칙>
1. 모든 기물이 움직일 때에는 다른 기물을 잡아야 한다.
2. 폰은 프로모션하지 않는다.
3. 판 위에 단 하나의 기물만이 남아 있다면 승리한다.
https://www.thinkfun.com/wp-content/uploads/2015/09/SolChess-3400-IN03.pdf
POSTECH Computer Algorithm Team
완전탐색
<과제 1>
- 솔리테어 체스 문제가 인풋으로 주어진다.
- 이때, 1) 이 문제가 해결 가능한 문제인지를 파악하고
2) 해결 가능하다면 어떠한 순서로 움직여야 해결할 수 있는지를 저장한다
***	꼭 트리 형태로 구성하여 해결 할 것 ***
POSTECH Computer Algorithm Team
완전탐색
- https://github.com/shhj1998/solitaire-chess-practice 에서 과제 1의 채점기를 받을 수 있다.
- src/user.cpp 의 solution	함수를 구현하면 된다.
- Input은 4x4로 제시되며 비어 있는 경우 ‘.’, 기물의 경우에는 그 기물의 첫 글자가 주어진다.
(단, King	만 예외)
- King	:	E	/	Queen	:	Q	/	Knight	:	K	/	Bishops	:	B	/	Rooks	:	R	/	Pawns	:	P
- 가능한 경우, ans vector에 답을 push_back 한다. 답은 다음과 같이 pair로 push_back 한다.
- (31,	13)	:	(integer,	integer)	=>	(3	row,	1	col)을 (1	row,	3	col)로 이동
POSTECH Computer Algorithm Team
완전탐색
예시 Input)
POSTECH Computer Algorithm Team
완전탐색
- 시뮬레이터를 만드는 것이 정신건강에 이롭다.
- 시뮬레이터란 사용자가 하고자 하는 움직임의 결과를 예측하는 것을 말한다.
- 이 시뮬레이터가 있어야 위의 과제 1에서 트리를 수월하게 만들 수 있을 것이다
POSTECH Computer Algorithm Team
- 완전탐색이 불가능한 게임이 존재한다. (사실 훨씬 더 많을 것이다.)
- 그렇다면 이러한 게임은 게임 종료까지 게임 전체를 담은 트리를 만드는 것이 불가능 할 것이다.
- 이를 해결하기 위해서 스코어링을 한다.
- 그럴 때 몇가지 해결방법이 존재한다.
1. 먼저 트리를 정해진 위치에서 자르는 것이다. 트리를 정해진 높이만 만듬으로써 시간과 공간을 제약하는 것이다.
하지만 이 경우 승리하는 경우가 확실하지 않기 때문에 어딜 가는 것이 좋을지에 대해서 생각해 보아야 하고,
상대방의 수도 보아야 한다. (다음에)
2. 트리를 만들지 않는 경우이다. 내가 할 수 있는 경우 중에서 가장 좋아 보이는 걸 한다.
(이번엔 이걸 할 것이다)
3. Rand(하지마라)
스코어링 스코어링
POSTECH Computer Algorithm Team
스코어링
- 스코어링을 하지 않는다면 모두 사람의 뇌에서 나와야 한다.
- 스코어링을 쓰면 항상 더 좋지는 않다. 스코어링도 역시 사람의 뇌에서 나와야 하기 때문이다.
- 스코어링을 쓸지 아니면 다른 자신만의 방식을 쓸지도 생각하자.
- 뇌피셜 가득 AI를 짜보자.
POSTECH Computer Algorithm Team
스코어링
AI를 구현하는 방법
1. 어떻게 조작하는지를 확인한다.(슬라임을 오른쪽 왼쪽으로 움직이게 만든다.)
2. 뇌피셜 가득 전략을 수립하여 코드를 작성한다.
3. 다른 사람과 한번 해보고 서로서로 단점을 개선한다.
Tip:	이기는 AI보다도 지지않는 AI가 더 좋다. 포카전에서는 상대방이 어떠한 전략을 구사할지 모르기 때문에 너무
특수한 상황에서만 승리하는 AI는 지양할 필요가 있다.
POSTECH Computer Algorithm Team
- 일명 갓라임 게임으로 불리며 똥망게임이 많은 포카전 AI에서의 갓겜
- 슬라임을 움직여서 상대를 전멸시키면 이긴다.
- 슬라임은 일정한 규칙을 만족하면 일정한 시간에 생성된다.
- 자세한 사항은 문서를 참고하자.
슬라임 게임(2015) 스코어링
POSTECH Computer Algorithm Team
스코어링
<과제 2>
- 슬라임 게임 AI를 짜서 다른 AI를 박살내자!
- 퇴근을 위한 최소 조건
- 뉴비 : 랜덤 AI를 4번 이상 격파
- 올드비 : 포카전 출전 AI들 중 3개 이상 격파

More Related Content

What's hot

[IGC2015] 오드원게임즈 김영채- 다음은 무엇을 만들까?
[IGC2015] 오드원게임즈 김영채- 다음은 무엇을 만들까?[IGC2015] 오드원게임즈 김영채- 다음은 무엇을 만들까?
[IGC2015] 오드원게임즈 김영채- 다음은 무엇을 만들까?
강 민우
 
이무림, 워크샵 게임 만들기: 부족전쟁, NDC2017
이무림, 워크샵 게임 만들기: 부족전쟁, NDC2017이무림, 워크샵 게임 만들기: 부족전쟁, NDC2017
이무림, 워크샵 게임 만들기: 부족전쟁, NDC2017
devCAT Studio, NEXON
 
KGCA 2011-04-06 Speech
KGCA 2011-04-06 SpeechKGCA 2011-04-06 Speech
KGCA 2011-04-06 Speech노진 곽
 
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
영준 박
 
All That Puzzle Games
All That Puzzle GamesAll That Puzzle Games
All That Puzzle Games
Shin Dongwon
 
NDC 2011 영웅전 런칭팀 박영준
NDC 2011 영웅전 런칭팀 박영준NDC 2011 영웅전 런칭팀 박영준
NDC 2011 영웅전 런칭팀 박영준
영준 박
 
Part3. 아이디어를 게임기획으로 발전시키기
Part3. 아이디어를 게임기획으로 발전시키기Part3. 아이디어를 게임기획으로 발전시키기
Part3. 아이디어를 게임기획으로 발전시키기태성 이
 
위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점
Ryan Park
 
NDC 2015 나의 개발 흑역사 답사기
NDC 2015 나의 개발 흑역사 답사기NDC 2015 나의 개발 흑역사 답사기
NDC 2015 나의 개발 흑역사 답사기
Sun Park
 
이희영, 온라인 게임에서 모바일 게임으로 이어지는 메타플레이 트렌드, NDC2017
이희영, 온라인 게임에서 모바일 게임으로 이어지는 메타플레이 트렌드, NDC2017이희영, 온라인 게임에서 모바일 게임으로 이어지는 메타플레이 트렌드, NDC2017
이희영, 온라인 게임에서 모바일 게임으로 이어지는 메타플레이 트렌드, NDC2017devCAT Studio, NEXON
 
[IGC2015] 디앤씨게임즈 이윤환-탐정의 왕과 범죄의 왕 그 3년의 기억
[IGC2015] 디앤씨게임즈 이윤환-탐정의 왕과 범죄의 왕 그 3년의 기억[IGC2015] 디앤씨게임즈 이윤환-탐정의 왕과 범죄의 왕 그 3년의 기억
[IGC2015] 디앤씨게임즈 이윤환-탐정의 왕과 범죄의 왕 그 3년의 기억
강 민우
 
[NDC2017 정서연] 몬스터 슈퍼리그 리텐션 15% 개선 리포트 - 숫자보다 매력적인 감성 테라피
[NDC2017 정서연] 몬스터 슈퍼리그 리텐션 15% 개선 리포트 - 숫자보다 매력적인 감성 테라피[NDC2017 정서연] 몬스터 슈퍼리그 리텐션 15% 개선 리포트 - 숫자보다 매력적인 감성 테라피
[NDC2017 정서연] 몬스터 슈퍼리그 리텐션 15% 개선 리포트 - 숫자보다 매력적인 감성 테라피
Jeong Seoyeon
 
게임 인공지능 설계
게임 인공지능 설계게임 인공지능 설계
게임 인공지능 설계
ByungChun2
 
[IGC2015] 아라소판단 김성욱-게임 기획을 변경하게 되는 요인
[IGC2015] 아라소판단 김성욱-게임 기획을 변경하게 되는 요인[IGC2015] 아라소판단 김성욱-게임 기획을 변경하게 되는 요인
[IGC2015] 아라소판단 김성욱-게임 기획을 변경하게 되는 요인
강 민우
 
게임 메커니즘분석
게임 메커니즘분석게임 메커니즘분석
게임 메커니즘분석
ryu_GH
 
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법ChangHyun Won
 
기획자의 포트폴리오는 어떻게 써야 할까
기획자의 포트폴리오는 어떻게 써야 할까기획자의 포트폴리오는 어떻게 써야 할까
기획자의 포트폴리오는 어떻게 써야 할까
Han Je Sung
 
게임 기획서 작성하기 - 송철헌
게임 기획서 작성하기 - 송철헌게임 기획서 작성하기 - 송철헌
게임 기획서 작성하기 - 송철헌ETRIBE_STG
 
그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기
Yongha Kim
 
[IGC 2017] 스튜디오HG 한대훈 - 1인 개발로 만들어진 Overturn VR의 개발 포스트모템
[IGC 2017] 스튜디오HG 한대훈 - 1인 개발로 만들어진 Overturn VR의 개발 포스트모템[IGC 2017] 스튜디오HG 한대훈 - 1인 개발로 만들어진 Overturn VR의 개발 포스트모템
[IGC 2017] 스튜디오HG 한대훈 - 1인 개발로 만들어진 Overturn VR의 개발 포스트모템
강 민우
 

What's hot (20)

[IGC2015] 오드원게임즈 김영채- 다음은 무엇을 만들까?
[IGC2015] 오드원게임즈 김영채- 다음은 무엇을 만들까?[IGC2015] 오드원게임즈 김영채- 다음은 무엇을 만들까?
[IGC2015] 오드원게임즈 김영채- 다음은 무엇을 만들까?
 
이무림, 워크샵 게임 만들기: 부족전쟁, NDC2017
이무림, 워크샵 게임 만들기: 부족전쟁, NDC2017이무림, 워크샵 게임 만들기: 부족전쟁, NDC2017
이무림, 워크샵 게임 만들기: 부족전쟁, NDC2017
 
KGCA 2011-04-06 Speech
KGCA 2011-04-06 SpeechKGCA 2011-04-06 Speech
KGCA 2011-04-06 Speech
 
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
NDC2012_마비노기 영웅전 카이 포스트모템_시선을 사로잡는 캐릭터 카이 그 시도와 성공의 구현 일지
 
All That Puzzle Games
All That Puzzle GamesAll That Puzzle Games
All That Puzzle Games
 
NDC 2011 영웅전 런칭팀 박영준
NDC 2011 영웅전 런칭팀 박영준NDC 2011 영웅전 런칭팀 박영준
NDC 2011 영웅전 런칭팀 박영준
 
Part3. 아이디어를 게임기획으로 발전시키기
Part3. 아이디어를 게임기획으로 발전시키기Part3. 아이디어를 게임기획으로 발전시키기
Part3. 아이디어를 게임기획으로 발전시키기
 
위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점
 
NDC 2015 나의 개발 흑역사 답사기
NDC 2015 나의 개발 흑역사 답사기NDC 2015 나의 개발 흑역사 답사기
NDC 2015 나의 개발 흑역사 답사기
 
이희영, 온라인 게임에서 모바일 게임으로 이어지는 메타플레이 트렌드, NDC2017
이희영, 온라인 게임에서 모바일 게임으로 이어지는 메타플레이 트렌드, NDC2017이희영, 온라인 게임에서 모바일 게임으로 이어지는 메타플레이 트렌드, NDC2017
이희영, 온라인 게임에서 모바일 게임으로 이어지는 메타플레이 트렌드, NDC2017
 
[IGC2015] 디앤씨게임즈 이윤환-탐정의 왕과 범죄의 왕 그 3년의 기억
[IGC2015] 디앤씨게임즈 이윤환-탐정의 왕과 범죄의 왕 그 3년의 기억[IGC2015] 디앤씨게임즈 이윤환-탐정의 왕과 범죄의 왕 그 3년의 기억
[IGC2015] 디앤씨게임즈 이윤환-탐정의 왕과 범죄의 왕 그 3년의 기억
 
[NDC2017 정서연] 몬스터 슈퍼리그 리텐션 15% 개선 리포트 - 숫자보다 매력적인 감성 테라피
[NDC2017 정서연] 몬스터 슈퍼리그 리텐션 15% 개선 리포트 - 숫자보다 매력적인 감성 테라피[NDC2017 정서연] 몬스터 슈퍼리그 리텐션 15% 개선 리포트 - 숫자보다 매력적인 감성 테라피
[NDC2017 정서연] 몬스터 슈퍼리그 리텐션 15% 개선 리포트 - 숫자보다 매력적인 감성 테라피
 
게임 인공지능 설계
게임 인공지능 설계게임 인공지능 설계
게임 인공지능 설계
 
[IGC2015] 아라소판단 김성욱-게임 기획을 변경하게 되는 요인
[IGC2015] 아라소판단 김성욱-게임 기획을 변경하게 되는 요인[IGC2015] 아라소판단 김성욱-게임 기획을 변경하게 되는 요인
[IGC2015] 아라소판단 김성욱-게임 기획을 변경하게 되는 요인
 
게임 메커니즘분석
게임 메커니즘분석게임 메커니즘분석
게임 메커니즘분석
 
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
NDC2013 - 인디게임 프로젝트 중도에 포기하지 않는 방법
 
기획자의 포트폴리오는 어떻게 써야 할까
기획자의 포트폴리오는 어떻게 써야 할까기획자의 포트폴리오는 어떻게 써야 할까
기획자의 포트폴리오는 어떻게 써야 할까
 
게임 기획서 작성하기 - 송철헌
게임 기획서 작성하기 - 송철헌게임 기획서 작성하기 - 송철헌
게임 기획서 작성하기 - 송철헌
 
그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기
 
[IGC 2017] 스튜디오HG 한대훈 - 1인 개발로 만들어진 Overturn VR의 개발 포스트모템
[IGC 2017] 스튜디오HG 한대훈 - 1인 개발로 만들어진 Overturn VR의 개발 포스트모템[IGC 2017] 스튜디오HG 한대훈 - 1인 개발로 만들어진 Overturn VR의 개발 포스트모템
[IGC 2017] 스튜디오HG 한대훈 - 1인 개발로 만들어진 Overturn VR의 개발 포스트모템
 

Similar to POSCAT AI seminar 01 완전탐색과 스코어링

[Dev rookie] 무엇을 하고 있습니까(13.05.11)
[Dev rookie] 무엇을 하고 있습니까(13.05.11)[Dev rookie] 무엇을 하고 있습니까(13.05.11)
[Dev rookie] 무엇을 하고 있습니까(13.05.11)해강
 
게임 개발자가 되고 싶어요
게임 개발자가 되고 싶어요게임 개발자가 되고 싶어요
게임 개발자가 되고 싶어요
Lee Sangkyoon (Kay)
 
재미이론의 시사점과 게임 플레이 개선에 적용방안
재미이론의 시사점과 게임 플레이 개선에 적용방안재미이론의 시사점과 게임 플레이 개선에 적용방안
재미이론의 시사점과 게임 플레이 개선에 적용방안
Sunnyrider
 
언플러그드 활동의 이론과 실제(Unplugged Activity / Computing)
언플러그드 활동의 이론과 실제(Unplugged Activity / Computing)언플러그드 활동의 이론과 실제(Unplugged Activity / Computing)
언플러그드 활동의 이론과 실제(Unplugged Activity / Computing)
Sangsu Song
 
언리얼써밋2014 유우원
언리얼써밋2014 유우원언리얼써밋2014 유우원
언리얼써밋2014 유우원
Wuwon Yu
 
프로그램 기초
프로그램 기초프로그램 기초
프로그램 기초
Minsuk Lee
 
GDG Gwangju DevFest 2019 - <하스스톤> 강화학습 환경 개발기
GDG Gwangju DevFest 2019 - <하스스톤> 강화학습 환경 개발기GDG Gwangju DevFest 2019 - <하스스톤> 강화학습 환경 개발기
GDG Gwangju DevFest 2019 - <하스스톤> 강화학습 환경 개발기
Chris Ohk
 
게임밸런싱과 머신러닝, 활용사례 & Tensorflow
게임밸런싱과 머신러닝, 활용사례 & Tensorflow게임밸런싱과 머신러닝, 활용사례 & Tensorflow
게임밸런싱과 머신러닝, 활용사례 & Tensorflow
현철 허
 
03사람과컴퓨터
03사람과컴퓨터03사람과컴퓨터
03사람과컴퓨터
태성 이
 
[PandoraCube] 게임 프로그래머로 성장하기
[PandoraCube] 게임 프로그래머로 성장하기[PandoraCube] 게임 프로그래머로 성장하기
[PandoraCube] 게임 프로그래머로 성장하기
PandoraCube , Sejong University
 
밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2
HyeonSeok Choi
 
영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014
영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014
영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014
NDOORS
 
Programming for kids
Programming for kidsProgramming for kids
Programming for kidsYoun-Hee Han
 
Greedy
GreedyGreedy
Greedy
DavidPark267
 
게임제작개론: #1 게임 구성 요소의 이해
게임제작개론: #1 게임 구성 요소의 이해게임제작개론: #1 게임 구성 요소의 이해
게임제작개론: #1 게임 구성 요소의 이해
Seungmo Koo
 

Similar to POSCAT AI seminar 01 완전탐색과 스코어링 (15)

[Dev rookie] 무엇을 하고 있습니까(13.05.11)
[Dev rookie] 무엇을 하고 있습니까(13.05.11)[Dev rookie] 무엇을 하고 있습니까(13.05.11)
[Dev rookie] 무엇을 하고 있습니까(13.05.11)
 
게임 개발자가 되고 싶어요
게임 개발자가 되고 싶어요게임 개발자가 되고 싶어요
게임 개발자가 되고 싶어요
 
재미이론의 시사점과 게임 플레이 개선에 적용방안
재미이론의 시사점과 게임 플레이 개선에 적용방안재미이론의 시사점과 게임 플레이 개선에 적용방안
재미이론의 시사점과 게임 플레이 개선에 적용방안
 
언플러그드 활동의 이론과 실제(Unplugged Activity / Computing)
언플러그드 활동의 이론과 실제(Unplugged Activity / Computing)언플러그드 활동의 이론과 실제(Unplugged Activity / Computing)
언플러그드 활동의 이론과 실제(Unplugged Activity / Computing)
 
언리얼써밋2014 유우원
언리얼써밋2014 유우원언리얼써밋2014 유우원
언리얼써밋2014 유우원
 
프로그램 기초
프로그램 기초프로그램 기초
프로그램 기초
 
GDG Gwangju DevFest 2019 - <하스스톤> 강화학습 환경 개발기
GDG Gwangju DevFest 2019 - <하스스톤> 강화학습 환경 개발기GDG Gwangju DevFest 2019 - <하스스톤> 강화학습 환경 개발기
GDG Gwangju DevFest 2019 - <하스스톤> 강화학습 환경 개발기
 
게임밸런싱과 머신러닝, 활용사례 & Tensorflow
게임밸런싱과 머신러닝, 활용사례 & Tensorflow게임밸런싱과 머신러닝, 활용사례 & Tensorflow
게임밸런싱과 머신러닝, 활용사례 & Tensorflow
 
03사람과컴퓨터
03사람과컴퓨터03사람과컴퓨터
03사람과컴퓨터
 
[PandoraCube] 게임 프로그래머로 성장하기
[PandoraCube] 게임 프로그래머로 성장하기[PandoraCube] 게임 프로그래머로 성장하기
[PandoraCube] 게임 프로그래머로 성장하기
 
밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2
 
영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014
영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014
영웅의 군단의 테크니컬 아트 - 황재철, 유나이트 코리아 2014
 
Programming for kids
Programming for kidsProgramming for kids
Programming for kids
 
Greedy
GreedyGreedy
Greedy
 
게임제작개론: #1 게임 구성 요소의 이해
게임제작개론: #1 게임 구성 요소의 이해게임제작개론: #1 게임 구성 요소의 이해
게임제작개론: #1 게임 구성 요소의 이해
 

POSCAT AI seminar 01 완전탐색과 스코어링

  • 2. Contents POSTECH Computer Algorithm Team AI란? 0 스코어링 2 완전탐색 1
  • 3. POSTECH Computer Algorithm Team AI는 무엇일까? - 다양한 정의가 있을 수 있지만, 사람이 할 수 있는 생각을 기계도 하는 것이라고 정의할 수 있다. - 우리의 목표는 사람이 할 수 있는 생각을 할 수 있는 프로그램을 만드는 것이다. (사실은 포카전 AI를 이기기 위한 것이다..) - 우리는 주로 게임 AI를 구현할 것이다. AI란? Introduction
  • 4. POSTECH Computer Algorithm Team Introduction Zero vs Non-Zero Sum Game - Zero sum game : 모든 플레이어의 이득과 손해의 합이 항상 0인 게임이다. - 2인 가위바위보가 있다. - 누군가 이긴다면 (+1) 다른 사람은 진 것이고 (-1) - 한사람이 비겼다면(0) 다른사람도 비겨야 한다(0). - Non Zero sum game: 모든 플레이어의 이득과 손해의 합이 0이 아닐때가 있는 게임이다. - 3인 이상이서 하는 가위바위보가 있다. - 누군가 한 사람이 나머지 두사람을 이길 경우 합은 -1 - 누군가 한 사람만이 졌을 경우 +1
  • 5. POSTECH Computer Algorithm Team Introduction Sequential vs Simultaneous Game - Sequential Game은 모든 플레이어가 순서대로 게임을 진행한다. - 체스가 있다. - 내가 행동을 마칠 때까지 상대방은 행동할 수 없다. - 상대의 이전 행동을 볼 수 있다는 장점이 존재한다. - Simultaneous Game은 모든 플레이어가 동시에 게임을 진행한다. - 스타크래프트와 같은 컴퓨터 게임들이 이에 속한다. - 상대방의 행동을 예측을 해야한다.
  • 6. POSTECH Computer Algorithm Team Introduction Q) 컴퓨터 연산능력 짱짱인데 그냥 모든 수를 다 보면 안되나요? A) 됩니다. 만약 컴퓨터가 모든 경우를 저장할 능력이 되면 말이죠. - 바둑의 경우의 수는 1구골(10^100)보다 더 큽니다. - 그리고 계산이 시간 안에 되는 것도 확인해야 합니다. - 답을 구하기 위해서 무한한 시간이 걸리는 것을 참을 수만 있다면 말리지는 않겠습니다.
  • 7. POSTECH Computer Algorithm Team Introduction - 그렇다면 완전탐색을 하면 안되나? - 그건 또 아니다 쉬운 게임은 완전탐색이 더 효율적이다. - 틱택토를 생각해보자. - 수가 아무리 길어져도 9개이며, 한 번에 할 수 있는 행동도 9개가 최대이다. - 중간에 게임이 종료될 수도 있다. - 이 정도라면 충분이 연산을 시킬 수 있다. - 다음주에 할 내용은 이 완전탐색을 기반으로 하기에 완전탐색에 대해서 실습을 할 것이다.!
  • 8. POSTECH Computer Algorithm Team - 솔리테어 체스는 혼자서 플레이 할 수 있는 보드게임이다. - 이 게임은 4x4의 말에서 체스 기물들을 움직인다. - 게임을 시작하면 문제마다 정해진 위치에 기물이 배치된다. Solitaire Chess 완전탐색
  • 9. POSTECH Computer Algorithm Team 완전탐색 <규칙> 1. 모든 기물이 움직일 때에는 다른 기물을 잡아야 한다. 2. 폰은 프로모션하지 않는다. 3. 판 위에 단 하나의 기물만이 남아 있다면 승리한다. https://www.thinkfun.com/wp-content/uploads/2015/09/SolChess-3400-IN03.pdf
  • 10. POSTECH Computer Algorithm Team 완전탐색 <과제 1> - 솔리테어 체스 문제가 인풋으로 주어진다. - 이때, 1) 이 문제가 해결 가능한 문제인지를 파악하고 2) 해결 가능하다면 어떠한 순서로 움직여야 해결할 수 있는지를 저장한다 *** 꼭 트리 형태로 구성하여 해결 할 것 ***
  • 11. POSTECH Computer Algorithm Team 완전탐색 - https://github.com/shhj1998/solitaire-chess-practice 에서 과제 1의 채점기를 받을 수 있다. - src/user.cpp 의 solution 함수를 구현하면 된다. - Input은 4x4로 제시되며 비어 있는 경우 ‘.’, 기물의 경우에는 그 기물의 첫 글자가 주어진다. (단, King 만 예외) - King : E / Queen : Q / Knight : K / Bishops : B / Rooks : R / Pawns : P - 가능한 경우, ans vector에 답을 push_back 한다. 답은 다음과 같이 pair로 push_back 한다. - (31, 13) : (integer, integer) => (3 row, 1 col)을 (1 row, 3 col)로 이동
  • 12. POSTECH Computer Algorithm Team 완전탐색 예시 Input)
  • 13. POSTECH Computer Algorithm Team 완전탐색 - 시뮬레이터를 만드는 것이 정신건강에 이롭다. - 시뮬레이터란 사용자가 하고자 하는 움직임의 결과를 예측하는 것을 말한다. - 이 시뮬레이터가 있어야 위의 과제 1에서 트리를 수월하게 만들 수 있을 것이다
  • 14. POSTECH Computer Algorithm Team - 완전탐색이 불가능한 게임이 존재한다. (사실 훨씬 더 많을 것이다.) - 그렇다면 이러한 게임은 게임 종료까지 게임 전체를 담은 트리를 만드는 것이 불가능 할 것이다. - 이를 해결하기 위해서 스코어링을 한다. - 그럴 때 몇가지 해결방법이 존재한다. 1. 먼저 트리를 정해진 위치에서 자르는 것이다. 트리를 정해진 높이만 만듬으로써 시간과 공간을 제약하는 것이다. 하지만 이 경우 승리하는 경우가 확실하지 않기 때문에 어딜 가는 것이 좋을지에 대해서 생각해 보아야 하고, 상대방의 수도 보아야 한다. (다음에) 2. 트리를 만들지 않는 경우이다. 내가 할 수 있는 경우 중에서 가장 좋아 보이는 걸 한다. (이번엔 이걸 할 것이다) 3. Rand(하지마라) 스코어링 스코어링
  • 15. POSTECH Computer Algorithm Team 스코어링 - 스코어링을 하지 않는다면 모두 사람의 뇌에서 나와야 한다. - 스코어링을 쓰면 항상 더 좋지는 않다. 스코어링도 역시 사람의 뇌에서 나와야 하기 때문이다. - 스코어링을 쓸지 아니면 다른 자신만의 방식을 쓸지도 생각하자. - 뇌피셜 가득 AI를 짜보자.
  • 16. POSTECH Computer Algorithm Team 스코어링 AI를 구현하는 방법 1. 어떻게 조작하는지를 확인한다.(슬라임을 오른쪽 왼쪽으로 움직이게 만든다.) 2. 뇌피셜 가득 전략을 수립하여 코드를 작성한다. 3. 다른 사람과 한번 해보고 서로서로 단점을 개선한다. Tip: 이기는 AI보다도 지지않는 AI가 더 좋다. 포카전에서는 상대방이 어떠한 전략을 구사할지 모르기 때문에 너무 특수한 상황에서만 승리하는 AI는 지양할 필요가 있다.
  • 17. POSTECH Computer Algorithm Team - 일명 갓라임 게임으로 불리며 똥망게임이 많은 포카전 AI에서의 갓겜 - 슬라임을 움직여서 상대를 전멸시키면 이긴다. - 슬라임은 일정한 규칙을 만족하면 일정한 시간에 생성된다. - 자세한 사항은 문서를 참고하자. 슬라임 게임(2015) 스코어링
  • 18. POSTECH Computer Algorithm Team 스코어링 <과제 2> - 슬라임 게임 AI를 짜서 다른 AI를 박살내자! - 퇴근을 위한 최소 조건 - 뉴비 : 랜덤 AI를 4번 이상 격파 - 올드비 : 포카전 출전 AI들 중 3개 이상 격파