Aprendizaje de Matleb: problema de la ruta más corta de la teoría de grafos

1. Teoría de grafos:

La teoría de grafos es una rama de las matemáticas. Toma fotografías como objeto de investigación. Un gráfico en la teoría de gráficos es un gráfico compuesto por un número de puntos dados y una línea que conecta dos puntos. Este gráfico se usa generalmente para describir una cierta relación entre ciertas cosas. Los puntos representan cosas y los puntos conectan dos puntos. La línea de representa que existe tal relación entre las dos cosas correspondientes.
Hay dos tipos de gráficos en la teoría de gráficos, gráficos dirigidos y gráficos no dirigidos . Como su nombre lo indica, ya sea que la línea que conecta dos puntos tenga o no una punta de flecha. En mi opinión, un gráfico no dirigido también es un tipo de gráfico dirigido, pero la línea que conecta dos puntos en un gráfico dirigido es una flecha de doble sentido.

2. Dos métodos de dibujo:

  1. Dibujo en línea del sitio web ( recomendado ) Haga clic en mí para ingresar al sitio web.
    Después de ingresar al sitio web, la interfaz es la siguiente:
    inserte la descripción de la imagen aquíPrimero, permítame hablar sobre las funciones necesarias
Número de nodos: Establecer el número de puntos, es decir, el número de círculos a la derecha
Datos del gráfico: Una sola columna de números es para escribir los puntos numéricos en el círculo (la suma de los números en una sola columna es el recuento de nodos), y una doble columna de números es para determinar la relación entre los círculos. También se puede aumentar a tres columnas, es decir, para aumentar el peso.Ver la demostración específica a continuación
0(1)-índice El número más bajo dentro del círculo comienza desde 0 (1)
Descargar como PNG exportar como imagen
No dirigido (Dirigido) gráfico no dirigido (gráfico dirigido)

Luego explique algunas funciones
**Función numérica de una sola columna y relación con el conteo de nodos
inserte la descripción de la imagen aquí
**Función numérica de doble columna (asegúrese de prestar atención a los espacios)
inserte la descripción de la imagen aquí
**Agregar teoría de grafos ponderados
inserte la descripción de la imagen aquíinserte la descripción de la imagen aquí
**Teoría de grafos con flechas
inserte la descripción de la imagen aquí

  1. Dibujo de Matleb
    Primero cargue el código, si puede entender el código, puede pasar directamente a la tercera parte. (El código es del Sr. Qingfeng, se puede eliminar por infracción)
%% 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', [] );  

función descriptiva

gráfica(s,t) Se pueden crear bordes entre los nodos correspondientes en s y t, y un gráfico
gráfica(s,t,w) puede crear bordes con peso w entre los nodos correspondientes en s y t, y generar un gráfico

Se han proporcionado otros comentarios de código en detalle, solo mire la práctica de código.

3. Matriz de adyacencia de peso

La matriz de adyacencia de peso es para expresar la teoría de grafos en una matriz, la relación entre sí mismo y sí mismo es 0, y la relación entre sí y los demás es infinita (Inf), y la relación es el peso. De acuerdo con la teoría de grafos, la matriz de adyacencia de peso también se puede dividir en matriz de adyacencia de peso de gráfico dirigido y matriz de adyacencia de peso de gráfico no dirigido. Los elementos en la diagonal principal entre los dos son cero, y Dij representa el peso del i-ésimo nodo al j-ésimo nodo. La diferencia es que un gráfico no dirigido es una matriz simétrica y un gráfico dirigido generalmente no es una matriz simétrica. Las dos últimas imágenes valen más que mil palabras.
inserte la descripción de la imagen aquíinserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/Fireworkyanhuo/article/details/107305872
Recomendado
Clasificación