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

11.11.11

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Матаппарат
.docx 24,43Kb
16
16 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

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

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

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

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

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

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

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

 

См. также

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

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

1 стартмани

30.01.2024    4983    stopa85    12    

39

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

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

19.10.2023    9998    user1959478    54    

37

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

Расширение (+ обработка) представляют собою математический тренажер. Ваш ребенок сможет проверить свои знание на математические вычисление до 100.

2 стартмани

29.09.2023    4827    maksa2005    8    

26

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

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

1 стартмани

09.06.2023    12559    8    SpaceOfMyHead    20    

62

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

Три задачи - три идеи - три решения. Мало кода, много смысла. Мини-статья.

03.04.2023    6079    RustIG    9    

25

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

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

23.11.2022    5193    gzharkoj    14    

25

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

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

1 стартмани

21.03.2022    9416    7    kalyaka    11    

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

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

1. antonds 15.11.11 04:54 Сейчас в теме
2. Константин С. 674 15.11.11 09:52 Сейчас в теме
Ахренительная штуковина!!!!
3. Арчибальд 2709 15.11.11 09:55 Сейчас в теме
4. Djonny 15.11.11 10:06 Сейчас в теме
(2) "Ахренительная штуковина!!!!"
почему тогда "-" поставил?)
5. Арчибальд 2709 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. Арчибальд 2709 16.11.11 08:14 Сейчас в теме
(7) Дело в том, что в данном случае теория следовала практике. В процессе реализации (виртуальной) потоковой машины (интерпретатора граф-программ) оказалось, что при определении возможности запуска очередного модуля (процесса) нужны две проверки: наличия входа (массива, файла) и его заполненности. Конечно же, логику мы использовали двоичную (мы ж на двоичной машине работали). Но реально моделировали троичную. Поэтому она и попала в формальное описание.
"Вставка формул картинками" - это где? Текст чисто в Ворде делался...
8. MYRZILKA123 2 15.11.11 15:19 Сейчас в теме
10. Арчибальд 2709 16.11.11 10:27 Сейчас в теме
Добавил картинку для понятности...
11. Makushimo 160 26.11.12 09:35 Сейчас в теме
Смутно понимаю что это полезная вещь, для тех кто в теме.
Конретные примеры в студию. Как эту тему использовать в повседневной жизни 1С программиста?
ну вот .. дописать не успел, как забыл, о чем статья-то. Ах. да.. есть такая штука как потоковое программрование. И?
Ни плюс ни минус ставить не буду. т.к тема не раскрыта.
12. Арчибальд 2709 26.11.12 10:14 Сейчас в теме
(11) В повседневной деятельности - никак. В повседневном мышлении - как сигнал "опасайся зашоренности".
13. tango 546 26.11.12 10:22 Сейчас в теме
ага... а вот при чем здесь 1С
?
Оставьте свое сообщение