Рисунок 21 – График изменения среднего значения вершинной связности графа из 15 вершин

Рисунок 22 – График изменения среднего значения рёберной связности графа из 15 вершин

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

Увеличим число вершин графа до 20 и посмотрим, как изменятся графики.

Рисунок 23 – График зависимости вероятности связности графа из 20 вершин от времени

Рисунок 24 – График изменения среднего числа вершин графа из 20 вершин

Рисунок 25 – График изменения среднего числа рёбер графа из 20 вершин

Рисунок 26 – График изменения среднего значения вершинной связности графа из 20 вершин

Рисунок 27 – График изменения среднего значения рёберной связности графа из 20 вершин

Увеличим число вершин графа до 30, увеличим радиус генерации до 2,0, а так же увеличим время преобразования графа до 2,5, затем посмотрим, как изменятся графики.

Рисунок 28 – График зависимости вероятности связности графа из 30 вершин от времени

Рисунок 29 – График изменения среднего числа вершин графа из 30 вершин

Рисунок 30 – График изменения среднего числа рёбер графа из 30 вершин

Рисунок 31 – График изменения среднего значения вершинной связности графа из 30 вершин

Рисунок 32 – График изменения среднего значения рёберной связности графа из 30 вершин

Проанализировав эти графики, можно заметить, как возрастает вероятность связности графа при увеличении числа вершин и уменьшении радиуса генерации графа.

НЕ нашли? Не то? Что вы ищете?

5.3. Исследование 3

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

Радиус генерации графа – R = 1,5. Длина вектора скорости каждой вершины равна 1. Движение вершин графа осуществляется, начиная с нулевого значения системного времени и заканчивая моментом 2,0. Шаг изменения переменной системного времени
dt = 0,1.

Для данной стратегии количество вершин n(t) в графе G(t) не изменяется с течением времени, но изменяется количество рёбер и другие характеристики.

Графики, построенные с помощью данных, полученных благодаря проведённым расчётам, представлены на рисунках 33 – 44.

Рисунок 33 – График зависимости вероятности связности графа из 20 вершин от времени

Рисунок 34 – График зависимости вероятности связности графа из 25 вершин от времени

Рисунок 35 – График зависимости вероятности связности графа из 35 вершин от времени

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

Рисунок 36 – График изменения среднего числа рёбер графа из 20 вершин

Рисунок 37 – График изменения среднего числа рёбер графа из 25 вершин

Рисунок 38 – График изменения среднего числа рёбер графа из 35 вершин

Графики изменения среднего числа рёбер также представляют собой убывающие функции.

Рисунок 39 – График изменения среднего значения вершинной связности графа из 20 вершин

Рисунок 40 – График изменения среднего значения вершинной связности графа из 25 вершин

Рисунок 41 – График изменения среднего значения вершинной связности графа из 35 вершин

Рисунок 42 – График изменения среднего значения рёберной связности графа из 20 вершин

Рисунок 43 – График изменения среднего значения рёберной связности графа из 25 вершин

Рисунок 44 – График изменения среднего значения рёберной связности графа из 35 вершин

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

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

ЗАКЛЮЧЕНИЕ

В курсовой работе дан краткий обзор беспроводных ad hoc сетей, рассмотрены основные особенности их организации и функционирования. Описаны основные используемые алгоритмы.

В работе описаны три стратегии изменения случайного графа G(t) c течением времени. На основе этих стратегий проведены исследования характеристик связности графа, построены графики, проведён их анализ.

В качестве языка программирования использовался язык C++.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ


Современные технологии сетей типа ad hoc. 2010 http://cyberleninka. ru/article/n/sovremennye-tehnologii-setey-tipa-ad-hoc-i-vozmozhnye-podhody-k-organizatsii-odnorangovyh-telekommunikatsionnyh-setey-na-baze-mobilnyh (15.05.2014) ундаментальные алгоритмы на С++. Часть 5 Алгоритмы на графах.// ДиаСофт, – М.: – 2002. – 483 c. еория графов.// Едиториал УРСС, – М.: – 2003. – 297 с.

ПРИЛОЖЕНИЕ А.

ИСХОДНЫЙ КОД ПРОГРАММЫ

//main

#include <cstdlib>

#include <iostream>

#include <math. h>

#include <ctime>

#include <string>

#include "functions. h"

#include "structs_description. h"

#include "walk_through. h"

#include "delete_lists. h"

#include "check_graph. h"

#include "graph_copy. h"

#include <vector>

using namespace std;

int main(int argc, char** argv) {

  graph *head_graph, *work_copy;

  node *current_node;

  double t, delta_t, max_t;

  int coh_prob_id, nor_id, rib_coh_id, node_coh_id, non_id;

  float rib_rel_status, node_rel_status;

  long cycle_id;

  cout << "Hello!" << endl;

  //Движение вершин.

  cout << " * Starting graph analysis..." << endl;

  t = 0.0;

  delta_t = 0.1;

  max_t = 2.5;

  // Число циклов.

  cycle_id = 100000;

  // Вектор вероятностей связности графа.

  vector <float> coherence_probability(0);

  coh_prob_id = 0;

  // Вектор q(t) - количество рёбер в графе в момент t.

  vector <float> number_of_ribs(0);

  nor_id = 0;

  // Вектор l(t) - изменение рёберной связности графа.

  vector <float> rib_coherence(0);

  rib_coh_id = 0;

  rib_rel_status = 0;

  // Вектор k(t) - изменение вершнинной связности графа.

  vector <float> node_coherence(0);

  node_coh_id = 0;

  node_rel_status = 0;

  // Вектор n(t) - изменение количества вершин в графе.

  vector <float> number_of_nodes(0);

  non_id = 0;

  for (long i = 0; i < cycle_id; i++){

  head_graph = create_graph(10, 1.5);

  // Цикл по времени.

  t = 0.0;

  coh_prob_id = 0;

  nor_id = 0;

  rib_coh_id = 0;

  node_coh_id = 0;

  non_id = 0;

  while (t <= max_t & head_graph->number_of_nodes > 0){

  move(head_graph, delta_t, 2);

  delete_arcs(head_graph->arc_pointer);

  delete head_graph->arc_pointer;

  head_graph->arc_pointer = NULL;

  head_graph->arc_pointer = create_arc(head_graph);

  rib_rel_status = 0;

  node_rel_status = 0;

  if (i == 0){

  coherence_probability. push_back(check_relations(head_graph));

  number_of_ribs. push_back(head_graph->number_of_arcs);

  number_of_nodes. push_back(head_graph->number_of_nodes);

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9