Способы записи алгоритмов блок схема алгоритма6

Способы записи алгоритмов блок схема алгоритма6

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

В нашем курсе в качестве такой среды выбрана «Система проектирования и моделирования Stratum-2000». Лабораторные работы и демонстрации, которые вы встретите в курсе, следует запускать как проекты среды Stratum-2000.

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

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

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

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

Программирование — потому что часто модель реализуют на искусственном носителе (пластилин, вода, кирпичи, математические выражения…), а компьютер является одним из самых универсальных носителей информации и притом активным (имитирует пластилин, воду, кирпичи, считает математические выражения и т. д.). Программирование есть способ изложения алгоритма в языковой форме. Алгоритм — один из способов представления (отражения) мысли, процесса, явления в искусственной вычислительной среде, которой является компьютер (фон-Неймановской архитектуры). Специфика алгоритма состоит в отражении последовательности действий. Моделирование может использовать программирование, если моделируемый объект легко описать с точки зрения его поведения. Если легче описать свойства объекта, то использовать программирование затруднительно. Если моделирующая среда построена не на основе фон-Неймановской архитектуры, программирование практически бесполезно.

Какова разница между алгоритмом и моделью?

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

Итак:

модель + вопрос + дополнительные условия = задача.

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

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

Проектирование — процесс создания объекта и его модели; моделирование — способ оценки результата проектирования; моделирования без проектирования не существует.

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

Рядом стоят дисциплины «Компьютерная графика» и «Модели и методы искусственного интеллекта» (см. рис. 1.4).

[ Рис. 1.4. Основные подсистемы при проектировании комплексных моделей ] Рис. 1.4. Основные подсистемы при проектировании комплексных моделей

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

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

Заметим, что искусственный интеллект — достаточно большая модель, которая содержит обширную информацию об окружающем мире и мета-модели, умеющие её достраивать. Мета-модели имеют большое подобие с имитируемым ими человеком.

В зависимости от носителя различают модели: натурные, мысленные, математические, имитационные, графические, фотографические и так далее. Каждая из моделей обладает различной способностью к прогнозу свойств объекта. Например, по фотографии человека в анфас вряд ли можно верно представить, как выглядит его затылок. Приближение в виде трёхмерной модели — намного лучше, но можно ли с её помощью определить, когда, например, у виртуального человека вырастут волосы длиной 50 см? Имитационная модель ещё более информативна. Но наибольшей ценностью обладают модели, пригодные для решения задач, то есть обладающие прогностическими свойствами, умеющие отвечать на вопросы. Следует различать два понятия — «модель» и «задача». Модель связывает переменные между собой законами. Эти законы действуют независимо от того, какая сейчас задача стоит перед нами. Модель объективна, она подобна миру, который нас окружает, и содержит в себе информацию об этом. Структура мира (в общем смысле) неизменна, фундаментальна, модель, следовательно, тоже. А человек, как существо субъективное, имеющее собственные цели, часто меняющиеся желания, ставит, в зависимости от своих потребностей, каждый раз новые задачи, требует решить возникающие у него проблемы. Он ставит вопросы к окружающему миру, с законами которого нельзя не считаться. Удобно ставить вопросы к модели, которая содержит нужную информацию о мире. Поэтому задача — это совокупность вопроса и модели. Можно к модели задавать все новые и новые вопросы и при этом не менять модель, но менять задачу.

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

Рассмотрим пример.

Модель падения тела под углом к горизонту содержит информацию о координатах траектории, заданных в осях (x, y): y = –x2 + 4 · x – 3 (координаты тела в полете) — см. рис. 1.5.

[ Рис. 1.5. Траектория движения тела, брошенного под углом к горизонту ] Рис. 1.5. Траектория движения тела,
брошенного под углом к горизонту

Модель связывает две переменные y и x законом f(y, x) = 0. Модель может быть расширена некоторыми исходными данными, например, так: y = –x2 + 4 · x – 3, y = 0 (интересуют не все возможные значения y, а только точки на поверхности Земли).

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

Вопрос: x = ?

Теперь модель и вопрос вместе образовали задачу:

y = –x2 + 4 · x – 3,
y = 0,
x = ?

Трактовать задачу можно так: при каких значениях x тело окажется на поверхности Земли?

Модель подразумевает, что исследователь может решать с её помощью прямые и обратные задачи.

Прямая задача не требует алгебраических преобразований, достаточно только арифметических подстановок: x = 2, y = –x2 + 4 · x – 3, y = ?. Ответ: y = 1. То есть, если на вход модели подать значение 2, то на выходе модели будет значение 1 — см. рис. 1.6.

[ Рис. 1.6. Вид модели для решения прямой задачи ] Рис. 1.6. Вид модели для решения прямой задачи

Обратная задача: y = 0, y = –x2 + 4 · x – 3, x = ? Ответ: x = 1, x = 3. То есть ответ говорит: чтобы на выходе модели обеспечить значение 0, надо, чтобы на вход модели было подано значение 1 (или 3).

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

В первом варианте y := –x2 + 4 · x – 3.

Во втором варианте модель преобразуется к виду: 0 = –x2 + 4 · x – 3. Здесь мы опустили ряд преобразований, известных из курса средней школы, а именно:

D := b2 – 4 · a · c, где a = –1, b = 4, c = –3.
x := (–b ± sqrt(D))/(2 · a).
x := 1 или x := 3.

Преобразования происходили с учётом правил алгебры. Если бы правила алгебры были нам неизвестны, то решить обратную задачу нам бы не удалось. А значит, не удалось бы ответить на поставленный вопрос: «x = ?».

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

Сравните: телефонный справочник — это тоже своеобразная модель, но какие прогнозы вы можете сделать, какие обратные задачи решить? Как вычислить фамилию абонента по номеру телефона? Какую алгебру вы используете?

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

Ещё один тип задач, который приходится решать на моделях — задачи настройки модели.

Приведём пример. При каких значениях параметра a модель y = a · x2 + 4 · x – 3 обеспечит y = 9 при x = 2? Решаем систему уравнений:

y = a · x2 + 4 · x – 3
y = 9
x = 2

или

9 = a · 22 + 4 · 2 – 3

Далее, по правилам арифметики и алгебры, получим ответ: a = 1.

От показанного на рис. 1.7 структурного изображения модели можно перейти к другому, математическому, её виду: Y = M(X).

[ Рис. 1.7. Структурное изображение модели в среде моделирования ] Рис. 1.7. Структурное изображение
модели в среде моделирования

Модель — закономерность, преобразующая входные значения в выходные. А как известно из математики, с выражением Y = M(X) можно решить три вида задач, которые приведены в табл. 1.1.

Таблица 1.1.
Формы записи модели и типы решаемых задач Известно Неизвестно Решение Прямая задача X, M Y Y = M(X) Обратная задача Y, M X X = M –1(Y) Задача настройки модели X, Y M M = f(X, Y)

Ряд моделей может быть недоопределён — это означает, что вариантов ответов много (два, три, сто или бесконечное множество). Если нужен один ответ, то проблему надо доопределять, дополнять условиями. «Недоопределён» означает, что можно произвольно, кроме гипотез, законов, ответа, потребовать дополнительно выполнение ещё каких-то условий. Возможно, при построении модели что-то не было учтено, не хватает каких-то законов. Рецепт понятен: модель надо достроить. Но может быть и по-другому. Решений много и есть, видимо, лучшие решения, и есть похуже. Тогда для нахождения лучшего решения следует сузить область решений, накладывая определённые ограничения, чтобы отсеять остальные. Такие задачи часто называют задачами управления.

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

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

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

Пример. Модель: y = –x2 + 4 · x – 3. Вопрос: x = ? Доопределение модели: y должен быть максимизирован, x ≥ 2.5. Так как y должен быть максимизирован, то мы должны стараться двигаться вверх вдоль графика функции (рис. 1.8) и следить, чтобы значение x не стало меньше 2.5. Как видно из рисунка, значение y станет максимальным при x = 2.5. Ответ: y = 0.75, x = 2.5.

[ Рис. 1.8. Графическая иллюстрация решения задачи с ограничениями ] Рис. 1.8. Графическая иллюстрация
решения задачи с ограничениями

Отметим, что создать модель бывает проще, чем сразу дать себе ответ на интересующий вопрос. Наверное, на практике вы замечали, что часто гораздо проще составить уравнения, чем угадать решение задачи. Например: решено разделить огромный шар размером с Землю на две половинки, полученную половинку снова поделить пополам и так далее. Попробуйте ответить на вопрос: сколько раз (n) надо провести такую операцию, чтобы размер делимой частички в результате достиг размера атома? Наверняка, сразу ответить на этот вопрос не удастся, интуиция подводит, придётся составить модель.

Пусть D = 6 400 км = 6 400 000 м — диаметр шара (Земли), а d = 10–9 м — диаметр атома. Тогда модель есть выражение: 2n = D/d или 2n = 6 400 000/10–9. Отсюда получаем: 2n = 6.4 · 1015 или n = log2(6.4 · 1015). Итак, приближённо, n = 53. Неожиданный результат, не правда ли?! Можно ли было его предугадать?

Ещё несколько примеров. Тривиальные модели: x = 5°; телефон друга Сидорова — 912–36–54. Такие модели не несут в себе прогностических свойств, поскольку на основе известной информации невозможно вычислить каким-либо образом другую информацию. Зная телефон одного друга Сидорова, невозможно вычислить телефон другого его друга. Это так называемые пра-модели (pra-model). Фактически это данные.

Заметим, что недооценка в современных условиях понятия моделирования ведёт к использованию в АРМах коммерческого назначения только данных. Именно поэтому такие АРМы не способны решать прогностические задачи и решают, в основном, только учётные задачи (см. рис. 1.9).

  [ Рис. 1.9. Типовая схема взаимодействия АРМов в АСУ (без решения задач прогнозирования) ] Рис. 1.9. Типовая схема взаимодействия АРМов в АСУ
(без решения задач прогнозирования)

Чтобы проиграть ситуацию на предприятии на будущее, узнать, к чему приведёт то или иное решение, следует в состав АРМов включать модели (см. рис. 1.10).

[ Рис. 1.10. Схема взаимодействия АРМов в АСУ (при постановке задач прогнозирования) ] Рис. 1.10. Схема взаимодействия АРМов в АСУ
(при постановке задач прогнозирования)

На рис. 1.11 показана пирамида моделей, различных по степени прогностичности.

[ Рис. 1.11. Соотношение типов моделей по степени прогностичности ] Рис. 1.11. Соотношение типов моделей
по степени прогностичности

Обратите внимание: уровень «Модель» «питается» информацией, структурированной по типу предыдущего уровня «Пра-модель», то есть она потребляет на входе данные, перерабатывает их и возвращает тоже данные, то есть модели более низкого уровня (пра-модели). Подчеркнём ещё раз, что данные — это тоже модели! Уровень «Супра-модель» потребляет на входе модели в виде объектов и операций, перерабатывает их и возвращает модели (примером таких супра-моделей могут служить грамматики, способные преобразовывать модели (уравнения). Более детально см. рис. 1.12). Данный принцип справедлив и для всех последующих (вышестоящих) уровней. Пирамида на рис. 1.11 представлена в виде функциональных уровней; это означает, что каждый последующий уровень мощнее предыдущего, то есть он позволяет получить больший, более мощный качественный результат.

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

Модели могут быть:

феноменологические и абстрактные; активные и пассивные; статические и динамические; дискретные и непрерывные; детерминированные и стохастические; функциональные и объектные.

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

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

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

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

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

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

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

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

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

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

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

[ Рис. 1.13. Схема процесса моделирования (уточнённый вариант) ] Рис. 1.13. Схема процесса моделирования (уточнённый вариант)

На рис. 1.15 представлены этапы построения модели.

[ Рис. 1.15. Этапы процесса моделирования ] Рис. 1.15. Этапы процесса моделирования

Спираль, которая была рассмотрена на рис. 1.3, представлена на рис. 1.15 как виток. Но обратите внимание на возможность возвращения с каждого этапа на более ранний (или более ранние) при обнаружении ошибки. Спираль имеет достаточно сложный вид, прошита дополнительными связями.

Общее описание технологии моделирования расположено в файле справки системы «Stratum-2000» в разделе «Теория моделирования» («Помощь» > «Теория моделирования»). Сначала данный раздел стоит прочитать бегло, а затем подробно — после того, как вы усвоите весь курс и накопите опыт описания объектов на примерах и опыте, приобретённом в ходе выполнения курсовой работы.

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

Здесь можно упомянуть два направления. Первое — инструментальное. Проектировщику необходим инструмент для формального описания рассматриваемого им объекта. Известно несколько таких инструментов: RationalRose, «Аналитик», IDEF по технологии SADT, Stratum. Есть инструменты, подсказывающие решения, есть просто пассивные наборы, библиотеки. Одним из инструментов нахождения решений является технология АЛРИЗ; следуя её алгоритму, отвечая на вопросы этой технологии, можно гарантированно придти к решению.

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

В качестве примера посмотрим, как можно обнаружить, а потом описать закономерность.

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

Попробуем решить эту задачу вручную.

[ Рис. 1.16. Задача о разрезании фигуры на заданное число кусков ] Рис. 1.16. Задача о разрезании фигуры на заданное число кусков

Из рис. 1.16 видно, что при 0 разрезах образуется 1 кусок, при 1 разрезе образуется 2 куска, при двух — 4, при трёх — 7, при четырёх — 11. Можете ли вы сейчас сказать наперёд, сколько потребуется разрезов для образования, например, 821 куска? По-моему, нет! Почему вы затрудняетесь? — Вам неизвестна закономерность K = f(P), где K — количество кусков, P — количество разрезов. Как обнаружить закономерность?

Составим таблицу, связывающую известные нам числа кусков и разрезов.

Таблица 1.2.
Таблица соответствия разрезов
и получающихся фрагментов фигуры Разрезы 0 1 2 3 4 … Куски 1 2 4 7 11 …

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

Таблица 1.3.
Таблица соответствия разрезов
и получающихся фрагментов фигуры Разрезы 0 1 2 3 4 … Куски 1 2 4 7 11 … Первые разности – 1 = 2 – 1 2 = 4 – 2 3 = 7 – 4 4 = 11 – 7 … …

Уже кое-какая закономерность проявилась, не правда ли?

Вычислим вторые разности.

Таблица 1.4.
Таблица соответствия разрезов
и получающихся фрагментов фигуры Разрезы 0 1 2 3 4 … Куски 1 2 4 7 11 … Первые разности – 1 = 2 – 1 2 = 4 – 2 3 = 7 – 4 4 = 11 – 7 … … Вторые разности – 1 = 2 – 1 1 = 3 – 2 1 = 4 – 3 … …

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

Теперь все просто. Функция f называется производящей функцией. Если она линейна, то первые разности равны между собой. Если она квадратичная, то вторые разности равны между собой. И так далее.

Функция f есть частный случай формулы Ньютона:

[ Формула 01 ]

Коэффициенты a, b, c, d, e для нашей квадратичной функции f находятся в первых ячейках строк экспериментальной таблицы 1.5.

Таблица 1.5.
Таблица соответствия разрезов
и получающихся фрагментов фигуры Разрезы 0 1 2 3 4 … Куски a = 1 2 4 7 11 … Первые разности – b = 1 2 = 4 – 2 3 = 7 – 4 4 = 11 – 7 … … Вторые разности – c = 1 1 = 3 – 2 1 = 4 – 3 … …

Итак, закономерность есть, и она такова:

K = a + b · p + c · p · (p – 1)/2 = 1 + p + p · (p – 1)/2 = 0.5 · p2 + 0.5 · p + 1.

Теперь, когда закономерность определена, можно решить обратную задачу и ответить на поставленный вопрос: сколько надо выполнить разрезов, чтобы получить 821 кусок? K = 821, K = 0.5 · p2 + 0.5 · p + 1, p = ?

Решаем квадратное уравнение 821 = 0.5 · p2 + 0.5 · p + 1, находим корни: p = 40.

Подведём итоги (обратите на это внимание!).

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

И ещё очень важно отметить, что модель отражает причинно-следственные связи. Между переменными построенной модели действительно есть крепкая связь. Изменение одной переменной влечёт за собой изменение другой. Мы ранее сказали, что «модель играет системообразующую и смыслообразующую роль в научном познании, позволяет понять явление, структуру изучаемого объекта, установить связь причины и следствия между собой». Это означает, что модель позволяет определить причины явлений, характер взаимодействия её составляющих. Модель связывает причины и следствия через законы, то есть переменные связываются между собой через уравнения или выражения.

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

Итак, гипотезу о связи переменных А и В надо вносить самому исследователю, извне, сверх того. А как это делает человек? Посоветовать внести гипотезу легко, но как научить этому, объяснить это действо, а значит, опять-таки как его формализовать? Подробно мы покажем это в будущем курсе «Моделирование систем искусственного интеллекта».

А вот почему это надо делать извне, отдельно, дополнительно и сверх того, поясним сейчас. Носит это рассуждение имя Геделя, который доказал теорему о неполноте — нельзя доказать правильность некоторой теории (модели) в рамках этой же теории (модели). Посмотрите ещё раз на рис. 1.12. Модель более высокого уровня преобразует эквивалентно модель более низкого уровня из одного вида в другой. Или генерирует модель более низкого уровня по эквивалентному опять же её описанию. А вот саму себя она преобразовать не может. Модель строит модель. И эта пирамида моделей (теорий) бесконечна.

А пока, чтобы «не подорваться на ерунде», вам надо быть настороже и проверять все здравым смыслом. Приведём пример, старую известную шутку из фольклора физиков.


Способы записи алгоритмов блок схема алгоритма6

Похожие записи:



Вязание на очень полных

Открытки для молодого папы

Колье для вышивки бисером