- •Множества. Элементы множеств. Интуитивный принцип объемности. Способы задания множества. Мощность множества.
- •Подмножества и их свойства.
- •Операции над множествами: объединение, пересечение, разность, дополнение. Диаграммы Эйлера-Венна.
- •Свойства операций над множествами (с доказательством).
- •Прямое произведение множеств. Бинарные отношения. Способы задания бинарных отношений.
- •Операции над бинарными отношениями: композиция отношений, степень отношения, обратное отношение, дополнение отношения, объединение, пересечение, разность отношений.
- •Свойства бинарных отношений: рефлексивность, антирефлексивность, симметричность, антисимметричность, транзитивность, связность.
- •Замыкания отношений. Транзитивное замыкание, рефлексивное транзитивное замыкание. Теоремы о транзитивном и рефлексивном транзитивном замыкании.
- •Операции над бинарными отношениями, заданными в матричной форме.
- •Алгоритм определения матрицы транзитивного замыкания бинарного отношения.
- •Отношение эквивалентности. Классы эквивалентности и их свойства. Разбиения множеств. Связь эквивалентности с разбиением (теоремы с доказательством).
- •Отношение порядка. Строгий и нестрогий порядок. Частичный и полный порядок. Упорядоченные множества.
- •Соответствия. Образ и прообраз. Свойства соответствий: всюду определенные, инъективные, сюръективные, функциональные, взаимнооднозначные соответствия.
- •Функции и отображения. Виды отображений. Обратные соответствия и функции. Способы задания функций.
- •Алгебраические операции. Примеры операций. Арность операции. Способы задания.
- •Свойства бинарных алгебраических операций: коммутативность, ассоциативность, дистрибутивность, поглощение, идемпотентность. Нейтральный и симметричный элементы.
- •Комбинаторные правила суммы и произведения. Выборки (упорядоченные, неупорядоченные, с повторениями и без).
- •Операции над графами.
- •Способы представления графов и орграфов на эвм: матрица смежности, матрица инцидентности, список смежности, массив ребер (дуг).
- •Маршруты в графах. Виды маршрутов: замкнутые и незамкнутые. Цепь. Простая цепь. Цикл. Простой цикл. Длина маршрута. Расстояние между вершинами. Диаметр графа.
- •Орграфы и бинарные отношения. Отношение достижимости вершин орграфа. Матрица достижимости. Связь между отношениями достижимости и смежности.
- •Определение матрицы достижимости орграфа как матрицы рефлексивного и транзитивного замыкания отношения смежности.
- •Алгоритм выделения компонент связности (сильной связности)
- •Нагруженные орграфы Длина пути в нагруженном орграфе. Минимальные пути в нагруженных орграфах.
- •Нагруженные орграфы. Алгоритм Форда-Беллмана выделения минимального пути в нагруженном орграфе.
Свойства бинарных отношений: рефлексивность, антирефлексивность, симметричность, антисимметричность, транзитивность, связность.
Рассмотрим бинарное отношение р заданное на множестве А:
Рефлексивным называется отношение р такое, что . В матрице рефлексивного отношения на главное диагонали должны располагаться «1».
Антирефлексивным называется отношение р такое, что . В матрице антирефлексивного отношения на главной диагонали должны располагаться «0».
Симметричным называется отношение р такое, что . В матрице симметричного отношения элементы должны быть симметричны относительно главной диагонали.
Антисимметричным называется отношение р такое, что => х=у. В матрице антисимметричного отношения не должно быть симметричных относительно главное диагонали «1».
Транзитивным называется отношение р такое, что => (x,z) p. В матрице транзитивного отношения нули не должны заменяться единицами.
Связным называется отношение р такое, что => (x,y) p или (у,х) р. В матрице симметричного отношения не должно быть симметричных относительно главной диагонали «0».
Замыкания отношений. Транзитивное замыкание, рефлексивное транзитивное замыкание. Теоремы о транзитивном и рефлексивном транзитивном замыкании.
Пусть р и p’ отношения на множестве А. Отношение р’ называется замыканием р относительно свойства С, если:
р’ обладает свойством С, т.е. С(р’)
р’ является надмножеством р:р с р’
Р’ является наименьшим: С(р’’) и р с р’’ => р’ c р’’ (любое р’’, обладающее свойством С и содержащее в себе р, содержит в себе также и р’)
Пусть р+ - объединение положительных степеней р, а р* - объединение неотрицательных степеней р, т.е. р+= и р*= . Тогда р+ - транзитивное замыкание р, а р* - рефлексивно-транзитивное замыкание р.
Операции над бинарными отношениями, заданными в матричной форме.
Рассмотрим два конечных множества А={а1,а2,…,аm}, B={b1,b2,…,bn} и бинарное отношение
Р с А . Определим матрицу [P]=(pij) размера m n, бинарного отношения Р по следующему правилу: pij=1, если (ai,bj) P. : pij=0, если (ai,bj) P.
Заметим, что любая матрица, состоящая из нулей и единиц, является матрицей некоторого бинарного отношения.
Для матричной формы задания:
Объединение отношений. v .
Пересечение отношений. .
Обратное отношение. Транспонирование: Cij=aij.
Композиция отношений. Сij= .
Дополнение. Cij=aij.
Алгоритм определения матрицы транзитивного замыкания бинарного отношения.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var h:integer;
begin
h:=strtoint(Edit1.Text);
h:=h+1;
StringGrid1.Colcount:=h;
StringGrid1.Rowcount:=h;
StringGrid2.Colcount:=h;
StringGrid2.Rowcount:=h;
end;
procedure TForm1.Button2Click(Sender: TObject);
var a:array[1..100,1..100] of integer ;
b:array[1..100,1..100] of integer ;
c:array[1..100,1..100] of integer ;
h,i,j,k,z:integer;
begin
z:=0;
h:=strtoint(Edit1.text);
For i:=1 to h do begin
For j:=1 to h do begin
a[i,j]:= strtoint(StringGrid1.Cells[i,j]);
end;
end;
For i:=1 to h do begin
For j:=1 to h do begin
c[i,j]:=a[i,j];
b[i,j]:=a[i,j];
end;
end;
while z=0 do begin
For i:=1 to h do begin
For j:=1 to h do begin
For k:=1 to h do begin
If (a[i,k]*b[k,j])=1 then begin b[i,j]:=1; break; end;
end;
If c[i,j]>=b[i,j] then z:=1 else z:=0;
end;
end;
For i:=1 to h do begin
For j:=1 to h do begin
If (c[i,j]=0) and (b[i,j]=1) then c[i,j]:=b[i,j];
end;
end;
end;
For i:=1 to h do begin
For j:=1 to h do begin
StringGrid2.Cells[i,j]:=inttostr(c[i,j]);
end;
end;
end;
end.