본문 바로가기

CS

(27)
[강화 학습] 1. 인공지능이란 인공지능의 종류강인공지능인간의 지능을 완전히 구현한 형태영화 『터미네이터』, 『바이센테니얼 맨』의 로봇처럼 자율적인 사고와 감정을 가진 인공지능약인공지능특정 작업을 수행하거나 인간의 작업을 보조하는 형태예: 추천 시스템, 음성 인식 시스템, 알파고 등 머신러닝 (Machine Learning)개요인공지능의 하위 분야로, 데이터를 활용해 목적에 맞는 규칙을 찾거나 미래를 예측하는 기술활용 분야: 전문가 시스템, 데이터 마이닝, 패턴 인식, 로보틱스 등주요 학습 방법: 지도학습, 비지도학습, 강화학습지도학습 (Supervised Learning)사전에 문제와 정답(라벨)이 쌍으로 구성된 데이터셋을 통해 학습반복적인 학습으로 예측 정확도를 높이며, 학습 후 새로운 데이터의 분류 및 예측 가능데이터셋 구성:Tr..
[컴퓨터 네트워크] 1.1 인터넷이란 무엇인가 - 2 1.1.2 A Services Description (서비스 관점에서의 설명)인터넷을 서비스 관점에서 바라보기인터넷을 완전히 다른 관점에서 설명할 수도 있다. 즉, 인터넷을 애플리케이션에 서비스를 제공하는 인프라로 볼 수 있다. 분산 애플리케이션지도 서비스, 음악 스트리밍, 영화 및 TV 스트리밍, 온라인 소셜 미디어, 화상 회의, 다인용 게임 등과 같은 애플리케이션은 여러 종단 시스템이 데이터를 교환하는 방식으로 동작하므로 분산 애플리케이션(distributed application)이라 불린다. 인터넷 애플리케이션의 실행 위치인터넷 애플리케이션은 종단 시스템에서 실행된다.네트워크 중심부에 있는 패킷 스위치에서는 실행되지 않는다.패킷 스위치는 종단 시스템 간의 데이터 교환을 가능하게 하지만, 애플리케이..
[컴퓨터 네트워크] 1.1 인터넷이란 무엇인가 - 1 1.1.1 A Nuts-and-Bolts Description (기본 설명)인터넷전 세계 수십억 개의 컴퓨팅 장치를 상호 연결하는 컴퓨터 네트워크. 호스트(Host) & 종단 시스템(End System)데스크톱 컴퓨터, 리눅스 워크스테이션, 서버 등의 장치뿐만 아니라, TV, 게임 콘솔, 온도 조절기, 홈 보안 시스템, 가전제품, 시계, 안경, 자동차, 교통 제어 시스템 등과 같은 비전통적인 인터넷 기기까지 포함됨.종단 시스템들은 통신 링크(communication link) 및 패킷 스위치(packet switch) 네트워크로 연결됨. 통신 링크(Communication Link)동축 케이블, 구리선, 광섬유, 전파 스펙트럼과 같은 다양한 물리적 매체로 구성됨.링크마다 데이터 전송 속도가 다르며, 전송..
[JAVA] Exception & Error Java에서는 예외 처리를 관리하는 클래스로 Exception과 Error가 존재합니다.두 클래스들은 모두 Throwable 클래스를 상속하지만, 그 목적과 처리 방법에서 중요한 차이가 있습니다. Exception (예외)Exception은 프로그램 실행 중에 발생할 수 있는 문제를 나타냅니다.주로 애플리케이션에서 발생하는 문제를 다루며, 적절한 예외 처리를 통해 해결할 수 있는 경우입니다.예를 들어, 파일을 읽는 중 파일이 없거나, 데이터베이스와 연결하는 과정에서 오류가 발생하는 상황이 이에 해당합니다.Exception은 checked exception과 unchecked exception로 나눠집니다. Checked exceptionJava에서 Checked Exception은 컴파일러가 반드시 처리..
[알고리즘] KMP 알고리즘 KMP 알고리즘은 Knuth-Morris-Pratt라는 세 명의 컴퓨터 과학자가 1977년에 개발한 문자열 검색 알고리즘입니다. 이 알고리즘은 주어진 텍스트 문자열에서 특정 패턴(부분 문자열)이 존재하는 위치를 찾는 문제를 효율적으로 해결합니다. 기본적인 아이디어는 이미 비교한 부분을 재사용하여 중복된 작업을 피하는 것입니다. KMP 알고리즘은 문자열 검색 시 불필요한 비교를 최소화하는 방식으로 작동합니다. 기존의 방법처럼 단순히 한 글자씩 이동하면서 다시 처음부터 비교하는 것이 아니라, 접두사와 접미사 정보를 활용해 효율적으로 패턴을 이동시킵니다. KMP 알고리즘의 특징시간 복잡도: KMP 알고리즘은 패턴과 텍스트의 길이에 비례하는 선형 시간 복잡도인 O(n + m)를 가집니다. 여기서 n은 텍스트 길..
[알고리즘] 라빈-카프 알고리즘 라빈-카프(Rabin-Karp) 알고리즘은 1987년 리처드 M. 카프와 마이클 O. 라빈에 의해 개발된 문자열 검색 알고리즘입니다.이 알고리즘은 주어진 텍스트에서 특정 패턴 문자열을 효율적으로 찾기 위해 해싱(Hashing) 기법을 활용합니다.특히, 롤링 해시(rolling hash)라는 기법을 사용하여 텍스트의 각 위치에서 패턴과의 일치 여부를 빠르게 확인할 수 있습니다. 라빈-카프 알고리즘의 기본 개념은 텍스트와 패턴을 비교할 때, 각 문자를 일일이 대조하는 대신,텍스트의 부분 문자열과 패턴의 해시 값을 비교함으로써 비교 과정을 단순화하는 것입니다.해시 값이 일치하는 경우에만 실제 문자열 비교를 수행하여, 불필요한 비교를 줄이고 속도를 높입니다.이 과정에서 롤링 해시를 사용하여 이전에 계산된 해시 ..
[알고리즘] 다익스트라 다익스트라 알고리즘(Dijkstra's algorithm)은 가중치가 있는 그래프에서 시작 노드로부터 다른 모든 노드까지의 최단 경로를 찾기 위한 알고리즘입니다.다익스트라의 특징가중치 그래프: 다익스트라 알고리즘은 가중치가 양수인 그래프에서만 성립합니다. 음수 가중치를 가진 간선이 있는 그래프에서는 다익스트라 알고리즘이 올바른 결과를 보장하지 않습니다. 이는 알고리즘의 근본적인 동작 방식이 간선의 가중치가 양수일 때만 성립하기 때문입니다.단일 출발점: 다익스트라 알고리즘은 특정 출발점에서 시작하여 다른 모든 노드까지의 최단 경로를 찾습니다. 다수의 출발점에서의 최단 경로 탐색은 여러 번의 다익스트라 알고리즘을 실행하거나 다른 알고리즘을 사용해야 합니다.그리디 알고리즘: 이 알고리즘은 기본적으로 그리디 알..
부동 소수점 부동 소수점은 고정 소수점과 다르게 소수점의 위치를 고정하지 않고 소수점의 위치를 나타내는 수를 따로 저장하는 방식으로, 유효숫자를 나타내는 가수와 소수점의 위치를 나타내는 지수부로 나누어 표현합니다.  정규화부동 소수점 표현 방식은 수를 (가수) × (밑수)^(지수)와 같이 유효숫자를 사용한 곱셈 형태로 표현합니다. 예를 들어, 123.45를 밑수가 10인 부동 소수점으로 나타내면 12.345 * 10^1이 되는데, 가수 부분을 한자리 자연수를 갖도록 바꾸면 1.2345 * 10^2와 같이 됩니다. 이처럼 가수의 첫째 자리가 밑수보다 작은 한자리 자연수가 되도록 바꾸는 것을 정규화라고 합니다.부동 소수점 변환 예시 밑수가 10인 경우에 로마자 E 또는 e를 사용하여 함수 형태로 표시하기도 하는데, -0..