Дороти подошла к перфоратору, села на стул перед клавиатурой. Похлопала рукой по соседнему стулу.
— Садитесь, Итан. Покажу основы.
Сел рядом. Дороти достала пустую перфокарту из стопки, вставила в щель перфоратора.
— На карте восемьдесят колонок. Каждая колонка один символ. Цифра, буква или специальный знак. — Указала на клавиатуру. — Печатаете как на обычной машинке, но перфоратор пробивает комбинацию дырок вместо печати букв.
Нажала несколько клавиш. Машина щелкнула, металлические стержни пробили дырки в карте. Вытащила и показала мне.
— Вот я набрала «УБИЙСТВО». Видите дырки в первых колонках?
Посмотрел внимательно. Действительно, в каждой из колонок пробита уникальная комбинация дырок.
— Каждая буква имеет свой код из дырок. Компьютер считывает код, преобразует обратно в букву. — Дороти положила карту на стол. — Но для базы данных преступлений вам нужны не слова, а коды. Числовые.
Кивнул.
— Понимаю. Каждый тип преступления получает номер. Убийство — один, ограбление — два, изнасилование три.
— Правильно. — Дороти вставила новую пустую карту. — Давайте попробуем закодировать одно дело как пример.
Я подумал и вспомнил дело Лизы Кэмпбелл, раскрытое вчера.
— Убийство. Жертва женщина, двадцать восемь лет, белая. Место округ Колумбия. Метод удушение веревкой.
Дороти взяла блокнот и карандаш, начала записывать.
— Хорошо. Нужна система кодирования. Первые десять колонок номер дела. Следующие колонки обозначают параметры. — она быстро писала. — Тип преступления убийство равно ноль один. Пол жертвы женщина равно ноль два. Возраст двадцать восемь. Раса белая равно ноль один. Штат округ Колумбия равно…
Остановилась и посмотрела на меня.
— Видите? Вам нужно создать полную кодовую книгу. Все штаты, все типы преступлений, все методы, все возрастные группы. Это займет достаточно много времени.
— Сколько?
— Несколько дней чтобы разработать систему. Потом проверить на примерах, убедиться что коды работают правильно.
Я задумался. В двадцать первом веке базы данных использовали SQL, реляционные таблицы, гибкие поисковые запросы. Здесь примитивные перфокарты с восемьюдесятью колонками. Но принцип тот же, надо структурировать данные для быстрого поиска.
— Дороти, а можно закодировать несколько уровней детализации?
— Что вы имеете в виду?
— Например, убийство это общая категория. Но есть подкатегории. Огнестрельное убийство, удушение, ножевое ранение, отравление. Каждая подкатегория дает дополнительную информацию для связи дел.
Дороти медленно кивнула.
— Да, можно. Просто выделите больше колонок для деталей. Допустим, колонки с одиннадцатой по двадцатую обозначают тип преступления и метод. Колонки с двадцать первой по тридцатую — информация о жертве. И так далее.
— А можно закодировать географические координаты?
Дороти подняла бровь.
— Координаты? Зачем?
Я вспомнил географическое профилирование из двадцать первого века. Картирование мест преступлений, поиск центральной точки активности преступника.
— Если закодировать широту и долготу места преступления, компьютер может искать дела в определенном радиусе. Преступники обычно действуют в ограниченной географической зоне. Например, серийный убийца редко путешествует больше ста миль от дома.
Дороти записала в блокнот.
— Интересная идея. Широта и долгота это два числа, каждое состоит из нескольких цифр. Займет колонок пятнадцать-двадцать на карте. — Посмотрела на меня. — Но у вас только восемьдесят колонок. Нужно экономить место.
— Можно округлить координаты. Не нужна точность до секунды дуги. Достаточно градуса и минуты.
— Тогда десять колонок хватит. — Дороти продолжала писать. — Что еще?
Я подумал о профилировании преступников. В двадцать первом веке ФБР использовало базу VICAP (Violent Criminal Apprehension Program) Программа выявления и задержания опасных преступников. Там кодировали не только факты о преступлении, но и поведенческие характеристики.
— Нужно закодировать поведение преступника на месте преступления. Организованный или дезорганизованный тип. Планирование или спонтанность. Наличие сексуального мотива. Посмертные действия с телом. Трофеи, взятые с места преступления.
Дороти остановилась, удивленно посмотрела на меня.
— Это уже психология, а не статистика.
— Психология помогает связывать дела. — Я наклонился вперед. — Два убийства могут выглядеть по-разному: разные жертвы, места и оружие. Но если поведение преступника одинаковое, вероятно это сделал один человек. И мы увидим это.
Дороти медленно кивнула.
— Логично. Но как закодировать поведение? Это ведь не число.
— Можно использовать бинарные коды. Да или нет, один или ноль. Планирование: да равно один, нет равно нулю. Сексуальный мотив: да равно один, нет равно нулю. Трофеи: да равно один, нет тоже равно нулю.
— Это займет еще десять-пятнадцать колонок.
Я посчитал в уме. Номер дела занимает десять колонок. Тип преступления и метод тоже. На жертву пятнадцать колонок. География — десять колонок. Дата — восемь колонок. Поведение преступника — пятнадцать колонок. Итого шестьдесят восемь колонок из восьмидесяти.
— Почему, у нас вполне хватит места. Остается еще двенадцать колонок для дополнительных данных.
Дороти продолжала писать в блокноте. Заполнила страницу, перевернула и начала новую.
— Агент Митчелл, вы думали об этом ранее?
— Немного. — конечно же я солгал. На самом деле я знал принципы баз данных из двадцать первого века. Просто адаптировал их к технологиям тысяча девятьсот семьдесят второго года.
Дороти закончила писать и положила карандаш.
— Хорошо. У нас есть структура данных. Теперь нужно написать программу для сортировки и поиска.
— Вы умеете программировать?
— Да. Язык программирования COBOL и Fortran. COBOL используем для бизнес-приложений, Fortran для научных расчетов. — Пауза. — Для вашей задачи подойдет COBOL. Он работает с текстовыми данными и файлами.
— Сколько времени займет написание программы?
Дороти задумалась.
— Программа для ввода данных будет готова за неделю. Программа для поиска по одному параметру еще неделя. Программа для поиска по нескольким параметрам займет две-три недели. Еще неделя на тестирование. — Посчитала пальцами. — Всего шесть-семь недель.
Семь недель из двенадцати, отведенных на пилотный проект. Плюс три месяца на пробивку перфокарт для всех пятидесяти тысяч существующих дел. Мы не уложимся в срок.
— Дороти, а если не вводить все пятьдесят тысяч дел сразу? Начать с выборки?
— Какой выборки?
— Нераскрытые убийства за последние три года. Сколько их примерно?
Дороти встала, подошла к столу у стены и взяла папку с статистикой. Пролистала страницы.
— Нераскрытые убийства с января семидесятого по июнь семьдесят второго… — Водила пальцем по колонкам цифр. — Примерно тысяча двести дел по всей стране.
Тысяча двести дел. По три перфокарты на дело это три тысячи шестьсот карт. Триста карт в час займет двенадцать часов работы перфоратора. Две недели работы одного оператора.
— Две недели на ввод данных вместо трех месяцев. Это реально?
— Да. — Дороти кивнула. — Если мистер Финч одобрит приоритет, могу выделить время. Зарплатные расчеты раз в две недели, остальное время относительно свободно.
Я почувствовал что план начинает складываться.
— Итак. Первый этап это разработать кодовую книгу, две недели. Второй этап: написать программу ввода данных, одна неделя. Третий этап, пробить перфокарты для тысячи двухсот дел, нужно две недели. Затем на четвертом этапе написать программу поиска, займет три недели. Пятый этап это тестирование, одна неделя. — Посчитал. — Всего девять недель. Остается три недели запаса до конца пилотного проекта.
Дороти улыбнулась.
— Амбициозный план. Но возможный, если мистер Финч не будет мешать.
— А он может помешать?
— Зависит от того, насколько вы его убедите. — Дороти взяла блокнот, протянула мне. — Возьмите. Покажите ему структуру данных, объясните преимущества. Мистер Финч скептик, но не дурак. Если увидит логику, то поддержит.
Взял блокнот, пролистал страницы с записями Дороти. Аккуратные таблицы, схемы и примеры кодов.
— Спасибо, Дороти. Вы очень помогли.
— Не за что. — Она посмотрела на часы. — Уже одиннадцать тридцать. У меня обеденный перерыв в полдень. Вам тоже стоит поесть перед встречей с мистером Финчем. Он легче воспринимает новые идеи на полный желудок.
Я засмеялся.
— Хороший совет.
Встал и пожал Дороти руку.
— Увидимся позже. Когда мистер Финч одобрит проект, вернусь, начнем работу над кодовой книгой.
— Жду. — Дороти кивнула. — Удачи с мистером Финчем. Она вам понадобится.
Вышел из компьютерного центра, поднялся по бетонной лестнице обратно на первый этаж. В коридоре агенты спешили на обед, разговаривали и смеялись на ходу. Я прошел мимо, думая о плане.
В голове складывалась полная картина. База данных нераскрытых убийств. Закодированные параметры: жертва, метод, география и поведение преступника. Программа поиска по множественным критериям. Когда приходит новое дело, вводят данные, компьютер сравнивает с базой и за минуты выдает список похожих дел.
Революция в расследованиях. То, что в двадцать первом веке называли VICAP, создавалось здесь и сейчас, в тысяча девятьсот семьдесят втором году. На двадцать лет раньше, чем в истории.
Прошел в кафетерий на первом этаже. Взял поднос и встал в очередь. Заказал сэндвич с ветчиной, кофе и яблоко. Заплатил девяносто центов кассирше.
Сел за столик у окна, медленно поел, обдумывая аргументы для Финча. Старый скептик не поверит обещаниям. Ему нужны факты, примеры и доказательства.
Вспомнил дело Дженкинса. Семь убийств в разных штатах. Я вручную нашел связь через архивы, потратил много времени. Если бы существовала компьютерная база данных, нашел бы связь за считанные дни. Не только я. Обычный оператор смог бы найти. Спас бы чьи-то жизни.
Это убедительный аргумент.
Доел сэндвич и выпил кофе. Посмотрел на часы, уже тринадцать сорок пять. Через пятнадцать минут встреча с Финчем.
Встал, выбросил пустой стакан и обертку от сэндвича в мусорный бак. Вышел из кафетерия и поднялся на четвертый этаж.
Кабинет отдела статистики. Постучал в дверь.
— Входите.
Открыл дверь. Финч сидел за столом, ел сэндвич и читал газету. Поднял глаза, увидел меня.
— Митчелл. Ровно в два часа. Пунктуальность хорошее качество. — Отложил газету, вытер руки бумажной салфеткой. — Садитесь. Что узнали в компьютерном центре?
Я сел, положив блокнот Дороти на стол.
— Многое, сэр. Думаю проект возможен. Но нужно изменить подход.
Финч поднял бровь.
— Изменить? Как именно?
Открыл блокнот и показал схему структуры данных.
— Вместо ввода всех пятидесяти тысяч дел сразу, начнем с выборки. Нераскрытые убийства за последние три года. Тысяча двести дел. Это вполне реально ввести за две недели.
Финч взял блокнот и молча изучил схему. Глаза двигались по строкам, когда он читал коды и параметры.
— Восемьдесят колонок на карту. Вы довольно эффективно распределили пространство. — он поднял глаза на меня. — Кто разработал эту схему?
— Дороти и я вместе, сэр. Она знает технические ограничения, я знаю какие данные важны для расследований.
Финч продолжил читать. Остановился на разделе про поведение преступника.
— Психологические характеристики. Планирование, сексуальный мотив, трофеи. — Посмотрел на меня серьезно. — Агент Митчелл, это не стандартная полицейская статистика.
— Нет, сэр. Это новый подход. Называется поведенческий анализ. — Я наклонился вперед. — Преступники оставляют не только физические улики. Они оставляют психологический след. Как они планируют, как выбирают жертв, что делают на месте преступления. Эти паттерны помогают связывать дела.
— Вы использовали этот метод в деле Дженкинса?
— Да, сэр. Построил профиль убийцы: то что он организованный тип, выбирает молодых брюнеток, душит руками, забирает трофеи. Этот профиль помог сузить список подозреваемых.
Финч кивнул медленно.
— И компьютер может искать такие паттерны?
— Да, сэр. Если закодировать поведение в числа, компьютер сравнивает коды. Находит дела где преступник действовал одинаково, даже если другие параметры различаются.
Финч закрыл блокнот и положил на стол. Откинулся на спинку стула, долго смотрел на меня.
— Агент Митчелл, вы думали об этом гораздо больше чем последние несколько часов.
Я замер. Неужели он догадался?
— Сэр?
— Эта схема слишком детальная для человека, который только сегодня увидел компьютер. — Финч затянулся трубкой. — Вы либо гений, либо готовились заранее.
Я решил говорить осторожнее.
— Я изучал статистику и аналитические методы в университете, сэр. Думал о применении их в криминалистике.
— Какой университет?
Черт. Память Митчелла подсказала ответ.
— Университет Вирджинии, сэр. Специализация криминология и психология.
Финч кивнул, принимая объяснение.
— Хорошее образование. Объясняет ваши нестандартные методы. — Пауза. — Ладно. Я согласен попробовать ваш план. Но с условиями.
— Какими, сэр?
— Вы лично отвечаете за разработку кодовой книги. Работаете с Дороти, но принимаете решения сами. Второе, если через шесть недель не будет результатов, проект закрывается. Не буду тратить время Бюро на бесполезные эксперименты. И третье, вы продолжаете работать над текущими делами. Томпсон не хочет освободить вас полностью.
— Согласен, сэр. Все три условия приемлемы.
Финч встал и протянул руку.
— Тогда начинаем. Завтра утром в девять приходите сюда. Дам вам доступ к картотеке. Начнете отбирать дела для ввода в базу. Дороти я уведомлю сегодня вечером, она выделит время для проекта.
Пожал его руку. Ладонь у него была крепкая и сухая.
— Спасибо, сэр. Не подведу.
— Надеюсь. — Финч сел обратно и взял газету. — Вы свободны.
Вышел из кабинета, закрыл дверь за собой. В коридоре остановился и медленно выдохнул.
Проект одобрен. Начинаем завтра.
В голове уже складывались планы. Кодовая книга по образцу VICAP. Категории преступлений, методы, характеристики жертв, географические зоны и поведенческие индикаторы. Все, что знал из двадцать первого века, адаптированное к технологиям семьдесят второго.
Это изменит ФБР. Это спасет сотни если не тысячи жизней.
Спустился обратно на третий этаж, вернулся в наш офис. Дэйв Паркер и Маркус Уильямс уехали по делу о бойне в аэропорту Лод, Джерри Коллинз печатал на машинке не поднимая головы. Фрэнк Моррис оторвался от бумаг, посмотрел на меня, кивнул и снова продолжил читать.
Тим О'Коннор улыбнулся, на щеках появились небольшие ямочки.
— О наш стрелок вернулся, что там говорят, ты теперь занялся статистикой? Что за понижение для такого героя как ты? Ты уже нашел там паттерны, Итан? Составил профиль Дороти? Кстати, в отделе статистики на другом этаже новенькая машинистка, у нее попка как орех, так и хочется…
Я прошел мимо не слушая его болтовню. Дверь в кабинет Томпсона приоткрыта, шеф разговаривал по телефону. Увидел меня, махнул рукой, мол, заходи.
Зашел в кабинет и сел на стул перед ним. Разговаривая, босс махал рукой с зажженной сигарой. Наконец закончил разговор и положил трубку.
— Ну что, Митчелл? Финч съел тебя живьем?
— Нет, сэр. Одобрил проект. Начинаем завтра.
Томпсон улыбнулся.
— Неплохо. Значит убедил старого упрямца. — Затянулся сигарой. — Сколько времени уйдет на эту модную чепуху?
— Шесть недель на пилотную версию, сэр. Там есть база данных из тысячи двухсот нераскрытых убийств. Программа поиска по множественным параметрам.
— Хорошо. Держи меня в курсе прогресса. — Томпсон открыл папку на столе. — А пока займись текущими делами. Вот новое дело, пришло сегодня утром из Филадельфии. Посмотрим сможешь ли ты поймать профессионального киллера.