Научная статья на тему 'Программная поддержка классификации платежных документов в банке'

Программная поддержка классификации платежных документов в банке Текст научной статьи по специальности «Математика»

CC BY
65
34
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Нудельман М. А., Фесюнов В. Е.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Программная поддержка классификации платежных документов в банке»

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

В заключение отметим, что для географически распределенной СК «ПРОВИДНА», которая имеет более 250 подразделений по всей Украине, а общую численность сотрудников более 1500 человек, за 6 недель было построено ядро ИТ-инфраструктуры. В региональных отделениях внедрена лишь часть сервисов. В каждом филиале работают отдельные серверы, обеспечивающие сетевую печать и управление файлами. Общий корпоративный каталог располагается в центральном офисе и дублируется на региональных серверах, благодаря этому в случае сбоя связи обеспечивается непрерывность работы. Синхронизация каталогов осуществляется каждые сутки. Это позволило обеспечить полную мобильность сотрудников: в каком бы отделении они ни находились, везде можно осуществить доступ в систему и использовать актуальные данные.

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

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

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

Литература

1. Лисецкий Ю.М., Бобров С.И. Корпоративная интегрированная информационная система энергораспределяющего предприятия // УСиМ. 2007. № 6. С. 3-9.

2. Лисецкий Ю.М. Опыт построения корпоративной интегрированной информационной системы // Программные продукты и системы. 2007. № 2. С. 26-29.

3. Лисецкий Ю.М. Построение современного территориально распределенного центра обработки данных // Там же. 2008. № 2. С. 14-16.

4. Лисецкий Ю.М. Метод комплексной экспертной оценки для проектирования сложных технических систем // Математические машины и системы. 2006. № 2. С. 141-146.

5. Лисецкий Ю.М. Выбор сложных систем по критерию минимума среднего риска // УСиМ. 2007. № 3. С. 22-25.

ПРОГРАММНАЯ ПОДДЕРЖКА КЛАССИФИКАЦИИ ПЛАТЕЖНЫХ ДОКУМЕНТОВ В БАНКЕ

М.А. Нудельман, к.ф.-м.н.; В.Е. Фесюнов

(Малое внедренческое предприятие ИБИС, г. Одесса, Украина, [email protected])

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

Ключевые слова: логическая формула, совершенная дизъюнктивная нормальная форма, реестры платежных документов, банковское программное обеспечение, Java, Python.

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

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

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

В рамках проекта ИРБИС (Интегрированная распределенная банковская информационная система), разрабатываемого фирмой ИБИС (г. Одесса, Украина), реализована проверка реестров на полноту и непересекаемость на уровне логических условий. Отметим, что подраздел «Реестри документа» проекта ИРБИС предусматривает также и многие другие операции с реестрами, как то:

- выбор документов по условию с отображением в диалоговом окне или в текстовом файле;

- выбор и сортировка атрибутов документа (структур реестра), отображаемых при его выборе;

- сортировка и группировка документов по заданной совокупности признаков в случае отчета в файл;

- шаблоны выходных форм и др.

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

Математический алгоритм

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

Напомним, что логические формулы состоят из букв, соединенных знаками конъюнкции («&»), дизъюнкции («|») и отрицания («!»).

Наравне с буквами логические формулы могут содержать предикаты. Предикат - это функция от одной или нескольких переменных, значения которых выбираются из некоторой заранее заданной предметной области (в данном случае из множества числовых характеристик банковских документов), причем значениями этой функции могут быть только логические константы true и false. Исходя из содержания задачи, ограничимся рассмотрением только одноместных предикатов, то есть логических функций от одной переменной. Этим одноместным предикатам позволим выражать некоторые равенства или неравенства, относящиеся к числовым характеристикам документа. Например: статус равен 15, код источника лежит в промежутке [13000, 14000).

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

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

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

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

Решение этой задачи основано на следующей лемме.

Напомним, что всякую логическую формулу, содержащую только буквы, можно привести к совершенной дизъюнктивной нормальной форме (см. [Яблонский С.В.]). Совершенная дизъюнктивная нормальная форма представляет собой дизъюнкцию нескольких скобок (они называются элементарными конъюнкциями). В каждой скобке записана конъюнкция n членов, где n - количество переменных, входящих в данную формулу. Каждый из этих членов представляет собой переменную либо отрицание переменной (таким образом, в каждой скобке участвуют все используемые переменные).

Пусть имеется логическая формула F, содержащая только логические предикаты рассматриваемого вида, и пусть количество этих предикатов равно n. Сопоставим каждому предикату, входящему в формулу F, вспомогательную логическую переменную (обозначим эти переменные через ах, а2, ..., а„) и составим из них все возможные элементарные конъюнкции. Если подставить вместо каждой из переменных a,j соответствующий ей предикат, то каждая из элементарных конъюнкций задаст некоторое множество точек в пространстве Rm, где m - количество целочисленных переменных, входящих в формулу F. Некоторые из этих множеств могут оказаться пустыми, а из остальных (пусть их количество равно к, к<2") выберем по одной точке с целочисленными координатами (поскольку фигурирующие в формуле F одноместные предикаты задают некоторые промежутки с целочисленными концами, то этот выбор можно сделать эффективно). Полученное множество, состоящее из k точек m-мерного пространства, имеющих целочисленные координаты, обозначим через U.

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

Доказательство. В части необходимости лемма очевидна. Докажем достаточность.

Обозначим через Q. множество целочисленных точек пространства Rm, дающих значение true при подстановке их координат в формулу F.

Заменим в формуле F каждый предикат соответствующей логической переменной aj и приведем полученную логическую формулу к совершенной дизъюнктивной нормальной форме. Обо-

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

С другой стороны, конъюнкции элементарных конъюнкций соответствует пересечение соответствующих подмножеств пространства Rm. Хорошо известно (это легко проверить), что конъюнкция любых двух различных элементарных конъюнкций тождественно ложна; следовательно, пересечение соответствующих подмножеств пространства Rm пусто. Отсюда ясно, что каждая из элементарных конъюнкций, не входящих в М, задает подмножество R111, имеющее с Q пустое пересечение.

Таким образом, каждая из 2n элементарных конъюнкций, которые можно составить из логических переменных oci, а2, ..., а„, соответствует подмножеству пространства R111, либо полностью содержащемуся в Q, либо имеющему с Q пустое пересечение. Поскольку при доказательстве достаточности предполагалось, что выполнено включение UtzQ, то пересечение множества Q с каждым из тех подмножеств Rm, задаваемых элементарными конъюнкциями, которые не пусты, в свою очередь, тоже не пусто. Следовательно, каждое из этих множеств является подмножеством множества Q.

Дизъюнкция всех 2n элементарных конъюнкций тождественно истинна (это хорошо известно и легко проверяется). Следовательно, объединение всех 2n подмножеств Rm, соответствующих элементарным конъюнкциям, дает всю целочисленную решетку Zm пространства Rm. Отбрасывая те элементарные конъюнкции, которые соответствуют пустому множеству, получаем, что объединение тех k множеств, представителями которых являются точки множества U, дает всю целочисленную решетку Zm. Поскольку каждое из этих множеств является подмножеством множества Q, то Q=Zm.

Лемма доказана.

Из этой леммы легко вывести следующий алгоритм.

Алгоритм L. Пусть имеется логическая формула G, содержащая булевы переменные и одноместные предикаты, выражающие принадлежность некоторых целочисленных переменных заданным числовым промежуткам. Для каждой целочисленной переменной отсортируем в порядке возрастания все встречающиеся в формуле G концы промежутков, отвечающих этой переменной. Станем независимо придавать каждой булевой переменной значения false и true, а каждой целочисленной переменной последовательно: одно значе-

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

Доказательство. Присвоив какие-нибудь значения булевым переменным, входящим в формулу G, получим некоторую формулу F, содержащую только предикаты. Для этой формулы построим множество U, как в лемме А. Возьмем какую-нибудь точку х=(х,, х2,..., xm)eU.

Каждая координата xj точки x попадает в одно из описанных в алгоритме подмножеств множества Z целых чисел. Осталось заметить, что в пределах любого из этих подмножеств каждая из логических переменных a,j (обозначения леммы А) сохраняет постоянное значение, и применить лемму A.

Алгоритм доказан.

Особенности программной реализации

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

Приведем пример условия отбора: status=15 & type=100 & home & initial & & outward & (srcCode<12000 | (srcCode>13000 & & srcCode<14000) | srcCode>15000)

Идентификаторы status, type, home и другие являются предопределенными и соответствуют определенным числовым или булевым характеристикам документа.

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

Реализованы операции проверки группы реестров на полноту и непересекаемость.

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

В проекте ИРБИС в качестве языка программирования используется Java. Кроме того, используется язык Python, в частности, как язык написания пользовательских скриптов. Применяется версия jPython (или jython) - реализация Python под Java-машину.

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

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

функций, можно вычислить значение дизъюнкции всех формул, соответствующих реестрам.

Таким образом, формируется временный Python-скрипт, который тут же транслируется в байт-код Java и выполняется на той же Java-ма-шине, что и сама программа.

Авторы выражают признательность профессору Автономного университета (г. Мадрид, Испания) Д.В. Якубовичу, выведшему алгоритм L из леммы A.

Литература

Яблонский С.В. Введение в дискретную математику. М.: Наука, 1979. 272 с.

СОЗДАНИЕ АРМ ТЕХНОЛОГА ДЛЯ ПРОЕКТИРОВАНИЯ ТЕХНОЛОГИЧЕСКОГО ПРОЦЕССА

Л.Н. Бакановская (Омский государственный институт сервиса, [email protected]); Н.С. Мокеева, д.т.н. (Новосибирский технологический институт Московского государственного университета дизайна и технологии (филиал))

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

Ключевые слова: проектирование, технологическая подготовка производства, системы автоматизации технологического процесса, АРМ технолога, формализация исходных данных, технологическая последовательность, качество продукции.

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

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

Для стабильного ассортимента решение задачи проектирования ТП изготовления мужских костюмов разных ценовых групп может решаться в следующей последовательности:

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

- на следующем этапе подбирается пакет материалов в соответствии с технологией обработки изделия и показателями свойств основного материала;

- на третьем этапе решается задача выбора методов обработки в зависимости от характеристик материала;

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

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

i Надоели баннеры? Вы всегда можете отключить рекламу.