[자료구조] [C++]그래프에서 최단경로구하기

  • 등록일 / 수정일
  • 페이지 / 형식
  • 자료평가
  • 구매가격
  • 2007.04.23 / 2019.12.24
  • 7페이지 / fileicon zip (압축파일)
  • 평가한 분이 없습니다. (구매금액의 3%지급)
  • 900원
다운로드장바구니
Naver Naver로그인 Kakao Kakao로그인
[자료구조] [C++]그래프에서 최단경로구하기
하고 싶은 말
가중치방향 그래프에서 최단경로를 구합니다.
BellmanFord 알고리즘을 이용하여 한정점에서 각 정점으로의 최단경로를 구합니다.
구하는 과정도 출력하여 줍니다.
모든쌍의 최단경로를 구하여 줍니다.
구하는 과정도 출력하여 줍니다.
본문내용

Ⅰ. BellmanFord 알고리즘을 이용한 한 정점에서 모든 정점으로의 최단경로 구하기
1. BellmanFord 알고리즘
한 정점에서 모든 정점으로의 최단 경로를 구하는 알고리즘으로 BellmanFord 알고리즘이 있다. 이는 Dijkstra 알고리즘에 의하는 경우 가중치가 음수인 경로가 있을 때 최단경로를 올바르게 구할 수 없던 오류를 수정한 알고리즘으로서, 선행하는 간선수를 늘려가면서 해당하는 정점으로의 비용을 계속해서 구해나가는 것이다. 이 알고리즘에 의하여 경로를 구하려면 선행하는 간선수를 알아야 하며, 이전에 해당 정점까지의 비용을 계산한 결과를 알아야한다. BellmanFord 알고리즘을 간단히 나타내면 아래와 같다.
for(int i=0; i for(int k=2; k<=n-1;k++)
for(u!=v이고 최소한 하나의 진입 간선을 갖는 u에 대해)
for(그래프의 각 에 대해)
if(dist[u] > dist[i] + length[i][u]) dist[u] = dist[i] + length[i][u];
2. 그래프의 경로 탐색을 위한 클래스 정의
특정 그래프의 최단경로를 탐색하기 위한 연산을 수행하기 위해서 클래스를 정의한다. 클래스에는 그래프를 저장하기 위한 2차원 배열을 선언하고, 각 경로로의 비용을 저장하기 위한 배열 dist를 선언한다. 그래프가 삽입될 배열 GraphArray의 value는 가중치를 나타낸다. 클래스의 정의는 아래와 같다.

class Graph {
private:
int GraphArray[7][7]; // 그래프를 가중치 인접 행렬로 표현.
int dist[7]; // 최단 경로를 구할때 이용할 배열.
public:
Graph();
void InsertCost(int i, int j, int n); // 그래프에 가중치를 삽입하는 함수.
};

InsertCost 함수는 가중치 인접배열에 각 정점간의 가중치를 입력해주는 역할을 한다. 인접배열에서 정점간 경로가 없는 경우는 1000을 입력하여 주고, 자신에 대하여는 0을 입력하여 준다.

자료평가
    아직 평가한 내용이 없습니다.
회원 추천자료
  • [알고리즘, 알고리즘 설계] 알고리즘 총정리 슈퍼서브
  • 자료에 의한 여러 단계로 구성된다각 단계에서 현재 최적이라고 판단되는 해를 무조건 선택한다문제에 따라 최적해를 생성하기도 하고 근사해를 구하기도 한다알고리즘을 이해하기 쉽다수행 속도가 빠르다욕심쟁이법의 예Dijkstra의 최단 경로 알고리즘외판원 문제 (Traveling Salesman Problem)최적 병합 패턴 문제 (Optimal Merge Pattern)문제 : 주어진 n개의 정렬된 파일들을 하나의 정렬된 파일로 만들려고 한다.이 때, 수행 시간이 최소가 되도록 하는 최적

  • C언어로 쉽게 풀어쓴 자료구조 연습문제 답
  • 자료구조와 알고리즘(연습문제).hwp연습문제 해답1. (3)2. ADT Set객체 정의: 집합은 원소(element)라 불리우는 데이터 요소들의 모임연산 정의: Create() := 집합을 생성하여 반환한다.Insert(S, item) := 원소 item을 집합 S에 저장한다.Remove(S, item) := 원소 item를 집합 S에서 삭제한다.IsIn(S, item) := 집합 S에 item이 있는지를 검사한다.Union(S1, S2) := S1과 S2의 합집합을 구한다.Intersection(S1, S2) := S1과 S2의 교집합을 구한다.Difference(S1, S2) := S1과 S2의 차집합을 구한다.3.

  • [졸업][컴퓨터공학]MPEG 알고리즘 설명과 레퍼런스 해석 및 MPEG 재생기 구현
  • 구조 45 page3-5. 데이터 흐름 47 page3-5-1. 버퍼 공유 47 page3-5-2. 커널 스트리밍 49 page3-6. 프로그램 배포 51 page3-7. 다이렉트쇼의 미래 52 page4. 다이렉트쇼 하부구조 53 page4-1. 그래프에디터와 다이렉트쇼 하부구조 53 page4-2. 다이렉트쇼 애플리케이션으로 개념 전환 53 page5. 다이렉트쇼 애플리케이션 개발 환경 56 page5-1. 다이렉트X SDK 경로설정 56 page5-2. 개발에 필요한 헤더 파일과 라이브러리 파일 57 page6. 소스코드 59 page6-1. 재생 59 page6-2. 일시정지 59 page

  • [유통정보학] 매일유업 유통관리
  • 구조의 영향으로 MD 구성이 여러층에 산재해 있다 보니 고객들의 상품구입에 불편을 끼치고 있고 상품구입 후 층간이동이 불편해 객단가를 떨어뜨리는 주요한 원인이 되고 있다. 또한 점포 운영면에 있어서 저비용 고효율 창출이라는 목표와는 상반되게 층별 A/R인원도 타점보다 더 많이 필요하게 되고 이에 따른 인사비도 타점에 비해 높은 편이다.상품로스 역시 심각한 수준이다. 이는 전 이마트 점포가 당면한 과제인데 천호점의 경우 다층 구조이다

  • [컴퓨터원리] 서울대학교 Campus내의 효율적인 이동경로 및 예상시간에 관한 연구
  • 경로를 표시하게 된다.오직 걸을 경우 프로그램의 실행오직 걸을 경우 프로그램을 실행시키면 다음과 같은 MENU창이 떠서 최단시간 구하기와 최단거리 구하기 중 어느 프로그램을 실행시킬 건지 선택권을 주게 된다. 우선 최단 시간을 선택한 경우와 최단거리 구하기를 선택한 경우를 설명하겠다.최단 시간최단 시간 구하기 프로그램의 경우 정문에서 행정관까지 걸어갈 때의 상황을 실행하였다.figure창에서는 mesh plot한 그래프에서는 파란색 선으로

사업자등록번호 220-06-55095 대표.신현웅 주소.서울시 서초구 방배로10길 18, 402호 대표전화.02-539-9392
개인정보책임자.박정아 통신판매업신고번호 제2017-서울서초-1806호 이메일 help@reportshop.co.kr
copyright (c) 2003 reoprtshop. steel All reserved.