Оценка вероятности появления редких графов

advertisement
Выполнил: Валуйский Д.О.
Цель работы:
 Изучить основы теории геометрических графов
и методов проверки на изоморфизм;
 Оценить вероятность появления редких
графов;
 Изучить методы оптимизации времени работы
программы;
Задача работы:
 Написать программу, подсчитывающую
количество появлений редких графов во время
статистических экспериментов.
2

Пример редкого графа:
- узел ad hoc сети
- зона
приема/передачи
узла
3


Инвариант графа – диаметр графа, индекс
Винера, индекс Рандича и т.д.
Полный инвариант графа - мини-код
графа, макси-код графа.
4


На многопроцессорных компьютерах
многопоточность реализована как смесь
квантования и подлинного параллелизма,
когда разные потоки выполняют код на
разных CPU;
Встроенная поддержка многопоточности в
С# .NET Framework.
5

Подготовительный этап - построение хэш-таблицы по
мини-коду редкого графа:
1.
Построение матрицы смежности по мини-коду;
2.
Получение множества новых матриц смежности путем
перестановок строк и столбцов;
3.
Получение десятичного числа для каждой новой матрицы
смежности;
4.
Занесение результатов в хэш-таблицу (ключ –полученное
число; значение – исходный мини-код).
6

Основной этап – разбиение на потоки:
1. Генерация необходимого количества случайных
геометрических графов;
2. Получение десятичного числа для сгенерированного
графа;
3. Проверка на наличие данного числа в хэш-таблице;
4. Объединение результатов в конце работы потока.
7

decimalToBinary(int decimalNumber);

binaryToDecimal(string binaryString);

getBinaryNumberFromMatrix(int[,] matrix);

getMatrixFromBinaryNumber(string binaryString);

getGeneratedMatrix();

unionResult(int[] resultMatrix, int countForThread);
8
9
Компьютеры, используемые при проверке
Количество потоков,
задаваемых для эксперимента
1-ый
2-ый
1
12367,34124 сек.
8658,4392344 сек.
2
7568,45326 сек.
5364,64284 сек.
4
8904,35346 сек.
4508,9498972 сек.
8
9443,525225 сек.
4521,2516008 сек.
10
12000
75
1103
10000
1118
1247
8000
1467
1531
6000
3295
4000
3309
3448
2000
3452
7916
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
16350
11




Изучены геометрические графы и способы их
проверки на изоморфизм;
Реализована программа оценки вероятности
появления редких графов;
С её помощью получена более точная и
надежная оценка вероятности появления
исследуемых графов;
С помощью многопоточных средств языка C#
повышена эффективность работы программы(в
среднем, прирост производительности 40%).
12
13
Download