Найти тему

Задача оптимизации платежей

Здесь уже был опубликован рассказ о начале создания технологий в КАБ «Славянский».
Теперь я поведаю об одной из задач, которая была сформулирована в КАБ «Славянский» и которую там решили. Но сначала я предложу любому попробовать свои силы и попытаться решить задачу, тем более, что она уже не проблема,, а именно задача, так как имеет законченную формулировку.

Итак, КАБ «Славянский» в своё время прославился на Украине с одной стороны тем, что довольно быстро из чахлого «Трансформаторбанка» с огромными дырами в балансе, в котором за выдачу кредита умудрялись принимать «благодарности» в виде 100 коробок стирального порошка «Лотос» (я не шучу!), превратился в один из 6-7 крупнейших банков Украины, к тому же длительное время не имея ни одного филиала, а по эластичности его доходов ему не было равных вообще в Европе (в Европе — точно, в мире — не знаю), а с другой стороны тем, что там работало т.н. Управление банковских стандартов и правового сопровождения, в котором как раз и была группа, которая занималась конструированием схем операций уже по определённым разработанным стандартам и надзором над жёсткой (на самом деле жестокой, по крайней мере поначалу, дело доходило до грандиозных скандалов и поддержание технологической дисциплины стоила многих нервных клеток, ибо самодеятельных порывов у всех было хоть отбавляй) технологической дисциплиной исполнения всех технологических действий в этих операциях. Дело дошло до того, что, во-первых, банк вообще работал исключительно по операциям, а не по разрозненным сделкам и любой кредитный договор всегда был только и исключительно частью какой-то операции, которую, кстати, не обязательно было видеть всем, а во-вторых, в банк уже начали обращаться как в конструкторское бюро за решением той или иной возникшей проблемы, а число весьма серьёзных клиентов банка росло. Тем более, что Б.М. Фельдман — душа всего этого дела — очень хороший организатор и совершенно выдающийся переговорщик.

Объясню сразу. В рамках банка операцией (не банковской операцией, а просто — операцией) называлось более одной сделки и действий, объединённых единой целью, ради которой и выстраивалась и выполнялась операция.

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

Сам банк и никто из него политикой не занимались, хотя поползновения затянуть его в политику были. Возможно, что это была ошибка, а быть может, и нет. Кстати, небезызвестная Ю.В. Тимошенко торговала газом из России на Украине как раз по оперативным схемам, разработанным в КАБ «Славянский», я, в отличие от Н.Я. Азарова и Л.Д. Кучмы и, быть может, даже самой Ю.В. Тимошенко, и уж точно — следователей и судей, которые трудились над её делом, отлично эти схемы знаю, а поэтому я совершенно точно знаю, что юридически там как раз всё было чисто и риски внутри операции были предельно минимизированы, но её последующую деятельность за пределами осуществления операций, понятно, мы никак не контролировали. При этом это просто была одна из заказчиц разработок, за которые, к слову, никто денег как именно за разработки не брал. Поэтому утверждение, что КАБ «Славянский» был карманным банком Юлии Владимировны... а с этим в своё время носился Н.Я. Азаров, вызывало, как минимум, недоумение. Это всё равно что сказать, что какое-то КБ было карманным для кого-либо просто поставившим перед ним очередную задачу, которое КБ и решало. Вообще-то за соблюдением технологической дисциплины в процессе использования изделия и производства ведут надзор конструкторы, а не наоборот.

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

Ещё раз: поверьте, я очень ценю интеллектуальный труд, я высоко ценю труд инженера, врача, конструктора, юриста, однако вот всё, что я утверждаю:
если шахтёр не добудет угля, если металлург не выплавит метал и не отольёт и не прокатает его, если крестьянин не вырастит пшеницу, рожь, ячмень, то с голоду помрёт и сам рабочий, и крестьянин, и гениальный конструктор, и светлый мыслью юрист, а вот наоборот
нет. Более того, пролетариат именно в своих интересах, оказавшись гегемоном и осознав себя таковым, непременно и довольно быстро породит из себя необходимых ему учителей, конструкторов, инженеров, врачей, учёных и даже не побоюсь сказать управленцев. Потому что это в его интересах, а в шахтах, в цехах, на селе я видел очень и очень много талантливых людей... никак не меньше, чем среди золотой молодёжи и хипстеров.
Но мы отклонились.

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

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

Я сейчас скажу страшную вещь: на вашем счёте в банке никаких денег вообще нет. Совсем. И не было никогда. Если банк говорит Вам обратное — врёт, осознанно или нет, но именно врёт. И законодатель в этом смысле врёт. Деньги в безналичном виде есть только в эмиссионных центрах, их нет даже на корреспондентских счетах самих банков.
А сейчас я скажу ещё нечто, что также выглядит невероятным.
Если вы — плательщик и счёт у вас в банке, а получатель платежа находится в
том же самом банке, то для производства такого платежа вне зависимости от его суммы... банку вообще деньги и не нужны. И не только банку, они вообще в этом случае не нужны. Да, как бы Вам это ни казалось парадоксальным. Вы командуете банку уменьшит число на вашем счёте на определённую сумму и увеличить на эту же сумму число на счёте получателя платежа, банк проверяет не больше ли испрашиваемая вами сумма числа, записанного на вашем счёте, и если не больше, просто проделывает указанные арифметические действия. Как видите никаких денег тут не надо, и от суммы, которая вычитается от одного числа и прибавляется к другому, тут решительно ничего не зависит. Ну, во всяком случае, пока речь идёт о числах в пределах разрядной сетки представления числа и арифметических операций в ЭВМ. Поверьте, этого вполне достаточно лет на ...десят на нашей Планете, а дальше, а дальше ровно один вариант — не будет денег. Или у нас, землян, или вместе с нами, с землянами.

А всё дело в том, что на счетах отображаются не суммы каких-то денег, а суммы обязательств банка перед вами. Но актуальное обязательство есть не что иное, как пара «кредиторское требование — долговое обязательство». Обязательство вообще всегда актуально существует только в виде такой пары. Если я дал обещание публично, то всего лишь определил обязательство как конкретное это. Возникнет же такое обязательство в действительности, получит своё наличное бытие, только тогда, когда появится по нему конкретный кредитор.
Это всё значит, что ваша команда банку на перевод на какой-то счёт есть именно уступка кредиторского требования, которое вы имеете к банку и которое, к слову сказать, он как раз признаёт, отображая положительный остаток по вашему счёту, другому субъекту.

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

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

Если Ω — множество субъектов,
а V ⊂ (Ω×Ω) — множество обязательств
и φ: V →
Q, причём ∀v∈V ∃ε∈Q: ε = φ(v), а (Q ⊂ ℚ): (q ∈ Q) ∧ (q>0),
то наш мультиграф записывается как
D ≝ ⟨Ω, V, φ(V)⟩

Математики скажут, что граф D по определению задан множеством вершин Ω, множеством дуг V, представляющим собою подмножество прямого произведения множества вершин самого на себя, и весовой функцией φ(V), а каждое значение этой функции на любой дуге называется весом дуги.

А ещё они скажут, что если (ρ ∈ Ω) ∧ (ω ∈ Ω), то дуга (ρ, ω) инцидента ω и инцидентна ρ, причём для ω это будет входящая дуга, а для ρ - исходящая.
Количество всех входящих в ω дуг назовут
входящей степенью ω, а количество всех исходящих из ρ дуг назовут исходящей степенью ρ.

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

-2

Для проверки:
а может чистый водоём быть одновременно и чистым источником?

-3

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

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

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

Другое дело, что этот мультиграф меняется во времени, так как возникают и ликвидируются субъекты, возникают и прекращаются обязательства, но изменение это происходит дискретно — так как единый баланс чаще других субъектов сводят именно банки, а именно в конце каждого дня, то внутри одного дня без потери общности мультиграф D следует считать неизменным. И это значит, что на этой «мгновенной фотографии» можно уже работать с независящим от времени мультиграфом. Что особо приятно.

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

Мы собрали данные примерно по 100 субъектам, правда крупным, и сделав довольно несложные расчёты вдруг выяснили, что внутри этого графа в реальности от 30% до 40% числящихся денег — просто лишние, они вообще там не нужны, чтобы полностью рассчитаться всем субъектам. Как это так?
А вот смотрите:

Простой случай мгновенного графа взаимных обязательств (маскировано). Из архивов
Простой случай мгновенного графа взаимных обязательств (маскировано). Из архивов

А должен Б — 43, а Б должен А — 50. Так как это — одномоментные обязательства подлежащие все исполнению, а требования и у А и Б — однородные, то эту пару обязательств вполне можно заменить одной: Б должен А — 50-43=7. Верно?
Интересен треугольник обязательств между А, В и Г. Как только Г заплатит А — 10, А заплатит В всё те же — 10, а В должен Г — 25. Это значит, что Г должен не А, а В — 10, а В должен Г — 25, то есть В должен Г — 25-10=15. При этом Г из этих 15, полученных от В, должен уплатить Д — 7, значит, В надо платить Г не 15, а 8: 15-7=8, а 7 — уплатить Д.

И в результате у нас вышло вот что:

-5

А теперь давайте посчитаем сумму всех обязательств на исходном графе и сумму всех обязательств на результате, то есть как раз количество потребных денег для расчётов.
В первом случае это 43+50+10+10+25+7=145
(кстати, знаменитый показатель ВВП это как раз примерно вот эта сумма!),
а во втором случае это 7+8+7=22.
Я где-то допустил арифметическую ошибку?
При этом добрая половина из этих субъектов будет ходить в банк и клянчить кредитов, чтобы рассчитаться. А... тут если и нужны кредиты реально, то не на сумму 70, а только на 22, да и то, если вообще нужны.

Повторяю, по 100 исследованным нами предприятиям излишняя сумма денег, которые торчали в ценах, была именно 30% — 40%. И это были вовсе не худшие предприятия.

Ну, казалось бы.... ан нет!

Понятно, что как только у вас число рёбер и вершин начинает возрастать, вручную такие вещи сделать будет несколько затруднительно. Да просто увидеть глазом, например, циклы длиной, скажем в 20 дуг и более — вот запросто не просто. Скажем, если у вас в этой схеме отражены все субъекты хотя бы Украины и все обязательства между ними (о более масштабном я вообще молчу!), то не существует такой клиринговой палаты, которая вручную смогла бы провернуть эту работу. Нужен алгоритм, причём такой, чтобы его могли выполнить умные машины — ЭВМ.

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

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

Тем не менее, задача сформулирована... попытайтесь её решить.

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

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

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