[선형대수학] 그램-슈미트 과정, 행렬식, Cramer's rule
·
Study/선형대수학
그램-슈미트 과정 임의의 벡터 집합으로부터 직교집합(Orthogonal set)을 구하는 과정 벡터를 다른 벡터에 사영시킨 것을 이용해 직교집합을 구할 수 있다. 집합이 직교집합인지 확인하는 것은 집합의 각 원소들에 대해 내적을 수행하는 것으로 확인할 수 있다. 예제를 풀어볼까? W = span{x1,x2,x3}의 직교기저를 구하여라 x1 = [1, -1, 2] x2= [2, 0, -1] x3 = [3, -1, -2] x1과 x2는 내적 결과 직교집합이다. x1 → v1, x2 → v2라 두자. v3 = x3 - ( ( x3와 v1의 내적 / v1과 v1의 내적) * v1 ) - ( ( x3와 v2의 내적 / v2와 v2의 내적) * v2 ) v3 = [3, -1 -2] - 0 - 8/5 * [2, 0,..
[인공지능] 지식의 표현과 추론에 관하여 - 1
·
Study/인공지능
옛날에는 탐색으로 모든 문제를 해결하고자 노력했다(general problem solver(GPS)). → 하지만 매우 제한된 영역에서만 동작했다. 실제적인 문제 해결을 위해 나타난 시스템 → 전문가 시스템(expert knowledge) 전문가 시스템은 규칙으로 표현되는 지식을 통해 추론함으로써 복잡한 문제를 해결하도록 설계되었다. 인공지능 소프트웨어 최초의 성공적인 형태 지식의 중요성이 강조된다. 전문가 시스템 구성요소 지식베이스(Knowledge Base: KB) 어떤 특수한 문제 영역에 대한 사실이나 규칙으로 구성된다. 예시) 횡단보도에서 초록불이 켜지면 사람들이 건너간다. 추론엔진 KB에 있는 정보와 사실을 바탕으로, 사실로부터 규칙을 적용하는 과정을 진행하는 엔진 KB와 추론엔진은 독립적인 관..
[시스템프로그래밍] pipe에 관하여
·
Study/시스템프로그래밍
pipe()를 호출하면 파이프를 만들고 두 개의 file descriptor table을 생성한다. → 읽기용 descriptor table(fd[0])과 쓰기용 descriptor table(fd[1]) 생성 부모와 자식이 pipe로 소통을 한다. 부모가 pipe 호출 파일 디스크립터 테이블 2개 생성 커널 안에 파이프 객체 생성 fd[1]을 가지고 작성, fd[0]으로 읽음 fork를 해서 자식 프로세스 생성 자식 프로세스는 대부분의 정보를 복사한다.→ 파일 디스크립터 내용 또한 복사됨 같은 파이프에 쓰고 읽을 수 있다. read한 데이터는 파이프에 저장되지 않고, 없어진다. 파이프 안에 read할 데이터가 있는데 read한 경우 → 그냥 read가 됨 파이프 안이 비어있는데 read한 경우 지금은 ..
[시스템프로그래밍] 디렉토리 엔트리, hard/symbolic link, stat에 관하여
·
Study/시스템프로그래밍
디렉토리 엔트리 디렉토리 엔트리 쌍: 파일명과 inode 번호 파일 정보는 inode에 있다 -> 포인터 정보들 (inode 안에 실제로 파일 내용들이 있는 것이 아니라, 이 포인터를 쫓아가야 파일 내용들이 있다. → 실제 파일들의 크기는 다른데 inode들의 크기는 같다.) 디렉토리 관련 명령어 chdir로 작업 디렉토리를 변경할 수 있다. 현재 작업디렉토리의 정보를 알아오는 시스템콜 → getcwd 디렉토리도 파일이다.(특별한 타입의) 모든 디렉토리 안에는 디렉토리 엔트리들이 있다. 디렉토리도 접근하려면 open을 해야한다. 디렉토리 오픈 → opendir 시스템 콜 사용 DIR *opendir (const char *dirname); dirname → 우리가 열고 싶은 디렉토리의 이름 DIR : d..
[인공지능] Genetic Algorithm Examples
·
Study/인공지능
Example1. A simple function optimization, f(x) = x2 on the integer interval [0,31] encoding scheme → binary unsigned integer of length 5 fitness function → 목표함수 이용 selection scheme → roulette wehel selection 사용 crossover, mutation scheme → one point parameter setting M(population size) = 4 → coin을 20번 던져서 initialization한다. Pc = 1 Pm = 0.001 Evolving process 01101 → 13 ( fitness는 13*13 = 169) % o..
[시스템프로그래밍] 프로그램, 프로세스, 스레드에 관하여
·
Study/시스템프로그래밍
Asynchronous operation 비동기식 operation. 사용자가 키보드를 누를 때 등.. 사용자가 하는 일은 Asynchronous operation unpredictable time(예측할 수 없는 시간에 일어난다) Concurrency 스레드: 하나의 실행 흐름 스레드를 하나 띄울 때마다 스레드가 할 일을 구현해야하는데 그 일을 함수가 한다. 2개의 스레드가 돌고 있다. → 2개의 독립적인 실행 흐름이 있다. concurrent와 비슷한 말: simultaneous(뜻은 둘 다 동시에) 어떻게 두 개가 동시에 돌리는 것처럼 보이게 만들 수 있을까 → 매우 빠르게 번갈아가면서 실행한다. Multiprogramming 프로세스가 생성이 되면 메모리에 위치하게 된다. 그 위치는 ready q..
[시스템프로그래밍] 리눅스 터미널과 명령어 요약 - 2
·
Study/시스템프로그래밍
chmod 사용자 권한을 바꿀 수 있다. -rw-r—-r— 첫 번째: owner에게 주어진 권한 두 번째: 이 파일의 그룹 사용자에게 주어진 권한 세 번째: 그 외의 사람들에게 주어진 권한 문법: chmod [user/group/others/all] +(-)[permission].[file(s)] ex) 모두한테 실행 권한을 준다. 예시) chmod a+x test.txt touch touch test.txt → test.txt 생성 ps ps : 지금 running되는 process를 볼 수 있다. kill kill: process를 죽이고자 할 때 사용한다. ex) kill -9(시그널) 1255(프로세스ID) input/output redirection (”piping”) program_a | pr..
[시스템프로그래밍] 리눅스 터미널과 명령어 요약 - 1
·
Study/시스템프로그래밍
터미널 구성 The host / The current directory(”path”) / The “prompt”(키보드 입력을 받을 준비가 되었다는 뜻) shell 리눅스에서 로그인을 하면 shell이라는 프로그램이 실행된다. shell은 명령어를 해석해서 실행하는 프로그램 shell 종류: tcsh, csh, korn, bash(본쉘) Shell commands are CASE SENSITIVE!(대소문자 구분한다는 뜻) 명령어의 사용법을 알고 싶다면? man을 입력하고 (한 칸 띄고 )그 뒤에 알고 싶은 명령어를 입력한다. 리눅스에서 모든 명령어의 옵션은 앞에 - 기호를 붙인다. 명령어 -n -e를 둘다 쓰고싶다면? command -ne라고 입력 echo는 그냥 그대로 출력해주는 명령어 리눅스 경로 ..
[인공지능] Genetic Algorithm 요약
·
Study/인공지능
조합 최적화 (Combinatorial Optimization, CO) VLSI 디자인에서의 배치 및 라우팅 문제: VLSI 셀들의 집합이 주어지며, 이들은 경계에 포트를 가지고 있다. 또한 포트를 연결해야 하는 네트워크의 모음도 주어진다. 전체 배치 및 배선 거리를 최소화하고 각 선이 특정한 상수 이하인 방법을 찾아야 한다. 외판원 문제 (The Traveling Salesman Problem): 외판원은 최소 비용으로 각 도시를 한 번만 방문하는 경로를 찾고자 합니다. 실행 가능한 해는 1부터 n까지의 숫자의 순열로 나타낼 수 있습니다. 따라서 해 공간의 크기는 (n-1)!이다 Local Search 부분 탐색 알고리즘 이전 값에 가까운 값으로 할당 공간 내에서 값을 수정 모든 제약 조건이 만족될 때..
[인공지능] Monte Carlo Tree Search 요약
·
Study/인공지능
플레이어의 이익이나 손실은 정확히 상대방들의 이익이나 손실과 균형을 이룬다. 전통적인 전략 - MinMax 각 상태에서 상대방의 최대 보상을 최소화하려고 시도 (나시 균형) 철저한 탐색 밴딧 기반 메소드 K개의 행동/움직임 중 선택 최상의 움직임을 계속해서 선택하여 누적 보상을 극대화해야 함 • 밴딧 기반 메소드는 가장 불확실한 가지를 **탐색(Exploration)**하고 가장 유망한 가지를 **개발(Exploitation)**하는 효율적인 트레이드오프로 알려져 있어서 트리 탐색에 사용된다. • 상한 신뢰 구간 (UCB) 밴딧 알고리즘은 트리 탐색에 적용되며 UCT (트리에 적용된 상한 신뢰 구간)라고 한다. MCTS overview 부분 탐색 트리를 반복적으로 구축 반복 가장 긴급한 노드 트리 정책 ..