DRAKON.SU

Текущее время: Вторник, 22 Май, 2018 16:45

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 112 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
СообщениеДобавлено: Пятница, 09 Февраль, 2018 12:52 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 3655
Откуда: Москва
TAU писал(а):
Еще раз повторю: моя позиция состоит в том, что выразительная сила Дракон-схемы выше, нежели у алгорифмов Маркова, рекурсивных функций, машины Тьюринга. Это - факт.

Если это утверждение верно, то это очень серьезно.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 09 Февраль, 2018 23:02 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 325
Владимир Паронджанов писал(а):
TAU писал(а):
Еще раз повторю: моя позиция состоит в том, что выразительная сила Дракон-схемы выше, нежели у алгорифмов Маркова, рекурсивных функций, машины Тьюринга. Это - факт.

Если это утверждение верно, то это очень серьезно.

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

Ну не знаю :)

1. Дракон позволяет описывать управляющие алгоритмы реального времени. Он для них изначально и создавался - для СУ "Бурана", как известно. В наличии - иконы для задания феноменов реального времени (пауза, таймер, и пр.).

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 09 Февраль, 2018 23:12 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 325
Alexey_Donskoy писал(а):
1. Возьмём общее определение алгоритма: S[n+1]=f(X[n],S[n]), где S - пространство состояний исполнителя, X - вектор входных данных, f - собственно алгоритм как функция преобразования пространства состояний.

2. X=X(t), то есть меняется во времени. Это уже из той области, что выше названо "управляющим алгоритмом" - процесс в реальном (или модельном, неважно) времени и в меняющейся внешней среде. Например, игра в шахматы с человеком, или автоматическое управление технологическим процессом, или динамическое управление детализацией рендеринга в шутере (не говоря уж об игровых персонажах), и т.д. и т.п.

Ну и где принципиальная-то разница?

По первому пункту. И где написано, в какой энциклопедии, что существует некое "ОБЩЕЕ определение алгоритма", да еще с приведенной формулой? Это - ваши личные фантазии и домыслы.

По второму. Принципиальная разница в отличии Xстат. от X(t). И в том, что управляющий алгоритм - НЕ функция.

Мне приходилось иметь дело со спецификациями управляющих алгоритмов. В них не написано, что алгоритм "должен вычислить такую-то функцию". А именно это и значит "вычислимость по Тьюрингу". В них бывает написано нечто вроде "при запуске необходимо проверить наличие сигнала от датчика А, в случае присутствия его выполнить действия Д1, Д2, Д3, затем через 100 секунд запустить программу В12 для ... В случае отсутствия сигнала от дачика А в момент запуска необходимо подождать 1 сек, после чего повторить запрос. В случае отсутствия сигнала через 20 сек, выполнить действие Д122, подать сигнал АВАРИЯ".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 10 Февраль, 2018 01:02 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 949
Откуда: Россия, Чебоксары
TAU писал(а):
По первому пункту. И где написано, в какой энциклопедии, что существует некое "ОБЩЕЕ определение алгоритма", да еще с приведенной формулой? Это - ваши личные фантазии и домыслы.
В энциклопедиях ищите сами, у вас на то и докторская, а мне пофиг.
Не найдёте - поставьте на формулу мой копирайт.
Но мне лично как-то неудобно это делать, потому что формула-то насквозь очевидна.
По существу её у вас возражения есть?

Цитата:
Принципиальная разница в отличии Xстат. от X(t).
Любое различие, как вы должны понимать, носит характер относительный и зависит от критерия.
Я, например, не могу придумать критерий (имеющий реальный, а не абстрактно выдуманный смысл), по которому различие это будет принципиальным.
Даже с точки зрения формализма как-то глупо утверждать, что y=x принципиально отличается от y=kx.

Цитата:
И в том, что управляющий алгоритм - НЕ функция.
В моей формуле функция? Функция.
Она может служить управляющим алгоритмом? Разумеется.
Так как это вдруг "не функция"?!
Независимо от формы представления и реализации, даже независимо от дискретности, управляющий алгоритм обеспечивает однозначное соответствие выходных сигналов входным.
А это соответствие как раз и есть определение функции.

Цитата:
Мне приходилось иметь дело со спецификациями управляющих алгоритмов. В них не написано, что алгоритм "должен вычислить такую-то функцию".
Детский сад какой-то.

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

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

Цитата:
В наличии - иконы для задания феноменов реального времени (пауза, таймер, и пр.)
Это всего лишь синтаксис. А говоря о принципиальных различиях, надо опираться как минимум на семантику.

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 10 Февраль, 2018 18:24 

Зарегистрирован: Среда, 03 Май, 2017 09:55
Сообщения: 127
TAU писал(а):
По первому пункту. И где написано, в какой энциклопедии, что существует некое "ОБЩЕЕ определение алгоритма", да еще с приведенной формулой?... Управляющий алгоритм не описывает вычислимую функцию
Wikipedia подойдёт?
https://ru.wikipedia.org/wiki/Алгоритм#(Формальное определение)

Wikipedia писал(а):
С каждым алгоритмом можно сопоставить функцию, которую он вычисляет

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

TAU писал(а):
Времени в моделях рекурсивных функций, машины Тьюринга, алгорифмах Маркова нет

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 10 Февраль, 2018 19:07 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 3655
Откуда: Москва
Я обратил внимание в русской Википедии (Алгоритм) вот на что:
Цитата:
Детерминированность (определённость). В каждый момент времени следующий шаг работы однозначно определяется состоянием системы. Таким образом, алгоритм выдаёт один и тот же результат (ответ) для одних и тех же исходных данных. В современной трактовке у разных реализаций одного и того же алгоритма должен быть изоморфный граф.

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

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

Тезис Андрея Александровича о специфике управляющих алгоритмов, как мне кажется, заслуживает внимания.
И развития.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 11 Февраль, 2018 21:12 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 325
Alexey_Donskoy писал(а):
1. Но мне лично как-то неудобно это делать, потому что формула-то насквозь очевидна. По существу её у вас возражения есть?

2. Даже с точки зрения формализма как-то глупо утверждать, что y=x принципиально отличается от y=kx.

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

4. это соответствие как раз и есть определение функции.

5. Детский сад какой-то.

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

7.
Цитата:
В наличии - иконы для задания феноменов реального времени (пауза, таймер, и пр.)
Это всего лишь синтаксис. А говоря о принципиальных различиях, надо опираться как минимум на семантику.

8. Время есть свойство внешней среды, которое с рассматриваемой нами точки зрения является входным сигналом, одним из элементов вектора X.

9. "управляющий" алгоритм не содержит ничего принципиально нового по сравнению с "вычислительным".

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

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

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

2. При чем здесь линейная функция?! Принципиально отличны статический набор данных X и меняющийся во времени X(t).

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

4. Определение функции есть в Википедии. Функция - это соответствие между элементами двух множеств - множеством отправления и множеством прибытия, обладающее некоторыми дополнительными свойствами. Например, что одному элементу множества отправления функция ставит в соответствие не более одного элемента множества прибытия. Функция в этом определении существует "вне времени". А управление реальным объектом или техпроцессом очень даже связано с временем. Удивительно, как подобная простейшая вещь может ускользать из поля зрения.

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

6. Адекватность - это степень корректности соответствия. Увы, именно ваши представления о том, что управляющий алгоритм не отличается принципиально от вычислительного неадекватны действительности.

7. "Иконы" Дракона обладают и синтаксисом (формой), и семантикой. Это - тоже азы. Семантика "икон" реального времени в машине Тьюринга и алгорифмах Маркова осутствует. Ну нет там часов, нет!

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

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

10. Практически уверен, что мои познания в области аналоговых ЭВМ уж никак не меньше ваших, простите. Ежели это был намек на то, что любая АВМ реализует управление как мгновенное функциональное преобразование сигнала Y(t)=F(X(t)), то это - неадекватная примитивизация. Неадекватная означает - "с потерей смысла".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 11 Февраль, 2018 21:18 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 325
И еще что нужно добавить к вопросу "выразительная мощность Дракон-схем" vs "выразительная мощность традиционных математических формализаций алгоритма".

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

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

Рыбалку вы в терминах алгорифмов Маркова не опишете.

С другой стороны, вообще говоря, в исходную семантику Дракон-схем вообще никакие преобразования данных не входят. Они "скрыты" внутри того текста, коий вписывается в прямоугольники. Соответственно, при описании вычислительных алгоритмов семантика собственно Дракон-схем недостаточна, и нужно дополнение их семантикой того языка программирования и вычислительной среды, в терминах которой, например, в прямоугольник вписывается "y=a+b".


Последний раз редактировалось TAU Воскресенье, 11 Февраль, 2018 23:44, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 11 Февраль, 2018 21:40 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 325
Забыл сразу ответить вот еще на что.

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

Ну что же, давайте обсудим другие формализации.

Что у нас есть помимо алгорифмов Маркова и машины Тьюринга?
1. машина Поста
2. Равнодоступная Адресная Машина.
3. Абак

Есть еще Частично_рекурсивная_функция]рекурсивные функции - но они уж прямо вообще функции.

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

А вот в настоящих ЭВМ часы (таймеры, синхрогенераторы) есть. И в настоящих вычислительных средах, формируемых, например ОС реального времени - еще как есть (запросы к ОС с установкой времени для выполнения того или иного действия).

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 11 Февраль, 2018 22:51 

Зарегистрирован: Среда, 03 Май, 2017 09:55
Сообщения: 127
TAU писал(а):
Во всех перечисленных формализациях нет часов. Все они адекватны описаниям именно вычислительных алгоритмов (программ). У которых есть исходные данные (вход), и выходные данные (выход).
Действительно считаете, что время чем-то принципиально отличается от входа, на котором некий тактовый генератор подаёт 0-1-0-1-0-1-...?
Ну ничем же оно не отличается. Даже в реальных компьютерах так и работает: кварц генерит опорную частоту, которую подаёт на один из входов вычислительного устройства.

TAU писал(а):
4. Определение функции есть в Википедии. Функция - это соответствие между элементами двух множеств - множеством отправления и множеством прибытия, обладающее некоторыми дополнительными свойствами. Например, что одному элементу множества отправления функция ставит в соответствие не более одного элемента множества прибытия. Функция в этом определении существует "вне времени". А управление реальным объектом или техпроцессом очень даже связано с временем. Удивительно, как подобная простейшая вещь может ускользать из поля зрения.


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

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

Например, если у системы 2 целочисленных входа X и Y, а результатом является целочисленный выход Z, то "управляющий алгоритм" можно представить как функцию вида [ Z{n+1}; S{n+1} ] = f(X{n+1}, Y{n+1}, Sn). Т.е. результат зависит от предыдущего состояния и значений на входах.
Функция вычисляет очередное значение для выхода Z и очередное значение для состояния S{n+1}.
Если время хочется выражать прямо в секундах, то можно добавить параметр T{n+1} (текущее время в секундах). Всё. Шах и мат.

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

Очевидно же.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 11 Февраль, 2018 23:31 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 325
Ну и для, как говорится, "контрольного выстрела". Из статьи "Алгоритм" Википедии (и не я это писал!):
Цитата:
Можно выделить алгоритмы вычислительные (о них в основном идет далее речь), и управляющие. Вычислительные по сути преобразуют некоторые начальные данные в выходные, реализуя вычисление некоторой функции. Семантика управляющих алгоритмов существенным образом может отличаться и сводиться к выдаче необходимых управляющих воздействий либо в заданные моменты времени, либо в качестве реакции на внешние события (в этом случае, в отличие от вычислительного алгоритма, управляющий может оставаться корректным при бесконечном выполнении)...
Следует подчеркнуть принципиальную разницу между алгоритмами вычислительного характера, преобразующими некоторые входные данные в выходные (именно их формализацией являются упомянутые выше машины Тьюринга, Поста, РАМ, нормальные алгорифмы Маркова и рекурсивные функции), и интерактивными алгоритмами (уже у Тьюринга встречается C-машина, от англ. choice — выбор, ожидающая внешнего воздействия, в отличие от классической A-машины, где все начальные данные заданы до начала вычисления и выходные данные недоступны до окончания вычисления)


В английской версии статьи на Википедии подробнее:
Цитата:
However, external input and output communication of real computers, which enable interactivity, cannot be modeled by a Turing machine. This is, because a Turing machine requires all input available initially on its tape, no further input or change of input during the course of computation is possible.
In practical terms, a Turing machine is capable to model any computation that happens inside a real computer, but it is not capable to model the behaviour of the whole computer, as a Turing machine cannot model the real computer's communication capability used for interaction


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

Что же, Alexey Donskoy, Тьюринга тоже бы к детскому саду отнесли? :lol:


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 12 Февраль, 2018 10:29 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 458
TAU писал(а):
Цитата:
Можно выделить алгоритмы вычислительные (о них в основном идет далее речь), и управляющие.


Я вот тут подумал.
А вдруг это и есть одна из причин "кризиса разработки ПО"?
Почему мир тонет в говнокоде?

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

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

Функция — это хорошая абстракция. Но недостаточная для реальной жизни. Слишком низкоуровневая.

Нет в Вижуал Студии таких кнопок:
1. Создать объект управления А.
2. Создать управляющий алгоритм Б.
3. Соединить А и Б каналами прямой и обратной связи.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 12 Февраль, 2018 11:25 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 715
TAU писал(а):
Можно выделить алгоритмы вычислительные (о них в основном идет далее речь), и управляющие.

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 12 Февраль, 2018 14:05 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 949
Откуда: Россия, Чебоксары
Степан Митькин писал(а):
Ни языки программирования, ни среды разработки не поддерживают алгоритмы управления.
И мозги разработчиков их тоже не поддерживают (см. предыдущие сообщения в этом обсуждении).
Программисты мыслят в категориях функций, процедур, переменных.
Степан, мне непонятно, о каких программистах вы вообще говорите.
Управляющими алгоритмами занимаются инженеры, которые пишут их и имеют на это все необходимые компетенции раньше, чем получают представление о вырожденном частном случае с умным названием "вычислительный алгоритм".

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

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

Так что обсуждаете вы здесь каких-то розовых единорогов в вакууме, вместо выбора адекватных инструментов.
Или вы делаете очередную 100500-ю попытку изобрести "серебряные пули", одинаково хорошо пригодные для всех задач? :wink:


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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 12 Февраль, 2018 17:00 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 458
Alexey_Donskoy писал(а):
Для указанных целей существует вагон различных DSL, которые не только "имеют соответствующие кнопки", но и являются стандартными в соответствующих областях индустрии, где разрабатывают управляющие алгоритмы.

Алексей! Приведите, пожалуйста примеры. Дело не в споре. Хотелось бы узнать поподробнее о таких DSL.
Всё, что мне в голову приходит, — это binding в UI-библиотеках.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 12 Февраль, 2018 20:49 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 949
Откуда: Россия, Чебоксары
Степан Митькин писал(а):
Хотелось бы узнать поподробнее о таких DSL. Всё, что мне в голову приходит, — это binding в UI-библиотеках.
Ну, во-первых, имеет смысл исходить из того, что управляющие алгоритмы нужны для управления оборудованием, технологическими процессами и т.п.
Соответственно, все средства программирования PLC, в т.ч. IEC 61131-3.
Из популярных систем, развившихся в довольно солидные комплексы - LabView, Matlab/Simulink и многие другие средства моделирования, которые с равным успехом применяются для управления (включая несколько штук моих собственных :) ).
Наконец, любая SCADA, коих сегодня множество и с громадным количеством наворотов на все случаи жизни и на любой вкус.
И покрывается этими средствами, наверное, 90% всех промышленных задач управления.
Остаются разве что мелкие или высокоспециализированные низкоуровневые разработки на микроконтроллерах - ну так здесь и то до 80% покрыто внутрикорпоративными DSL.

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 12 Февраль, 2018 22:11 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 949
Откуда: Россия, Чебоксары
TAU писал(а):
1. Ваша формула отнюдь не очевидна.
Собирался вот предметно ответить по пунктам...
Но предмета-то и нет.
Вы ограничили сами себя придуманной, притянутой за уши и никому не интересной задачей "выразительная мощность Дракон-схем" vs "выразительная мощность традиционных математических формализаций алгоритма"...

И самое печальное, что когда вам показали действительно математическую формализацию:
Цитата:
S[n+1]=f(X[n],S[n]), где S - пространство состояний исполнителя, X - вектор входных данных, f - собственно алгоритм как функция преобразования пространства состояний
вы по-прежнему не желаете возвращаться в реальный мир, оставаясь в плену "традиционных математических формализаций" - которые сегодня, повторю, не интересны ни с точки зрения теории программирования, ни тем более с практической стороны.

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

Цитата:
2. При чем здесь линейная функция?! Принципиально отличны статический набор данных X и меняющийся во времени X(t).
При том, что различие статического Х и меняющегося Х(t) с моей точки зрения (практической) равномощно различию между y=kx и частным случаем y=x, где k=1.
Очевидно, что у вас другая точка зрения, но критериев её вы так и не привели, продолжая ссылаться на "традиционные математические формализации".
Поэтому дискуссия становится бессмысленной.

Цитата:
Сигнал, к вашему сведению, вообще говоря, подразумевает процесс, протекающий во времени. Вы понимаете, кстати, разницу между "автоматами с памятью" и "комбинационными схемами"?
Эта ремарка опять-таки показывает ваше высокомерное нежелание слушать оппонента.

Цитата:
Функция в этом определении существует "вне времени"
При том, что вам уже и Ситников объяснил, и Паронджанов процитировал из Википедии, что время замечательно входит в набор входных данных, оставаясь изменяющимся сигналом, но не меняя ни смысла формулы, ни современного определения функции как способа однозначного вычисления результатов на наборе исходных данных (X,S).

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

Цитата:
9. Попробуйте выразить приведенную мною выше семантику ("исходные данные" для управляющего алгоритма) через аппарат рекурсивных функций или алгорифм Маркова.
Зачем? Зачем вы постоянно суёте неадекватный инструмент? Из спортивного интереса? Пожалуйста. Но тогда не стоит из этого интереса делать неадекватных обобщений.

Цитата:
10. Ежели это был намек на то, что любая АВМ реализует управление как мгновенное функциональное преобразование сигнала Y(t)=F(X(t))
Это был намёк на то, что:
а) всё (в том числе в адекватной модели) есть процесс (сигнал x(t));
б) передаточные ФУНКЦИИ очень даже замечательно с процессами работают, выполняя однозначное преобразование сигналов.

И в свете этого понимания ваш тезис о "принципиальном различии управляющих и вычислительных алгоритмов" по смыслу звучит как: "Чего вы мне суёте вашу формулу в общем виде! У вас же там ПЕРЕМЕННЫЕ, а у меня - КОНСТАНТЫ! Разница же принципиальная!"
Как же при таком подходе вам показать, что формула на то и в общем виде дана, чтобы работать с переменными (а уж частные случаи, когда переменные являются константами, и вовсе не особо интересны - именно потому, что являются частными случаями)?!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Февраль, 2018 22:09 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 325
Alexey_Donskoy писал(а):
Для указанных целей существует вагон различных DSL, которые не только "имеют соответствующие кнопки", но и являются стандартными в соответствующих областях индустрии, где разрабатывают управляющие алгоритмы

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

Что, конечно, весьма удивительно. Но - факт.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Февраль, 2018 22:20 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 325
Степан Митькин писал(а):
Alexey_Donskoy писал(а):
Для указанных целей существует вагон различных DSL, которые не только "имеют соответствующие кнопки", но и являются стандартными в соответствующих областях индустрии, где разрабатывают управляющие алгоритмы

Алексей! Приведите, пожалуйста примеры. Дело не в споре. Хотелось бы узнать поподробнее о таких DSL.
Всё, что мне в голову приходит, — это binding в UI-библиотека

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

Позвольте мне)

Специфическими языками для телекоммуникаций являются в том числе LOTOS и SDL.

В области SCADA систем популярны наборы инструментов, поддерживающие стандарт МЭК61131.

ANSYS сейчас поглотил Esterel Technologies с их методологией/языками/инструментами SCADE.

Достаточно информации было на здесь форуме о разработках в атомной отрасли. Собственно, Simintech - он и олицетворяет в том числе.

Математической основой всего перечисленного, как правило, служат графовые модели - системы переходов (конечные автоматы, сети Петри).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Февраль, 2018 22:28 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 325
Alexey_Donskoy писал(а):
1. Имеет ли смысл идти по пунктам, в каждом из которых фонтанирует пренебрежительное,
высокомерное нежелание рассматривать вопрос по существу?
2. Поэтому ограничусь отдельными моментами (по другим вам уже корректно возразил Владимир Ситников, но эти возражения вы тоже проигнорировали).
3. различие статического Х и меняющегося Х(t) с моей точки зрения (практической) равномощно различию между y=kx и частным случаем y=x, где k=1.
и Ситников объяснил, и Паронджанов процитировал из Википедии, что время замечательно входит в набор входных данных, оставаясь изменяющимся сигналом, но не меняя ни смысла формулы, ни современного определения функции как способа однозначного вычисления результатов на наборе исходных данных (X,S)

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

2. Что именно существенного "возразил мне" Ситников?
Для начала он в качестве "доказательства" сослался на статью в Википедии. Ту же самую, на которую ссылаюсь я!. И в которой совершенно четко написано о принципиальной разнице между алгоритмами управляющими и вычислительными. Вырвал из контекста (раздела, посвященного алгоритмам вычислительным) фразу "С каждым алгоритмом можно сопоставить функцию, которую он вычисляет" - и пошла писать дальше губерния.

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

3. ВРЕМЯ - это СУТЬ изменений. А вовсе не "изменяющийся сигнал". Принципиально невозможно ввести время всего лишь как еще одну из "входных" переменных. Знаете, почему? Потому что в управляющем алгоритме семантически важно место, в котором находится с точки зрения его логики, "фокус выполнения" в данный момент времени. Сам управляющий алгоритм развертывается во времени. И его выполнение должно быть синхронизировано с внешними для него, протекающими в объекте управления, процессами. ПРОЦЕСС - это НЕ ФУНКЦИЯ.

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 112 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2018, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB