728x90

전체 글 57

Dynamic Programming

Manufacturing Problem공장에서 생산 공정을 최적화하기 위한 문제다.공장의 생산 라인 사이에서 가장 빠른 경로를 찾아, 제품이 공정을 완료하는데 걸리는 시간을 최소화시키는 것이다. 사진에는 두 개의 부품 조립 라인이 있고, n개의 스테이션을 가지고 있다.라인 i에 있는 j번째 스테이션은 $S_{i, j}$로 표기되고, 이 스테이션에서의 조립 시간을 $a_{i, j}$로 표기한다. 이제 하나의 부품이 공장에 들어와 라인 i에 도착하며, $e_i$의 시간을 갖는다.부품이 j번째 스테이션을 통과하고, 다른 라인의 j+1 번째 스테이션으로 향한다. 같은 라인에서의 스테이션을 이동할 때는 비용이 따로 들지 않지만, 다른 라인으로 향할 때는 $t_{i, j}$만큼의 시간이 든다.n번째 스테이션에서 나..

Greedy Algorithms

최적의 값을 찾기 위해서는 실행시간이 오래걸린다.하지만 실행시간을 줄이면, 최적의 값을 찾을 수 없게 된다. 대신 근사치(Approximation)를 찾는다.근사치를 찾는 기법에는 Greedy Algorithm과 Dynamic Programming이 있다.Greedy 알고리즘은 선택을 해야 할 때, 현재 순간에서 가장 좋아보이는 선택을 한다.즉, 지역적으로 최적(locally optimal)인 선택을 하여 전역적으로 최적(globally optimal)인 해를 구하고자한다. (Greedy-choice property)탐욕 알고리즘이 항상 최적의 해를 보장하는 것은 아니지만, 특정 문제에서는 최적 해를 최단 경로 알고리즘보다 더 빨리 구할 수 있다.  탐욕 알고리즘의 가장 대표적인 알고리즘이 MST이다.M..

Hash Tables

해시 테이블은 딕셔너리를 구현하는데 효과적이다.해시 테이블에서 요소를 검색하는 기대 시간은 O(1)이지만, 최악의 경우 검색 시간은 O(n)이 될 수 있다. 해시 테이블은 가능한 모든 키에 대해 하나의 배열 위치를 할당하는 것이 불가능하거나 비효율적일 때 사용한다.실제 저장되는 키의 개수가 가능한 키의 개수에 비해 작을 때 사용한다. Direct-Address Tables, Hash Tables직접 주소 테이블은 동적 집합(Dynamic set)을 유지 관리 해야한다. 각 요소는 key를 가지며, 두 요소가 동일한 키를 가지지 않는다고 가정한다. Dynamic Set은 원소를 입력, 삭제, 검색할 수 있는 컴퓨터 상에 구현된 집합이다. 학생 30여명의 인적사항 기록을 위한 두가지 형태의 ID(출석번호와 ..

Single-Source Shortest Paths

지도에서 두 지점 간의 가장 짧은 경로를 찾는 방법은 다음과 같다.그래프에 방향과 가중치가 표현되어있다고 했을 때, 경로 p는 시작점에서 끝점으로 이어지는 정점의 순서가 된다.w(p)는 경로 p에 포함된 간선들의 가중치 합이 된다. 이 w(p)가 최소일 때, 가장 짧은 경로라고 한다. 그래프에서 노드v에서 노드 u로 갈 수 없는 경우에는, 무한대로 표현한다. 최단 경로는 여러 개가 존재할 수 있으며, 한 노드에서 다른 모든 노드로 가는 최단 경로들은 트리 형태로 구성된다.가중치는 경로를 따라 누적되며, 우리가 최소화해야하는 값으로 해석된다.  최단 경로 문제에는 몇가지 유형이 존재한다.Single-source (단일 출발점): 주어진 출발점 s에서 그래프의 모든 정점 v까지의 최단 경로를 찾는 문제Sin..

HDLC(High-level Data Link Protocol)

HDLC는 데이터 링크 계층에서 작동하는 프로토콜이다. 네트워크는 하나의 기본(primary) 스테이션과 여러 개의 보조(secondary) 스테이션으로 구성된다.기본 스테이션은 보조 스테이션으로 프레임을 전송할 수 있으며, 보조 스테이션도 기본 스테이션으로 프레임을 전송할 수 있다.보조 스테이션끼리는 직접 프레임을 전송할 수 없다. 기본 스테이션은 폴(Poll)을 표현하여 보조 스테이션에 프레임을 전송할 권한을 부여하며, 보조 스테이션은 파이널(Final)을 표현하여 기본 스테이션에 프레임을 전송할 권한을 부여한다. 프레임은 다음 필드로 구성된다. 헤더 부분에는 address, control, FCS가, 페이로드에는 information 필드가 들어간다.flag: 프레임의 시작과 끝을 표시address..

Flow Control

Flow란 무엇일까?플로우는 송신자로부터 수신자로 향하는 패킷들의 흐름을 의미한다. 여러 플로우가 동시에 동일한 수신자로 전달될 수 있다. 플로우를 제어함으로써 네트워크와 사용자가 과부하 상태가 되는 것을 방지하여 처리량과 응답시간의 저하를 막고, 자원을 보호할 수 있다. 또한 deadlock 상황을 피할 수 있으며, 사용자간 자원을 공정하게 분배할 수 있으며, 네트워크와 사용자의 속도를 일치시킬 수 있다.Sliding Window Control Scheme슬라이딩 윈도우 제어 방식에서 사용되는 윈도우 크기 W는 송신 노드(source node)와 수신 노드(destination node)의 협의하에 결정된다.송신 노드는 수신 노드로부터 승인(authorization)을 받지 않고도 최대 W개의 세그먼트..

Distributed System 15

Fault Tolerance 이어서Consensus: 합의하나 이상의 시스템이 값을 제안할 때, 시스템들이 어떻게 합의하여 하나의 값을 결정할까?전제 조건(Prerequisite)이 있는데, 결함 허용 프로세스 그룹에서는 모든 비결함 프로세스가 다른 비결함 프로세스와 동일한 명령을 동일한 순서로 실행해야된다는 것이다. 이 말은, 비결함 그룹 구성원들은 다음에 실행할 명령에 대해 합의해야된다는 것이다.Flooding-based Consensus 시스템에는 프로세스 그룹 P = {$P_1, ... P_n$}이 있고, Fail-stop 실패 의미론(신뢰할 수 있는 실패 감지 기능)을 가정한다. 클라이언트가  특정 프로세스 $P_i$에 접촉하여 명령 실행을 요청하면, 모든 $P_i$는 제안된 명령 목록을 유지한..

DKU/분산처리 2024.11.21

Minimum Spanning Trees

주어진 마을에 여러 집과 이를 연결하는 도로가 있다. 각 도로는 두 개의 집을 연결하며, 도로를 수리하는데 비용 w(u, v)이 소요된다. 목표는 최소 비용으로 필요한 도로만 수리하여 모든 집이 서로 연결되도록 하는 것이다. 이 문제는 MST를 구하는 알고리즘으로 해결할 수 있다.수리할 도로 집합 T⊆E를 찾으며, 이때 T는 모든 정점을 연결하면서 최소 비용을 만족하는 스패닝 트리가 되어야한다. 최소 비용 스패닝 트리(Minimum Spainning Tree)란, 주어진 그래프의 모든 정점을 연결하는 모든 스패닝 트리 중에서 가중치의 합이 최소가 되는 트리를 의미한다. 위 그림에서 두껍게 칠해진 선들의 집합을 MST라고 한다. 모든 노드들을 연결하고 있으며, 도합 37이라는 최소 비용을 가지고 있다.간선..

Error Control 6

Performance of FEC Channel Model채널의 모델에는 다양한 종류가 존재한다. Performance anaylsis of (3, 1) Repetition Code 성능 분석을 위한 환경 가정을 먼저 해보겠다.각 전송된 기호는 독립적으로 0 또는 1일 가능성이 같고, 기호 오류 확률은 $\epsilon \in [0, 1/2]$이다.  코드 되지 않은 경우의 검출 실패 확률코드 되지 않은 경우는 데이터가 전송될 때 오류 검출 및 수정 코드 없이 전송되는 것이다.기호 오류 확률 $\epsilon$이 주어졌을 때, 전체 오류가 발생할 확률(전송된 기호가 수신될 때 원래의 값과 달라지는 경우)은 다음과 같다. P(A) = 0 (정상적인 경우)와 P(B) = $\epsilon$(오류가 발생한 경..

Error Control 5

FEC 이어서(7, 4) Hamming CodeEncoding인코더로의 input word는 $U = (U_1, U_2, U_3, U_4)$이며, 모든 $i \in \left\{1,2,3,4\right\}$에 대해 $U_i \in \left\{0,1\right\}$이다.인코더에서 생성된 output word는 $X = (X_1, ..., X_7)$이며, 모든 $j \in \left\{1,2,...,7\right\}$에 대해 $X_j \in \left\{0,1\right\}$이다. 인코딩 규칙과 그에 따른 코드워드는 아래와 같다. Encoding: 생성행렬(7, 4) 해밍코드의 생성 행렬(Generator matrix) G는 4×7 행렬로 표현된다. 생성행렬을 통한 인코딩은 $X = UG$로 생성된다. 첫..

728x90