본문 바로가기

분류 전체보기

(218)
[인공지능] 5주차: Heuristic search Best-First Search가 대표적임 탐색 알고리즘 = expand 할 수 있는 여러 노드 중 어느 노드를 먼저 expand할 것인가? Best-First Search 평가 함수(Evaluation function, $f(n)$)로 각 노드(여기서는 '상태'에 해당)를 평가해 더 좋은 노드르 확장 확장할 수 있는 노드를 평가함수에 넣고 평가치가 가장 높은 상태를 확장 Priority queue(= Sorted queue)로 구현한다. 평가 함수는 '지식'이다. 평가 함수는 주어진다. 인간이 줄 수도 있고 기계가 학습할 수도 있다. Greedy Best-First Search $f(n)$ = heuristic function $h(n)$ 좁은 의미의 heuristic search로 보는 경우도 있다...
[운영체제] 4주차: CPU scheduling 모든 프로세스는 하나 이상의 thread로 구성된다. 2개 부터는 Multithread Multithread는 자원 공유가 쉽다(한 프로세스의 자원을 그냥 읽어오므로) 프로세스끼리 자원공유는 Shared memory나 Message passing 등이 필요함 -> Multiprocess보다는 Multithread가 더 경제적으로 장점이 많다. 컴퓨터의 CPU는 물리적으로 한계가 있다. Multiprocessor라도 프로세스의 수가 훨씬 더 많으면 일부 프로세스는 프로세서가 할당될 때까지 기다려야 함 -> 스케줄링이 필요하다. CPU가 쉬는 시간을 조금이라도 더 줄여야 효율이 극대화된다. : 멀티프로그래밍(이 확장되면 멀티태스킹) 메모리에 여러 개의 프로세스를 동시에 올려 필요할 때마다 CPU를 전환해서 ..
[운영체제] Term project: Nachos 교육용 운영체제 윈도우 위에서 Application처럼 돌아가지만 내부적으로는 Application-OS-H/W로 구성됨 MIPS Processor 상에서 돌아감 -> C 프로그램을 짜면 MIPS로 Cross complie 해줌 근데 C 프로그램 짜서 돌려보고 이런 건 안 할 거임 (시간 없음) Java package 다 $nachos$ 패키지의 subpackage machine: 하드웨어 vm: Virtual memory threads: Nachos의 기본단위는 thread -> 그거랑 관련된 거 여기 많이 봐야 됨 각 프로젝트 디렉토리는 $nachos.conf$를 갖는다. 그냥 configuration 파일이라 수정할 일은 잘 없음 Scheduler 종류를 바꿀 수도 있는데 그 때는 이 파일을 건드려..
[거시경제학] 4주차: 총수요 저번주: 무엇이 생산을 결정하는가? 그 생산은 자본가와 노동자에게 어떻게 분배되는가? 이번주: 생산은 어떻게 사용되는가? 총 수요의 구성요소 $C$: 재화와 용역에 대한 소비자 수요 (= 소비) $I$: 투자재에 대한 수요(= 투자) $G$: 재화와 용역에 대한 정부 수요(= 정부 구입) $NX$ = $EX - IM$: 순수출 - 폐쇄경제를 가정할 경우 이 수치는 0이 된다. 소비($C$, Consumption) 보통 이게 제일 많은 비중을 차지한다. 가처분소득(Disposable income) 소비에 영향을 주는 가장 중요한 요소 (총소득) - (총조세) = $Y-T$ 소비함수 $C = C(Y-T)$ $\therefore\;\; C \propto (Y-T)$ 한계소비성향: MPC(Marginal Pro..
[미시경제학] 4주차: 수요 현시선호 소비자가 하나의 장바구니를 선택하고, 그것이 다른 장바구니보다 비싸다면 소비자는 그 장바구니를 더 선호해야 한다. 한계효용(MU) 한계대체율(MRS) $X$ 재화를 늘릴 때 $Y$ 재화를 얼마나 줄일 수 있는가? = 무차별곡선의 미분계수 = $Y$ 재화 단위로 표시된 $X$ 재화의 한계 효용 = $X$ 재화를 하나 늘릴 때 늘어난 효용을 $Y$재화로 표현한 것 무차별 곡선 위에 있다 = $Y$가 줄고 $X$가 늘어도 효용 수준은 동일하다. $0 = MU_F(\Delta F) + MU_C(\Delta C)$ $\therefore\;\; MRS_{XY} = \frac{MU_X}{MU_Y}$: $Y$ 재화 단위로 표시된 $X$ 재화의 한계 효용 $(X^*, Y^*)$에서 효용이 극대화된다고 하자. (..
[알고리듬] 4주차: Divide-and-Conquer Recursion - Simplify and Delegate - Reduction - 종료 조건: Base case Correctness: Induction으로 증명 Time complexity analysis: 점화식부터 구한다 Divide-and-Conquer 나누고(Divide) 정복한다(Conquer) -> 분할정복 Recursion 활용 Ex) Mergesort, Quicksort Pattern 분할정복은 일반적으로 다음의 세 단계로 진행된다. ① Divide 문제를 나눈다.(Mergesort에서는 2개) 같은 문제의 더 작은 instance로 나눈다. ② Delegate (Conquer) 각각의 더 작은 instance에 대해 재귀호출을 한다. ③ Combine Mergesort의 Merge에..
[인공지능] 4주차: 탐색 Problem-Solving Agents 입력: Percept(Sensing의 결과물) low-level의 sensing data와는 다르다. if $seq$ is empty 행동의 sequence(행동의 계획)이 없다면 $goal$ = Formulate-Goal($state$) Agent가 현재 상황에 맞게 스스로 세운 목표 목표도 여러 수준이 있으며, 높은 수준의 목표는 보통 인간이 준다. Goal을 달성하기 위한 Subgoal을 세우는 건 가능 그래서 스스로 목표를 세웠다고 보기 어려운 경우가 많다는 게 일반적인 의견 $problem$ = Formulate-problem($state$, $goal$) 목표를 문제화함 = 현재 상태와 Goal 상태가 다르다는 가정 지금 문제가 없다면 Goal이 달성된..
[운영체제] 3주차: Thread Thread Process: 운영체제가 관리하는 기본 단위 Thread: CPU를 활용하는 기본 단위 모든 프로세스는 하나 이상의 Thread로 구성된다. 기본적으로 프로세스처럼 ID, PC, Register, stack 등을 갖는다. 다만 프로세스와 달리 Code section이나 Data section 등이 같은 프로세스 내의 모든 thread가 공유할 수 있다. 프로세스보다 더 가볍다는 장점이 있다. 어떤 작업을 여러 스레드로 나눠서 구현할 경우 관리가 더 용이하다. Ex) Multithreaded server Single thread라면 여러 client가 동시에 요청했을 때 먼저 요청된 것부터 하나씩 처리하므로 response time이 길어진다. Multithread라면 서버가 직접 요청을 처..