что такое моделирующий алгоритм

Моделирующий алгоритм.

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

Для решения систем уравнений математической модели в настоящее время имеются пакеты программ для решения дифференциальных уравнений как обыкновенных, так и в частных производных. В частности, такие возможности предоставляют известные системы Mathlab и Mathcad. Созданы также специализированные программные комплексы Aspen, HYSYS и ReactOp для решения математических моделей технологических объектов. Так что выбор моделирующего алгоритма в настоящее время сводится к четкой формулировке задачи, выбору внутренних и внешних переменных и соответствующего программного пакета.

2. Общие принципы и этапы построения математических моделей систем.

Источник

Моделирующий алгоритм. Имитационная модель

что такое моделирующий алгоритм. Смотреть фото что такое моделирующий алгоритм. Смотреть картинку что такое моделирующий алгоритм. Картинка про что такое моделирующий алгоритм. Фото что такое моделирующий алгоритм что такое моделирующий алгоритм. Смотреть фото что такое моделирующий алгоритм. Смотреть картинку что такое моделирующий алгоритм. Картинка про что такое моделирующий алгоритм. Фото что такое моделирующий алгоритм что такое моделирующий алгоритм. Смотреть фото что такое моделирующий алгоритм. Смотреть картинку что такое моделирующий алгоритм. Картинка про что такое моделирующий алгоритм. Фото что такое моделирующий алгоритм что такое моделирующий алгоритм. Смотреть фото что такое моделирующий алгоритм. Смотреть картинку что такое моделирующий алгоритм. Картинка про что такое моделирующий алгоритм. Фото что такое моделирующий алгоритм

что такое моделирующий алгоритм. Смотреть фото что такое моделирующий алгоритм. Смотреть картинку что такое моделирующий алгоритм. Картинка про что такое моделирующий алгоритм. Фото что такое моделирующий алгоритм

что такое моделирующий алгоритм. Смотреть фото что такое моделирующий алгоритм. Смотреть картинку что такое моделирующий алгоритм. Картинка про что такое моделирующий алгоритм. Фото что такое моделирующий алгоритм

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

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

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

2.4 Проблемы стратегического и тактического планирования имитационного эксперимента. Направленный вычислительный эксперимент на имитационной модели

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

Рассмотрим особенности этого экспериментального метода. Кстати, слова «simulation», «эксперимент», «имитация» одного плана. Экспериментальная природа имитации также предопределила происхождение названия метода. Итак, цель любого исследования состоит в том, чтобы узнать как можно больше об изучаемой системе, собрать и проанализировать информацию, необходимую для принятия решения. Суть исследования реальной системы по ее имитационной модели состоит в получении (сборе) данных о функционировании системы в результате проведения эксперимента на имитационной модели (см. лекцию 1: имитационный метод исследования).

Для пояснения рассмотрим 2 случая: детерминированный случай; стохастический случай.

что такое моделирующий алгоритм. Смотреть фото что такое моделирующий алгоритм. Смотреть картинку что такое моделирующий алгоритм. Картинка про что такое моделирующий алгоритм. Фото что такое моделирующий алгоритм

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

Детерминированный случай. В этом случае достаточно провести один прогон, по определенным операционным правилам при конкретном наборе параметров.

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

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

Здесь возникают следующие проблемы: как собрать эти данные, провести серию прогонов, как организовать целенаправленное экспериментальное исследование. Выходных данных, полученных в результате такого экспериментирования, может оказаться очень много. Как их обработать? Обработка и изучение их может превратиться в самостоятельную проблему, намного сложнее задачи статистического оценивания.

В имитационном моделировании важным вопросом является не только проведение, но и планирование имитационного эксперимента в соответствии с поставленной целью исследования.

Эта проблема получила название стратегического планирования

имитационного исследования. Для ее решения используются методы регрессионного анализа, планирования эксперимента и др., которые подробно будут рассматриваться в лекции 7.

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

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

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

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

Источник

Лекция 32.
Общие принципы построения
моделирующих алгоритмов

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

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

В настоящий момент известны четыре основных принципа регламентации событий.

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

Принцип Δt

Особенности реализации принципа Δt

Это наиболее универсальный из рассматриваемых принципов, так как применяется для очень широкого класса систем. Он же является наиболее простым в реализации, поскольку принцип Δt совпадает с пониманием человека о времени, как о последовательном явлении, текущем с постоянным темпом.

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

что такое моделирующий алгоритм. Смотреть фото что такое моделирующий алгоритм. Смотреть картинку что такое моделирующий алгоритм. Картинка про что такое моделирующий алгоритм. Фото что такое моделирующий алгоритм
Рис. 32.1. Схема моделируемой производственной системы (пример)

Алгоритм построим таким образом, чтобы вычислить вероятности событий возникновения дефицита Pд и переполнения Pп на складе.

Для накопления надежной статистики эксперимент повторяется KK раз. За количеством экспериментов следит счетчик экспериментов k (блоки 2, 3, 8). Каждый эксперимент длится от 0 до Tk момента времени (блоки 5, 7). Счетчик времени t отсчитывает время от 0 до Tk с дискретностью Δt (блок 11).

Заметим, что поскольку на складе в реальности не может быть изделий меньше нуля, то значение Z в момент обнаружения этого факта должно быть возвращено на ближайшую границу, то есть: Z := 0 (блок 16). Тоже самое касается ситуации переполнения ( Z := G ) (блок 19).

что такое моделирующий алгоритм. Смотреть фото что такое моделирующий алгоритм. Смотреть картинку что такое моделирующий алгоритм. Картинка про что такое моделирующий алгоритм. Фото что такое моделирующий алгоритм
Рис. 32.2. Блок-схема алгоритма, реализованного по принципу Δt.
Пример — моделирование производственного склада

Принцип особых состояний

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

Особые состояния — это такие состояния в изолированные моменты времени, в которых характеристики системы изменяются скачкообразно. Для изменения состояния системы нужна определенная причина, например, приход очередного входного сигнала. Ясно, что с точки зрения моделирования интерес представляет именно изменение характеристик системы, то есть принцип требует от нас отслеживать моменты перехода системы из одного особого состояния в другое.

Все это существенно экономит время моделирования.

что такое моделирующий алгоритм. Смотреть фото что такое моделирующий алгоритм. Смотреть картинку что такое моделирующий алгоритм. Картинка про что такое моделирующий алгоритм. Фото что такое моделирующий алгоритм
Рис. 32.3. Блок-схема алгоритма, реализованного по принципу особых состояний.
Пример — моделирование производственного склада

Принцип последовательной проводки заявок

Принцип состоит в том, что каждая заявка отслеживается от момента поступления ее в систему до момента ее выхода из системы. И только потом рассматривается следующая заявка.

Рассмотрим работу алгоритма на примере двухканальной системы массового обслуживания заявок с двумя местами в общей очереди с дисциплиной FIFO и отказами при переполнении очереди (см. рис. 32.4 ), см. также лекцию 30.

что такое моделирующий алгоритм. Смотреть фото что такое моделирующий алгоритм. Смотреть картинку что такое моделирующий алгоритм. Картинка про что такое моделирующий алгоритм. Фото что такое моделирующий алгоритм
Рис. 32.4. Схема системы массового обслуживания
с двумя каналами и ограниченной очередью

Обозначим: λ — интенсивность прихода заявки; μi — интенсивность обслуживания заявки.

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

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

что такое моделирующий алгоритм. Смотреть фото что такое моделирующий алгоритм. Смотреть картинку что такое моделирующий алгоритм. Картинка про что такое моделирующий алгоритм. Фото что такое моделирующий алгоритм
Рис. 32.5. Механизм определения освобождения канала
(иллюстрация)

Аналогично обработка происходит и во втором канале, если заявка попадет именно туда (блок 14).

Особенность обработки заявки в очереди состоит в том, что первое место в очереди освобождается, когда освобождается место в одном из каналов, конечно, заявка уходит туда, где место освобождается раньше (блоки 5, 6). Второе место в очереди освобождается одновременно с первым, так как заявка в очереди передвигается на первое освободившееся место (блок 12).

Далее алгоритм генерирует в цикле следующую заявку (блоки 3, 16). Остановка моделирования происходит тогда, когда каждая линейка будет заполнена до момента Tk (блок 16). После этого происходит обработка статистических результатов, накопленных в счетчиках (блок 17). Вероятность оценивается частостью появления события, которая вычисляется как отношение количества появившихся событий к количеству возможных таких появлений.

что такое моделирующий алгоритм. Смотреть фото что такое моделирующий алгоритм. Смотреть картинку что такое моделирующий алгоритм. Картинка про что такое моделирующий алгоритм. Фото что такое моделирующий алгоритм
Рис. 32.6. Блок-схема алгоритма, реализованного по принципу последовательной
проводки заявок. Пример — моделирование системы массового обслуживания

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

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

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

Заметим также, что не важно, имеем ли мы дело с одной длинной реализацией или с большим количеством коротких реализаций (у которых, конечно, вырезан участок «выход на режим»), в сумме дающих реализацию такой же длины — статистический результат будет тем же. Это рассуждение устанавливает равенство усреднений по ансамблю реализаций усреднениям по времени.

Примечание. На практике обычно применяют комбинации всех трех методов.

Объектный принцип моделирования

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

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

что такое моделирующий алгоритм. Смотреть фото что такое моделирующий алгоритм. Смотреть картинку что такое моделирующий алгоритм. Картинка про что такое моделирующий алгоритм. Фото что такое моделирующий алгоритм
Рис. 32.7. Схема реализации объектно-ориентированного
моделирования (на примере СМО)

1. Источник заявок (Sourcer) генерирует последовательность случайных событий.

// если счетчик x равен 0, то это момент появления заявки
// tau — обеспечивает генерацию времени между заявками в момент появления заявки
tau := –1/λ · ln(rnd) · delta(x) + tau · not(delta(x))

// y — фиксирует факт появления заявки
y:= delta(x)

// счетчик моделирует заявочный процесс во времени, отсчитывая время между заявками
// если счетчик x равен 0, то это момент появления заявки
// если x больше нуля, то новая заявка пока не появилась
x := x + ed(

tau – x) · dt – x · ed(x –

// счетчик заявок
Nx := Nx + delta(

2. Канал обслуживания (Channel).

// канал свободен, если не обрабатывает заявку
своб := not(обраб)

// своб — флаг-признак, если канал свободен, то «своб» равен 1.
// обраб — флаг-признак, если канал занят, то «обраб» равен 1.
// Если канал был свободен, и пришла заявка, то канал начинает ее обрабатывать.
обраб := ed(

своб · вх + not(delta(y))

// вх — сигнал о подаче заявки на обслуживание в канале
// tau — обеспечивает генерацию необходимого времени обслуживания заявки в момент ее появления
// Новая генерация происходит только в том случае, если канал свободен и пришла заявка
// Если в канале обслуживается заявка, то новое tau не генерируется
// mu — интенсивность потока обслуживания (задается константой)
tau := –1/mu · ln(rnd) ·

// счетчик «y» моделирует заявочный процесс во времени, отсчитывая время обслуживания
// если «y» выдал 1, то значит канал выдал обслуженную заявку
y := y + ed(

// счетчик обслуженных заявок
Ny := Ny + delta(

// флаг «обработка» будет погашен, если закончится время обслуживания
обраб := not(delta(

y))
// канал будет свободен, если канал не обрабатывает заявки
своб := not(

// счетчик накапливает статистику — общее время простоя канала
ОВП := ОВП +

// счетчик накапливает статистику — общее время работы канала
ОВР := ОВР +

// «отказ» — счетчик фиксирует отказ, если все места в очереди заняты (Z > Zm)
// и приходит очередная заявка (вх = 1)
// Zm — максимальное количество мест в очереди
// Z — текущее количество занятых мест
отказ :=

// счетчик количества занятых мест в очереди увеличивается, если приходит
// заявка и есть незанятые места в очереди
Z := Z + delta(

// передаем заявку из очереди в канал
// флаг, фиксирующий освобождение места в очереди в момент
// освобождения канала, если очередь есть
// ch_free — флаг (свободен (1) или занят канал обслуживания (0))
вых := delta(

// счетчик уменьшает количество занятых мест в очереди,
// после взятия заявки в канал обслуживания
Z := Z –

4. Статистика (Stats).

Tэкс := Tэкс + 1 · dt
проп_сп := Nоб/Tэкс
Pоб := Nоб/Nобщ
Pотк := Nотк/Nобщ
Tпрост1 := Tпрост1 +

своб1 · dt
Tпрост12 := Tпрост12 +

своб2 · dt
Tпрост123 := Tпрост123 +

своб3 · dt
ср_кол_пр_КО := Tпрост1 + Tпрост12 · 2 + Tпрост123 · 3
ср_кол_зан_КО := всего_КО – ср_кол_пр_КО
S := S +

тек_дл_очер · dt
ср_дл_очер :=

Данные модели могут собираться в любые конфигурации без изменения их содержания.

Источник

Что такое моделирующий алгоритм

& Алгоритмические средства информатики

Введение в моделирование и алгоритмизацию

Понятие о моделях и моделировании

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

Поэтому, чтобы привлечь компьютер к исследованию объекта, процесса, явления или к “рутинной” обработке информации, прежде всего надо:

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

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

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

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

Модель — это формализованное описание объекта, системы объектов, процесса или явления, выраженное математическими соотношениями, набором чисел и (или) текстов, графиками, таблицами, словесными формулами и т. п.

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

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

Далеко не всегда созданные исследователем модели хорошо описывают реальность: бывают грубые, плохие и никуда не годные модели. Иногда изучаемый объект крайне сложен, иногда объект и сложен, и недоступен для наблюдения (например, Вселенная с ее экстремальными условиями, которые невозможно воспроизвести в лаборатории). Однако бывают и вообще ложные модели, создатели которых, пользуясь для прикрытия “ученой” математикой, выдумывают всевозможные “формулы” предсказаний будущего, истолкования исторических процессов и т. п.

В зависимости от поставленной задачи, способа создания модели и предметной области различают множество типов моделей.

Существуют общепринятые и широко используемые типы:

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

Компьютер и моделирование

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

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

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

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

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

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

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

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

В данном курсе информационные модели рассматриваются в разделе построения баз данных.

Фундаментальные понятия этих моделей :

объект (нечто, существующее и различимое; например, книга),

атрибут (свойство, характеристика объекта; например, название книги или издание),

значение атрибута (например, “Информатика”).

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

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

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

У конкретной книги каждый из этих атрибутов примет то или иное значение. Например, для книги № 10: название “Анализ финансовых операций” (текст), год издания 1998 (дата) и т. д.

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

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

Для пояснения понятия “алгоритм” важное значение имеет определение понятия “исполнитель алгоритма”. Алгоритм формулируется в расчете на конкретного исполнителя, например человека, особую машину — автомат и т. д.

Алгоритм является руководством к действию для исполнителя, поэтому значение слова “алгоритм” близко по смыслу к значению слов “указание” или “предписание”.

Алгоритм — понятное и точное предписание (указание) исполнителю совершить определенную последовательность действий для достижения указанной цели или решения поставленной задачи.

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

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

СРЕДСТВА ЗАПИСИ АЛГОРИТМОВ

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

Рассмотрим основные средства, используемые для записи алгоритмов.

Словесная запись алгоритма

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

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

Структурные схемы алгоритмов

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

Пример структурной схемы алгоритма Евклида

что такое моделирующий алгоритм. Смотреть фото что такое моделирующий алгоритм. Смотреть картинку что такое моделирующий алгоритм. Картинка про что такое моделирующий алгоритм. Фото что такое моделирующий алгоритм

Для записи внутри блоков команды используется естественный язык с элементами математической символики. В результате проверки условия возникают два возможных пути для продолжения алгоритма. Эти пути изображаются стрелками со знаками “+” и “-” (иногда пишут также “Да” и “Нет”).

Переход по стрелке со знаком “+” происходит, если условие соблюдено, а переход по стрелке “-”, если условие не соблюдено.

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

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

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

алгоритм алгоритм Евклида;

пока первое число не равно второму

иначе определить большее из двух чисел;

заменить большее число на разность большего и меньшего чисел

взять первое число в качестве ответа

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

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

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

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

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

Универсальные языки высокого уровня обеспечивают создание различных программ (задач), например Алгол, Си, ПЛ/1 и т.д..

Например, интересна эволюция языка программирования BASIC. Он был задуман как универсальный язык для начинающих (по аналогии с BASIC ENGLISH, — подмножеством английского языка, выделенным для обучения иностранцев). Первые версии (или “диалекты”) этого языка содержали небольшое количество самых необходимых команд и предусматривали только режим интерпретации. Однако современные варианты языка BASIC не только не уступают по возможностям многим “грандам” (типа С), но иногда и превосходят их. Например, Visual Basic используется в суперсовременных системах, основанных на так называемой технологии “клиент-сервер”. Одновременно BASIC стал своеобразным “эсперанто” в мире информационной технологии. На этом языке часто пишутся примеры программ или их фрагментов в книгах, статьях, инструкциях к программным продуктам.

Фирма Microsoft использует Visual Basic для расширения функций своих программных продуктов. Уже в пакете Microsoft Office для Windows 3-х пользователям и программистам предлагались диалекты Word Basic и Access Basic, а ныне в Microsoft Office предусмотрен универсальный язык Visual Basic for Applications (VBA — Visual Basic для приложений). Ранее этот язык использовался только в Excel 5.0. С помощью VBA можно создавать собственные программные модули, собственные интерфейсы для офисных приложений Word, Excel, Access.

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

Существует два типа программ-трансляторов, работающих с исходными текстами. Программа-компилятор (от слова compile — составлять, собирать) переводит исходный текст в машинный код и записывает его на диск в форме исполняемого (загрузочного) файла. После этого программа выполняется независимо от исходного текста. Раньше программы-компиляторы называли просто и точно — трансляторами (переводчиками).

Программа-интерпретатор всегда работает совместно с исходным текстом. Она разбирает каждую инструкцию исходного текста (интерпретирует ее) и немедленно исполняет (т. е. файл на машинном языке не создается). Программа в режиме интерпретации работает гораздо медленнее, чем такая же программа в машинном коде. Это связано с тем, что каждую инструкцию приходится разбирать во время выполнения (а не заранее, как при компиляции). Многие инструкции в программе выполняются многократно, — и при каждом выполнении интерпретируются заново. Поэтому всюду, где возможно, стремятся заменить режим интерпретации режимом компиляции. Правда, интерпретация имеет и свои преимущества: с ее помощью проще отлаживать программу. Иногда пользуются режимом “псевдокомпиляции”: ускоряют интерпретацию за счет предварительного запоминания тех или иных элементов разобранных команд в памяти машины.

Современное программирование существенно отличается от технологии разработки программ для старых ЭВМ. Среди относительно новых особенностей и направлений этой технологии:

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

Несмотря на существование множества языков программирования, все они, как правило, содержат

Многие языки пользуются похожими принципами организации программ, но —разным синтаксисом.

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

Значение переменной величины может быть изменено с помощью команды присваивания. Например, команда x:=1 означает, что переменной x присваивается значение 1, а команда y:=y+1 — что переменной y присваивается значение, которое на 1 больше ее прежнего значения.

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

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

что такое моделирующий алгоритм. Смотреть фото что такое моделирующий алгоритм. Смотреть картинку что такое моделирующий алгоритм. Картинка про что такое моделирующий алгоритм. Фото что такое моделирующий алгоритм

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

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

что такое моделирующий алгоритм. Смотреть фото что такое моделирующий алгоритм. Смотреть картинку что такое моделирующий алгоритм. Картинка про что такое моделирующий алгоритм. Фото что такое моделирующий алгоритмчто такое моделирующий алгоритм. Смотреть фото что такое моделирующий алгоритм. Смотреть картинку что такое моделирующий алгоритм. Картинка про что такое моделирующий алгоритм. Фото что такое моделирующий алгоритм

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

Действия, указанные после служебных слов то и иначе, могут быть простыми или составными командами. При исполнении команды ветвления выполняется только одно из действий: если условие соблюдено, то выполняется действие 1, в противном случае — действие 2.

В том случае, когда условие соблюдено, продолжение исполнения алгоритма происходит по стрелке “+”, в противном случае — по стрелке “—”.

Команда повторения (цикл)

Рассмотрим два типа команды повторения.

Схема цикла с предусловием

Схема цикла с постусловием

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

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

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

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

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

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

Существует несколько методов проектирования:

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *