Страница 3 из 5
Берская вышла за калитку. За ней скрежетнула железная задвижка, от этого стало спокойней на душе. Вздохнув, она оседлала велосипед и покатила по узкой просеке вдоль забора. Просека скоро перешла в мягкую сумрачную тропинку, деревья по сторонам расступились и поредели. Хорошие, честные люди, думала старуха с улыбкой, пытаясь поудобнее примостить за спиной укороченный приклад. И мальчишка так подрос. Если все удачно закончится, надо будет ему на обратном пути нарвать земляники…
Захоева уже минут десять сидела скрючившись за придорожным валуном, наблюдая за двумя дедами-рыболовами. В этом месте дорога, мощенная бревнами, подходила прямо к берегу какой-то реки, которой здесь раньше никогда не было, но об этом было лучше не думать. С другой стороны сквозь осоку блестело небольшое болотце, тоже незнакомое. По его краю можно было в принципе незаметно проскользнуть, но даже мысль об этом казалась оскорбительной. Старики выгодно сидели на берегу спиной к дороге и чуть слышно переговаривались. Между ними мраморным пеньком торчала банка самогона. Вряд ли это была западня, просто случайным людям выпала неудача оказаться в этот час на пути.
Захоева решила поберечь патроны для предстоящего свидания. Кем бы ни был ее загадочный противник, недооценивать его не следовало. С Пахомовым он разобрался решительно и жестоко, а ведь старый Пахомов тоже был не лыком шит. И бежал-то среди ночи, предупредить хотел, а у самого печень больная и ревматизм — значит, имя врага того стоило, значит, кто-то из старых знакомцев нашелся… Да уж, патроны ей еще пригодятся. К тому же сейчас на нее работал фактор внезапности, деды были захвачены разговором, и поэтому все можно было решить быстро и без шума. Старуха тихо сошла с дороги и ступила в мягкую траву.
Она уже успела подкрасться совсем близко, как вдруг случайная жестянка щелкнула под ногой, и старики дружно повернули головы. Захоева тотчас сгорбилась, сморщилась, затеребила тряпки на животе и стала причитать жалобным фальцетом:
— Ой, сыноч, помогите бабушке! Я иль заблудилася, или что? Поселок-то, Беево, далеко еще отсюдова?
Непонятно, кого она собиралась обмануть. Оба старика, судя по всему, не первый год прожили на свете и хорошо понимали, что может означать подобная встреча на узкой дорожке. Они сразу поднялись, побросали удочки и осторожно двинулись на старуху, заходя с разных сторон. Тактика упреждающей агрессии надежно зарекомендовала себя в этом мире как наиболее эффективная. Толстяк, лицо которого показалось знакомым, хрустнул пальцами и спрятал очки в карман. Его приятель, вытянув из штанов плетеный ремешок, медленно наматывал его на руку.
— Дык че ж, мать. Километров двадцать еще пилить, — сказал он насмешливо, прищелкивая ремешком, как плеткой.
Его мягкие сапожки очень тихо и тщательно наступали на траву. Бог знает, что у него на уме, подумала Захоева и решила прежде заняться толстяком.
Она сделала вид, что хочет шагнуть в его сторону, но вдруг охнула, нарочно подвернула стопу и кувырком подкатила ему под ноги. Толстяк не успел даже размахнуться. Выпрямившись, как змея, она громко плюнула ему в лицо. Сопля угодила в цель, противник был обескуражен. Он начал инстинктивно протирать заплеванные глаза, а в это время Захоева сильно вмочила ему в промежность. Он согнулся, подставив голову под ее коронный удар. Старуха решила не мудрить, сложила два пальца и отработанным движением выпотрошила ему левый глаз. Цвиркнула кровь, толстяк заскулил и ушел в кустарник, а Захоева едва успела увернуться от свистящего ремешка — сухопарый дед атаковал ее сзади.
Этот дед оказался неожиданно крепким орешком. Он пряжкой рассек ей щеку, контрил против всех захватов, а под конец ловко зафутболил в нее той самой злополучной жестянкой. Захоева, попавшись на удочку, прикрыла живот, а дед тут же сделал выпад и ухватил ее за горло. Ногти у него были кривые и толстые, как у орла; он их больно заправлял ей под кадык, внимательно глядя прямо в зрачки. Теперь уже было не до экономии, старуха сунула руку за пазуху и нащупала наган. Долбанул выстрел. Пуля попала деду в живот. Бедняга выпучил глаза и упал на колени. Захоева, согнувшись в пояснице, прокашлялась и отхаркнула красную слюну. Дед все стоял перед ней, как истукан. Она отерла губы, примерилась и с прыжка-поворота хрястнула ему в висок копытной пяткой. Дряхлый череп лопнул, как гнилой арбуз. Дед пустил кровь из ушей и умер еще в полете, до того, как его голова коснулась земли.
Захоева перекрестилась и обшарила покойнику карманы. Оружия не было. В брюках нашелся валидол. Она закинула в рот пару таблеток, а остальное спрятала за пазуху. Корявые черные буковки на пальцах старика привели ее в задумчивость. Где-то она уже слышала эту кличку, недавно в округе бродили какие-то трусливые слухи и подозрения. Филя. Филин. Ну что же, значит, не такой уже он крутой.
В кустах соблазнительно плакал и возился искалеченный толстяк, но старуха решила не тратить на него времени — неожиданная стычка и так выбила ее из графика, а привычки опаздывать она никогда не имела и сейчас не собиралась заводить. Перемотав тряпки на животе, она вернулась на дорогу и вскоре уже опять держала прежний темп, замывая слюнями рассеченную щеку и озабоченно поглядывая на свою уменьшающуюся тень.
Над ней неуемные ветры заплетали спирали из пыли, в облаках сгорали виденья, и день якоря поднимал. И наматывались километры на ступни. На грани бессилия балансируя, мысли бесили ее, и порез на щеке подтекал.
По миру прошелестела шустрая стайка предполуденных часов, и округлое солнце, взобравшись на вершину неба, остановилось, чтобы перевести дух. Берская, толкая велосипед, выбралась из оврага и тоже остановилась. Все было чисто. Змиевкин овраг в этом месте изгибался в виде буквы С, охватывая ровную травянистую площадку, с противоположной стороны заглушённую зарослями бузины. Подлец Пахомов, видимо, решил не тратить времени на организацию засады, а отправился сразу к Захоевой. Ну и хорошо.
Теперь осталось где-то минут пятнадцать, не больше, старая уборщица опаздывать не любит.
Присев на пенек возле тропинки, Берская полезла в авоську и стала ворошить книги, выбирая, чем бы отвлечься. На глаза попалась брошюра некоего С.М. Гандушина «Программная Реализация Эволюционных Моделей». Берская приобрела ее еще позапрошлой осенью, перед семинаром в Барселоне, да так и не удосужилась прочитать. Оглавление рассыпало перед ней старознакомые слова, тусклые отблески бывшей жизни. Объектный подход и организация ресурсов, модель живого объекта, механизмы мутаций, атрибуты и методы, Вселенная как объект. Старуха усмехнулась и открыла наугад.
«…для того чтобы система могла беспрепятственно самоусложняться, нужно грамотно запрограммировать механизм мутаций. Критерием успешности той или иной генетической комбинации должна служить выживаемость вида, то есть способность дожить до репродуктивного возраста и оставить потомство в условиях конкурентной борьбы за жизненные ресурсы. Заметим, что, говоря о «генетическом коде», не следует ограничиваться лишь совокупностью значений атрибутов, определяющих физические свойства и поведение живых объектов, как это делают авторы [7], так как это наложит архитектурные ограничения на эволюционные возможности системы. Предметом мутаций должно служить описание классов, то есть непосредственно программный код, определяющий структуру и поведение живых объектов. Иными словами, живые объекты должны иметь возможность в процессе эволюции менять собственную программу, в результате чего возникнет самооптимизирующаяся модель, которая будет развиваться, постоянно переписывая саму себя».
Ну, это он завирается, такая система будет виснуть на каждом шагу, подумала Берская, перелистывая несколько страниц.
«…еще одним примером возможной оптимизации может служить сохранение адреса Вселенной в локальной памяти объектов в качестве одного из атрибутов. В этом случае объект, обращаясь к адресу Вселенной, сможет быстро получить прямой доступ к глобальным параметрам окружающего мира, а также к параметрам других объектов. При реализации такой архитектуры решение многих задач, о которых мы говорили в предыдущих главах (в частности, задач виртуальной физики и обмена информацией между элементами системы), может быть организовано гораздо более эффективно.
При этом необходимо соблюдать осторожность — атрибут с адресом Вселенной должен быть открыт только для чтения, то есть защищен от изменений со стороны мутирующего кода, иначе какая-нибудь генетически устойчивая ветвь на определенном этапе эволюции может научиться устраивать свое благополучие, обращаясь напрямую к этому адресу и манипулируя параметрами Вселенной и окружающих объектов. Излишне говорить, что такая практика приведет к нарастанию хаоса в модели, а в конечном счете к ее вырождению и гибели. Правда, при построении гарантированной защиты в системе, которая постоянно переписывает саму себя, могут возникнуть определенные сложности, но на этом мы остановимся в следующих главах.
В заключение, прежде чем перейти к конкретным алгоритмам, отметим, что при реализации вышеописанного дизайна мы получаем интересную ситуацию, когда с точки зрения конкретного живого объекта (если, конечно, допустить, что какой-либо класс доусложняется до того, что его объекты будут иметь свою точку зрения) вся Вселенная находится у него внутри, тогда как на деле «внутри» объекта будет находиться не сама Вселенная, а лишь ссылка на расположение олицетворяющего ее объекта в памяти компьютера. Эта архитектура известна любому программисту и не несет в себе противоречия, а между тем философский аспект такого мироустройства постигается с трудом, что всегда служило одной из причин непопулярности субъективного идеализма».