[C#윈폼132] Hungarian Algorithm(Maximum Weighted Matching)을 이용해서 최적해 찾아보기! 그래프이론(Graph Theory)(녹칸다/포로리야공대가자)
프로그래밍/C# 호작질 2021. 4. 6. 22:01
Hungarian Algorithm(Maximum Weighted Matching)을 이용해서 최적해 찾아보기! 그래프이론(Graph Theory)(녹칸다/포로리야공대가자)
-이번편은 녹칸다가 그냥 생각이 나서 해보는 그래프 이론에 대한 내용을 C#윈폼으로 설명해보는 것이다!
-그래프 이론을 이용해서 최적해를 탐색하는 방법에 대해서 알아보도록 하자!
-녹칸다는 Bipartite Graph로 표현되는 모델에서 Maximum Weighted Matching혹은 Minimum Weighted Matching을 이용해서 2개의 그룹간 최적의 쌍을 찾아내는 방법에 대해서 C#윈폼으로 시각화할 예정이다!
-Bipartite Graph란 2개의 그룹이 있을때 각각의 그룹간에는 관계가 없고 서로다른 그룹간에만 관계가 있는 형태를 말한다!
-그리고 2개의 그룹의 노드 갯수가 동일하고 weighed edge가 N:N으로 구성이 되었을때 Hungarian Algorithm을 이용해서 최적해를 찾을 수 있다!
-만약 우리의 현실문제를 그래프 이론으로 모델링 할 수 있다면, 그래프 이론에서 가진 기법에 따라서 최적의 결과를 찾을 수 있는 것이다!
-그러나 최적해를 탐색하는 알고리즘에 대한 설명은 아니고 알고리즘은 구현된 결과를 추가해서 활용한다!
-녹칸다가 해결해보고자 하는 현실? 문제는 아래와 같다!
-(1)녹칸다가 5:5 미팅을 주선했다! 남녀 각각에게 호감도를 0~100점으로 부여하도록했을때 모든 사람이 만족할만한 커플 쌍을 제시해보라!
-(2)녹칸다는 큰 회사의 인사팀장이다! 5명의 신입직원과 5개의 직무가 있을때 평가 결과에 따라 어떻게 배정하면 좋을지 제시해보라!
-(3)필드에 몬스터가 100마리 있다! 녹칸다의 용병이 100명있다! 랜덤하게 200개의 유닛이 배치되었을때 녹칸다의 100명의 용병이 어떤 몬스터를 공격하면 좋을지 알아보자!(가까운 몬스터를 공격하면 되겠지~~?)
C#프로젝트
'프로그래밍 > C# 호작질' 카테고리의 다른 글
[C#윈폼133] 딕셔너리(Dictionary)를 이용한 워드카운트와 문서일치도 계산방법! 실제 뉴스기사들의 문서 일치도를 계산해보자!(녹칸다/포로리야공대가자) (0) | 2021.04.06 |
---|---|
[C#윈폼#73] C# 윈폼/드로잉 삼각함수(녹칸다/포로리야공대가자) (0) | 2020.10.08 |
[C#윈폼#72] C# 윈폼/드로잉 원의 지름과 넓이(녹칸다/포로리야공대가자) (0) | 2020.10.07 |
[C#윈폼#71] C# 윈폼/드로잉 두점사이의 거리(녹칸다/포로리야공대가자) (0) | 2020.10.06 |
[C#윈폼#70] C# 윈폼/드로잉 기본적인 도형 그리기(녹칸다/포로리야공대가자) (0) | 2020.10.05 |