728x90
반응형

파이썬그래프 4

그래프(Graph)

개요그래프(Graph)는 객체(정점, Vertex)와 이들 사이의 연결 관계(간선, Edge)를 표현하는 비선형 자료구조로, 소셜 네트워크, 지도, 통신망, 관계형 데이터 등 현실 세계의 다양한 구조를 표현하는 데 사용된다. 방향성, 가중치, 순환 여부에 따라 다양한 그래프가 존재하며, 탐색, 최단 경로, 최소 신장 트리, 위상 정렬 등의 알고리즘이 활용된다.1. 그래프의 구성 요소 구성 요소 설명 정점(Vertex)데이터를 저장하는 노드 (점)간선(Edge)정점 간의 연결 관계 (선)인접 정점특정 정점과 직접 연결된 정점차수(Degree)정점과 연결된 간선의 수2. 그래프의 분류분류 기준유형설명방향성방향 그래프간선에 방향이 있음 (A → B) 무방향 그래프간선에 방향이 없음 (A — B)가중치가중치 ..

Topic 2025.03.30

A* 알고리즘(A-star Algorithm)

개요A* 알고리즘(A-star)은 그래프 상에서 출발 지점부터 목표 지점까지의 최적 경로를 효율적으로 탐색하기 위한 알고리즘으로, 실제 경로 비용(g)과 목적지까지의 추정 비용(h)을 합산하여 우선순위를 판단하는 휴리스틱 기반 최단 경로 탐색 알고리즘이다. 경로의 정확성과 탐색 속도 간의 균형을 이뤄, 게임 개발, 로봇 경로 계획, 내비게이션 등에서 널리 사용된다.1. 개념 및 정의A* 알고리즘은 다음 공식을 기준으로 노드의 우선순위를 평가한다:f(n) = g(n) + h(n)g(n): 시작 노드에서 현재 노드까지의 실제 거리(비용)h(n): 현재 노드에서 목표 노드까지의 휴리스틱(예상 비용)f(n): 현재 노드를 지나 목표까지의 전체 추정 비용이렇게 계산된 f(n)이 가장 작은 노드를 우선적으로 탐색한..

Topic 2025.03.28

플로이드-워셜(Floyd-Warshall) 알고리즘

개요플로이드-워셜(Floyd-Warshall) 알고리즘은 그래프에서 모든 정점 쌍 간의 최단 경로를 효율적으로 구하는 알고리즘이다. 다익스트라나 벨만-포드와 달리 단일 시작점이 아닌 전체 정점 간의 경로를 계산하며, 동적 계획법(Dynamic Programming) 기반으로 3중 반복문을 통해 구현된다. 네트워크 분석, 지도 서비스, 경로 최적화 등에서 광범위하게 활용된다.1. 개념 및 정의Floyd-Warshall 알고리즘은 가중치가 있는 방향 그래프에서 정점 i에서 j로 가는 최단 거리 d[i][j]를, 중간 정점 k를 거쳐 최적화해 나가는 방식이다. 음수 가중치는 가능하나, 음수 사이클은 허용되지 않는다.2. 알고리즘 동작 원리 단계 설명 1단계거리 행렬 d[i][j]를 초기화 (자기 자신은 0,..

Topic 2025.03.28

벨만-포드(Bellman-Ford) 알고리즘

개요벨만-포드(Bellman-Ford) 알고리즘은 음수 가중치 간선이 있는 그래프에서도 시작 노드로부터의 최단 경로를 찾을 수 있는 알고리즘이다. 다익스트라와 달리 우선순위 큐를 사용하지 않고, 간선 정보를 반복적으로 갱신하는 방식으로 동작한다. 또한, **음수 사이클(Negative Cycle)**의 존재 여부도 탐지할 수 있어, 금융 모델, 네트워크 분석 등에서도 유용하게 활용된다.1. 개념 및 정의벨만-포드 알고리즘은 하나의 시작 정점에서 다른 모든 정점까지의 최단 경로를 구하되, 음수 간선이 존재해도 정확한 결과를 보장한다. 각 간선을 V-1번 반복하면서 최단 거리를 갱신하며, 마지막 반복에서 거리값이 줄어들 경우 음수 사이클 존재로 간주한다.2. 알고리즘 동작 원리 단계 설명 1단계시작 정점의..

Topic 2025.03.28
728x90
반응형