Назовем новыми ребра графа G1, добавленные при разрезе по вершине z. Пусть этo ребра e1, …, em. Поскольку при построении разреза было добавлено k ребер, после чего были удалены петли, то m
m1+m2+…+mk m
k (1)
Если дерево Ti не содержит ни одного нового ребра, то оно является подграфом мультиграфа G. Поскольку множество вершин дерева Ti содержит все вершины графа G, кроме z, то добавив к Ti вершину z и любое ребро графа G с концом в z, мы получим остовное дерево T'iграфа G. Отметим, что в этом случае для построения дерева T'i потребовалось одно ребро графа G, инцидентное вершине z (причем это ребро можно выбрать произвольно).
Предположим, что mi>0, то есть дерево Ti содержит новые ребра. Поставим в соответствие дереву Ti подграф Ti* графа G, в котором каждое новое ребро xy дерева Tiзаменим на два ребра xy и yz графа G. Каждое новое ребро в дереве Ti соответствует двум ребрам в графе Ti*, при этом, к вершинам дерева добавляется вершина z. Следовательно, мы получили связный остовный подграф Ti* графа G, в котором количество ребер на mi-1 больше , чем в дереве. Таким образом, в графе Ti* ровно mi-1 цикл, причем не трудно заметить, что каждый из этих циклов проходит через вершину z. Следовательно, из графа Ti* можно удалить mi-1 инцидентных вершине z ребер так, что получится отстовное дерево Ti' графа G. В дерево Ti' входит mi+1 ребро, инцидентное вершине z. По построению очевидно, что при i j, mi>0 и mj>0 остовные деревья Ti'и Tj' графа не имеют общих ребер.
Пронумеруем k непересекающихся по ребрам остовных деревьев графа G таким образом, чтобы деревья T1, …, Tn содержали новые ребра, а деревья Tn+1, …, Tk не содержали новых ребер (где 0
(m1+1)+…+(mn+1)=(m1+m1+…+m1)+n (2)
Следовательно, в силу неравенства (2), и так как dG(z) , остались неиспользованными еще хотя бы n-k ребер графа G, инцидентных вершине z. Для дополнения каждого из оставшихся деревьев Tn+1, …, Tk до остовного дерева графа G требуется еще по одному ребру, инцидентному вершине z, причем это ребро можно выбрать произвольно. Таким образом, мы можем построить попарно k непересекающихся по ребрам отстовных дерева графа G.
Мы покажм необходимость условия (G)
2k для выделения k попарно непересекающихся по ребрам остовных деревьев из графа G. Более того, при n>1 для любого n мы построим (2k-1)–вершинно связный граф Gn, у которого степени всех вершин более n, но среди любых k связных остовов графа Gn какие–то два имеют общее ребро. Таким образом, ослабление условия реберной 2k–связности нельзя «компенсировать», накладывая допoлнительно условия на минимальную степень вершины и условие вершинной (2k-1)–связности. Перейдем к построению серии примеров.
Определение.8.1. Пусть A V–множество из некотрорых вершин графа G(V, E). Определим граф GA с множеством вершин (V\A)
(где a
). Удалим в графе G все ребра между вершинами из множеcтва А, объединим все вершины множемтва А в одну новую вершину а. Для любой вершины b
, мы добавим ровно dG(b, A) ребер ab. Все вершины из V\A и соединяющие их ребра в графе GA будут же, как и в графе G. Назовем построенный граф GAстягиванием графа G по множеству А.
Лемма 8.2.Пусть в графе G(V, E) есть k попарно непересекающихся по ребрам остовных дерева. Тогда для любого A V в графе GA также есть k попарно непересекающихся по ребрам остовных дерева.
Доказательство. Пусть T1, T2,…, Tk –остовные деревья графа G. По определению стягивания нетрудно заметить, что графы TA1, TA2,…, TAk связны и никакие два из них не имеют общих ребер.
Определние 8.3. Пусть граф H(V, E) не имеет кратных ребер, a V, n>dH(a). Пусть граф H
получен из Н в результате замены вершины а на полный грaф Kn, причем все ребра, инцидентные вершине а в графе Н, в H
будут из разных вершин соответствующего Н полного графа Kn.
Для n> определим граф Hn, в котором каждую вершину а графа H заменим полным графом Kn (других вершин в Hn нет). Для каждого ребра ab графа Н проведем в графе Hn ребро, соединяющее какие–то две вершины из соответствующих a и b полных графов (такие ребра графа Hn мы назовем главными). При этом, мы проведем главные ребра так, чтобы никакие два из них не имели общего конца (это возможно так, как n>
Текст программы
unit diplom;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls, Menus, CheckLst, ActnList;
type
masiv = set of byte;
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Image1: TImage;
Image2: TImage;
ComboBox1: TComboBox;
Label1: TLabel;
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormActivate(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
private
{ Private declarations }
function Proverka(ind: byte): boolean;
procedure Newselect(ind: byte);
procedure Duga(ind:byte);
procedure Graph;
public
{ Public declarations }
end;
var
Form1: TForm1;i:integer;
b,b1,b2,b4:boolean;
Data: array[1..20] of record x1,y1:integer;end;
matr,matr_edit:array[1..40,1..40] of integer;
mas_x,mas_y : masiv;
x2,y2:integer;
implementation
{$R *.DFM}
//************************esli mouse najata*****************************
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
canvas.MoveTo(x,y); x2:=x;y2:=y;
if (ssleft in Shift) then b:=true
else
if (ssRight in Shift) then b:=false else
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var k,k1:integer;
begin
if b then
begin
Canvas.Brush.Color := clRed;
canvas.Ellipse(x-10,y-10,x+10,y+10);
inc(i);
canvas.TextOut(x-3,y-6,inttostr(i));
Data[i].x1:=x;Data[i].y1:=y;
combobox1.items.Append(inttostr(i));
end
else
//risovanie peteli