Главная              Рефераты - Разное

«Применение информационный технологий в теории графов» - реферат

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Выпускная работа по
«Основам информационных технологий»

Магистрант

кафедры УМФ

Петрович Роман Александрович

Руководители:

профессор, доктор

физико-математических наук Тышкевич Регина Иосифовна,

доцент Кожич Павел Павлович

Минск – 2009 г.

Оглавление

Оглавление. 4

Список обозначений ко всей выпускной работе. 5

Реферат на тему «Применение информационный технологий в теории графов». 6

Введение. 6

Глава 1. Некоторые сведения из теории алгоритмов. 7

Глава 2. Элементы теории сложности. 11

Глава 3. Теория сложности в магистерской диссертации. 11

Глава 4. Обзор применения ИТ в теории графов. 13

Глава 5. Обзор библиотеки JGraphT. 14

Глава 6. Обзор библиотеки JGraph. 17

Заключение. 21

Список литературы к реферату. 22

Предметный указатель к реферату. 23

Интернет ресурсы в предметной области исследования. 24

Действующий личный сайт в WWW... 25

Граф научных интересов. 26

Презентация магистерской диссертации. 32

Список литературы к выпускной работе. 35

Приложения. 36

Приложение1. Список вопросов для теста по ИТ. 36

Список обозначений ко всей выпускной работе

ИТ – информационные технологии.

ЭВМ – электронно-вычислительная машина.

Реферат на тему «Применение информационный технологий в теории графов» .

Введение

Рассматриваемый реферат посвящен применению информационных технологий в теории графов. В наше время теория графов приобретает все возрастающий интерес у специалистов самых различных областей науки и техники. Эта привлекательность объясняется не только очень широким разнообразием возможностей ее применения, но и красотой результатов, достигаемых простыми средствами. Известно, что само появление теории графов восходит к началу XVIII века к задаче «О Кёнигсбергских мостах». Эта задача была решена великим математиком того времени Леонардом Эйлером. В современной математике его результат известен как «Лемма о рукопожатиях». Следующий раз про теорию графов «вспомнили» лишь в начале XX века, найдя ее применение в химии (описание строений соединений углеродов), физике (электрические цепи) и конечно же в самой математике. Действительно, в рамках теории графов имеется множество различных направлений; результаты ее формулируются с привлечением понятий теории множеств, топологии, алгебры, но в тоже время методы теории графов нельзя рассматривать как простую совокупность методов этих разделов математики.

Теория графов и гиперграфов является эффективным аппаратом формализации современных инженерных и научных задач, как уже сказано, в различных областях знаний. Язык теории графов удобен при проведении системных исследований, описании организации генетических систем. В последнее время большое применение нашла теория графов в современной вычислительной технике и кибернетике: в теоретическом программировании, при проектировании на ЭВМ и сетей ЭВМ, баз данных, систем логического управления [1].

Глава 1. Некоторые сведения из теории алгоритмов

Особый интерес для практики и приложений представляют алгоритмические аспекты задач на графах. На практике важно уметь с помощью ЭВМ находить в графе наибольшее паросочетание и наибольшее независимое множество, строить гамильтонов цикл или гамильтонову цепь, выделять связные или двусвязные компоненты и т. п. Иначе говоря, надо иметь соответствующие алгоритмы, а в конечном счете и программы для ЭВМ. К примеру, связные и двусвязные компоненты применяются при проектировании компьютерных сетей, обеспечивающих высокую степень надежности. Графы в таких задачах – это огромная (сотни и тысячи вершин) структура, поэтому очень важно использовать оптимальные способы хранения данных и оптимальные алгоритмы их обработки.

Нетрудно для каждой из упомянутых выше задач разработать алгоритм, реализующий перебор всех возможных вариантов. Такой подход, однако, неприемлем из-за чрезвычайно большого числа этих вариантов. Поэтому нужен не просто алгоритм, а алгоритм, эффективный, причем эффективность алгоритма очень важно уметь оценивать apriori.Для этой цели служит анализ алгоритма. При анализе алгоритма решения какой-либо задачи нас в первую очередь будет интересовать его трудоемкость, под которой мы понимаем время выполнения соответствующей программы па ЭВМ. Ясно, что этот показатель существенно зависит от типа используемой ЭВМ. Для того, чтобы сделать рассуждения о трудоемкости алгоритмов в достаточной мере универсальными, считается, что все вычисления производятся на некой абстрактной вычислительной машине. Такая машина в состоянии выполнять арифметические операции, сравнения, пересылки и операции условной и безусловной передач управления. Эти операции считаются элементарными . Каждая из элементарных операции выполняется за единицу времени и, следовательно, время работы алгоритма равно числу выполненных им элементарных операций.

Память абстрактной вычислительной машины состоит из неограниченного числа ячеек, имеющих адреса 1, 2, 3, ..., n . Причем, ко всем ячейкам памяти этой машины есть прямой доступ.

При анализе алгоритмов наибольший интерес представляет зависимость времени работы алгоритма от числа вершин и (или) ребер графа. Cчитается, что любое число, независимо от его величины, можно разместить в одной ячейке памяти и каждая ячейка может содержать только одно число.

Рассмотрим теперь представление информации в памяти машины. Всякая конечная последовательность элементов произвольной природы называется списком , а число элементов списка — его длиной . Элементами этого списка могут быть числа, буквы алфавита, векторы, матрицы и т. п. В той ситуации, когда, каждый элемент списка помещается в одной ячейке, этот список будем размещать в n последовательных ячейках памяти, где n — длина списка. Такое представление списка обычно называется последовательным , и далее используется только это представление.

Пусть А = ||Ai,j || — матрица порядка n .

A* =(A11 , A12 , …, A1n , A21 , A22 ,…, A2n , …, An1 , An2 ,…, Ann ) — список ее элементов по строкам. Принцип «одно число — одна ячейка» означает, что матрица порядка n занимает n2 ячеек памяти.

Рассмотрим теперь представление графа G в памяти машины. Пусть VG={v1 ,v2 ,…,vn } . Будем пользоваться тремя способами представления.

Первый — задание графа матрицей смежности . Если граф взвешенный и w(x, у) обозначает вес ребра xу, то вместо матрицы смежности используется матрица весов W(G)=W . У этой матрицы Wij =w(vi , vj ), если vi ,vj ÎEG . Если же vi vj не является ребром графа G, то полагаем Wij =0 или Wij =∞ — в зависимости от задачи, которую предстоит решить. Из сказанного выше о представлении матрицы в машине следует, что такой способ задания графа требует |G|2 ячеек памяти. Стоит отметить, что в рассматриваемом примере весами ребер могут быть любые вещественные числа.

Второй способ — задание графа списком ребер VE={e1 ,e2 ,…,em } , где m=|EG|, ei ÎEG . Поскольку ребро графа можно хранить, используя две ячейки (по одной на каждую концевую вершину), то для хранения всего списка Е достаточно ячеек. Если граф взвешенный, то под каждый элемент списка Е можно отвести три ячейки — две для ребра и одну для его веса, т. е. всего потребуется Зm ячеек.

И, наконец, последний способ, который будет использоваться, — представление графа списками смежности . При таком способе каждой вершине vi , ставится в соответствие список Nvi вершин, смежных с vi . Под этот список достаточно отвести deg(vi )+1 ячеек — по одной на каждый элемент и одну ячейку для обозначения конца списка. Кроме того, формируется список N={N1 ,N2 ,…,Nm } , где Ni , — номер ячейки, в которой хранится первый элемент списка Nvi . Следовательно, такой способ

представления графа требует ячеек памяти. Если граф G взвешенный, то дли каждой вершины vj , списка Nvi отводится дополнительно одна ячейка, содержащая число w(vi , vj ).

Хотя представление графа списком ребер является наиболее экономным «по памяти», оно имеет существенный недостаток. Чтобы определить, содержит ли граф данное ребро, надо просматривать поочередно элементы этого списка, а это может потребовать около элементарных операций. Если же граф задан списками смежности, вычислительные затраты составят не более n+1 таких операций. Представление графа матрицей смежности, требующее наибольших затрат памяти, обеспечивает «прямой доступ» к ребрам графа. Узнать, содержит ли граф ребро vi vj можно, вычислив адрес k = in + j и сравнив М(k) c нулем, где М — массив, в котором построчно размещена матрица смежности графа.

Выбор того или иного задания графа зависит от конкретной задачи, которую предстоит решать.

Стандартным подходом является то, что во всех рассматриваемых задачах главной частью исходной информации служит граф. Кроме этого, исходные данные могут включить номера одной или нескольких выделенных вершин. Если, например, задача состоит в отыскании цепи, соединяющей две задан­ные вершины графа, то помимо графа необходимо задать номера этих двух вершин.

После того как ко всем исходным данным задачи присвоены конкретные значения, они размещены в памяти ЭВМ, они называются входом задачи . Размером (или длиною) входа считается число ячеек, занятых входом.

При анализе алгоритма решения любой задачи математика в первую очередь интересует зависимость времени его работы от размера задачи, т. е. от размера входа. Однако, это время зависит не только от размера входа, но и от других параметров задачи, т. е. время работы алгоритма на входах одинаковой длины может быть не одинаковым. Поясним сказанное на простейшем примере. Пусть элементами списка S={S1 ,S2 ,…,Sm } являются натуральные числа и требуется определить, содержит ли список S число, кратное трем. Очевидный алгоритм решения этой простой задачи состоит в следующем: проверяем поочередно делимость элементов списка S на 3 до тех пор, пока не встретится число кратное трем, или же не будут проверены все элементы S . Время выполнения р таких проверок равно t = 2р (р делений и р изменений адреса). Следовательно, при неизменной длине входа т время работы алгоритма будет изменяться в пределах 2£t£ в зависимости от расположения подходящего элемента s в списке S. Наихудшим будет случай, когда S не содержит чисел, кратных трем, либо когда Sm — единственное такое число. Один из основных подходов к определению понятия «трудоемкость алгоритма» ориентируется именно на такого рода наихудший случай [1].

Глава 2. Элементы теории сложности

Трудоемкость (или сложность ) алгоритма решения данной задачи определяетcя как функция f , ставящая в соответствие каждому натуральному числу п время работы f(n) алгоритма в худшем случае на входах длины n . Иначе говоря, f(n) —максимальное время работы алгоритма по всем входам данной задачи длины п. Анализ эффективности алгоритмов заключается в выяснении вопроса: как быстро растет функция f(n) с ростом n ? При ответе на этот вопрос обычно используют O-символику .

Говорят, что неотрицательная функция f(n) не превосходит по порядку функцию g(n), если существует такая константа с, что f(n) g(n) для всех n> 0 ; при этом пишут f(n) = O(g(n)). Выражению «трудоемкость (сложность) алгоритма есть O(g(n)) придается именно этот смысл. В частности, трудоемкость O(i) означает, что время работы соответствующего алгоритма не зависит от длины входа.

Алгоритм с трудоемкостью О(п), где n — длина входа, называют линейным . Линейный алгоритм ограниченное константой чиcло раз просматривает входную информацию и для подавляющего большинства «естественных» задач является неулучшаемым в смысле трудоемкости. Поэтому отыскание линейного алгоритма для некоторой задачи часто является своего рода «последней точкой» в ее алгоритмическом решении.

Алгоритм, сложность которого равна О(пс ), где с — константа, называется полиномиальным . В большинстве случаев эта степень не превосходит трех и оценка сложности алгоритма, как правило, имеет один из следующих видов: O(n3 ), O(n2 ), O(n), O(n log n) . [1]

Глава 3. Теория сложности в магистерской диссертации

Одним из подходов к анализу NP -трудных задач, т.е. таких, про которые известно, что для их точного решения не существует полиномиальных алгоритмов, является наложение ограничений на вход исходной задачи и переход к рассмотрению возникающих при этом подзадач. В этом случае часто возникает пограничная область, отделяющая NP -полные подзадачи от полиномиально разрешимых и включающая те подзадачи, сложность которых неизвестна. Естественной целью является максимально возможное сужение этой области. Особых интерес представляют такие ограничения, при которых пограничная область отсутствует. Например, известно, что задача «k -раскраска» решается за полиномиальное время при k £2 и NP -полна при k ³3 . Еще более интересны ограничения, отражающие внутреннюю структуру подаваемых на вход объектов. Так, для задачи 3 -раскраска, известно, что она полиномиально разрешима в классе графов G с максимальной степенью вершин D(G) £3 и является NP -полной при D(G) ³4 . В действительности, в приведеных примерах утверждения о полиномиальной распознаваемости тривиальны. В магистерской диссертации исследуется нетривиальный пример такого рода. Исследуется NP -полная задача распознавания принадлежности графа G классу Ll 3 графов пересечений ребер линейных 3-униформных гиперграфов. Для нее существует порог полиномиальной разрешимости, связанный с минимальной степенью вершин d(G ) тестируемого графа G. А именно, существует такое натуральное число d* , что задача G ÎLl 3 (1) полиномиально разрешима в классе графов G с d (G ) ³ d * и NP -полна при d (G ) £ d * . В настоящее время существует довольно узкая оценка для числа d * : 6£d * £10. А также существует линейный алгоритм, решающий задачу проверки графа на алгоритм, который решает данную задачу в классе графов с d(G) ³10 [2].

Задачей, поставленной в магистерской диссертации, является по возможности уменьшение оценки d(G) за счет сужения рассматриваемых классов графов.

Глава 4. Обзор применения ИТ в теории графов

Применение информационных технологий в теории графов можно разделить по следующим группам.

1) Программы, служащие для набора научных статей по теории графов (например, Microsoft Word, TeX).

2) Программы для изображения графов в удобном виде (например, использование автофигур в Microsoft PowerPoint, либо стандартного набора специальных изображений в Microsoft Visio).

3) Программы для подготовки иллюстраций научных статей (например, Adobe Photoshop, Corel Draw).

4) Специальные библиотеки в языках программирования. Начиная от единиц, предоставляющий графический интерфейс пользователю, до сложных библиотек используемых в при реализации алгоритмов в коммерческих приложениях (например, JGraph и JGraphT в Java). Такого рода библиотеки содержат минимально необходимые сущности, например «граф», «ребро», «бинарное дерево», а также стандартный набор алгоритмов: «поиск в ширину», «поиск в глубину», проверка связности графа, бинарный поиск и многое другое, что позволяет прикладному алгоритмисту абстрагироваться от несущественной детализации и перейти непосредственно к реализации алгоритма.

5) Поиск информации в сети Internet.

Отметим, что одним из наиболее важных моментов применения ИТ в теории графов является поиск информации. Зачастую бывает очень трудно найти печатный вариант необходимой книги. С помощью глобальной сети Internet эта проблема решается, появляется возможность искать книги и научные статьи по необходимой тематике.

А сейчас остановимся более подробно на использовании библиотек JGraphT и JGraph.

Глава 5. Обзор библиотеки JGraphT.

Сайт производителя этой библиотеки: http://www.jgraph.com/jgraph.html. JGraphT – это open source Java библиотека, которая содержит огромное количество объектов из теории графов и не меньшее количество стандартных алгоритмов. JGraph поддерживает работу со следующими типами графов.

1) Ориентированные и неориентированные графы.

2) Графы с помеченными и непомеченными ребрами.

3) Простые графы, мультиграфы, псевдографы.

Несмотря на всю мощь этой библиотеки, она довольно проста в использовании. С помощью JGraphT можно хранить в памяти компьютера объекты многих сложных типов. Для создания графа программист может использовать большой набор функций. Также предусмотрена возможность экспорта созданных объектов в XML-документ и наоборот, создания объектов из специальных XML-документов.

Эта библиотека содержит в себе следующий набор пакетов.

org.jgrapht

«Стартовая точка» пользовательского приложения. Пакет содержит в себе такой наборы сущностей, как Graph, DirectedGraph, Multigraph, Pseudograph, UndirectedGraph.

org.jgrapht.alg

Содержит стандартный набор алгоритмов JGraphT.

org.jgrapht.alg.util

Набор утилит для использования в алгоритмах.

org.jgrapht.demo

Демонстрационные программы для быстрого ознакомления с «мощью» архива JGraphT.

org.jgrapht.event

Обработчики событий.

org.jgrapht.ext

Средства расширения и совместимости с другими продуктами.

org.jgrapht.generate

Конструкторы графов с различной структурой, например, можно создать полный случайный граф, полный двудольный, «колесо», и т.д.

org.jgrapht.graph

Имплементация различных графов.

org.jgrapht.traverse

Средства обхода графов.

org.jgrapht.util

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

Основными достоинствами библиотеки JGraphT являются то, что она:

1) оптимизирована для моделей данных и алгоритмов;

2) разработана для использования в высокопроизводительных приложениях;

3) может работать с графами содержащими миллионы вершин и ребер;

4) может обеспечивать графическую визуализацию данных с помощью библиотеки JGraph.

Рассмотрим, к примеру, пакет org.jgrapht.alg. Этот пакет интересен тем, что в нем содержится реализация многих стандартных алгоритмов из теории графов. Пакет содержит в себе следующий набор классов:

BellmanFordShortestPath<V,E>

Класс, реализующий алгоритм Беллмана-Форда.

BiconnectivityInspector<V,E>

Класс, предназначенный для проверки графа на двусвязность.

BlockCutpointGraph<V,E>

Класс, являющийся двумя сущностями: «блок» и «точка сочленения»ю

BronKerboschCliqueFinder<V,E>

Класс, содержащий реализацию алгоритма Брона-Кербоша поиска клик в графе.

ChromaticNumber

Класс для приближенного поиска хроматического числа графа.

ConnectivityInspector<V,E>

Класс, работающий с сущностью «связный граф».Обеспечивается проверка на связность, поиск вершин и ребер по определенным условиям и многое другое.

CycleDetector<V,E>

Класс, реализующий поиск циклов в графе.

DijkstraShortestPath<V,E>

Класс, содержащий реализацию алгоритма Дейкстры для поиска кратчайшего пути между вершинами.

DirectedNeighborIndex<V,E>

Класс, предназначенный для поиска окружения произвольной вершины в графе.

EdmondsKarpMaximumFlow<V,E>

Класс, реализующий сущность «поток в сети».

EulerianCircuit

Класс, содержащий алгоритм поиска эйлерова пути.

FloydWarshallShortestPaths<V,E>

Класс, реализующий алгоритм Флойда для поиска кратчайших путей между всеми вершинами графа.

HamiltonianCycle

Класс, содержащий реализацию алгоритма поиска гамильтонова пути в графе.

VertexCovers

Класс, содержащий реализацию алгоритма поиска вершинного покрытия в графе.

Из рассмотренного примера видно, насколько большой функционал у библиотеки JGraphT и насколько сильно он облегчает работу алгоритмиста.

Документация по JGraphT содержится по адресу: http://www.jgrapht.org/javadoc.

Глава 6. Обзор библиотеки JGraph.

Что же касается библиотеки JGraph, то она в свою очередь:

1) является swing-компонентом для построения графического интерфейса пользователя;

2) содержит более сложное API, чем JGraphT, и поэтому для ее правильного и эффективного использования необходимо изучить предоставляемую документацию;

3) производительность кода, написанного с использованием JGraph, является менее быстрой, чем JGraphT, и поэтому эта библиотека более требовательна к ресурсам.

Следующий адрес http://jgrapht.sourceforge.net/visualizations.html содержит пример работы библиотеки JGraph.

Рисунок 1.

На рисунке 1 мы видим граф на четырех вершинах v1, v2, v3, v4 , содержащий ребра v1v2, v2v3, v3v1, v4v3 . Этот написанный на языке Java апплет поддерживает пользовательский интерфейс типа drag and drop, благодаря чему пользователь может упорядочить вершины графа по своему усмотрению:

Рисунок 2

Ниже приведен исходный код рассмотренной выше программы на языке Java.

package org.jgrapht.demo;

import java.awt.Color;

import java.awt.Dimension;

import java.awt.Rectangle;

import java.util.HashMap;

import java.util.Map;

import javax.swing.JApplet;

import javax.swing.JFrame;

import org.jgraph.JGraph;

import org.jgraph.graph.DefaultGraphCell;

import org.jgraph.graph.GraphConstants;

import org.jgrapht.ListenableGraph;

import org.jgrapht.ext.JGraphModelAdapter;

import org.jgrapht.graph.ListenableDirectedGraph;

import org.jgrapht.graph.DefaultEdge;

public class JGraphAdapterDemo extends JApplet {

private static final Color DEFAULT_BG_COLOR =

Color.decode( "#FAFBFF" );

private static final Dimension DEFAULT_SIZE = new Dimension( 530, 320 );

//

private JGraphModelAdapter m_jgAdapter;

/**

* @see java.applet.Applet#init().

*/

public void init( ) {

// create a JGraphT graph

ListenableGraph g = new ListenableDirectedGraph( DefaultEdge.class );

// create a visualization using JGraph , via an adapter

m_jgAdapter = new JGraphModelAdapter( g );

JGraph jgraph = new JGraph( m_jgAdapter );

adjustDisplaySettings( jgraph );

getContentPane( ).add( jgraph );

resize( DEFAULT_SIZE );

// add some sample data (graph manipulated via JGraphT )

g.addVertex( "v1" );

g.addVertex( "v2" );

g.addVertex( "v3" );

g.addVertex( "v4" );

g.addEdge( "v1", "v2" );

g.addEdge( "v2", "v3" );

g.addEdge( "v3", "v1" );

g.addEdge( "v4", "v3" );

// position vertices nicely within JGraph component

positionVertexAt( "v1", 130, 40 );

positionVertexAt( "v2", 60, 200 );

positionVertexAt( "v3", 310, 230 );

positionVertexAt( "v4", 380, 70 );

// that's all there is to it!...

}

private void adjustDisplaySettings( JGraph jg ) {

jg.setPreferredSize( DEFAULT_SIZE );

Color c = DEFAULT_BG_COLOR;

String colorStr = null;

try {

colorStr = getParameter( "bgcolor" );

}

catch( Exception e ) {}

if( colorStr != null ) {

c = Color.decode( colorStr );

}

jg.setBackground( c );

}

private void positionVertexAt( Object vertex, int x, int y ) {

DefaultGraphCell cell = m_jgAdapter.getVertexCell( vertex );

Map attr = cell.getAttributes( );

Rectangle b = GraphConstants.getBounds( attr );

GraphConstants.setBounds( attr, new Rectangle( x, y, b.width, b.height ) );

Map cellAttr = new HashMap( );

cellAttr.put( cell, attr );

m_jgAdapter.edit( cellAttr );

}

}

Заключение

Из всего выше сказанного следует, что «информационный бум» оставил свой след во многих сферах человеческой жизни. С появлением компьютерных технологий стало возможно решать такие математические задачи, за которые раньше учёные не могли даже взяться именно из-за большой вычислительной сложности таких задач. Да что и говорить, само бурное развитие теории графов во многом обязано именно появлению вычислительных машин. И наоборот, во многом благодаря теории графов стал возможен такой большой скачок в их производительности.

Как известно, немаловажным понятием теории графов является понятие алгоритма. Практическое применение алгоритмов связано именно с использованием ЭВМ.

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


Список литературы к реферату

1. Лекции по теории графов / В.А. Емеличев, О.И. Мельников, В.И. Сарванов, Р.И. Тышкевич. – М.; Наука, 1990. 384 c.

2. Перез-Чернов А.Х., Тышкевич Р.И. К проблеме распознавания реберных графов линейных 3-униформных гиперграфов: предбольшие клики // Труды института математики. 2007. Т.15. № 2. С 78-89.

3. Скумс П.В, Суздаль С.В., Тышкевич Р.И. О пороге полиномиальной разрешимости для задачи распознавания графов пересечений ребер линейных 3-униформных гиперграфов // Докл. НАН Беларуси. 2004. Т.48. № 4. С.29-34.

Предметный указатель к реферату

«Лемма о рукопожатиях», 4

Adobe Photoshop, 9

Corel Draw, 9

Internet, 14, 18

JGraph, 9, 10, 11, 12, 13

JGraphT, 9, 10, 11, 12, 13

Microsoft PowerPoint, 9

Microsoft Visio, 9

Microsoft Word, 9

NP-полная задача, 8

NP-трудная задача, 8

O-символика, 7

TeX, 9

абстрактная вычислительная машина, 5

вход задачи, 6

граф взвешенный, 5, 6

длина списка, 5

задача «k-раскраска», 8

задача «О Кёнигсбергских мостах», 4

задача 3-раскраска, 8

линейный алгоритм, 7

матрица весов, 5

матрица смежности, 5, 6

ориентированный граф, 6, 19

полиномиальная сложность, 8

полиномиальный алгоритм, 7

последовательное представление списка, 5

сложность, 7, 8

список, 5

список ребер, 6

список смежности, 6

трудоемкость, 7

ЭВМ, 4, 5, 6

элементарная операция, 5


Интернет ресурсы в предметной области исследования

1. http://www.jgraph.com – официальный сайт проекта JGraph.

2. http://arxiv.org – сервис для поиска статей по математике, компьютерным наукам, физике, биологии, статистике.

3. http://poiskknig.ru - поисковая машина электронных книг, свободно распространяемых в интернете. Главным приоритетом является образовательная литература, являющаяся базисом научного и технического знания.

4. http://lib.org.by – библиотека научной литературы по математике, компьютерным наукам, физике, инженерным наукам.

5. http://exponenta.ru – образовательный сайт по математике.

6. http://www.vak.org.by/ – сайт Высшей аттестационной комиссии Республики Беларусь.

Действующий личный сайт в WWW

Ссылка на мой личный сайт в сети Internet:

http://raman-piatrovich.narod.ru.

Граф научных интересов.

магистранта Петровича Р.А.

Механико-математический факультет.

Специальность: 01.01.09 – дискретная математика и математическая кибернетика

Смежные специальности

01.01.01 – математический анализ

1. Теория функций действительного и комплексного переменного, обобщенные функции.

2. Специальные функции и интегральные преобразования.

3. Выпуклый, негладкий и многозначный анализ.

4. Теория приближений и методы численного анализа.

5. Вариационное исчисление и общая теория экстремальных задач.

6. Гармонический анализ.

7. Абстрактные и функциональные пространства, наделенные алгебраическими, топологическими, метрическими, порядковыми и др. структурами. Измеримые пространства.

8. Линейные и нелинейные операторы и специальные классы (дифференциальные, интегральные, интегро-дифференциальные, разностные и др.) таких операторов.

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

10. Анализ на многообразиях, p-адический анализ, нестандартный анализ, различные направления конструктивного анализа, интервальный анализ, анализ в упорядоченных пространствах.

01.01.02 – дифференциальные уравнения

1. Развитие теории обыкновенных дифференциальных уравнений и уравнений в частных производных, интегральных, интегро-дифференциальных, функционально-дифференциальных, дифференциально-операторных уравнений и дифференциальных уравнений со случайными параметрами.

2. Обоснование численных методов решения дифференциальных, интегральных, интегро-дифференциальных, функционально-дифференциальных и дифференциально-операторных уравнений.

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

01.01.05 – теория вероятностей и математическая статистика

1. Вероятностные пространства и случайные элементы.

2. Предельные теоремы.

3. Случайные процессы и поля.

4. Стохастический анализ и стохастические дифференциальные уравнения.

5. Случайные процессы специального вида, включая процессы массового обслуживания.

6. Статистические выводы и анализ данных.

7. Последовательный анализ.

8. Непараметрическая и робастная статистика.

9. Статистика случайных процессов, полей и временных рядов.

10. Вероятностно-статистическое моделирование.

01.01.07 – вычислительная математика

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

2. Теория и методы параллельных вычислений.

3. Численные методы и алгоритмы решения прикладных задач, возникающих при математическом моделировании естественнонаучных, научно-технических, социальных и других проблем.

Основная специальность

01.01.09 – дискретная математика и математическая кибернетика

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

2. Теория и методы минимизации функций; общая теория экстремальных задач; теория многокритериальной и векторной оптимизации; теория и методы решения задач математического программирования, включая задачи стохастического программирования и задачи в условиях неопределенности; дискретная оптимизация; теория устойчивости и чувствительности задач оптимизации; негладкий и многозначный анализ; негладкие задачи оптимизации; методы и алгоритмы решения экстремальных задач.

3. Вариационное исчисление, идентификация, наблюдение, управление и стабилизация динамических систем; методы оптимального управления, наблюдения и идентификации; оптимизация динамических систем в условиях неопределенности, робастная оптимизация; конструктивные методы решения задач вариационного типа и их приложения в механике, экономике и других областях естествознания.

Сопутствующие специальности

05.13.01 – системный анализ, управление и обработка информации

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

2. Формализация и постановка задач системного анализа, оптимизации, управления, принятия решений и обработки информации.

3. Разработка критериев, моделей описания и оценки эффективности решения задач системного анализа, оптимизации, управления, принятия решений и обработки информации.

4. Разработка методов и алгоритмов решения задач системного анализа, оптимизации, управления, принятия решений и обработки информации.

5. Разработка специального математического и программного обеспечения систем анализа, оптимизации, управления, принятия решений и обработки информации.

6. Методы идентификации систем управления на основе ретроспективной, текущей и экспертной информации.

7. Методы и алгоритмы структурно-параметрического синтеза и идентификации сложных систем.

8. Теоретико-множественный и теоретико-информационный анализ сложных систем.

9. Разработка проблемно-ориентированных систем управления, принятия решений и оптимизации технических, социально-экономических объектов.

10. Методы и алгоритмы интеллектуальной поддержки при принятии управленческих решений в технических, экономических и социальных системах.

11. Методы и алгоритмы прогнозирования и оценки эффективности, качества и надежности сложных систем.

12. Визуализация, трансформация и анализ информации на основе компьютерных методов обработки информации.

13. Методы получения, анализа и обработки экспертной информации..

05.13.18 – математическое моделирование, численные методы и комплексы программ

1. Исследование и разработка методов и принципов построения математических моделей (аналитических, численных, имитационных), методик проведения вычислительных экспериментов на основе математических моделей, изучение свойств и обоснование адекватности математических моделей, а также методов математического моделирования сложных систем.

2. Развитие, обоснование и применение математических моделей для решения актуальных научных задач естествознания (физики, химии, биологии и др.), а также техники, медицины, экологии, экономики, социологии и других отраслей, рассмотрение вопросов точности, устойчивости и достоверности математического моделирования.

3. Развитие теоретических, прикладных и экспериментальных исследований в рамках создания, испытания и применения математических моделей для решения актуальных задач автоматизированного проектирования, планирования и управления.

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

5. Разработка специализированных численных и имитационных методов с целью создания проблемно-ориентированных комплексов программ для решения актуальных научно- технических задач.

6. Разработка алгоритмов реализации математических моделей, основанных на методах математического программирования, искусственного интеллекта и распознавания образов.

7. Разработка методов и средств автоматизации моделирования сложных технических систем, обеспечивающих высокий уровень технологии промышленного производства.

05.13.11 – математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

1. Разработка теории алгоритмов и программ, формальных языков, теоретических основ и методов математического моделирования вычислительных процессов, моделей и методов организации данных, знаний и структур, с целью создания вычислительных машин, комплексов, систем и сетей на основе новых принципов построения, организации и функционирования.

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

3. Разработка и развитие языков программирования, языков описания аппаратурных средств и систем, проблемно-ориентированных языков, обеспечивающих эффективную разработку и применение ВМКСиС.

4. Создание компиляторов и интерпретаторов с языков программирования, и языков описания параллельных систем и аппаратуры, проблемно-ориентированных и естественных языков: моделей, методов и средств высокоуровневого синтеза вычислительных машин, систем и сетей; математического и программного обеспечения систем измерений, контроля и управления, повышающих качество их функционирования и сокращающих сроки их разработки.

5. Разработка математического и программного обеспечения систем искусственного интеллекта, мультимедиа, принятия решений, функционального и логического программирования, баз данных, знаний и экспертных систем.

6. Создание системного математического и программного обеспечения, методов построения операционных систем, обеспечивающих эффективное использование ресурсов в ВМКСиС.

7. Разработка математических методов и программных средств оценки и управления качеством программных продуктов, технологий разработки, проектирования, верификации и тестирования математического и программного обеспечения, улучшающих параметры, повышающих надежность и сокращающих время создания ВМКСиС.

8. Разработка прикладного математического и программного обеспечения для автоматизации обучения, проектирования вычислительных процессов и структур, расширяющих функциональные возможности и сферы применения ВМКСиС.

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

08.00.13 – математические и инструментальные методы экономики

1. Теория и методология математического моделирования экономических процессов и систем.

2. Методология эконометрического моделирования, анализа и прогнозирования развития макро- и микроэкономических объектов, явлений и процессов.

3. Использование математических методов в прогнозировании, конкретно-экономическом анализе, планировании и управлении.

4. Математическое моделирование и использование информационных технологий в социально-экономических исследованиях, программировании, прогнозировании и управлении. Электронный бизнес.

5. Методы принятия оптимальных решений.

6. Оценка экономической эффективности использования новых моделей и информационных технологий.

7. Оптимизация поддержки принятия решений, включая информационную инфраструктуру экономических систем.

Презентация магистерской диссертации.

Список литературы к выпускной работе.

1. Лекции по теории графов / В.А. Емеличев, О.И. Мельников, В.И. Сарванов, Р.И. Тышкевич. – М.; Наука, 1990. 384 c.

2. Перез-Чернов А.Х., Тышкевич Р.И. К проблеме распознавания реберных графов линейных 3-униформных гиперграфов: предбольшие клики // Труды института математики. 2007. Т.15. № 2. С 78-89.

3. Скумс П.В, Суздаль С.В., Тышкевич Р.И. О пороге полиномиальной разрешимости для задачи распознавания графов пересечений ребер линейных 3-униформных гиперграфов // Докл. НАН Беларуси. 2004. Т.48. № 4. С.29-34.

Интернет-источник:

http://www.jgraph.com

Приложения

Приложение1. Список вопросов для теста по ИТ.

Вопрос 1.

<question type="close" id="384">

<text>01 Число 11 в двоичной системе счисления выглядит как:</text>

<answers type="request">

<answer id="313759" right="0"> 1111 </answer>

<answer id="313760" right="0"> 101 </answer>

<answer id="313761" right="1"> 1011 </answer>

<answer id="313762" right="0"> 10 </answer>

</answers>

</question>

Вопрос 2.

<question type="close" id="384">

<text>01 Какое максимальное количество вершин может иметь простой граф на n вершинах?</text>

<answers type="request">

<answer id="313759" right="0"> n/2 </answer>

<answer id="313760" right="0"> n^2 </answer>

<answer id="313761" right="1"> n(n-1) </answer>

<answer id="313762" right="0"> n(n-1)/2 </answer>

</answers>