전체 글
-
1. 논리(Logic) 기반 지식표현 및 추론 1. 논리식 (logical expression) 2. 술어 논리의 구문 표현의 구성 요 2. 규칙(Rule) 기반 지식현과 추론
[AI 입문] 지식표현과 추론1. 논리(Logic) 기반 지식표현 및 추론 1. 논리식 (logical expression) 2. 술어 논리의 구문 표현의 구성 요 2. 규칙(Rule) 기반 지식현과 추론
2023.10.23 -
트리, 그래프, 상태 공간 그래프(state space graph) 1. 탐색 방식의 종류 A* 알고리즘은 게임 탐색이 아니다. 2. 맹목적 탐색 방법의 비교 깊이 우선 탐색 장점: 메모리 공간 사용 효율적 단점: 최단 경로 해 탐색 보장 불가 너비 우선 탐색 장점: 최단 경로 해 탐색 보장 단점: 메모리 공간 사용 비효율 3. 정보 기반 탐색(informed search) 휴리스틱 탐색(heuristic search)이라고도 부름 언덕 오르기 방법, 최상 우선 탐색, 빔 탐색, A*알고리즘 등 언덕 오르기 기법(hill climbing method) 현재 시점에서 휴리스틱 평가값이 가장 좋은 이웃 노드 하남나을 확장해 가는 탐색 방법 국소 최적점(local optima)에 빠질 위험 존재 A* 알고리즘..
[AI 입문] 탐색(search)트리, 그래프, 상태 공간 그래프(state space graph) 1. 탐색 방식의 종류 A* 알고리즘은 게임 탐색이 아니다. 2. 맹목적 탐색 방법의 비교 깊이 우선 탐색 장점: 메모리 공간 사용 효율적 단점: 최단 경로 해 탐색 보장 불가 너비 우선 탐색 장점: 최단 경로 해 탐색 보장 단점: 메모리 공간 사용 비효율 3. 정보 기반 탐색(informed search) 휴리스틱 탐색(heuristic search)이라고도 부름 언덕 오르기 방법, 최상 우선 탐색, 빔 탐색, A*알고리즘 등 언덕 오르기 기법(hill climbing method) 현재 시점에서 휴리스틱 평가값이 가장 좋은 이웃 노드 하남나을 확장해 가는 탐색 방법 국소 최적점(local optima)에 빠질 위험 존재 A* 알고리즘..
2023.10.23 -
1. 튜링 테스트 기계가 얼마나 인간을 잘 흉내 내는가 테스트 이미테이션 게임에서 착안 2. AI 패러독스 (Paradox) 인공지능의 실용적 정의: 인공지능의 원리보다는 결과에 주안점을 두는 (귀납적) 정의가 우세. 어제의 AI로 간주되던 것이 오늘은 'AI'로 정의되지 않는 경우가 있음. ex) 체스 챔피언을 이긴 Deep(er) Blue. 오늘날의 컴퓨터로는 체스를 탐색 알고리즘만으로 해결 가능. 따라서 이제는 체스 두는 것은 AI로 간주되지 않음. 바둑은 여전히 AI의 영역임. 3. 인공지능의 주요 접근 방식 기호주의 (Symbolism) 지능적 문제해결 알고리즘에 초점 흑묘백묘, 새 ==> 비행기 문제해결에 필요한 지식을 수작업으로 구축한 후에 이를 바탕으로 탐색 및 추론 등의 해결방식 고안\ ..
[AI 입문] 인공지능의 이해1. 튜링 테스트 기계가 얼마나 인간을 잘 흉내 내는가 테스트 이미테이션 게임에서 착안 2. AI 패러독스 (Paradox) 인공지능의 실용적 정의: 인공지능의 원리보다는 결과에 주안점을 두는 (귀납적) 정의가 우세. 어제의 AI로 간주되던 것이 오늘은 'AI'로 정의되지 않는 경우가 있음. ex) 체스 챔피언을 이긴 Deep(er) Blue. 오늘날의 컴퓨터로는 체스를 탐색 알고리즘만으로 해결 가능. 따라서 이제는 체스 두는 것은 AI로 간주되지 않음. 바둑은 여전히 AI의 영역임. 3. 인공지능의 주요 접근 방식 기호주의 (Symbolism) 지능적 문제해결 알고리즘에 초점 흑묘백묘, 새 ==> 비행기 문제해결에 필요한 지식을 수작업으로 구축한 후에 이를 바탕으로 탐색 및 추론 등의 해결방식 고안\ ..
2023.10.23 -
1. 함수 기초 생략 2. 스택 프레임 스택은 높은 메모리주소에서 -> 낮은 메모리 주소로 진행 프로그램이 실행될 때 스택 메모리 크기를 지정함 만약 함수를 무한정 호출하면 스택오버플로우 발생 가능 (재귀함수 등) 3. 지역 변수와 값 전달 전역변수: DATA 영역에 할당. (초기화 여부, const 여부 등에 따라 .data, .bss, .rodata 등에 할당) - 전역변수는 디버깅하기 어렵기 때문에 웬만하면 사용 지양. 지역변수: STACK 영역에 할당. 4. 호출 스택 (call stack) #include using namespace std; // 오늘의 주제: 호출 스택 // 디버거에서 call stack 확인 가능 // 함수 선언 // 나중에 함수 선언부만 별도의 파일로 관리하게 될 것임. ..
[언리얼 MMORPG pt1] 함수1. 함수 기초 생략 2. 스택 프레임 스택은 높은 메모리주소에서 -> 낮은 메모리 주소로 진행 프로그램이 실행될 때 스택 메모리 크기를 지정함 만약 함수를 무한정 호출하면 스택오버플로우 발생 가능 (재귀함수 등) 3. 지역 변수와 값 전달 전역변수: DATA 영역에 할당. (초기화 여부, const 여부 등에 따라 .data, .bss, .rodata 등에 할당) - 전역변수는 디버깅하기 어렵기 때문에 웬만하면 사용 지양. 지역변수: STACK 영역에 할당. 4. 호출 스택 (call stack) #include using namespace std; // 오늘의 주제: 호출 스택 // 디버거에서 call stack 확인 가능 // 함수 선언 // 나중에 함수 선언부만 별도의 파일로 관리하게 될 것임. ..
2023.10.23 -
1. 분기문 스킵 2. 반복문 while, do while, for, break, continue 3. 열거형 #include using namespace std; // 상수인건 알겠는데, 너무 따로 노는 느낌? // 하나의 셋트인데? // 경우에 따라서 어셈블리 코드를 까 보면 메모리에 변수로 올라가는 경우도 있음 // 보통은 상수로 최적화 되긴 함 const int SICCERS = 1; const int ROCK = 2; const int PAPER = 3; // 숫자를 지정 안하면 첫 값음 0부터 시작 // 그 다음 값들은 이전 값 + 1 // const 보다 열거형이 더 선호됨. 메모리에 올라가지 않기 때문. (메모리상으로 더 이점이 있음) // 모던 c++ 에서는 enum class 를 사용함..
[언리얼 MMORPG pt1] 코드의 흐름 제어1. 분기문 스킵 2. 반복문 while, do while, for, break, continue 3. 열거형 #include using namespace std; // 상수인건 알겠는데, 너무 따로 노는 느낌? // 하나의 셋트인데? // 경우에 따라서 어셈블리 코드를 까 보면 메모리에 변수로 올라가는 경우도 있음 // 보통은 상수로 최적화 되긴 함 const int SICCERS = 1; const int ROCK = 2; const int PAPER = 3; // 숫자를 지정 안하면 첫 값음 0부터 시작 // 그 다음 값들은 이전 값 + 1 // const 보다 열거형이 더 선호됨. 메모리에 올라가지 않기 때문. (메모리상으로 더 이점이 있음) // 모던 c++ 에서는 enum class 를 사용함..
2023.10.23 -
1. 환경설정 비주얼 스튜디오 사용 2. 정수 #include int hp = 100; // 초기값이 0이거나, 초기값이 없는 변수라면 .bss 섹션에 저장됨 // signed 는 생략가능 char a; // 1바이트 (-128 ~ 127) short b; // 2바이트 (-32768 ~ 32767) int c; // 4바이트 (-2147483648 ~ 2147483647) __int64 d; // 8바이트 long long d; (−9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807) unsigned char ua; // 1바이트 (0 ~ 255) unsigned short ub; // 2바이트 (0 ~ 65535) unsigned int uc; // 4바이..
[언리얼 MMORPG pt1] 데이터 갖고 놀기1. 환경설정 비주얼 스튜디오 사용 2. 정수 #include int hp = 100; // 초기값이 0이거나, 초기값이 없는 변수라면 .bss 섹션에 저장됨 // signed 는 생략가능 char a; // 1바이트 (-128 ~ 127) short b; // 2바이트 (-32768 ~ 32767) int c; // 4바이트 (-2147483648 ~ 2147483647) __int64 d; // 8바이트 long long d; (−9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807) unsigned char ua; // 1바이트 (0 ~ 255) unsigned short ub; // 2바이트 (0 ~ 65535) unsigned int uc; // 4바이..
2023.10.22 -
#include using namespace std; string ltrim(const string &); string rtrim(const string &); vector split(const string &); /* * Complete the 'flippingMatrix' function below. * * The function is expected to return an INTEGER. * The function accepts 2D_INTEGER_ARRAY matrix as parameter. */ int flippingMatrix(vector matrix) { int n = matrix.size() / 2; int max_sum = 0; for (int i = 0; i < n; i++) { fo..
[HackerRank] Flipping the Matrix#include using namespace std; string ltrim(const string &); string rtrim(const string &); vector split(const string &); /* * Complete the 'flippingMatrix' function below. * * The function is expected to return an INTEGER. * The function accepts 2D_INTEGER_ARRAY matrix as parameter. */ int flippingMatrix(vector matrix) { int n = matrix.size() / 2; int max_sum = 0; for (int i = 0; i < n; i++) { fo..
2023.10.19 -
https://www.hackerrank.com/challenges/one-week-preparation-kit-countingsort1 Counting Sort 1 | HackerRank Count the number of times each value appears. www.hackerrank.com #include using namespace std; string ltrim(const string &); string rtrim(const string &); vector split(const string &); /* * Complete the 'countingSort' function below. * * The function is expected to return an INTEGER_ARRAY. *..
[HackerRank] Counting Sort 1https://www.hackerrank.com/challenges/one-week-preparation-kit-countingsort1 Counting Sort 1 | HackerRank Count the number of times each value appears. www.hackerrank.com #include using namespace std; string ltrim(const string &); string rtrim(const string &); vector split(const string &); /* * Complete the 'countingSort' function below. * * The function is expected to return an INTEGER_ARRAY. *..
2023.10.19 -
https://www.hackerrank.com/challenges/one-week-preparation-kit-diagonal-difference Diagonal Difference | HackerRank Calculate the absolute difference of sums across the two diagonals of a square matrix. www.hackerrank.com #include using namespace std; string ltrim(const string &); string rtrim(const string &); vector split(const string &); /* * Complete the 'diagonalDifference' function below. *..
[HackerRank] Diagonal Differencehttps://www.hackerrank.com/challenges/one-week-preparation-kit-diagonal-difference Diagonal Difference | HackerRank Calculate the absolute difference of sums across the two diagonals of a square matrix. www.hackerrank.com #include using namespace std; string ltrim(const string &); string rtrim(const string &); vector split(const string &); /* * Complete the 'diagonalDifference' function below. *..
2023.10.19 -
https://www.hackerrank.com/challenges/one-week-preparation-kit-lonely-integer Lonely Integer | HackerRank Find the unique element in an array of integer pairs. www.hackerrank.com #include using namespace std; string ltrim(const string &); string rtrim(const string &); vector split(const string &); /* * Complete the 'lonelyinteger' function below. * * The function is expected to return an INTEGER..
[HackerRank] Lonely Integerhttps://www.hackerrank.com/challenges/one-week-preparation-kit-lonely-integer Lonely Integer | HackerRank Find the unique element in an array of integer pairs. www.hackerrank.com #include using namespace std; string ltrim(const string &); string rtrim(const string &); vector split(const string &); /* * Complete the 'lonelyinteger' function below. * * The function is expected to return an INTEGER..
2023.10.19