Изменить стиль страницы

Тимур бачить манекенів. Їх двадцять. Розставлені як попало. Бетонні стіни довкола формують довгий коридор. В одному кінці його перекриває броньований щит. За ним стоять два боти. З іншого боку коридор закінчується глухим кутом. У цьому місці високо на стіні прикріплені на кронштейнах два скорострільні авіаційні кулемети M134 «Мініґан»[68].

— Кожен кулемет має лазерний приціл та комп’ютеризовану систему пошуку цілей, — пояснював далі Ральф. — Вони реагують на рух, блискавично відкриваючи вогонь. Для більшого ефекту ми зарядили обидва «Мініґани» бойовими патронами.

Повсюди валяються бетонні блоки, автомобільні скати, проіржавілі бочки. За ними сяк-так можна сховатися від кулеметних прицілів. Ботам вручають зброю і компілюють на мозкові плати програму знищення манекенів.

Надувши щоки, генерали зацікавлено стежать за приготуваннями зі спостережного пункту, влаштованого на пагорбі неподалік.

Тест починається… Боти вибігають з-поза захисного щита. «Мініґани» в момент захлинаються вогнем. Зі стін бризкають сірі бетонні скалки, земля стає рихлою від куль. Експеримент закінчується за лічені секунди. Кулемети затихають. Над коридором висить туман з пилу та диму. Хтось з американських офіцерів знімає окуляри і хмуриться.

Тимур скоса глянув на Ральфа. Хлопець попервах не зрозумів, що відбулося.

— Дивись далі, — нейрохімік не відривався від монітора.

Запускається сповільнений повтор. У лівому нижньому куті екрана фіксується час з початку експерименту, кількість виконаних пострілів та кількість «мертвих» манекенів. Боти пролітають усю відстань за 19 секунд, легко знищуючи мішені. «Мініґани» роблять по 840 та 973 постріли відповідно, при цьому жодна куля не чіпає ботів. Хлопчики рухаються настільки швидко і непередбачено, що комп’ютеризованій системі не вдається їх навіть подряпати.

У кутку екрана зависають підсумкові титри:

00:19.16

SHOTS: 840 | 973

TARGETS DESTROYED: 20

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

— Почекай. Усе цікаве тільки починається.

На моніторі спостережний пункт. Американцям щойно показали сповільнений запис. Офіцери вражено хитають головами, посміхаються, плескають Вілла Ноланда по плечах. Хтось навіть аплодує. Кейтаро напнувся, мов індик. Стоїть неподалік, задоволений, заклав руки за спиною.

Несподівано до Джепа підскакує Ральф і щось стурбовано шепоче на вухо. Чоловіки відходять і дивляться на тестову галерею. Там щось коїться. Лице Кейтаро витягується. Він кидає короткий наказ Ральфу і розвертається. Ральф Доернберг швидко спускається з помосту, прихопивши з собою «Ремінгтон». За ним прямують двоє чилійських охоронців. Тим часом Джеп забирає делегацію і поспішно виводить американців з оглядового майданчика.

— Що там відбувається? — спитав Тимур.

Канадець не відповів.

Картинка знову міняється. Посеред екрана блимає: «ЕКСПЕРИМЕНТ ЗАКІНЧЕНО». Камера напливає на ботів, що стоять у глухому куті, оточені бетонними блоками. Один з них вискакує на спину іншого, витягується і чіпляє руками кронштейн, на якому кріпиться правий М134. Підтягнувшись, бот дотягується до поворотної системи і кількома ударами роздовбує її. Кулемет хилиться, дзижчить і валиться на землю.

«ЕКСПЕРИМЕНТ ЗАКІНЧЕНО». Тоді що за чортівня з тими ботами?

У цей час Ральф та чилійці виходять із-за броні. Боязко роззираються і крокують до ботів по коридору. «Малюк», зіскочивши на землю, намагається знешкодити лівий кулемет. Другий кронштейн знаходиться набагато вище і є недосяжним для нього.

Експеримент закінчено? Та невже?

— Ось код процедури, скомпільованої в їхні голови перед початком тесту.

Тимур нахилився до монітора. З подивом відмітив, що інтерфейс debugger’а йому не відомий. На щастя, синтаксис нагадував С++, тому з кодом проблем не було.

int TEST_010524 ()

{

Targets DOLLS (System.GetTargets (gt_Front, gt_Type1));

if (!DOLLS) return 0;

int NT = DOLLS.GetTargetsNumber ();

for (int i=0; iNT; i++)

{

System.MoveToObject (DOLLS[i], 1, 0, 0);

DOLLS[i].Destroy;

}

System.Macros ();

Clear ();

if DOLLS.AllDestroyed () return 1

else return 0;

}

Процедура була надзвичайно простою. Оголошувалася змінна DOLLS. Далі системна функція GetTargets аналізувала об’єкти попереду бота і записувала в DOLLS масив знайдених мішеней типу gt_Type1.

— gt_Type1 — це глобальна константа, що описує манекени, — розтлумачив Ральф.

Метод GetTargetsNumber визначав кількість мішеней. Потому запускався цикл, на кожному кроці якого бот рухався до мішені і ліквідовував її. Для цього використовувались функції MoveToObject та Destroy. Наостанок очищалася системна пам’ять і здійснювалася перевірка, чи всі манекени знищені. Для Тимура лишалося невідомим одне — призначення функції System.Macros.

Тимур продивлявся код, коли раптом усвідомив очевидне: ботів не програмували на знищення кулеметів. У їхній свідомості (точніше, у віртуальному баченні світу) М134 просто не існували! Боти бачили лише манекени. Попри це «малюки» знайшли «Мініґани». Більше того, боти силкувались вивести їх з ладу через дві хвилини після того, як тестові програми витерли з мозкових плат.

— А тепер подивись на візуалізацію результатів енцефалографії.

На екрані з’явилося нове вікно, розділене навпіл. Ліву частину займала 3D-модель мозку. Справа прокручувався відеозапис експерименту. Без пришвидшення. Перші двадцять секунд мозкові плати палали червоним. Працювали на повну. Решта мозку лишалася сірою. Лиш де-не-де проступали рожеві плями. Знищивши останній манекен, боти завмерли.

— В цьому місці процедура видаляється з мозкових плат, — сказав Ральф.

Мізки на 3D-діаграмі стали попелясто-сірими. Тимур перевів погляд на праву частину вікна програми. Бот очуняв і потягнувся до кулеметів. Програміст знову подумав: програма ні до чого. А тоді, глянувши наліво, на діаграму, що відображала активність мозку, похолов. Мізки бота лишались пасивними — сірими. Зате центральна частина мозкових плат набула яскраво-червоного забарвлення. Бот не думав. Бот підкорявся імпульсам з процесора.

Тимур впирався у глухий кут. Він вірив, що боти неспроможні реалізовувати складну поведінку; запрограмована істота фізично не здатна на таке. У той же час факти твердили протилежне: хлопчиками керувала програма.

Ральф зиркнув на наручний годинник:

— Закругляємось, Тимуре. Ми вже спізнились на вечерю. За кілька хвилин Кейтаро накаже заблокувати двері та опустити жалюзі в корпусі «DW».

— Можна ще питання? Перед приїздом американців ботів випускали у коридор?

— Звісно, ми їх вишколили. Проганяли двічі. Тільки замість М134 на стіні висіли дві пейнтбольні гармати.

— Тоді були якісь відхилення?

— Жодних.

XLIII
Понеділок, 17 серпня, 08:55 (UTC –4) «DW», житловий корпус

Ніч з неділі на понеділок минула без пригод. Загорожа стояла під напругою; ботів чекали. Втім, ті наче крізь землю провалилися.

Після сніданку Кейтаро Рока зібрав групу на планову нараду.

— Як успіхи, Тимуре? — без розшаркувань почав Джеп.

Програміст склав руки на столі.

— На мою думку, збій у роботі мозкових процесорів не міг стати причиною втечі та подій, що їй передували. Те, що здійснили боти, не можна назвати збоєм. Той факт, що під час утечі «малюки» керувались сигналами з процесорів, ще більше збиває з пантелику, — хлопець впер погляд у стіл перед собою. — Сьогодні я продовжу розслідування, детальніше розбираючи коди, але на даний момент я не до кінця розумію, що від мене вимагається.

вернуться

68

M134 Minigun — багатоствольний скорострільний кулемет, розроблений компанією «General Electric». Скорострільність — 2000—6000 пострілів за хвилину.