Оглавление
Нач.   Огл.   Авт.   Л 01   Л 02   Л 03   Л 04

Практическое занятие 3

«Автопрограммирование. Модели и алгоритмы»

«Машина из бусинок»

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

Рисунок – Часть дерева игры «крестики-нолики». Полное дерево содержит 9!=362 880 узлов или 60 000 с учетом симметричных позиций
Рисунок – Кембридж. Студенты провели эксперимент по обучению стены-«машины» игре в «крестики-нолики»

К каждому узлу дерева подклеена коробочка для хранения бусинок (в нотации программирования - счетчик). В начале обучения количество бусинок в каждой коробочке одинаково, например, 1000. Поэтому на каждом уровне игры любое ее продолжение – выбор одной вершины дерева из возможных в данном ярусе – равновероятен. Представим, что Человек и «стена» играют в игру. Человек делает ходы из собственных соображений, а Стена, равновероятно выбирая очередной ход из возможных. То есть выбор Стены в качестве ответа хода – случаен. Но так происходит только в начале.

Допустим, что в результате первой игры Стена проиграла. Очевидно, что траектория (переходы от вершины к вершине от яруса к ярусу) этой игры уже известна. Извлекаем из всех узлов на этой «проигрышной» траектории по 10 бусинок из каждой коробочки. И помещаем случайно по одной бусинке в остальные коробочки данного ряда (яруса). Этим мы имитируем наказание траектории за проигрыш.

Во время второй игры Стена делает очередной свой ход случайно, но вероятности продолжения разных ветвей уже будут различны. Так, например, в какой-то момент возможно продолжение игры 6 ветвями. В коробочке, начинающей одну ветвь, бусинок меньше – 990 (виноватая коробочка), в других по 1002. Всего бусинок в 6 коробочках 6000. Если отложить на оси [0,1] интервалы длиной 990/6000, 1002/6000, 1002/6000 и так далее, то этими интервалами мы покроем весь промежуток от 0 до 1. Далее следует разыграть случайное число от 0 до 1, и оно укажет на определенный интервал. Этот ход и предстоит сделать машине, то есть Стене.

Рисунок – Генератор равномерно распределенных случайных чисел укажет на выпавшее случайное событие из полной группы несовместных случайных событий

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

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

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

В итоге, как говорит нам об этом эксперименте исторический пример, сыграв 220 партий, Стена (Интеллект) выиграла у Человека (группы студентов) матч со счетом 44:176 !!!!

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

Рисунок – Поле игры в шашки
Рисунок – График «Статистика игры» самообучающейся машины из бусинок в шашки

Важный вывод

В описанном методе реализуется в полной мере следующая идея.

Наблюдая за частными реализациями, стараемся выловить в них сходство и закономерность. Счетчики накапливают «за» и «против». То есть на первом этапе по данным D строится модель М. Причем модель — это не отдельная траектория, не частный случай, а общая закономерность, помогающая принимать решения во множестве новых случаев, которые ранее при обучении не встречались. По мере настройки модели на лучший вариант ее можно использовать для новых случаев. Можно сказать, что модель М порождает новые данные D’, отличные от исходных, которые использовались для ее построения (второй этап), предсказывает новые данные.

Первый этап называется построение модели по данным, обобщение.

Второй этап – прогноз новых данных по модели, предсказание, экспертиза.

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

Запомните! Формула искусственного интеллекта:

1. D -> M (обобщение, построение модели)

2. M -> D’ (прогноз новых данных)

(3). Оба этапа взаимосвязаны: 1->2 и 2->1

Внимание! Повторите понятия модели, данных, задачи, метода и алгоритма. Сформулируйте отличие модели от данных.

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

Данные – факты. Из данных не следуют новые данные. Функция прогнозирования у данных отсутствует.

«Универсальный решатель задач».

От понятий, законов, гипотез и вопросов к ответам (модель – задача – алгоритм – решение – ответ).

Свойства и понятия

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

Если предмет одновременно И зеленый, И круглый, то его следует поместить одновременно и в зеленый, и в синий круг. В это место попали {арбуз, капуста, яблоко}.

Если предмет одновременно И круглый, И мягкий, то его следует поместить одновременно и в синий, и в красный круг. В это место попали {яблоко, шляпа}. И так далее.

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

Рисунок – Теоретико-множественное представление кругами Эйлера-Венна процесса выявления понятий из свойств

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

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

Рисунок – Закон «Содержание понятия обратно пропорционально объему понятия»

Математик запишет эту мысль так:

яблоко = ((цвет = зеленый)&(вкус = сладкий)&(форма_сечения = круг)&(твердость = мягкое)).

Разберем эту запись.

Она состоит из условий типа: (цвет = зеленый) или (твердость = мягкое). Здесь могут использоваться также знаки ‘<’ и ‘>’, например, (твердость >= мягкое).

Каждое из условий, например, условие (вкус = сладкий) возвращает 1, если оно выполняется (если вкус предмета действительно сладкий), и 0, если условие не выполняется (вкус предмета, например, кислый).

Таким образом, каждое условие нашей записи возвращает 1 или 0.

Условия соединяются знаками логических операций. Всего их три (основных): И, ИЛИ, НЕ.

В математике их соответственно обозначают: &, |, ! или словами and, or, not.

Таблица – Обозначения и содержание основных логических операций

Переменная «яблоко» будет принимать значение:

- 1 (то есть это действительно яблоко), если выполнятся все указанные условия,

- 0 (этот объект - не яблоко), если хотя бы одно условие не выполнится.

Для подсчета результата мы здесь использовали свойство знака «И» (в математике также используют знак «&»): 1&1=1, 1&0=0, 0&1=0, 0&0=0 – результат принимает значение 1 тогда и только тогда, когда оба сомножителя одновременно равны 1: и первый, и второй.

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

Заметим, что в составе записи условий инженеры также применяют широко известные знаки +, -, *, /, <, >, =, числа и функции.

Приведем еще раз запись в еще более точной нотации.

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

Понятие = ’яблоко’*(RGB = (0,255,0))*(Taste = (0,0,255,10)*(Config = ((x*x+y*y) <= r*r))*(Hardness <= 3)) +’дыня’*(RGB = (255,255,128))*(Taste = (0,0,255,0)*(Config = ((x*x+y*y) <= r*r))*(Hardness < 2))

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

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

Например, выражение (Hardness <= 3) - это вариант более общей типовой строгой конструкции

one(Признак = Свойство),

где one(x) – единичная функция Хэвисайда, которая возвращает 0, если условие в скобках не выполнено, и 1, если условие выполнено. В программировании функция Хэвисайда соответствует конструкции IF_THEN_ELSE.

Рисунок – Алгоритмическое представление единичной функции Хэвисайда

График такой функции приведен на рисунке, а также ее использование без знака неравенства и вид в условии one(Hardness <= 3) = one(3 - Hardness).

Рисунок – Графическое представление единичной функции Хэвисайда

Знак + можно заменить знаком логического сложения ИЛИ, |.

Приведем свойства знака «ИЛИ» (в математике используют также знак «|»): 1|1 = 1, 0|1 = 1, 1|0 = 1, 0|0 = 0 – результат принимает значение 1 тогда и только тогда, когда хотя бы одно из слагаемых равен 1: или первое, или второе.

Некоторые свойства являются более сложными, составными, например, цвет. Принято описывать цвет как смесь трех базовых цветов – красного R, зеленого G и синего B. В информатике принято, что максимальное количество отдельной составляющей цвета равно 255, а минимальное – 0. Указав, сколько того или иного базового цвета в смеси, можно указать код любого цвета. Например, так (RGB = (120, 255, 50)).

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

Понятие = Sum(1, i, n, Элементi*Multy(1, j, m, (Условиеj(Признакj = Свойство)))),

где Multy – знак логического умножения И или в случае аналоговых переменных знак *, Sum – знак логического сложения ИЛИ или в случае аналоговых переменных знак +, которые надо применить несколько раз.

Запись Sum(1, i, n, аi) означает: a1 + a2 + a3 + … + an ,

Multy(1, j, m, aj) означает: a1 * a2 * a3 * … * am.

Обратите внимание!.

Мир представлен триадами: «свойства – элементы – связи». Поясним: свойства определяют элементы, элементы связываются, взаимодействуют между собой. Как только где-то из свойств образовался элемент (сущность), то это означает, что такая сущность может образоваться еще где-то. Две сущности вынуждены взаимодействовать между собой. Например, место, занятое одной планетой, не может быть занято другой планетой и этот конфликт надо как-то разрешить действием. Взаимодействие – это связь.

Если мы захотим передать эту мысль еще более общими словами, то «признаки – классы – отношения».

Рисунок – Схема всемирной таблицы элементов и систем

Также как свойства – это конкретные значения признака, а элементы – конкретные экземпляры классов, операции – это конкретные примеры отношений.

Мы знаем отношения эквивалентности, линейного или строгого порядка и другие.

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

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

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

С появлением системы и ее нового системного свойства триада «свойства – элементы – связи» повторяется сначала, но на новом уровне. Снова и снова: … - «свойства – элементы – связи (система)» - «свойства – элементы – связи (система)» - «свойства – элементы – связи (система)» - … . Каждая новая триада определяет следующий уровень организации материи. Например, точки, линии, плоские фигуры или плоскости, объемные тела или объемы и так далее.

Разумеется, данную бесконечную цепь можно условно начать описывать с любого ее звена, например, элемента. Так сделал Евклид в своих «Началах». Построение дерева геометрии он начал с введения точки, постепенно через операции движения образовав линию, плоскость и так далее.

Так по одной и той же схеме постепенно вырастает иерархия понятий.

Так устроен мир.

Модель

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

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

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

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

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

Например, модель сложного понятия «треугольник» может содержать в себе 16 и более элементарных понятий (медианы, стороны, углы, высоты), связанных между собой множеством уравнений.

Таблица элементов

Таблица связей элементов - понятия и законы предметной области «треугольник»

При желании, подставив уравнения последовательно одно в другое, можно получить уравнение системы:

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

Для данного примера, если нечто связывает так значения переменных-понятий между собой, что выполняется условие уравнения правой R*a*b*c*sin(α)*sin(β)*sin(γ) и левой (S*r*P) его части, то это нечто – треугольник.

Если два закона имеют в своей записи одинаковую переменную, то их для наглядности можно соединить связью (линией), а связь назвать именем этой переменной. При этом каждый закон удобно обозначить как вершину. На нашем рисунке закон соответствует 31 вершине. Соединив все законы треугольника в одну сеть, связанными между собой вершинами, мы можем получить определение сложного понятия. (На нашем рисунке сеть представляет новое сложное составное понятие «треугольник»). Такая сеть называется графом. В данном случае, так как направление связей не задано, то это граф модели. Заметим, ненаправленный граф. В IT такую конструкцию принято называть фреймом.

Рисунок – Граф законов предметной области «треугольник», представлены элементы и связи.
Граф – система из элементов, соединенных связями

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

Рисунок – Пример графа предметной области «Химия»

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

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

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

То есть задача – это модель + гипотеза + вопрос.

Гипотезы обычно формулируются в задачах после слова «дано», а вопрос обозначается словом «найти». Общие законы (модели понятий) приводятся в учебниках и справочниках и подбираются решателем из памяти по упомянутым в задаче понятиям. Гипотезы привносятся из вне, как дополнительные условия (например, a = 5 или сумма двух сторон a и b треугольника равна 7).

Рисунок – Типовой вид задачи

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

Граф задачи - ориентированный граф, у которого задано направление связей (от известных величин к неизвестным). Решательsolver») устанавливает (ищет) такие направления связей на неориентированном графе модели, при которых можно найти путь от известных величин к неизвестным. Такая цепь преобразований, после того как она построена, называется алгоритмом решения задачи. Алгоритм указывает на порядок действий, приводящий к ответу задачи, который вычисляется калькуляторомcalculator»). Такой порядок имеет четкое направление. На рисунке порядок решения нашей задачи обозначен стрелками, согласно которым из общего графа выделяется путь от известных величин к неизвестным.

Таблица – Соотношение свойств, элементов и связей

Системное понятие Математический конструкт Вербальный конструкт Пример
Свойство Арифметические константы, экземпляры Прилагательные, значения полей базы данных, ощущения 5, -100, легкий, солнечно
Переменная, признак Переменные, алгебраические буквенные знаки Понятия, сущности, существительные X, масса
Сложная переменная Структуры, записи Сложные понятия, записи базы данных, восприятия, образы, представления Цвет = (R,G,B), (0,1,1,0,2), скорость, вектор, 5+3i, координаты точки (10,-15), нормаль к плоскости (2,5,-10), треугольник
Операция Знаки операций, элементарные функции Действия, глаголы, связи, союзы +, -, *, /, ^, max, log(x,2), one(x), add(x,y), multi(x,y), &, склеить, пересечь, добавить, Не, И, ИЛИ, сложить
Выражение Функции, алгебраические выражения Утверждения, присвоения, как частный вид уравнения в явном виде, «это» a+b, (q-5s)/(2+s), Sin(x), sin(2x)/x-15, У Маши и Пети 5 яблок, x:=m+n/3, ворон – это птица
Уравнивание (или знак неравенства) Знак операции уравнивания, знак причинно-следственной связи Если…то, тогда и только тогда, следует, связь =, ≠,<>, <, >, ≈, ≡
Уравнение Уравнение, закон, закономерность, неравенство Закон, «если…то», отношение, суждение, частный вид (результат) умозаключения, элемент, знание, предложение, мысль F=m*a, I=U/R, х+2>10, F(x,y)=0, f(x)=g(x), Мама мыла раму, третий закон Ньютона
Система уравнений Система уравнений и (или) неравенств Системы, графы, технические схемы, неориентированные графы, абзацы, тексты, устройства (a+b=5)&(a-b=10), паровоз, триггер, схема телевизора, сказка «Красная Шапочка»
Алгоритм Сложная вложенная функция Цепочка вычислений неизвестных по известным заданным величинам, ориентированный граф, решение задачи, умение Z:=f(g(s(x,y))) Y:=sqrt(sin(one(x)))
Модус Modus ponens, modus tollens, правила алгебры Умозаключения – результат применения модуса, правило вывода, обобщение, индукция, дедукция A, A->B, » B Если «Идет дождь, то мокро» И «Идет дождь, то «Мокро». Так как не «мокро», то «дождь не идет». а+и=и+а

Таблица – Соотношение модели, задачи и алгоритма

Конструкт На математическом языке На языке графов
Модель Уравнения, равновесие правой и левой части, причинно-следственная связь. Неориентированный граф, знания Закон, система законов, равновесие, система связанных элементов
Задача Модель, дополненная гипотезами и вопросом. Система уравнений в неявном виде. Ориентированный граф, направление связей графа упорядочено от известных величин к неизвестным, умение Схема устройства, имеющая вход и выход
Алгоритм Модель, разрешенная алгеброй относительно неизвестных и выписанная в явном виде: «Неизвестное:=F(Известные)» Ориентированный граф в ярусно-параллельной форме, навык Упорядоченная последовательность действий, приводящая к ответу на вопрос
Программа Модель в явном виде, записанная на языке исполнителя. Формула системы, разрешенная относительно неизвестных, выраженная в алфавите языка исполнителя. Алгоритмическая инструкция на оговоренном языке исполнителя для вычисления свойств системы
Рисунок – Два варианта интерфейса интеллектуальной системы, решающей задачи

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

Умениями – способность составлять и решать задачи, преобразуя модели в алгоритмы.

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

Способ записи моделей и задач

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

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

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

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

Конструкция «если сейчас идет дождь, то мы не идем в парк» - закон, уравнение, составленное из двух выражений, соединяющих две мысли. Такая конструкция называется умозаключением. Зная истинность одной мысли, можно прийти к заключению об истинности другой, - сделать прогноз на основе заданного умозаключения. Логическая операция «если, то» в дальнейшем заменяется на один из знаков семейства «=»: знак равенства, уравнивания, тождества, эквивалентности, примерно, присвоения, следования. Конкретный знак выбирается из соображений: в какую сторону (в одну, в обе, всегда, иногда, с задержкой, немедленно, … ) выполняется эта конструкция. В исключительных случаях, когда строгий порядок объектов или событий не может быть установлен, могут появляться знаки <, >.

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

Существительные превращаются в признаки объектов, характеризуя элементы, которые обозначаются как переменные. Например, вес W, длина стороны a, объем V, цвет (R, G, B).

Прилагательные - в свойства, которые выражаются числами: W = 2, a = 500, V = 17, (R, G, B) = (255, 0, 0) и указывают на количественную сторону: легкий, длинный, большой, красный.

Глаголы – в связи, которые выражаются знаками математических операций (+, -, *, /), действия.

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

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

Существительное, прилагательное, глагол – грамматические категории.

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

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

Символы обычно обозначают признаки сущностей: x (длина отрезка), то есть сущность – отрезок, признак – его длина, y (диаметр детали), то есть сущность - деталь, признак – ее диаметр. Признаки и сущности в нашем языке обычно обозначаются именами существительными. Под знаками обычно понимают действия с сущностями: + (сложить), * (умножить). Действия в нашем языке обычно обозначаются глаголами.

Знак плюс в более-менее современном виде появляется в записях примерно около 1500 года. Сам знак появляется постепенно: 5 и 2, 5&2, трансформация знака & приводит к знаку [ ], и, наконец, +, как мы его знаем.

Символы могут принимать различные значения, обозначающие конкретные свойства объектов. Например, x = 5 (короткий отрезок). Свойства в нашей речи обычно обозначаются именами прилагательными (короткий, легкий, красный). Для определенности свойства в математике выражают числами. Число позволяет соразмерить свойства разных объектов. Например, если x = 5, а y = 3, то поезд x длиннее поезда y. При этом в задаче оговаривается, что x и y обозначают признак длины двух разных поездов.

Символы обозначают понятия.

Выражения составляются из символов, соединенных знаками. Например, a + b, s*(x + b) + 7. Выражения, соединенные знаком уравнивания «=», называются уравнением. Одно уравнение соответствует одной фразе, которая передает некоторую сложную мысль из нескольких, формулируемых в задаче.

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

Уравнение – это закон, в котором соединены причина (одно выражение) и следствие (второе выражение).

Уравнение – это мысль, суждение.

Относительно уравнения всегда можно сказать - истинно оно или ложно – при определенных исходных посылках оно истинно, а при определенных - ложно.

Пример мысли, выраженной в виде закона: «если заданы три угла в треугольнике (причина) и их сумма, то эта сумма обязательно равна 180 градусов (следствие)», составленного из двух выражений: «заданы три угла в треугольнике в виде суммы» и «эта сумма углов обязательно равна 180 градусов». Выражения соединены связкой «если, то».

Или та же мысль, но уже записанная в виде математического уравнения: α + β + γ = 180, где введены краткие обозначения-символы: (α, β, γ) – углы, соединенные знаками математических операций (+). А два выражения соединены знаком причинно-следственной связи «=».

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

Примечание. Бывают случаи, когда уравнения не верны, но тогда эти случаи обычно специально оговаривают.

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

Правила преобразования – частные случаи модуса (modus ponens, modus tollens).

Пример.

Modus ponens: A, A->B » B..

Например, A – «идет дождь», B – «земля мокрая». Тогда {«идет дождь»; ЕСЛИ «идет дождь», ТО «земля мокрая»}. Значит, «земля мокрая».

Однако, обратное не обязательно верно: если «земля мокрая», то не значит, что «идет дождь». На то могут быть другие причины – «разлили ведро воды».

Modus tollens: НЕ В, A->B » НЕ А..

Например, { НЕ верно, что «земля мокрая»; ЕСЛИ «идет дождь», ТО «земля мокрая»}. Значит, «дождь НЕ идет».

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

Например, при помощи алгебраического правила «уравнения x = y + b и x - b = y эквивалентны» уравнение a + b + c = 180 можно представить в виде: a = 180 - (b + c).

На рисунке приведен пример постепенной формализации языка описания моделей.

Рисунок – Постепенное изменение формальной записи

Алгебра как способ преобразования математических выражений

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

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

«Именно математика дает надежнейшие правила: кто им следует – тому не опасен обман чувств» (Л. Эйлер).

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

«Пока алгебра и геометрия развивались врозь, их прогресс был медленным, применение – ограниченным; когда же эти две науки были соединены, они стали помогать друг другу и быстро шагать к совершенству». (Ж.Л. Лагранж)

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

Примечание. Математика продолжает развиваться, поскольку не для всех математических знаков пока определены обратные. Например, знак «->extr» обратного для себя знака пока не имеет. Поэтому решение экстремальных задач производится неявным образом, с использованием косвенных признаков. Например, «производная функции в точке экстремума равна нулю». Не имеет пока своего символа переопределенная система уравнений и так далее.

Иерархия понятий. Система. Представление системы в графическом виде. Граф

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

Надо только собрать систему уравнений и решить ее стандартным способом.

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

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

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

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

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

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

Элементарные понятия в целостном сложном объекте связаны друг с другом определенными законами и соотношениями.

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

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

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

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

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

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

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

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

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

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

На рисунке показана пара вершин графа с принадлежащими им связями.

Рисунок – Две вершины, символизирующие законы и используемые ими переменные

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

Рисунок – Две вершины связаны в граф общей переменной

Граф не обязательно рисовать. Граф может быть задан таблицей отношений вершин, то есть перечислением его вершин и указанием, какие из них должны быть связаны между собой. Например, используем 13 следующих вершин графа: 1, 2, 3, 8, 9, 11, 12, 13, 16, 17, 18, 19, 20.

Рисунок – Список уранений, предполагаемых для решения задачи

Укажем связи переменных и вершин (законов) матричным способом.

Если в пересечении столбца и строки стоит единица, то данная переменная (понятие) входит в соответствующий закон. Например, понятие площадь упоминается в 9, 19 и 20 законе. А закон 9 формулируется с использованием понятий a, b, c, P и S.

Таблица – Связь переменных и законов предметной области

1 2 3 8 9 11 12 13 16 17 18 19 20
a 1 1 1 1 1 1 1 1 1
b 1 1 1 1 1 1 1 1 1
c 1 1 1 1 1 1 1 1 1
α 1 1 1
β 1 1 1
γ 1 1 1
P 1 1 1
S 1 1 1
ha 1
hb 1
hc 1
ma 1
mb 1
mc 1
r 1
R 1

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

Попробуем использовать граф (матрицу). Польза состоит в возможности решать с его помощью задачи.

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

Такой способ разрешает так называемые явные задачи и имеет название «вычисление по цепочке».

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

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

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

Однако, вернемся к явным задачам.

Допустим, в треугольнике нам даны две стороны (a, b) и угол γ между ними.

Найдем все остальные неизвестные величины (c, α, β, P, S, ha, hb, hc, ma, mb, mc, R, r).

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

Такой столбец в матрице есть и имеет номер 1. (Он помечен красными цифрами и синим цветом). Переменная с определяется выражением (1) через известные величины (a, b, γ).

Таблица – Связь переменных и законов (красным отмечены исходные известные величины)

1 2 3 8 9 11 12 13 16 17 18 19 20
a 1 1 1 1 1 1 1 1 1
b 1 1 1 1 1 1 1 1 1
c 1 1 1 1 1 1 1 1 1
α 1 1 1
β 1 1 1
γ 1 1 1
P 1 1 1
S 1 1 1
ha 1
hb 1
hc 1
ma 1
mb 1
mc 1
r 1
R 1

Заносим с в список (a, b, γ) и отмечаем строку c как использованную (определенную переменную). В матрице использованные к этому моменту строки помечаем красным цветом и курсивом.

Таблица – Связь переменных и законов (красным отмечены исходные известные величины и определенные на первом шаге)

1 2 3 8 9 11 12 13 16 17 18 19 20
a 1 1 1 1 1 1 1 1 1
b 1 1 1 1 1 1 1 1 1
c 1 1 1 1 1 1 1 1 1
α 1 1 1
β 1 1 1
γ 1 1 1
P 1 1 1
S 1 1 1
ha 1
hb 1
hc 1
ma 1
mb 1
mc 1
r 1
R 1

Снова ищем в матрице столбец, в котором отмечены любые переменные из списка (a, b, γ, c) (все или некоторые) и еще только одна любая переменная, которая в списке отсутствует. Такой столбец в матрице есть, и он имеет номер 2. Новая переменная α определяется из уравнения 2 и заносится в список (a, b, γ, c, α). Строка α помечается.

Данная процедура повторяется до тех пор, пока все переменные не появятся в нашем списке. В этом случае все они будут определены через исходные заданные переменные-понятия (a, b, γ).

В частности, далее на следующих итерациях можно найти: угол β и высоты ha, hb, hc. Определив (a, b, c), находятся медианы ma, mb, mc, периметр P и площадь S. Последними из нашего графа получаем радиусы вписанной и описанной окружностей r и R.

Рисунок – Пример решения задачи на модели

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

Последнее означает, что задача до конца в явном виде не решается.

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

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

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

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

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

Выводы: свойства, понятия, модели, задачи, алгоритмы

Пересечение свойств образует понятия. Понятия (и признаки) в математике выражаются переменными. Значения переменных – числа, выражают свойства.

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

Уравнение – мысль, модель.

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

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

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

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

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

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

Модель – неориентированный граф. Задача – ориентированный граф. Понятия – связи в графе и пересечение свойств. Уравнения – вершины графа. Алгоритм – ориентированный граф в ярусно-параллельной форме (ЯПФ). Алгоритмы могут быть последовательными и параллельными, как ветви ЯПФ.

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

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

Определение входа модели – это задание исходных условий.

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

Определение выхода модели – это формулирование вопроса задачи, неизвестной величины.

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

Алгебра – это свод универсальных законов, применение которых обеспечивает эквивалентность преобразований модели. Вам известны многие из них, например, a = b + c эквивалентно a - b = c.

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

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

Обычно этот процесс решения задачи обозначается английским словом «to solve». То, что может эквивалентно преобразовывать модели из одного вида в другой и составлять алгоритмы, называется solver-ом.

Алгоритм = задача + алгебра.

Вычисление по алгоритму приводит нас к арифметическому ответу на вопрос задачи. Процесс численного вычисления называется «to calculate». То, что может численно вычислять модели, точнее ее части в определенном ранее solver-ом порядке, называется calculator. Результат решения называется ответом.

Численный ответ = Численные значения входа модели + Алгоритм.

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

Модель –> задача –> алгоритм -> численный ответ.

Первый переход обеспечивается записью дополнительных и конкретных условий (гипотез, уравнений, вопросов), второй – алгеброй и solver-ом, третий – арифметикой и calculator-ом.

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

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

Задание

Приведите пример любой хорошо знакомой Вам предметной области. Укажите свойства, понятия этой области списком и их связь между собой.

Приведите список уравнений предметной области. Нарисуйте граф предметной области. Приведите вид графа в виде таблицы.

Сформулируйте задачу на полученной модели.

Реализуйте решение задачи в виде операций над таблицей. Приведите вид полученного алгоритма (решение) и численный ответ задачи.


[ ] О руководителе курса «Моделирование систем» Лекция 02. Линейные регрессионные модели [ ]
Нач.   Огл.   Авт.   Л 01   Л 02   Л 03   Л 04