А как обстоит дело с задачами из P? С теми, которые можно решить эффективно? Сумеем ли мы в полной мере воспользоваться всеми преимуществами распараллеливания? Как правило, эффективные алгоритмы действительно удается модифицировать, идет ли речь о простых арифметических задачах или о поиске кратчайшего пути и максимального числа паросочетаний; для всех этих задач вычисления с успехом распределяются по большому количеству ядер.
Класс задач, которые можно быстро решить в параллельном режиме, тоже получил обозначение: его назвали NC, или Nick’s Class, – в честь пионера параллелизации алгоритмов Николаса Пиппенджера. Если P = NP (так ли это, мы пока не знаем), то задачи, для которых существует эффективный алгоритм, в параллельном режиме решаются в разы быстрее. А если NP = NC (что, опять-таки, пока находится под большим вопросом), то и любую переборную задачу из NP тоже можно решить практически мгновенно, распараллелив вычисления по разным машинам и ядрам, – т. е. мир, где NP = NC, еще более совершенен, чем тот, где P = NP. И хотя классы NC и NP вряд ли окажутся равны, отношения между ними не менее загадочны, чем отношения между P и NP.
Каждую секунду мы загружаем 35 минут видеоматериала на YouTube, создаем 1600 сообщений в Twitter, 11000 постов в Facebook, 50000 поисковых запросов в Google и отправляем 3000000 электронных писем (из которых 90 процентов – это спам).
Телескоп «Хаббл» вращается на околоземной орбите и фотографирует космос, отсылая на Землю 200000 байт информации в секунду (один байт – это примерно один символ алфавита). На смену «Хабблу» планируется запустить «Джеймс Уэбб» с огромным параболическим зеркалом, который будет отправлять уже 3500000 байт в секунду.
Большой адронный коллайдер – самый крупный ускоритель частиц на планете – разместился близ границы Швейцарии и Франции. Каждую секунду он создает примерно полмиллиарда байт информации – и так изо дня в день, из года в год, а в году, между прочим, 31 миллион секунд!
Коллайдер построили в Европейском центре ядерных исследований (ЦЕРН). В пару к нему была создана сверхмощная вычислительная сеть, которая распределяет потоки генерируемых коллайдром данных по серверам в тридцати четырех странах; обработкой и анализом этих данных занимаются ученые по всему миру.
Описание ДНК человека занимает примерно 55 миллионов байт. Для хранения ДНК всех жителей Земли, т. е. семи миллиардов человек, потребуется что-то около 400 квадриллионов байт. А если считать не только людей?
Мы умеем быстро и довольно дешево создавать самые разнообразные датчики, которые могут измерить все, что угодно, – температуру, звук, движение, уровень радиации. Каждый датчик постоянно генерирует какую-то информацию, а в одной системе их может быть несколько тысяч – как в американской армии, которая буквально «тонет в датчиках и захлебывается мощными потоками данных».
Информация не всегда приходит из внешнего мира. Научные эксперименты часто оказываются слишком сложными и дорогими, и для понимания физических, биологических и химических процессов активно используется компьютерное моделирование. Результат – очередные колоссальные объемы данных, которые ждут не дождутся, когда их проанализируют.
Как правило, большая часть получаемой информации – мусор. Случайные помехи, избыточные данные. Отобрать полезное и ценное совсем не просто, а потом все это нужно еще правильно истолковать! Вот если бы P оказалось равно NP, у нас бы автоматически появились алгоритмы, которые отсеивали бы все лишнее и фильтровали информацию по принципу «бритвы Оккама», давая нам возможность лучше понимать и предсказывать развитие событий.
Но поскольку в совершенном мире мы, скорее всего, не живем, алгоритмы приходится изобретать или переделывать под конкретные цели. Поиск ключевой информации в больших массивах данных – задача крайне важная и чрезвычайно трудоемкая.
Впрочем, иногда большие данные – это не катастрофа, а благо, и в особенности если речь идет о машинном обучении. Алгоритмы тренируются, получая на вход различные выборки данных; чем больше информации, тем умнее станет алгоритм. В распоряжении Google имеется колоссальное число обучающих примеров, и поэтому он так хорошо отсеивает спам, распознает голоса и переводит тексты.
В ближайшем будущем у нас уже накопится достаточно данных, чтобы на порядок лучше проводить медицинскую диагностику, создавать «умные» сети с пониженным потреблением энергии и управлять автомобилем без участия водителя, а также продвигаться к новому пониманию природы явлений. На плечи ученых ляжет труднейшая задача – интерпретировать эти данные и научиться использовать их для повышения качества жизни.
Почти два миллиарда жителей планеты общаются через интернет: пишут электронные письма и сидят в социальных сетях. Вообще же, общение, работа, учеба и развлечения вышли на такой уровень, который в XX веке невозможно было даже представить.
Что будет, если начать подключать к интернету и вещи? Уже совсем скоро в продаже появятся недорогие и компактные чипы, способные выходить в интернет через Wi-Fi и сотовые сети или другие беспроводные системы, которые пока находятся на стадии разработки. Такой чип мы сможем поставить почти на любой предмет, будь то одежда, деталь автомобиля или еда из супермаркета. Под нашим контролем окажется практически все: мы будем знать, когда наши дети не пристегнуты, и без всяких расчетов получим количество съеденных за день калорий. Кончается молоко или шампунь? Беспокоиться не о чем – новую партию доставят автоматически; наверняка она уже на пути к вашему дому. С приемом лекарств больше не будет случаться никаких накладок. Одежда, которую вы надеваете, предупредит вас, если для данной погоды и мероприятия она не годится, а может, даже спросит что-то вроде: «Вы уверены, что хотите надеть с этими брюками именно эту рубашку?» Если вы плохо различаете цвета или совсем не разбираетесь в моде, такая помощь может оказаться очень кстати.