Проектирование (параллельной) обработки данных.

11.11.11

Разработка - Математика и алгоритмы

Если нужно обрабатывать разнородные информационные потоки...

Скачать файлы

Наименование Файл Версия Размер
Матаппарат
.docx 24,43Kb
16
.docx 24,43Kb 16 Скачать

Лет этак 25-30 назад весьма активно обсуждалось/развивалось потоковое программирование – в частности, "японский вызов" и ряд других проектов супервычислителей пятого поколения в той или иной степени предполагали использовать управление потоками данных. Способ потокового управления в его простейшей интерпретации состоит в реагировании на события всего одного вида – готовность блока данных к дальнейшей обработке. Важными принципами становится при этом единственность присваивания – каждая переменная (массив, коллекция, файл) инициализируется в процессе вычислений только один раз – а также отсутствие «побочных эффектов» исполнения операций, которые, как известно, являются источником самых труднообнаруживаемых ошибок в программах. Потоковые программы, в отличие от «обычных» становятся, таким образом, верифицируемыми.

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

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

Я же хочу обратить внимание на то, что графические схемы могут успешно применяться при проектировании систем обработки данных (СОД). Например, нам захотелось реализовать проект «Большой брат» - систему всеобъемлющего контроля производственного процесса. На разных участках его работают некие АСУТП, фиксирующие отдельные параметры,  входные и выходные потоки ТМЦ (сырье, продукция, технологические материалы, полуфабрикаты) фиксируются в учетных конфигурациях 1С (ага, вот при чем здесь 1С). Нам требуется оптимизировать производство хотя бы в части минимизации потерь на воровство и разгильдяйство.

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

                                (Y1, Y2, Y3,...) = F(X1, X2, X3,...)

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

Математическая формализация (построение функционально полного класса корректных преобразований) не очень громоздка – две машинописные странички – но приводить ее здесь я не считаю целесообразным. Ну, разве что в качестве приложения. Отмечу только, что для построения наборов допустимых последовательностей вычислений мне пришлось дополнить область значений логических операторов {Истина, Ложь} значением «Не определено».

Опять трехзначная логика на службе корректности алгоритмов…

На картинке из лекции по потоковым ВС приведены возможные вычислительные модели: а – фон-неймановская; б – потоковая; в – макропотоковая; г – редукционная. У меня описывается декомпозиция по варианту в.

 

См. также

Метод Дугласа-Пойкера для эффективного хранения метрик

Математика и алгоритмы Платформа 1C v8.2 Конфигурации 1cv8 Россия Абонемент ($m)

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    1715    stopa85    12    

33

Алгоритм симплекс-метода для решения задачи раскроя

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    4316    user1959478    50    

34

Регулярные выражения на 1С

Математика и алгоритмы Инструментарий разработчика Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)

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

1 стартмани

09.06.2023    7344    4    SpaceOfMyHead    17    

56

Модель распределения суммы по базе

Математика и алгоритмы Платформа 1С v8.3 Россия Абонемент ($m)

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

1 стартмани

21.03.2022    7818    7    kalyaka    11    

44

Изменения формата файлов конфигурации (CF) в 8.3.16

Математика и алгоритмы Платформа 1С v8.3 Бесплатно (free)

Дополнение по формату файлов конфигурации (*.cf) в версии 8.3.16.

16.12.2021    4414    fishca    13    

36

Интересная задача на Yandex cup 2021

Математика и алгоритмы Бесплатно (free)

Мое решение задачи на Yandex cup 2021 (frontend). Лабиринт. JavaScript.

12.10.2021    8793    John_d    73    

46

Механизм анализа данных. Кластеризация.

Математика и алгоритмы Анализ учета Платформа 1С v8.3 Анализ и прогнозирование Бесплатно (free)

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

31.08.2021    7713    dusha0020    8    

70
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
0. Арчибальд 2706 15.11.11 04:54 Сейчас в теме
Если нужно обрабатывать разнородные информационные потоки...

Перейти к публикации

1. antonds 15.11.11 04:54 Сейчас в теме
2. Константин С. 664 15.11.11 09:52 Сейчас в теме
Ахренительная штуковина!!!!
3. Арчибальд 2706 15.11.11 09:55 Сейчас в теме
4. Djonny 15.11.11 10:06 Сейчас в теме
(2) "Ахренительная штуковина!!!!"
почему тогда "-" поставил?)
5. Арчибальд 2706 15.11.11 11:19 Сейчас в теме
(4) Мож, самовыражается?
6. Djonny 15.11.11 11:57 Сейчас в теме
(5) Оригинальный способ))
7. MaxDavid 127 15.11.11 14:07 Сейчас в теме
Хотел ответить вчера, но не смог вставить первый комментарий.
К сожалению, мои математические знания слишком малы, чтобы спорить аргументированно, но смысл я оценил. Безусловный плюс.
Смущает то, что применение троичной логики, если я правильно понял, не вытекает ниоткуда, кроме пункта 2 определения схемы счета. ИМХО, если убрать из фигурных скобок третий аргумент - ничего не изменится. Поправьте, если ошибаюсь.
Тем, кто, так же как и я, обнаружит, что основательно подзабыл математику - рекомендую ссылку.
Ну и по поводу оформления - как-то уже непривычно видеть вставку формул картинками - чего я совсем не ожидал - когда уже есть Microsoft Equation в Word'е и Match в OpenOffice.
9. Арчибальд 2706 16.11.11 08:14 Сейчас в теме
(7) Дело в том, что в данном случае теория следовала практике. В процессе реализации (виртуальной) потоковой машины (интерпретатора граф-программ) оказалось, что при определении возможности запуска очередного модуля (процесса) нужны две проверки: наличия входа (массива, файла) и его заполненности. Конечно же, логику мы использовали двоичную (мы ж на двоичной машине работали). Но реально моделировали троичную. Поэтому она и попала в формальное описание.
"Вставка формул картинками" - это где? Текст чисто в Ворде делался...
8. MYRZILKA123 2 15.11.11 15:19 Сейчас в теме
10. Арчибальд 2706 16.11.11 10:27 Сейчас в теме
Добавил картинку для понятности...
11. Makushimo 160 26.11.12 09:35 Сейчас в теме
Смутно понимаю что это полезная вещь, для тех кто в теме.
Конретные примеры в студию. Как эту тему использовать в повседневной жизни 1С программиста?
ну вот .. дописать не успел, как забыл, о чем статья-то. Ах. да.. есть такая штука как потоковое программрование. И?
Ни плюс ни минус ставить не буду. т.к тема не раскрыта.
12. Арчибальд 2706 26.11.12 10:14 Сейчас в теме
(11) В повседневной деятельности - никак. В повседневном мышлении - как сигнал "опасайся зашоренности".
13. tango 506 26.11.12 10:22 Сейчас в теме
ага... а вот при чем здесь 1С
?
Оставьте свое сообщение