График::

Добавляют одно или несколько ребер к графику

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

Graph::addEdges(G, Edge)
Graph::addEdges(G, Edge, <EdgeWeights = ew>, <EdgeCosts = ec>, <EdgeDescriptions = ed>)

Описание

Graph::addEdges добавляет одно или несколько ребер в уже существующий график. Ребро представлено списком, содержащим две вершины графика. Предупреждение повышено, если одно из заданных ребер действительно уже существует в графике.

Graph::addEdges(G,Edge) добавляет ребро (ребра) Edge в график G. Две вершины каждого ребра должны быть вершинами в данном графике. В противном случае ошибка повышена. Если ребро будет задано, который уже существует, предупреждение будет распечатано, что это ребро не используется.

С Graph::addEdges(G, Edge,EdgeWeights=ew,EdgeCosts=ec, EdgeDescriptions=ed) вес, стоимость и описание каждого ребра могут быть установлены в каждое ребро дополнительно. Если эти спецификации отсутствуют, значение по умолчанию 0(=None) принято. Если спецификация используется, она должна содержать точно то же количество значений, когда существуют ребра. В противном случае ошибка будет повышена.

Примечание

None значения может использоваться в списках спецификаций для каждого ребра, которое не должно быть задано явным образом.

Примеры

Пример 1

Во-первых, неориентированный граф с двумя вершинами и никакими ребрами создается. Затем два ребра добавляются:

G := Graph([a, b, c, d], []):
Graph::printEdgeInformation(G):
G := Graph::addEdges(G, [[a, b], [c, d]]):
Graph::printEdgeInformation(G)
No edges.
Edges existing in the graph:
----------------------------
[a, b], [c, d], [b, a], [d, c]

Как вы видите, [b,a] и [d,c] были вставлены автоматически.

G2 := Graph::addEdges(G, [[a,d]]):Graph::getEdges(G2)

Теперь, что происходит, если ребро вставляется, который уже существует в графике?

G := Graph::addEdges(G, [[d, c]])
Warning: The following edges were not used for operation: [[d, c]]. [Graph::selectEdge]

Предположим, мы пытаемся вставить ребро с вершиной, не существующей в графике:

G := Graph::addEdges(G, [[a, 5]])
Error: One or more edges contain vertices that are not in list '[5]'. [Graph::addEdges]

Теперь давайте смотреть то, что происходит, когда ориентированный граф создается:

G := Graph([a, b, c, d], [], Directed):
G := Graph::addEdges(G, [[a, b], [b, c], [c, d]], 
                     EdgeWeights = [2/8, -5, PI], 
                     EdgeCosts = [30, -40, None]):
Graph::printGraphInformation(G)
Vertices: [a, b, c, d]
Edges: [[a, b], [b, c], [c, d]]
Vertex weights: no vertex weights.
Edge descriptions: no edge descriptions.
Edge weights: [a, b] = 1/4, [b, c] = -5, [c, d] = PI (other existing edges\
 have no weight)
Edge costs: [a, b] = 30, [b, c] = -40 (other existing edges have costs zer\
o)
Adjacency list (out): a = [b], b = [c], c = [d], d = []
Adjacency list (in): a = [], b = [a], c = [b], d = [c]
Graph is directed.

Внимательно рассмотрите в строке затрат Ребра. Ребро [c,d] не упоминается явным образом из-за значения None:

G2 := Graph::addEdges(G, [[a, b], [a, d]], EdgeWeights=[10, 20], 
                      EdgeCosts = [80, 90], 
                      EdgeDescriptions = ["First way", "Second way"]):
Graph::printGraphInformation(G2)
Warning: The following edges were not used for operation: [[a, b]]. [Graph::selectEdge]
Vertices: [a, b, c, d]
Edges: [[a, d], [a, b], [b, c], [c, d]]
Vertex weights: no vertex weights.
Edge descriptions: [a, d] = "Second way"
Edge weights: [a, b] = 1/4, [b, c] = -5, [c, d] = PI, [a, d] = 20 (other e\
xisting edges have no weight)
Edge costs: [a, b] = 30, [b, c] = -40, [a, d] = 90 (other existing edges h\
ave costs zero)
Adjacency list (out): a = [b, d], b = [c], c = [d], d = []
Adjacency list (in): a = [], b = [a], c = [b], d = [a, c]
Graph is directed.

Если ребро будет иметь спецификации, но уже существуйте в графике, спецификации не изменятся. (см. информацию для ребра [a, b] выше),

Параметры

G

Graph

Edge

Список одного или нескольких ребер

ew, ec

Списки чисел

ed

Список текстов

b

Булево значение

Опции

EdgeWeights

Вес (веса) нового ребра (ребер). Значение по умолчанию 0.

EdgeCosts

Стоимость (стоимость) нового ребра (ребер). Значение по умолчанию 0.

EdgeDescriptions

Описание (описания) для нового ребра (ребер). Значением по умолчанию не является никакой текст.

Возвращаемые значения

Graph с правильными вставленными ребрами.