Построение аналитических моделей алгоритмов и оценка их сложности
Описание формальной модели алгоритма на основе рекурсивных функций. Разработка аналитической и программной модели алгоритма для распознающей машины Тьюринга. Разработка аналитической модели алгоритма с использованием нормальных алгоритмов Маркова.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 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