Построение аналитических моделей алгоритмов и оценка их сложности

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 07.07.2013
Размер файла 1,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

mainGrapgh.ChartType = SeriesChartType.Line;

highGrapgh.ChartType = SeriesChartType.Point;

lowGraph.ChartType = SeriesChartType.Point;

lowGraph2.ChartType = SeriesChartType.Point;

chart1.Series.Add(mainGrapgh);

chart1.Series.Add(highGrapgh);

chart1.Series.Add(lowGraph);

chart1.Series.Add(lowGraph2);

highGrapgh.Name = "2(n^2)+16n +15"; highGrapgh.Color = Color.Gray;

mainGrapgh.Name = "T(n)"; mainGrapgh.Color = Color.Red;

lowGraph.Name = "0,5(n^2)+2n+13"; lowGraph.Color = Color.SkyBlue;

lowGraph2.Name = "0,5(n^2)+5n+6"; lowGraph2.Color = Color.Gold;

while (max[i] != 0) i++;

chart1.Refresh();

Point[] points = new Point[i];

int lowgraph2 = 1; int lowgraph = 0;

int highgraph = 0; int lowPoint = 0; int low2Point = 0;

for (int j = 0; j < i; j++)

{

points[j] = new Point(j,max[j]);

chart1.Series[0].Points.AddXY(j, max[j]);

chart1.Series[0].Points[j].Label = max[j].ToString();

chart1.Series[0].Points[j].MarkerColor = Color.ForestGreen;

chart1.Series[0].Points[j].MarkerSize = 10;

chart1.Series[0].Points[j].MarkerStyle = MarkerStyle.Circle;

if (j % 3 == 0)

{

chart1.Series[1].Points.AddXY(j, 2 * Math.Pow(j, 2)+16*j+12);

chart1.Series[1].Points[highgraph].MarkerColor = Color.Gray;

chart1.Series[1].Points[highgraph].MarkerSize = 7;

chart1.Series[1].Points[highgraph].MarkerStyle = MarkerStyle.Circle;

highgraph++;

}

if (lowgraph < j)

{

chart1.Series[2].Points.AddXY(j, 0.5* Math.Pow(j, 2) + 2 * j + 13);

chart1.Series[2].Points[lowPoint].MarkerColor = Color.SkyBlue;

chart1.Series[2].Points[lowPoint].MarkerSize = 7;

chart1.Series[2].Points[lowPoint].MarkerStyle = MarkerStyle.Circle;

lowPoint++;lowgraph = lowgraph + 3;

}

if (lowgraph2 < j)

{

chart1.Series[3].Points.AddXY(j, 0.5 * Math.Pow(j, 2) + 5 * j + 6);

chart1.Series[3].Points[low2Point].MarkerColor = Color.Gold;

chart1.Series[3].Points[low2Point].MarkerSize = 7;

chart1.Series[3].Points[low2Point].MarkerStyle = MarkerStyle.Circle;

low2Point++;

lowgraph2 = lowgraph2 + 3;

}

}

}

private void сохранитьКакToolStripMenuItem_Click(object sender, EventArgs e)

{

SaveFileDialog dialog = new SaveFileDialog();

dialog.InitialDirectory = "D:\\";

dialog.Filter = "Image (*.jpg*)|*.jpg*";

dialog.RestoreDirectory = true;

if (dialog.ShowDialog() == DialogResult.OK)

{

try

{

chart1.SaveImage(dialog.FileName, ChartImageFormat.Jpeg);

}

catch (ArgumentException ec)

{

MessageBox.Show(ec.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);;

}

}

}

}

}

//Дополнительный клас. Содержит: генератор всех слов языка

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace TuringMachine

{

class WordGenerator

{

/// <summary>

/// Минимальная длина слова

/// </summary>

private int minlength;

/// <summary>

/// Текущая длина слова

/// </summary>

public int curlength;

/// <summary>

/// Максимальная длина слова

/// </summary>

private int maxlength;

/// <summary>

/// Алфавит в котором необходимо генерировать слова

/// </summary>

private string alphabet;

/// <summary>

/// Признак возможности генерации слова

/// </summary>

public bool CanGenerate = true;

/// <summary>

/// Сгенерированная комбинация

/// </summary>

List<int> X;

/// <summary>

/// Пустой конструктор

/// </summary>

public WordGenerator()

{

}

/// <summary>

/// Конструктор объекта для генерации

/// </summary>

/// <param name="minlength">Минимальная длина</param>

/// <param name="maxlength">Максимальная длина</param>

/// <param name="alphabet">Алфавит для генерации слов</param>

public WordGenerator(int minlength,int maxlength, string alphabet)

{

if (minlength >= 0 & maxlength >= minlength)

{

this.minlength = this.curlength = minlength;

this.maxlength = maxlength;

}

CanGenerate = true;

this.alphabet = alphabet;

X = new List<int>(minlength);

for (int i = 0; i < minlength; i++)

X.Add(0);

}

/// <summary>

/// Генерация новой комбинации

/// </summary>

private void Next()

{

int i = 0;

while (i < X.Count && i >= 0 && X[i] == alphabet.Length - 1)

{

X[i] = 0;

i++;

}

if (i < X.Count && i >= 0)

{

X[i]++;

CanGenerate = true;

}

else

CanGenerate = false;

}

public string NextWord(ref int variant)

{

string Word = "";

Console.WriteLine(curlength+" "+maxlength);

if (curlength <= maxlength)

{

if (CanGenerate)

{

List<char> str = new List<char>(X.Count);

for (int i = 0; i < X.Count; i++)

str.Add(alphabet[X[i]]);

Word = new String(str.ToArray());

variant++;

Next();

}

else

{

curlength++;

X = new List<int>(curlength);

for (int i = 0; i < curlength; i++)

X.Add(0);

CanGenerate = true;

}

}

else

{

return null;

}

return Word;

}

}

}

Приложение Е

Экранные формы

В данном разделе приведены экранные формы разработанной программы.

Рисунок Е.1 - Окно построения графика в виде мини-эскиза

Рисунок Е.2 - Процесс обработки слова машиной

Рисунок Е.3 - Обработанное слово

Рисунок Е.4 - Сохранение графика временной сложности

Размещено на Allbest.ru


Подобные документы

  • Анализ алгоритмов, оценка параметров алгоритма (эффективности, сложности, правильности). Комплексный анализ эффективности алгоритма на основе комплексной оценки ресурсов формальной системы. Верификация при коллективной разработке программных систем.

    презентация [234,9 K], добавлен 22.10.2013

  • Анализ существующих алгоритмов обработки информации человеком и современных моделей памяти. Разработка алгоритмов и математической модели ассоциативного мышления. Имитационная модель обработки информации. Компьютерный эксперимент по тестированию модели.

    курсовая работа [2,3 M], добавлен 19.11.2014

  • Общее понятие алгоритма и меры его сложности. Временная и емкостная сложность алгоритмов. Основные методы и приемы анализа сложности. Оптимизация, связанная с выбором метода построения алгоритма и с выбором методов представления данных в программе.

    реферат [90,6 K], добавлен 27.11.2012

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

    контрольная работа [82,4 K], добавлен 05.12.2010

  • Более строгое описание алгоритма, чем общее или формализация понятия алгоритма. Три подхода к формализации: теория конечных и бесконечных автоматов, теория вычислимых (рекурсивных) функций и л-исчисление Черча. Воображаемые машины Поста и Тьюринга.

    реферат [370,0 K], добавлен 09.02.2009

  • Виды алгоритмов как логико-математических средств, характеристика свойств. Корректный вывод алгоритма при решении вычислительной задачи. Механизм реализации алгоритма, его описание. Решение задачи Майхилла при помощи автоматной модели поведения стрелка.

    курсовая работа [53,6 K], добавлен 17.07.2014

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

    курсовая работа [495,8 K], добавлен 09.06.2013

  • Семантические сети как модели представления знаний. Основные методы определения сходства графовых моделей систем. Метод решения задач определения сходства семантических сетей на основе их сложности. Разработка алгоритмов и их программная реализация.

    дипломная работа [1,3 M], добавлен 17.12.2011

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

    курсовая работа [79,2 K], добавлен 25.06.2011

  • Нормальный алгоритм Маркова. Тезис Маркова и машина Тьюринга. Гипотеза теории алгоритмов. Алгоритмически неразрешимые проблемы. Задача эквивалентности двух слов в ассоциативном исчислении. Задача распознавания выводимости. Линейная оценка сложности.

    методичка [57,0 K], добавлен 06.07.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.