Feasible labeling 이란?
우선, 라벨링 한다는 것은 어떤 의미 일까요? (Labeling)
임의로 객체를 구별할 수 있는 무엇인가를 부여한다는 의미입니다.
예를 들어서, 딥러닝에서 학습하기위해 사용하는 정답 데이터들이 라벨링의 결과입니다.
그래프 표현 : 인접행렬(Adjacency matrix)
보통 그래프의 경우 인접행렬(Adjacency_matrix)로 표현하는 경우가 많습니다.
- 행과 열의 index 로 각 정점(vertex)을 표현하게 됩니다.
- 행렬의 값(value)는 연결의 가중도(weight) 또는 연결 여부를 표현하게 됩니다.
그렇다면, 그래프에서 라벨링 한다는 것은 어떤 의미일까요? (Graph Labeling)
그래프_번호매김(Graph labeling)은 정수로 표현되는 라벨을 그래프의 모서리나 꼭짓점 또는 둘다에 붙이는 것을 의미합니다.
Vertex labeling 의 경우 V 에서 라벨의 집합으로 가는 함수라고 할 수 있습니다.
Edge labeling 의 경우 E 에서 라벨의 집합으로 가는 함수라고 할 수 있습니다.
Feasible labeling 은 무엇인가요?
그래프 라벨링의 한 방법입니다.
우선 영어로된 정의는 다음과 같습니다.
[정의], where
is the set of nodes on one side of the bipartite graph, is the other set of nodes, is the label of , etc., and is the weight of the edge between and .
하나씩 이해해 봅시다.
\(x \in X,y \in Y \) : 각 집합에서 뽑은 정점(vertex)를
정리하자면,
두개의 분리된 집합에서 각각 두 정점 을 뽑아서 라벨링을 할 건데,
두 정점을 각각 라벨링하여 합친 값()이
두 정점를 연결한 edge의 weight 값보다 크거나 같게 하겠다는 의미 입니다.
예시를 통해 알아봅시다.
간단한 feasible labeling 은 node(vertex)에 라벨링 하는 것을 의미합니다.
아래는 두 노드의 라벨링 값을 합친 것이 두 노드의 연결 weight 보다 크거나 같도록만 설정한 예시 입니다.

붉은색 값으로 노드에 대해서 라벨링을 진행했습니다.
모든 연결(edge) weight의 조건을 만족하여 라벨링이 진행된 것을 볼 수 있습니다.
Feasible Labeling 활용
Hungarian Algorithm을 통해 Bipartite Graph의 Perfect matching of maximum weight를 찾을 수 있습니다.
2022.04.12 - [SW/자료구조 & 알고리즘] - [알고리즘] Hungarian Maximum Matching Algorithm (Kuhn-Munkres algorithm)
'소프트웨어자료 > 자료구조 & 알고리즘' 카테고리의 다른 글
[알고리즘] Hungarian Maximum Matching Algorithm (Kuhn-Munkres algorithm) (4) | 2022.04.12 |
---|---|
Linked list (연결 리스트) 란 무엇인가? (0) | 2020.05.21 |
[자료구조] 순환 알고리즘 (이원 탐색, 순열 생성) (0) | 2020.04.13 |
[자료구조] Binary search (with Recursion(재귀) pseudo code) 예제. (0) | 2020.03.17 |
[자료구조] Selection Sort ( with pseudo code) 해보기. (0) | 2020.03.16 |