Matleb 학습--그래프 이론 최단 경로 문제

1. 그래프 이론:

그래프 이론은 수학의 한 분야입니다. 연구 대상으로 사진을 찍습니다. 그래프 이론에서 그래프는 주어진 여러 점과 두 점을 연결하는 선으로 구성된 그래프입니다.이 그래프는 일반적으로 특정 사물 간의 특정 관계를 설명하는 데 사용됩니다. 상응하는 두 가지 사이에 그러한 관계가 있다는 것입니다. 그래프 이론에는 유향 그래프무향 그래프
의 두 가지 유형의 그래프가 있습니다 . 이름에서 알 수 있듯이 두 점을 연결하는 선에 화살촉이 있는지 여부. 제 생각에는 무방향 그래프도 방향 그래프의 일종이지만 방향 그래프에서 두 점을 연결하는 선은 양방향 화살표입니다.

2. 그리기의 두 가지 방법:

  1. 웹사이트의 온라인 그리기 ( 권장 ) 웹사이트에 들어가려면 저를 클릭하십시오 웹
    사이트에 들어간 후 인터페이스는 다음과 같습니다:
    여기에 이미지 설명 삽입먼저 필요한 기능에 대해 이야기하겠습니다.
노드 수: 포인트 수, 즉 오른쪽에 있는 원의 수를 설정합니다.
그래프 데이터: 숫자의 단일 열은 원에 숫자 포인트를 쓰는 것이고(단일 열의 숫자의 합은 노드 수입니다), 숫자의 이중 열은 원 사이의 관계를 결정하는 것입니다. 즉, 가중치를 높이려면 아래의 특정 데모를 참조하십시오.
0(1)-인덱스 원 안의 가장 낮은 숫자는 0(1)부터 시작합니다.
PNG로 다운로드 이미지로 내보내기
무연(연출) 무방향 그래프(방향 그래프)

그런 다음 몇 가지 기능을 설명합니다.
**단일 열 수 함수 및 노드 수와의 관계
여기에 이미지 설명 삽입
**이중 열 수 함수(공백에 주의)
여기에 이미지 설명 삽입
**가중 그래프 이론 추가
여기에 이미지 설명 삽입여기에 이미지 설명 삽입
**화살표가 있는 그래프 이론
여기에 이미지 설명 삽입

  1. Matleb drawing
    먼저 코드를 업로드하고, 코드를 이해할 수 있다면 세 번째 부분으로 바로 이동할 수 있습니다. (코드는 Mr. Qingfeng의 코드이며 침해로 인해 삭제될 수 있습니다)
%% Matlab作无向图
% (1)无权重(每条边的权重默认为1)
% 函数graph(s,t):可在 s 和 t 中的对应节点之间创建边,并生成一个图
% s 和 t 都必须具有相同的元素数;这些节点必须都是从1开始的正整数,或都是字符串元胞数组。
s1 = [1,2,3,4];
t1 = [2,3,1,1];
G1 = graph(s1, t1);
plot(G1)
% 注意哦,编号最好是从1开始连续编号,不要自己随便定义编号

% 注意字符串元胞数组是用大括号包起来的哦
s2 = {
    
    '学校','电影院','网吧','酒店'};
t2 = {
    
    '电影院','酒店','酒店','KTV'};
G2 = graph(s2, t2);
plot(G2, 'linewidth', 2)  % 设置线的宽度
% 下面的命令是在画图后不显示坐标
set( gca, 'XTick', [], 'YTick', [] );  

% (2)有权重
% 函数graph(s,t,w):可在 s 和 t 中的对应节点之间以w的权重创建边,并生成一个图
s = [1,2,3,4];
t = [2,3,1,1];
w = [3,8,9,2];
G = graph(s, t, w);
plot(G, 'EdgeLabel', G.Edges.Weight, 'linewidth', 2) 
set( gca, 'XTick', [], 'YTick', [] );  

%% Matlab作有向图
% 无权图 digraph(s,t)
s = [1,2,3,4,1];
t = [2,3,1,1,4];
G = digraph(s, t);
plot(G)
set( gca, 'XTick', [], 'YTick', [] );  

% 有权图 digraph(s,t,w)
s = [1,2,3,4];
t = [2,3,1,1];
w = [3,8,9,2];
G = digraph(s, t, w);
plot(G, 'EdgeLabel', G.Edges.Weight, 'linewidth', 2) 
set( gca, 'XTick', [], 'YTick', [] );  

기능 설명

그래프(s,t) s와 t의 해당 노드와 그래프 사이에 간선을 만들 수 있습니다.
그래프(s,t,w) s와 t의 해당 노드 사이에 가중치가 w인 에지를 생성하고 그래프를 생성할 수 있습니다.

다른 코드 주석이 자세히 제공되었습니다. 코드 연습을 살펴보세요.

3. 가중치 인접 행렬

가중치 인접 행렬은 그래프 이론을 행렬로 표현한 것으로 자신과 자신의 관계는 0이고 자신과 타인의 관계는 무한대(Inf)이며 그 관계를 가중치로 한다. 그래프 이론에 따르면 가중치 인접행렬은 방향 그래프의 가중치 인접행렬과 무방향 그래프의 가중치 인접행렬로 나눌 수 있다. 둘 사이의 주대각선 요소는 0이고 Dij는 i번째 노드에서 j번째 노드까지의 가중치를 나타냅니다. 차이점은 무방향 그래프는 대칭 행렬이고 방향 그래프는 일반적으로 대칭 행렬이 아니라는 것입니다. 마지막 두 장의 사진은 천 단어의 가치가 있습니다.
여기에 이미지 설명 삽입여기에 이미지 설명 삽입

추천

출처blog.csdn.net/Fireworkyanhuo/article/details/107305872