Минимизация деревьев. Возвращаясь к напечатанному.



Posted by Анимица Анатолий on May 25, 1999 at 21:37:59:

In Reply to: Помогите доработать файл коэффициент posted by Сергей Холево, фирма Централь Минск on May 21, 1999 at 11:43:15:

Возврщаюсь к примеру Сергея Холево с интеллектуальным деревом операций ФБП (а у Станислава Лема есть мыслящий картофель! Если кто забыл)
Сергей пишет:
"Во-первых, удалось уменьшить размер дерева примерно в 50 раз". Если речь идет о примере, то 5*50=250, что хорошо согласуется с практикой, а если взять реальное минимальное плодоносящее дерево (далее МПД - если позволите, этим ввожу термин для дальнейших публикаций), то МПД имеет размер Nmpd=1{строка дерево видов операций)+3*2 (строки null,_x x (0),{,создать документ line0,},создать документ line0 дай им Бог здоровья и благополучия) и собственно 1 ветку длиной 12 отрезков плюс одна строка проводки ну и еще одна для того, чтобы HOT KEY на эту ветвь назначить. Первичные документы изгнаны как класс за неумение создавать себя в прошлом, а также за неумение пересоздаваться автоматически по команде Главного оператора (мысль мелькнула: а ну как наш Главный оператор тоже умеет давать ТАКИЕ команды?. Итого 1+6+12+1+1=21. 21*50=1050, что вполне достойно, но сегодня избыточно даже при традиционалистском конструировании дерева.
Считаю своим долгом поддержать Сергея в абсолютной схожести всех бухгалтерских операций - они описывают "кто кого куда и зачем", объяснить, откуда у этого сходства гены: они от консервативности бухгалтерского учета - в том смысле, что бухгалтерская проводка перемещает актив, порождая смену обязательств или наооборот, консервативно, то есть не нарушая баланса. В отличие от слесаря Васи - креатора, который, навинчивая гайку на болт, создает новую ценность "болт-гайка", вынуждая бухгалтера гасить это креаторство в кредите счета 80. "Консерватизируя" новацию Креатора Васи-слесаря.

Вернемся к теме номера. Сергей Холево предлагает написать листок мыслящего картофеля и привить его дереву, чтобы этот гибрид соображал кто кого куда и зачем. Отлично. Предлагаю пойти дальше. Если взять любой из моих работающих примеров, можно увидеть, что жалкие отрезки ветвей-вопросов по 10..11 символов используются для искусственного наращивания строки комментария. Побочный эффект - ценой соблюдения соглашения с пользователями удается факторизовать эти куски комментария и использовть их, например, в [jf.. селекторах - скажем, в книгах операций (ну там покупок, продаж, кассовой etc.) Легко видеть, что (я уже писал об этом, что [ct]-sensitive Question Selector can help You for compose any operation sense!
То есть так оно и есть! Увидел в первом вопросе "кто" - спроси во втором "кого", увидел "что" - спроси во втором "зачем" и так далее. И еще что здорово: каждый последующий селектор может знать ВСЕ предыдущие [ct] - то есть ихний интеллект растет в 2**12=4096 раз как минимум (это одна единственная форма-селектор, только она на первой ветви прикидывается дурочкой), а на последних дает прикурить по полной программе).
Если честно, я написал бы что-то подобное пока сочиняю это сообщение, но пока не время. А на практике этот прием у меня применятся давно, только глубина [ct] не превышает 2..3. Оккам писал - ну не порождайте сущностей без крайней необходимости, ну зачем вы их порождаете? Как будто порождать больше некого".
И напоследок замечание. В высшей степени не согласен с глубоко ошибочнным и легкомысленным постулатом "покупатели не продают, поставщики не покупают и еще масса если, чтоб облегчить себе жизнь". Так не бывает. А бывает всяко, говорит товарищ Мэрфи и не только он. Поэтому: в моих системах в одной операции (групповой, естествнно) можно продать весь план счетов предприятия, включая его пассивы (они же задолженности) кому угодно в этом же плане счетов, хоть субсчету 81 счета, и, наоборот, купить что угодно у кого угодно, причем все в одной операции! Только непременно нужно, чтобы внебалансов на селекторах и духу не было, а то потом концов не сыщешь, откуда баланс развалился.




Пpишедшие ответы: