Какое свойство алгоритма называется массовостью

Какое свойство алгоритма называется массовостью thumbnail

ПОНЯТИЕ АЛГОРИТМА.
СВОЙСТВА АЛГОРИТМА. ВИДЫ АЛГОРИТМОВ. СПОСОБЫ ОПИСАНИЯ АЛГОРИТМОВ

Алгоритмом называется
точное и понятное предписаниe исполнителю совершить последовательность
действий, направленных на решение поставленной задачи. Слово «алгоритм»
происходит от имени математика Аль Хорезми, который сформулировал правила
выполнения арифметических действий. Первоначально под алгоритмом понимали
только правила выполнения четырех арифметических действий над числами.
В дальнейшем это понятие стали использовать вообще для обозначения последовательности
действий, приводящих к решению любой поставленной задачи. Говоря об алгоритме
вычислительного процесса, необходимо понимать, что объектами, к которым
применялся алгоритм, являются данные. Алгоритм решения вычислительной
задачи представляет собой совокупность правил преобразования исходных
данных в результатные.

Основными свойствами
алгоритма являются:

  1. детерминированность
    (определенность). Предполагает получение однозначного результата вычислительного
    процecca при заданных исходных данных. Благодаря этому свойству процесс
    выполнения алгоритма носит механический характер;
  2. результативность.
    Указывает на наличие таких исходных данных, для которых реализуемый
    по заданному алгоритму вычислительный процесс должен через конечное
    число шагов остановиться и выдать искомый результат;
  3. массовость. Это
    свойство предполагает, что алгоритм должен быть пригоден для решения
    всех задач данного типа;
  4. дискретность.
    Означает расчлененность определяемого алгоритмом вычислительного процесса
    на отдельные этапы, возможность выполнения которых исполнителем (компьютером)
    не вызывает сомнений.

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

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

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

При всем многообразии
алгоритмов решения задач в них можно выделить три основных вида вычислительных
процессов:

  • линейный;
  • ветвящийся;
  • циклический.

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

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

Циклом называется
многократно повторяемый участок вычислений. Вычислительный процесс, содержащий
один или несколько циклов, называется циклическим.
По количеству выполнения циклы делятся на циклы с определенным (заранее
заданным) числом повторений и циклы с неопределенным числом повторений.
Количество повторений последних зависит от соблюдения некоторого условия,
задающего необходимость выполнения цикла. При этом условие может проверяться
в начале цикла — тогда речь идет о цикле с предусловием, или в конце —
тогда это цикл с постусловием.

Источник

Существует множество определений понятия «алгоритм»:

  1. «процедура, которая принимает любой из возможных входных экземпляров задачи и преобразует его в соответствии с требованиями, указанными в условии задачи» [1];
  2. «точное предписание, однозначно определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату» [2];
  3. «конечный набор правил, однозначно раскрывающих содержание и последовательность выполнения операций для систематического решения определенного класса задач за конечное число шагов» [3];
  4. «A computable set of steps to achieve a desired result» [4].

Из определений вытекают свойства алгоритма [5]:

  1. дискретность. В определениях 3 и 4 говорится, что алгоритм состоит из отдельных действий или правил. Алгоритм обладает дискретностью, если его можно разделить на отдельные этапы (части, команды);
  2. детерминированность (определенность). Алгоритм обладает свойством детерминированности, если для одних и тех же наборов исходных данных он будет выдавать один и тот же результат, т.е. результат однозначно определяется исходными данными (на это свойство указывается в определении 3);
  3. результативность. Свойство результативности означает, что алгоритм должен выдавать результат за конечное число шагов. О том, что число шагов должно быть конечным говорится в определениях 3 и 4;
  4. массовость. В определениях 1, 2, 3 говорится о некоторых классах задач (входных экземплярах задачи, варьируемых начальных данных) на которых алгоритм должен работать алгоритм. Это означает, что набор исходных данных, на которых алгоритм должен выдавать верное решение, заранее ограничен;
  5. правильность. Под правильностью понимается соответствие результатов работы алгоритма условию задачи (определение 1). Казалось бы, очень сомнительное свойство, ведь выше было описано свойство результативности, однако, программа должна не просто выдавать результат, а результат правильный.

Теперь покажем, что конкретный алгоритм обладает этими свойствами. В качестве примера, возьмем алгоритм, изображенный на рис. 1 в виде блок-схемы [6].

check-brackets-flowchartРис 1 Блок-схема алгоритма проверки правильности расстановки скобок

Приведенный алгоритм проверяет правильность расстановки скобок, если скобки расставлены правильно – то каждой закрывающей скобке предшествует соответствующая открывающая, а каждой открывающей соответствует закрывающая.

Суть алгоритма заключается в подсчете глубины вложенности скобок друг в друга. Если в какой-то момент глубина получает значение меньше нуля – то скобки расставлены неправильно. Если просмотрены все символы строки, но счетчик не равен нулю – то в строке есть не закрытые скобки (расставлены неправильно). В противном случае скобки расставлены правильно.

Можно сказать, что алгоритм обладает свойством дискретности, так как весь алгоритм разбит на отдельные части (на блок-схеме это хорошо видно).

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

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

Алгоритм обладает свойством массовости, т.к. исходными данными для него может быть любая конечная последовательность символов. Алгоритм не обладал бы этим свойством, если бы работал лишь ограниченном наборе исходных данных, например на строках «()» и «())», но на остальных наборах не работал или работал не правильно.

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

В этой статье мы разобрались с тем, что такое алгоритм и какими основными свойствами он должен обладать. К теме алгоритмов я обязательно вернусь в будущих статьях.

Литература:

  1. Скиена С. Алгоритмы. Руководство по разработке. 2-е изд.: Пер. с англ. — СПб.: БХВ-Петербург. 2011. — 720 с.: ил.
  2. ГОСТ 19781-74. Единая система программной документации. Термины и определения. Утв. пост. Госкомстата № 2051 от 08.05.08.
  3. Семененко В. А., Скуратович Э.К. Информатика и вычислительная техника: Учебное пособие. — М.: МГИУ, 2006. — 272 с
  4. Paul E. B. Dictionary of Algorithms, Data Structures, and Problems. [Электронный ресурс]/ Paul E. B. – режим доступа: https://xlinux.nist.gov/dads/HTML/algorithm.html. Дата обращения: 07.05.2017.
  5. Елабуга: изд-во ЕГПУ, 2009.- 72 с. 97 . Лизунова Е.М. Теория алгоритмов. Лекции 2007
  6. ГОСТ 19.701-90. ЕСПД. Схемы алгоритмов, программ, данных систем. Условные обозначения и правила выполнения
  7. Обзор литературы по алгоритмам

Источник

I. Дискретность

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

II. Определённость

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

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

Формальному исполнителю здесь неясно, требуется ли трясти смесь, пока она вся не станет комом, и какой всё-таки величины кастрюля. Большая или маленькая? И до какой температуры надо подогреть коньяк. Так что такой алгоритм любому исполнителю выполнить довольно трудно, практически невозможно. Можно сказать, что в алгоритме не должны присутствовать не определённые слова: немного, чуть-чуть, слегка и т. д.

III. Результативность

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

К примеру, в инструкции по применению лекарства от кашля сказано:
Если врач не прописал, то принимать 3-4 раза в день по 15-20 капель, лучше всего в горячей сладкой воде.
Здесь не определено, например, когда должен заканчиваться алгоритм – когда кашель пройдет или когда лекарство закончиться. Свойство результативности обычно подразумевает конечность алгоритма, т. е. завершение его работы за конечное число шагов (при этом количество шагов может быть заранее не известным и различным для разных исходных данных) .

IV. Понятность

Надо сказать, что алгоритм должен быть понятен не только автору, но и исполнителю. Если мы предложим исполнителю, например утюгу постирать одежду, то он никогда этого не сделает, потому, что не поймет, т. к. такой программы в нём не заложено. Или, например, если мы предложим какому-нибудь мальчику испечь торт то у него, как правило, ни чего не получится, потому что этого они делать не умеют. Но если мы составим подробный алгоритм работы, разобьем его на элементарные шаги, такие, что он без труда поймёт и сможет выполнить каждый шаг, то он сможет успешно испечь любой торт. Каждый шаг алгоритма обязательно представляет собой какое-либо допустимое действие исполнителя. Это свойство алгоритма называют понятностью.

V. Массовость

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

Источник

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

Ход урока

  1. Организационный момент.
  2. Подготовка к изучению нового материала.
    (ознакомление с планом и целью занятия) .
  3. Изучение нового материала. (просмотр
    электронного урока с использованием мультимедиа
    проектора) . Слайды + текст лекции.
  4. По ходу урока учащиеся конспектируют
    определения и отвечают на вопросы.
  5. Закрепление темы занятия (работа уч-ся на
    компьютере) . Электронный тест с последующей
    самопроверкой. Решение алгоритмических задач.
  6. Подведение итогов. Выставление оценок с учетом
    процентного выполнения теста.
  7. Задание на дом. (выучить определения, привести
    примеры алгоритмов из жизненной практики.)

Изучение нового материала.

Один из важнейших этапов решения задач на
ЭВМ – составление алгоритма. О том, что такое
алгоритмы, какими общими свойствами они обладают
и как исполняются, мы и поговорим на этом уроке.

В 1983 году отмечалось 1200-летие со дня рождения
одного из величайших ученых Средней Азии и
средневекового Востока Мухамада ибн Мусы
аль-Хорезми. Он написал ряд трактатов по
арифметике и алгебре, в том числе книгу
“Арифметика индусскими цифрами” – о
счете с помощью десяти цифр и правилах
арифметических действий с числами.

Имя ученого аль-Хорезми превратилось в понятие
algorithmi, первоначально обозначавшее десятичную
систему исчисления и правила арифметических
действий в этой системе. Отсюда и возник
современный научный термин “алгоритм”.

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

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

Демонстрация слайда 1.
/Приложение/

Мы можем теперь сказать, что алгоритм – это
организованная последовательность действий.
Данную формулировку, конечно, нельзя считать
определением алгоритма. Например, мы не
объяснили, что означают слова
“организованная” и “действия”. Скажем
сразу: абсолютно строгого определения алгоритма
не существует. Алгоритм – это одно из тех
основных понятий (категорий) математики, которые
не обладают формальным определением в терминах
более простых понятий, а абстрагируются
непосредственно из опыта.

На слайде еще одно задание. Выполните его,
используя для записи ответа любой текстовый
редактор или бумагу и карандаш.

Демонстрация слайда 2. /Приложение/

Сравните свой ответ с правильным.

Правильный алгоритм:

  1. Налить в чайник воду.
  2. Зажечь спичку.
  3. Открыть кран газовой горелки.
  4. Поднести спичку к горелке.
  5. Поставить чайник на плиту.
  6. Ждать, пока вода закипит.
  7. Выключить газ.

Демонстрация слайда 3. /Приложение/

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

Поясним сказанное на примере. Допустим, нужно
решить квадратное уравнение.

Десятикласснику требуется минимум инструкций,
потому что он уже знает способ решения.

Восьмикласснику понадобятся намного более
сложные инструкции, потому что он этого еще не
проходил.

Теперь мы можем уточнить понятие алгоритма: это
организованная последовательность действий,
допустимых для некоторого исполнителя.

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

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

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

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

Такое свойство алгоритма, как однозначность
результата при заданных исходных данных,
называется определенностью
(детерминированностью) .

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

С алгоритмами человек встречается на каждом
шагу.

Пример 1. Дан угол. Необходимо провести
биссектрису. (Есть способ, как, пользуясь
линейкой и циркулем, можно решить эту задачу.)

Пример 2. Даны два целых числа. Необходимо
найти их разность. (Имеется правило, в котором
ясно изложен весь порядок действий с цифрами
данных чисел.)

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

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

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

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

Закрепление темы:

Алгоритмические задачи

№1. Старик должен переправить на лодке через
реку волка, козу и капусту. Лодка может выдержать
только старика и одного “пассажира”. В каком
порядке старик перевезет пассажиров? Не забудь,
что волк может съесть козу, а коза – капусту.
Найди 2 варианта решения.

Алгоритм решения задачи:

1 вариант2 вариант
1) __________________________1) _________________________
2) _________________________2) _________________________
3) __________________________3) _________________________

и т.д.

№2 Два мальчика и двое взрослых должны
переправиться на другую сторону реки на плоту,
который выдерживает либо двух мальчиков, либо
одного мальчика и одного взрослого. Как
осуществить переправу? Найди несколько способов
решения этой задачи.

Алгоритм решения задачи:

 1 способ2 способ3 способ
1 шаг   
2 шаг   
3 шаг   
4 шаг   
5 шаг   

Обозначения: 1м- один мальчик, 2м – два мальчика,
1в – один взрослый.

1. Практикум по решению задач

Злоумышленник поменял местами действия в
алгоритме вычисления среднего арифметического
из квадратного корня трёх чисел:

Присвоить а значение (а2+в2+с2)
/3.

Вести а,в,с

Сообщить “Среднее арифметическое квадратов
равно”

Сообщить а.

Восстановите правильный порядок действий.

2. Исправьте следующий алгоритм решения
уравнения (х-2) (х+2) =0:

Присвоить х значение +-2.

Сообщить “Корни уравнения равны”.

Сообщить первое значение х.

Сообщить второе значение х.

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

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

Измерить температуру.

Если температура выше 370, то:

Вызвать врача.

Пойти в школу.

Несмотря на недомогание, школьник исправил
этот алгоритм, добавив всего две строки. Какие
строки добавил школьник?

5. Запишите в виде алгоритмов правила
определения знака:

А) произведения двух действительных чисел;

Б) суммы двух действительных чисел.

6. В записи алгоритма вычисления значения
выражения (х2- 5х+5) / (х6- 4х2+3)

Злоумышленник одно действие поставил не на
свое место. Вот как стал выглядеть алгоритм:

  1. ввести х
  2. если х6- 4х2 + 3=0, то:
  3. сообщить “При таком х значение выражения не
    определено”.
  4. иначе:
  5. присвоить у значение (х2- 5х +5) /(х6-
    4х2+3) .
  6. конец ветвления.
  7. сообщить у.

Верните действие на свое место.

Электронный тест

1.Которые из документов являются алгоритмами?

а) Правило правописания приставок,
оканчивающихся на з,с(да)

б) Программа телепередач

в) Кулинарный рецепт приготовления блюда

г) Инструкция по сборке проданного в
разобранном виде шкафа

2. В каких случаях правильно заканчивается
предложение: Алгоритм – это

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

б) указание на выполнение действий

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

г) программа в машинных кодах

3. Расчлененность алгоритма на отдельные
элементарные действия – это

а) Дискретность

б) Определенность

в) Массовость

г) Детерминированность

4. Которые из документов являются алгоритмами?

А) Каталог книг в библиотеке

Б) Порядок набора международного телефонного
номера

В) Рецепт приготовления клея

Г) Настенный календарь на текущий год

Подведение итогов. Выставление оценок с учетом
процентного выполнения теста.

Задание на дом. (выучить определения, привести
примеры алгоритмов из жизненной практики.)

Источник