Владимир Паронджанов писал(а):
Вы отчасти правы. Но только отчасти.
Вы указали на случай, когда правило "чем правее, тем хуже" не работает.
Вы неявно предложили (для данного конкретного случая) заменить правило "чем правее, тем хуже" на другое правило.
Но это вовсе не значит, что картографический принцип не работает, и что имеет место "кричащее нарушение".
Разве в картах можно заменять правила системы координат (видимо, по ходу маршрута), причём неявно?
Владимир Паронджанов писал(а):
Правило "Чем правее, тем хуже" относится только к схеме без циклов.
Если же есть цикл, то по приоритету сначала рисуем цикл без пересечений, и лишь после этого (если есть возможность) упорядочиваем вертикали согласно правилу "Чем правее, тем хуже".
Почему правило не относится к циклам и почему возникают какие-то приоритеты? В таком случае фундаментальный картографический принцип неясен и противоречивый, что ли...
Итак, методология предписывает пользователю обязательно ввести строгое "правило хорошей хозяйки" ("если постараться, порядок всегда можно навести" -- главное правило картографического принципа согласно приведенным публикациям выше). Каким бы ни было бы правило, строгое требование -- быть осмысленным. Иными словами, порядок должен выражать определенный смысл согласно ценностям субъекта, т.е. представлять предписания для достижения требуемой цели (в соответствии с её критериями). Так, для примитива (всего алгоритма) или ветки (локализованной его части) выделяется главный шампур (в т.ч. с визуальными отличиями а-ля "жирная линия" или др.), предполагая в его начале исходную позицию и в конце заданную локализованную цель (согласно ценностям субъекта). И этот шампур должен пронизывать или на него должно быть одето самое ценное для субъекта -- для чего, если не ошибаюсь, эта линия так и названа -- "шампур", и соответствующая методология -- "шампур-метод".
Если вдруг "хорошая хозяйка" изменит правило, тем более неявно, и в конце главного маршрута содержится иная цель -- возникает совершенно иной смысл (если бы исходная задача линейного поиска, ранее в теме, была бы оформлена полностью, то, скорее всего, в качестве цели подразумевался бы логический результат (алгоритм а-ля булевая функция), где "истина" -- поиск успешен (первая "ветка" в текстовом варианте после цикла на рисунках). В данном случае главный шампур примитива должен отражать достижение состояния успешного поиска).
Если цикл с постусловием вида "выполнять .. до ..." может быть одет на шампур -- всё хорошо, правило хозяйки применимо, картографический принцип в действии, алгоритм признаётся "красивым" (согласно определениям этого принципа).
Если цикл с предусловием ("пока ...") для соответствия с правилом хозяйки может быть оформлен только в целом как ветка или ветки (веточный цикл), непосредственно надетый на шампур, а хочется как цикл со стрелкой, то, видимо, вводится иное строгое правило -- можно неявно "временно" изменить исходное правило хозяйки или ввести иное строгое правило, точечно. Почему? Ведь точечно невозможно.
Локализацию критериев можно понять во вложенной области, например, в циклах вида "для", конструкции "выбор". Но почему в разрезе примитива/ветки какие-то "вопросы" или развилки должны иметь некие исключения из строгого порядка и приоритеты? Почему допускаются какие-то особые маршруты? Для чего тогда рисовать "жирную линию" для всего шампура?
Ведь все развилки в ветке организовывают её упорядоченность, и циклы в том числе. "Вопросы" как условия циклов также упорядочивают маршруты, как после циклов, так и внутри (в том числе и "досрочные выходы").
Если в фундаментальном принципе "если постараться, порядок всегда можно навести" часть "если постараться" заключается в подмене критериев ("временно", и неявно) -- ведь тогда карта процесса ложна.