Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Алгоритмизация задач

Тип Реферат
Предмет Информатика и программирование
Просмотров
1347
Размер файла
60 б
Поделиться

Ознакомительный фрагмент работы:

Алгоритмизация задач

Алгоритмизация задач


На первом этапе разработки комплексов программ АСУ определяют требования, выполнение которых обеспечивает решение поставленных задач. Основными характеристиками являются время и стоимость обработки информации, вероятность ошибки, допустимые объемы памяти, неизбежность выполнения основных функций и т.п. Требования к системе содержатся в системных спецификациях, которые отображают предполагаемую реализацию системы с помощью ЭВМ. Спецификации являются основополагающим документом в процессе разработки системы. Точность и подробность составления спецификаций определяют вероятность возникновения ошибки на дальнейших этапах разработки. Большинство современных методов создания программного обеспечения допускает появление ошибок в спецификациях проекта, однако цена обнаружения и корректировки ошибок возрастает по мере приближения разработки к завершению. В большинстве случаев ошибки в системе – результат неполных или противоречивых спецификаций (60–70% ошибок). В связи с этим возникает необходимость разработки и использования языков и формализованных методов разработки спецификаций, их анализа и контроля.

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

Эффективным средством формализации процесса определения спецификаций является система PSL/PSA, которая включает язык определения задач (PSL) и анализатор определения задач (PSA).

Язык определения задач предназначен для отображения функциональных требований к ресурсам. Язык содержит набор средств, позволяющих определять объекты системы, их свойства и взаимосвязи.

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

Система PSL/PSAпозволяет получить формализованное представление проблемы, документирование системных требований в единообразной форме, обеспечивает выявление ошибок, обусловленных неполнотой информации.

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

Система SREM, используемая для автоматизации анализа требований, включает язы к определения требований RSLдля установления связи между объектами. Проверка последовательности предложений на языке RSLосуществляется с помощью процессора REVS. Система выполняет следующие операции: разработку требований, включающую описатели данных и этапы их разработки; разработку подробных проектов; моделирование отдельных аспектов проектных решений с учетом принятых допущений; проверку пользователем требований, предъявляемых к системе.

Система структурного проектирования представляет собой неавтоматизированную систему, использование которой обеспечивает создание подробного проекта системы. Система состоит из следующих уровней: подсистема, процесс (часть подсистемы, представляющая отдельную функцию); работа (выполняемая программа или шаг задания); модуль (часть работы). Структурное проектирование выполняется на уровне процесса или работы. Документация включает базисную схему каждого модуля и его полное описание по установленной форме. Функция модуля описывается так, чтобы можно было осуществить его кодирование без использования дополнительной документации.

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

Вторым этапом процесса разработки программного обеспечения является составление алгоритма решения поставленной задачи.

При разработке алгоритма решения задачи прежде всего решаются следующие вопросы:

а) следует ли использовать имитационное моделирование или какой-либо из методов оптимизации;

б) следует ли учитывать случайный характер переменных или процессов или использовать детерминированный подход;

в) следует ли учитывать нелинейность некоторых соотношений или достаточно ограничиться их линейной аппроксимацией;

г) можно ли использовать существующие методы решения или требуется разработать новый алгоритм;

д) допустимо ли в данном конкретном случае использование известных оптимизационных методов или необходимо разработать эвристический алгоритм.

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

Предел временной сложности при увеличении размера задачи называется асимптотической временной сложностью. Аналогично определяется емкостная сложность и асимптотическая емкостная сложность. Именно асимптотическая сложность алгоритма определяет в итоге размер задач, которые можно решить этим алгоритмом. Если алгоритм обрабатывает входы размера п за время сn2, где с - некоторая постоянная, то говорят, что временная сложность этого алгоритма есть О(п2) (читается "порядка n2"). Точнее, говорят, что неотрицательная функция g(n) есть O(f(n)), если существует такая постоянная с, что g(n) ≤ cf(n) для всех, кроме конечного (возможно пустого) множества неотрицательных значений п.

Пусть дано пять алгоритмов А1 – A5(табл. 1). Под временной сложностью здесь понимается число единиц времени, требуемого для обработки входа размера п. В табл. 5.1 приведены размеры задач, которые можно решить за 1 с, 1 мин и 1 ч каждым из этих пяти алгоритмов. Если в качестве основы для сравнения взять 1 мин, то, заменяя алгоритм А4 алгоритмом А3, можно решить задачу в 6 раз большую, а заменяя А4 на А2, можно решить задачу, большую в 125 раз. Если в качестве основы для сравнения взять 1 ч, то различие алгоритмов становится еще значительнее. Отсюда можно заключить, что асимптотическая сложность алгоритма служит важной мерой его качества, причем такой мерой, которая приобретает все большее значение с увеличением размера вычислений.


Таблица 1

Сложность алгоритма определяет также то увеличение размера задачи, которого можно достичь с увеличением скорости машины. Увеличение скорости вычислений в 10 раз увеличивает размер задачи, которую можно решить, для алгоритма А5 только на 3, тогда как для алгоритма А3 – более чем втрое. Однако алгоритм с быстро растущей сложностью может оказаться предпочтительнее для задач с малым размером. Например, если временные сложности алгоритмов А1 – A5равны соответственно 1000n, 100n, logn, 10n2, n3 и 2n, то алгоритм А5 будет наилучшим для задач размера 2 ≤ п ≤ 9, А3 – для задач размера 10 ≤ п ≤ 58, А2 – при 59 ≤ n≤ 1024, aA1 – n> 1024.

Для того чтобы показать, что не существует алгоритма, выполняющего решение задачи менее чем за определенное время, необходимо точное определение того, что есть алгоритм. Уточнение понятий алгоритма и его сложности требует привязки к некоторой конкретной схеме вычислений. Обычно в качестве такой схемы рассматривается машина Тьюринга или так называемая адресная машина. Однако можно принять модель, более близкую к реальному ходу вычислений в оперативной памяти машины с одним процессором, и считать, что вычисления реализуются программой, написанной на некотором упрощении (подмножестве) языка АЛГОЛ.

На первоначальных этапах развития теории сложности в ней чаще всего рассматривались задачи, на которые можно дать лишь один из двух ответов: ДА или НЕТ. Например, классическая "сложностная" постановка известной задачи о ранце (с ограничением в виде равенства) будет заключаться в выяснении того, существуют ли для заданных чисел aj, j= 1,2, ..., nи bзначения булевых переменных xj, удовлетворяющие ограничению

(1)

Обычная же формулировка задачи о ранце состоит в максимизации суммы

(2)

при условии (1). Однако легко заметить, что ответы на последовательность задач типа "существует ли набор булевых переменных xj, удовлетворяющих (1), такой, что z = kпри k= 0, 1,2, ..." дадут решение задачи о ранце в привычной формулировке. При этом под задачей понимается весь класс однотипных вопросов, различающихся входными данными. Например, в задаче (1), (2) вход представляет собой набор {k, {аj}, {сj}, b}, так что задача о ранце сводится к решению вопроса "существует ли значение целевой функции, равное k, в ситуации, описываемой остальными входными данными". Конкретный набор исходных данных определяет реализацию задачи.

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

Введем понятие класса задач Р, разрешимых за полиномиальное время. Этот класс состоит из всех задач П, обладающих следующим свойством: для любой существует АЛГОЛ-программа uП и полином fП (·), такие, что любая реализация uП за время tπ (uП) ≤ fП (). Примерами задач из класса Р являются задачи нахождения кратчайшего пути между двумя вершинами графа, минимального разреза в сети, минимального дерева.

Общепринято, что если задачу нельзя решить быстрее, чем за экспоненциальное время, то ее следует рассматривать как трудно разрешимую. Такие задачи образуют класс задач, недетерминированным образом разрешимых за полиномиальное время (NP-класс). Для определения NPкласса необходимо расширить язык, добавив к нему новую команду CHOOSE(x). Эта команда придает недетерминированным образом переменной х значение О или 1. Расширенный за счет этой команды язык назовем N-АЛГОЛ. Будем говорить, что программа на N-АЛГОЛе (N-программа) выдает на некоторую реализацию задачи ответ ДА, если N-программа выдает ответ ДА при некоторой комбинации значений, реализовавшихся при выполнении команд CHOOSE(x). В этом случае под временем выполнения N-программы будем понимать минимальное время для всех детерминированных программ, полученных путем замены CHOOSE(x) нулями или единицами, которые выдают ответ ДА. Если N-программа дает ответ НЕТ, то время ее выполнения для данной реализации не определяется.

Отметим, что приведенное определение времени для реализации с ответом ДА является в значительной мере условным, так как любая реальная схема вычислений является детерминированной и для нее необходимо просмотреть все последовательности реализации CHOOSE(x), чтобы определить, выдает ли хоть одна из них ответ ДА. Это потребует времени, равного сумме времен, необходимых для каждого набора реализаций.

Определим класс NPкак подкласс всех таких задач П, для которых существует N-программа иП и полином fπ (·), такие, что для любой реализации π задачи П, для которой имеется ответ ДА, программа иП выдает ответ ДА за время tπ(uП) ≤ fП (). Так как любая программа является N-программой, то, очевидно, .

Дадим определение: множество А полиномиально сводимо к В (обозначается А < В), если существует функция φ, вычислимая за полиномиальное время и такая, что при

Если то А и В полиномиально эквивалентны.

Множество Е называется NP-полным (или универсальной переборной задачей), если и для любого имеем . Множество NP-полных задач обозначается NPC, .

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

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

Обычно различают два уровня повышения эффективности алгоритмов – локальный и глобальный. Под локальным уровнем понимаются любые приемы, позволяющие расширить имеющиеся на сегодняшний день возможности решения задач. Глобальный уровень предусматривает перевод определенных классов задач на более низкий уровень (например, из NPв Р). Такой переход обычно означает переход от точных методов к приближенным.

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

Рассмотрим задачу нахождения оптимума функции f(x) на допустимом множестве G. Пусть х* – оптимальное решение этой задачи. Говорят, что допустимое решение х является -приближенным, если

(3)

где > 0 - заданное число (f(x*j≠ 0).

Величина > 0 есть гарантированная характеристика приближенного алгоритма и, если для любой реализации задачи алгоритм дает приближенное решение х и выполняется неравенство (3). Сравнение приближенных алгоритмов проводится на основании гарантированных характеристик, которые позволяют выбрать оптимальный в определенном смысле эвристический алгоритм решения задачи.

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

Для задач массового счета перспективным является применение статистически эффективных алгоритмов. Такие алгоритмы в подавляющем большинстве случаев оптимальны (-приближенное решение). Иначе говоря, с ростом размерности задачи доля точно оптимизируемых задач (-оптимизируемых) среди всех задач стремится к 1.

При оценке эффективности алгоритмов теоретическими методами следует иметь в виду, что полученные результаты дают представление о поведении задач в наихудших возможных случаях, тогда как для вычислительной практики существенно более важно их поведение в среднем. Действительно, экспериментально известно, что для решения задачи линейного программирования с mограничениями и п переменными обычно требуется от mдо 3т итераций; как правило, для задач не слишком больших размеров число итераций близко к 3m/2. Кроме того, теоретические результаты практически ничего не говорят о том, как будет вести себя конкретный алгоритм на конкретной задаче. Например, среднее время прямого поиска в списке пропорционально N/2, где N - число элементов списка, а двоичного поиска (список упорядочен по ключу) – пропорционально log2N. Однако двоичный поиск неэффективен для небольших списков, которые подлежат частому изменению, так как введение нового элемента может вызвать переписывание всех элементов. Разработка алгоритмов является в основном творческой деятельностью, хотя существует множество типовых методов и алгоритмов, которые могут применяться для решения задач, возникающих в АСУ. К таким методам прежде всего относятся методы исследования операций.

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

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

Использование комбинаторных методов типа "ветвей и границ" положено в основу стандартного пакета ЛП АСУ (для решения задач линейного программирования).


Нет нужной работы в каталоге?

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

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Тгу им. Г. Р. Державина
Реферат сделан досрочно, преподавателю понравилось, я тоже в восторге. Спасибо Татьяне за ...
star star star star star
РЭУ им.Плеханово
Альберт хороший исполнитель, сделал реферат очень быстро, вечером заказала, утром уже все ...
star star star star star
ФЭК
Маринаааа, спасибо вам огромное! Вы профессионал своего дела! Рекомендую всем ✌🏽😎
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Подогнать готовую курсовую под СТО

Курсовая, не знаю

Срок сдачи к 7 дек.

только что
только что

Выполнить задания

Другое, Товароведение

Срок сдачи к 6 дек.

1 минуту назад

Архитектура и организация конфигурации памяти вычислительной системы

Лабораторная, Архитектура средств вычислительной техники

Срок сдачи к 12 дек.

1 минуту назад

Организации профилактики травматизма в спортивных секциях в общеобразовательной школе

Курсовая, профилактики травматизма, медицина

Срок сдачи к 5 дек.

2 минуты назад

краткая характеристика сбербанка анализ тарифов РКО

Отчет по практике, дистанционное банковское обслуживание

Срок сдачи к 5 дек.

2 минуты назад

Исследование методов получения случайных чисел с заданным законом распределения

Лабораторная, Моделирование, математика

Срок сдачи к 10 дек.

4 минуты назад

Проектирование заготовок, получаемых литьем в песчано-глинистые формы

Лабораторная, основы технологии машиностроения

Срок сдачи к 14 дек.

4 минуты назад

2504

Презентация, ММУ одна

Срок сдачи к 7 дек.

6 минут назад

выполнить 3 задачи

Контрольная, Сопротивление материалов

Срок сдачи к 11 дек.

6 минут назад

Вам необходимо выбрать модель медиастратегии

Другое, Медиапланирование, реклама, маркетинг

Срок сдачи к 7 дек.

7 минут назад

Ответить на задания

Решение задач, Цифровизация процессов управления, информатика, программирование

Срок сдачи к 20 дек.

7 минут назад
8 минут назад

Все на фото

Курсовая, Землеустройство

Срок сдачи к 12 дек.

9 минут назад

Разработка веб-информационной системы для автоматизации складских операций компании Hoff

Диплом, Логистические системы, логистика, информатика, программирование, теория автоматического управления

Срок сдачи к 1 мар.

10 минут назад
11 минут назад

перевод текста, выполнение упражнений

Перевод с ин. языка, Немецкий язык

Срок сдачи к 7 дек.

11 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно