본문 바로가기

알고리즘4

[운영체제] 7. 교착상태 - (5) 교착상태에 대한 통합적인 전략 📍1. 통합 전략1-1. 통합 전략✔️자원들을 유형에 따라 서로 다른 클래스로 구분하자 ✔️자원 클래스들 간에는 할당 순서를 두어 환형 대기를 막자 ✔️클래스 내부의 자원들 간에는 각 클래스에 적절한 교착상태 해결 방법을 사용하자 1-2. 시스템 자원들의 클래스✔️스왑 공간: 보조기억장치 상의 블록 ✔️프로세스 자원: 파일 같은 할당 가능한 장치 자원 ✔️메인 메모리: 페이지나 세그먼트 등의 단위로 프로세스들에게 할당되는 자원 ✔️내부 자원: 입출력 채널과 같은 자원 1-3. 각 자원 클래스에 적용될 수 있는 전략1️⃣자원 클래스들 간에 할당 순서스왑 공간 ➡️ 프로세스 자원 ➡️ 메인 메모리 ➡️ 내부 자원2️⃣스왑 공간: 점유와 대기 조건을 제거한 예방 방법 사용- 필요한 스왑 공간의 크기를 미리 .. 2025. 5. 1.
[인공지능원론] 3. 게임트리 📍1. 게임 프로그램✔️ 게임의 조건 1️⃣ 두 명의 경기자경기자들이 연합하는 경우는 다루지 않음 2️⃣ 제로썸 게임한 경기자의 승리는 다른 경기자의 패배. 협동적인 승리는 없음(e.g. 바둑, 체스) 3️⃣ 순차적 게임차례대로 수를 두는 게임만을 대상으로 함 ☑️Tic-Tac-Toe의 게임 트리 - 2인용 게임 - 두 경기자 MAX와 MIN - 항상 MAX가 먼저 수를 둔다고 가정 ✔️ Tic-Tac-Toe의 게임 트리의 크기 - 게임 보드는 3×3 크기 - 한 곳에 수를 놓으면 다른 사람이 놓을 수 있는 곳은 하나가 줄어듦➡️ 9×8×7×...×1 = 9! = 362,880하지만 대칭이나 반사를 제외하면 서로 다른 상태는 5478개뿐 📍2. 미니맥스 알고리즘 ✔️ 상대방이 항상 최선의 수를 .. 2025. 4. 14.
[인공지능원론] 2. 탐색(Search) - (2) 📍1. BFS와 DFS 8-퍼즐 프로그램✔️ 게임 보드 표현class State: def __init__(self, board, goal, depth=0): self.board = board self.depth = depth self.goal = goal # i1과 i2를 교환하여서 새로운 상태를 반환한다. def get_new_board(self, i1, i2, depth): new_board = self.board[:] new_board[i1], new_board[i2] = new_board[i2], new_board[i1] return State(new_board, self.goal, depth) # 자식 노드를 확장하여서 리스트에 저장하여서 반환한다.. 2025. 4. 14.
[인공지능원론] 2. 탐색(Search) - (1) 📍1. 탐색(Search) 이란?인공지능에서 기본적인 도구로, 컴퓨터가 문제 해결을 위해 스스로 해답에 이르는 경로를 찾아가는 과정이다.= 시작상태에서 목표상태까지의 경로를 찾는 것! ✔️상태공간(state space): 상태들이 모여 있는 공간 ✔️연산자: 다음 상태를 생성하는 것 📍2. 상태 공간 탐색 문제✍️ 8-puzzle8-puzzle에서 연산자는 빈간을 4방향으로 움직이는 UP, DOWN, LEFT, RIGHT이 있다. ✍️ 경로 찾기 문제 ✔️초기 상태: 에이전트가 A에 있는 것 ✔️목표 상태: 에이전트가 F에 있는 것 ✔️연산자: 가능한 결러 중 하나의 경로를 선택하는 것 (=다음 상태를 생성하는 것) ☑️에이전트란?어떤 환경에서 특정 목적을 달성하기 위해 행동하는 존재로, 그 .. 2025. 3. 20.