OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 13:19

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




Начать новую тему Ответить на тему  [ Сообщений: 52 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: Автоматное программирование
СообщениеДобавлено: Четверг, 04 Март, 2021 12:09 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
По поводу подхода Шалыто:

Я не понял пока, насколько это реализуемо для обобщённости/расширяемости/повторного использования для целого класса объектов.
При чтении книги Шалыто для автоматизаторов возникло ощущение, что автоматная модель таки очень сильно приклеена к конкретному моделируемому объекту. Описать многократно используемый в разных проектах с вариативными частями автомат - я не понял, были ли такие попытки по линии Шалыто.

В итоге, в своих АСУТП-шных проектах оказалось удобнее вместо кодируемых состояниий таки пространство логических признаков (т.е. ровно то, чему Шалыто противопостовляет свой подход). НО - у меня не было сложных пространств состояний в проектах. Элеватор, пуск/стопы, аварии и маршруты - это всё легко описывается и без автоматов.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автоматное программирование
СообщениеДобавлено: Четверг, 04 Март, 2021 17:01 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Метод Шалыто ограничен в своей применимости.

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

Хотя посмотреть его начинающим писать большие программы, несомненно, стоит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автоматное программирование
СообщениеДобавлено: Четверг, 04 Март, 2021 17:56 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 583
Откуда: Москва
Info21 писал(а):
Метод Шалыто ограничен в своей применимости.

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

:lol:

А вот Илья Евгеньевич уже долго в АСУТП и правильно формулирует вопросы
Илья Ермаков писал(а):
Я не понял пока, насколько это реализуемо для обобщённости/расширяемости/повторного использования для целого класса объектов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автоматное программирование
СообщениеДобавлено: Четверг, 04 Март, 2021 23:38 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1447
Откуда: Киев
Дмитрий Дагаев писал(а):
Поэтому, в первую очередь, предлагается подход Шалыто, как он себе это представляет.

Модель представления ПО основана на конечных автоматах. А это 1-состояние, 2-переходы, 3-условия, 4-события 5-выходы.
А как он себе это представляет? В чём, собственно, отличие подхода Шалыто от программирования конечных автоматов?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автоматное программирование
СообщениеДобавлено: Пятница, 05 Март, 2021 08:52 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 583
Откуда: Москва
Comdiv писал(а):
А как он себе это представляет? В чём, собственно, отличие подхода Шалыто от программирования конечных автоматов?

Правильные вопросы задаете. Но я ссылки давал. Вы от меня уже ждете обзора и анализа? Или убедительной аргументации в пользу Шалыто? :wink:

Попробуйте посмотреть гл.2 книги http://is.ifmo.ru/books/_book.pdf или гл.12 http://is.ifmo.ru/works/_paradigma_automata.pdf.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автоматное программирование
СообщениеДобавлено: Пятница, 05 Март, 2021 08:57 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 583
Откуда: Москва
Меня, например, интересует глубина научного подхода.
И конкретный вопрос - как парадигма Шалыто соотносится с машинами абстрактных состояний Гуревича https://www.math.spbu.ru/user/soloviev/asm%20%D0%B2%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5.pdf, например. Последняя тема характерна тем, что там высшей алгебры много, особенно в первоисточниках, которых еще искать надо. Правда, Гуревич давно в MS Research. Задам-ка этот вопрос Шалыто ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автоматное программирование
СообщениеДобавлено: Пятница, 05 Март, 2021 12:17 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1447
Откуда: Киев
Дмитрий Дагаев писал(а):
Comdiv писал(а):
А как он себе это представляет? В чём, собственно, отличие подхода Шалыто от программирования конечных автоматов?
Правильные вопросы задаете. Но я ссылки давал. Вы от меня уже ждете обзора и анализа? Или убедительной аргументации в пользу Шалыто? :wink:
Ожидаю и не обязательно от Вас ответа/ссылки на конкретный вопрос, что же ещё? :lol: На него нельзя ответить кратко? Почему?

Цитата:
Попробуйте посмотреть гл.2 книги http://is.ifmo.ru/books/_book.pdf или гл.12 http://is.ifmo.ru/works/_paradigma_automata.pdf.
Пробую, но это мне пока не даёт ответа на заданный вопрос.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автоматное программирование
СообщениеДобавлено: Пятница, 05 Март, 2021 12:51 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1447
Откуда: Киев
Илья Ермаков писал(а):
Я не понял пока, насколько это реализуемо для обобщённости/расширяемости/повторного использования для целого класса объектов.
В чём трудность?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автоматное программирование
СообщениеДобавлено: Пятница, 05 Март, 2021 12:55 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
У Шалыто научная глубина по колено, не глубже.

Гуревич занимается математическими играми, навеянными программированием.
Он ни одной программы, наверное, не написал и реальные программы не изучает -- а Вас, подозреваю, интересует именно это.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автоматное программирование
СообщениеДобавлено: Пятница, 05 Март, 2021 13:07 

Зарегистрирован: Вторник, 01 Март, 2011 09:34
Сообщения: 583
Откуда: Москва
Info21 писал(а):
а Вас, подозреваю, интересует именно это.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автоматное программирование
СообщениеДобавлено: Пятница, 05 Март, 2021 13:47 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1447
Откуда: Киев
Дмитрий Дагаев писал(а):
Попробуйте посмотреть ... и гл.12 http://is.ifmo.ru/works/_paradigma_automata.pdf.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автоматное программирование
СообщениеДобавлено: Суббота, 06 Март, 2021 10:03 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1428
Помню баталии на софкрафте лет 15 назад. Я там одному апологету риторически предложил написать автоматно что-то сугубо вычислительное (не помню уже, кажется интегрирование ОДУ). И он таки сделал!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автоматное программирование
СообщениеДобавлено: Суббота, 06 Март, 2021 13:29 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Дмитрий Дагаев писал(а):
Info21 писал(а):
а Вас, подозреваю, интересует именно это.
Вот что меня совсем не интересует, так это бесконечная форумная борьба, особенно с людьми, которым я многим обязан и отношусь с большим уважением.
И в мыслях не было даже в намёке. Просто вбросил свои две копейки, т.к. с "математиками" много намучился.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автоматное программирование
СообщениеДобавлено: Воскресенье, 07 Март, 2021 15:25 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1447
Откуда: Киев
Comdiv писал(а):
Илья Ермаков писал(а):
Я не понял пока, насколько это реализуемо для обобщённости/расширяемости/повторного использования для целого класса объектов.
В чём трудность?
Илья, можете привести простой пример?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автоматное программирование
СообщениеДобавлено: Среда, 10 Март, 2021 12:42 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Comdiv писал(а):
Comdiv писал(а):
Илья Ермаков писал(а):
Я не понял пока, насколько это реализуемо для обобщённости/расширяемости/повторного использования для целого класса объектов.
В чём трудность?
Илья, можете привести простой пример?


Ну вот пример:
- на одних объектах-элеваторах на управлении конвейером есть схема "звезда/треугольник" - и нужно пуск делать сначала через контакторы, питающие обмотки "по звезде", а потом после паузы переводить на треугольник. На других объектах есть устройства плавного пуска (УПП) - и там свои нюансы при подаче питания и упр. сигналов.
Типы аварийных датчиков тоже сильно разные. Ещё с той же звездой-треугольником: если есть датчик движения, то по установившемуся сигналу с него переключаем с пускового на маршевый режим (треугольник). А бывает, что датчика движения нет - тогда по задержке.
А программный код должен быть обобщённым и параметризуемым.

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

В итоге перспективным представляется пока только вариант, когда есть алгоритмика, написанная в обобщённом стиле на ЯВУ, и под конкретный объект делается его автоматная модель, а потом идёт верификация на соответствие алгоритма и модели.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автоматное программирование
СообщениеДобавлено: Среда, 10 Март, 2021 14:48 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1447
Откуда: Киев
А ведь я просил простой пример :lol:

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автоматное программирование
СообщениеДобавлено: Четверг, 11 Март, 2021 11:29 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Comdiv писал(а):
Например, я не вижу проблем в обобщении через автоматы переключателя по задержке или датчику движения, кроме нежелания делать это через автоматы, что вполне естественное желание для многих.


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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автоматное программирование
СообщениеДобавлено: Четверг, 11 Март, 2021 15:44 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1447
Откуда: Киев
Илья Ермаков писал(а):
Я хочу одну сущность, которая настраивается на конкретные особенности управляемого объекта.
Т.е. это должен быть либо template автомата какой-то, либо его генератор тогда.
Или как автомат, настраиваемый переключателями и регуляторами.

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автоматное программирование
СообщениеДобавлено: Пятница, 12 Март, 2021 10:06 

Зарегистрирован: Пятница, 12 Март, 2021 08:17
Сообщения: 1
Илья Ермаков писал(а):
Comdiv писал(а):
Классическим программированием это понятно, как делать. С элементами ООП (но без фанатизма) - это ещё удобнее.
С автоматом - непонятно.


Добрый день,

Илья, по моему, вы напрасно противопоставляете автоматное программирование и ООП. Думаю не стоит КА использовать в той области для которой они не предназначены (то есть обеспечивать механизмы настройки, параметризации, что прекрасно выполняется с помощью ООП).Необходимо отделять модель поведения (как конкретный двигатель выглядит для алгоритма управления конвейером, то есть интерфейс) и функциональную логику (конкретные алгоритмы пуска, управление ПЧ,ПП и т.д), по другому наверное никак. Интегрировать с помощью ООП.

В качестве примера стандартизации моделей поведения КА можно привести https://ftp.owen.ru/CoDeSys3/98_Books/plcopen_compliant_libraries_v10_ru.pdf (Для ПЛК со средой исполнения Codesys, но разобраться можно).

Цитата:
Ну не каждый же контактор описывать

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

Программирую иногда для ПЛК, Сам инженер АСУ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Автоматное программирование
СообщениеДобавлено: Пятница, 12 Март, 2021 13:58 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Anton984 писал(а):
Илья, по моему, вы напрасно противопоставляете автоматное программирование и ООП. Думаю не стоит КА использовать в той области для которой они не предназначены (то есть обеспечивать механизмы настройки, параметризации, что прекрасно выполняется с помощью ООП).Необходимо отделять модель поведения (как конкретный двигатель выглядит для алгоритма управления конвейером, то есть интерфейс) и функциональную логику (конкретные алгоритмы пуска, управление ПЧ,ПП и т.д), по другому наверное никак. Интегрировать с помощью ООП.


Да, я примерно так это и представляю. Я не противопоставляю как раз. Просто у Шалыто как раз, как я увидел/услышал, упор не на "программирование с использованием автоматов", а полностью автоматоцентричное проектирование и программирование.


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

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


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

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


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

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