Скачиваний:
14
Добавлен:
01.05.2014
Размер:
381.95 Кб
Скачать
  1. Расчет вероятностей переходов

Для оценки вероятностей переходов в ветвлениях, алгоритм сортировки был выполнен 100 раз для случайно сгенерированных массивов размерностью от 2 до 101 элементов. При этом считалось количество выполнений участков алгоритма сразу после ветвления. Отношение количества выполнений после ветвления и давали вероятность переходов.

Вероятность рассчитывалась по формуле:

{Вероятность правой ветви} = {Кол. Проходов по правой ветви} / (Кол. Походов по обоим ветвям)

{Вероятность левой ветви} = 1 – {вероятность правой ветви}

Пример для вершин 15, 16, 17:

{Кол. Проходов по 15} = 3414

{Кол. Проходов по 16} = 1482

{Кол. Проходов по 17} = 1932

{Вероятность для 16} = 1482/3414 = 0.434

{Вероятность для 17} = 1 - 0.434 = 1932/3414 = 0.566

Текст тестирующей программы:

int main()

{

float array[102];

int k,x;

for (x = 2; x <= 101; x++)

{

for (k = 1; k <= x; k++)

{

array[k] = (float)(rand()%1000+1);

}

quicksort(array, x);

}

printf ("================\n");

printf ("n1 %d\n", n1);

printf ("n2 %d\n", n2);

printf ("n3 %d\n", n3);

printf ("n4 %d\n", n4);

printf ("n5 %d\n", n5);

printf ("n6 %d\n", n6);

printf ("n7 %d\n", n7);

printf ("n71 %d\n", n71);

printf ("n72 %d\n", n72);

printf ("n8 %d\n", n8);

printf ("n9 %d\n", n9);

printf ("n10 %d\n", n10);

printf ("n11 %d\n", n11);

return 0;

}

  1. Операционная графовая модель в структурированном виде

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

  • граф должен представлять суперпозицию базовых конструкций: следование, ветвление, цикл с предусловием;

  • каждая конструкция должна состоять ровно из четырех вершин;

  • детализировать можно только определенные вершины: для следования – две внутренние вершины, для ветвления – прямая и обратная ветви, для цикла – тело цикла.

Пунктирные прямоугольники показывают базовые конструкции.

  1. Содержание входного файла

tops {

T1(241),

T2(29),

T3(57),

T4(24),

T5(94),

T6(5),

T7(0),

T8(55),

T9(0),

T10(20),

T11(0),

T12(5),

T13(311),

T14(54),

T15(20),

T16(27),

T17(13),

T18(0),

T19(8),

T20(0),

T21(6),

T22(5)

}

links {

T1->T2(1),

T2->T3(0.986),

T2->T22(0.014),

T3->T4(0.507),

T3->T5(0.493),

T5->T6(1),

T6->T7(0.635),

T6->T8(0.365),

T7->T9(1),

T8->T9(1),

T9->T10(1),

T10->T11(1),

T11->T12(1),

T12->T13(0.697),

T12->T14(0.303),

T13->T12(1),

T14->T15(1),

T15->T16(0.434),

T15->T17(0.566),

T16->T18(1),

T17->T18(1),

T18->T19(1),

T19->T20(1),

T20->T21(1),

T4->T21(1),

T21->T2(1)

  1. Фундаментальная матрица

Вызвано распознавание шаблона для подграфа @ROOT:

начальная вершина T1, конечная вершина T22

Текущее состояние фундаментальной матрицы:

*************************

@ROOT ¦ 1 ¦

*************************

Конструкция ЦИКЛ

Вершина проверки условия: T2

Дуга, входящая в тело цикла: T2->T3

Дуга, выходящая из тела цикла: T21->T2

Вероятность повторения тела цикла: 0.986

Вероятность выхода из цикла: 0.014

Матрица для подстановки:

**********************************************************

T1 ¦ 1 71.43 70.43 1 ¦

T2 ¦ 0 71.43 70.43 1 ¦

@TMP0 ¦ 0 71.43 71.43 1 ¦

T22 ¦ 0 0 0 1 ¦

**********************************************************

Вызвано распознавание шаблона для подграфа @TMP0:

начальная вершина T3, конечная вершина T21

Текущее состояние фундаментальной матрицы:

**********************************************************

T1 ¦ 1 71.43 70.43 1 ¦

T2 ¦ 0 71.43 70.43 1 ¦

@TMP0 ¦ 0 71.43 71.43 1 ¦

T22 ¦ 0 0 0 1 ¦

**********************************************************

Конструкция ВЕТВЛЕНИЕ

Матрица для подстановки:

**********************************************************

T3 ¦ 1 0.493 0.507 1 ¦

@TMP1 ¦ 0 1 0 1 ¦

@TMP2 ¦ 0 0 1 1 ¦

T21 ¦ 0 0 0 1 ¦

**********************************************************

Вызвано распознавание шаблона для подграфа @TMP1:

начальная вершина T5, конечная вершина T20

Текущее состояние фундаментальной матрицы:

*******************************************************************************************

T1 ¦ 1 71.43 70.43 34.72 35.71 70.43 1 ¦

T2 ¦ 0 71.43 70.43 34.72 35.71 70.43 1 ¦

T3 ¦ 0 71.43 71.43 35.21 36.21 71.43 1 ¦

@TMP1 ¦ 0 71.43 70.43 35.72 35.71 71.43 1 ¦

@TMP2 ¦ 0 71.43 70.43 34.72 36.71 71.43 1 ¦

T21 ¦ 0 71.43 70.43 34.72 35.71 71.43 1 ¦

T22 ¦ 0 0 0 0 0 0 1 ¦

*******************************************************************************************

Конструкция СЛЕДОВАНИЕ

Начало первого оператора: T6

Окончание первого оператора: T9

Начало второго оператора: T10

Окончание второго оператора: T19

Матрица для подстановки:

**********************************************************

T5 ¦ 1 1 1 1 ¦

@TMP3 ¦ 0 1 1 1 ¦

@TMP4 ¦ 0 0 1 1 ¦

T20 ¦ 0 0 0 1 ¦

**********************************************************

Вызвано распознавание шаблона для подграфа @TMP3:

начальная вершина T6, конечная вершина T9

Текущее состояние фундаментальной матрицы:

****************************************************************************************************************************

T1 ¦ 1 71.43 70.43 34.72 34.72 34.72 34.72 35.71 70.43 1 ¦

T2 ¦ 0 71.43 70.43 34.72 34.72 34.72 34.72 35.71 70.43 1 ¦

T3 ¦ 0 71.43 71.43 35.21 35.21 35.21 35.21 36.21 71.43 1 ¦

T5 ¦ 0 71.43 70.43 35.72 35.72 35.72 35.72 35.71 71.43 1 ¦

@TMP3 ¦ 0 71.43 70.43 34.72 35.72 35.72 35.72 35.71 71.43 1 ¦

@TMP4 ¦ 0 71.43 70.43 34.72 34.72 35.72 35.72 35.71 71.43 1 ¦

T20 ¦ 0 71.43 70.43 34.72 34.72 34.72 35.72 35.71 71.43 1 ¦

@TMP2 ¦ 0 71.43 70.43 34.72 34.72 34.72 34.72 36.71 71.43 1 ¦

T21 ¦ 0 71.43 70.43 34.72 34.72 34.72 34.72 35.71 71.43 1 ¦

T22 ¦ 0 0 0 0 0 0 0 0 0 1 ¦

****************************************************************************************************************************

Конструкция ВЕТВЛЕНИЕ

Матрица для подстановки:

**********************************************************

T6 ¦ 1 0.365 0.635 1 ¦

@TMP5 ¦ 0 1 0 1 ¦

@TMP6 ¦ 0 0 1 1 ¦

T9 ¦ 0 0 0 1 ¦

**********************************************************

Вызвано распознавание шаблона для подграфа @TMP5:

начальная вершина T8, конечная вершина T8

Текущее состояние фундаментальной матрицы: ...

 

1

2

3

4

5

6

7

8

9

10

11

1

1

71,429

70,429

35,707

34,721

34,721

22,048

12,673

34,721

34,721

34,721

2

0

71,429

70,429

35,707

34,721

34,721

22,048

12,673

34,721

34,721

34,721

3

0

71,429

71,429

36,214

35,214

35,214

22,361

12,853

35,214

35,214

35,214

4

0

71,429

70,429

36,707

34,721

34,721

22,048

12,673

34,721

34,721

34,721

5

0

71,429

70,429

35,707

35,721

35,721

22,683

13,038

35,721

35,721

35,721

6

0

71,429

70,429

35,707

34,721

35,721

22,683

13,038

35,721

35,721

35,721

7

0

71,429

70,429

35,707

34,721

34,721

23,048

12,673

35,721

35,721

35,721

8

0

71,429

70,429

35,707

34,721

34,721

22,048

13,673

35,721

35,721

35,721

9

0

71,429

70,429

35,707

34,721

34,721

22,048

12,673

35,721

35,721

35,721

10

0

71,429

70,429

35,707

34,721

34,721

22,048

12,673

34,721

35,721

35,721

11

0

71,429

70,429

35,707

34,721

34,721

22,048

12,673

34,721

34,721

35,721

12

0

71,429

70,429

35,707

34,721

34,721

22,048

12,673

34,721

34,721

34,721

13

0

71,429

70,429

35,707

34,721

34,721

22,048

12,673

34,721

34,721

34,721

14

0

71,429

70,429

35,707

34,721

34,721

22,048

12,673

34,721

34,721

34,721

15

0

71,429

70,429

35,707

34,721

34,721

22,048

12,673

34,721

34,721

34,721

16

0

71,429

70,429

35,707

34,721

34,721

22,048

12,673

34,721

34,721

34,721

17

0

71,429

70,429

35,707

34,721

34,721

22,048

12,673

34,721

34,721

34,721

18

0

71,429

70,429

35,707

34,721

34,721

22,048

12,673

34,721

34,721

34,721

19

0

71,429

70,429

35,707

34,721

34,721

22,048

12,673

34,721

34,721

34,721

20

0

71,429

70,429

35,707

34,721

34,721

22,048

12,673

34,721

34,721

34,721

21

0

71,429

70,429

35,707

34,721

34,721

22,048

12,673

34,721

34,721

34,721

22

0

0

0

0

0

0

0

0

0

0

0

 

12

13

14

15

16

17

18

19

20

21

22

1

114,59

79,87

34,721

34,721

15,069

19,652

34,721

34,721

34,721

70,429

1

2

114,59

79,87

34,721

34,721

15,069

19,652

34,721

34,721

34,721

70,429

1

3

116,22

81,005

35,214

35,214

15,283

19,931

35,214

35,214

35,214

71,429

1

4

114,59

79,87

34,721

34,721

15,069

19,652

34,721

34,721

34,721

71,429

1

5

117,89

82,171

35,721

35,721

15,503

20,218

35,721

35,721

35,721

71,429

1

6

117,89

82,171

35,721

35,721

15,503

20,218

35,721

35,721

35,721

71,429

1

7

117,89

82,171

35,721

35,721

15,503

20,218

35,721

35,721

35,721

71,429

1

8

117,89

82,171

35,721

35,721

15,503

20,218

35,721

35,721

35,721

71,429

1

9

117,89

82,171

35,721

35,721

15,503

20,218

35,721

35,721

35,721

71,429

1

10

117,89

82,171

35,721

35,721

15,503

20,218

35,721

35,721

35,721

71,429

1

11

117,89

82,171

35,721

35,721

15,503

20,218

35,721

35,721

35,721

71,429

1

12

117,89

82,171

35,721

35,721

15,503

20,218

35,721

35,721

35,721

71,429

1

13

117,89

83,171

35,721

35,721

15,503

20,218

35,721

35,721

35,721

71,429

1

14

114,59

79,87

35,721

35,721

15,503

20,218

35,721

35,721

35,721

71,429

1

15

114,59

79,87

34,721

35,721

15,503

20,218

35,721

35,721

35,721

71,429

1

16

114,59

79,87

34,721

34,721

16,069

19,652

35,721

35,721

35,721

71,429

1

17

114,59

79,87

34,721

34,721

15,069

20,652

35,721

35,721

35,721

71,429

1

18

114,59

79,87

34,721

34,721

15,069

19,652

35,721

35,721

35,721

71,429

1

19

114,59

79,87

34,721

34,721

15,069

19,652

34,721

35,721

35,721

71,429

1

20

114,59

79,87

34,721

34,721

15,069

19,652

34,721

34,721

35,721

71,429

1

21

114,59

79,87

34,721

34,721

15,069

19,652

34,721

34,721

34,721

71,429

1

22

0

0

0

0

0

0

0

0

0

0

1

Соседние файлы в папке Лабораторные работы 1 и 2