Павлов, Фиппс и математика: как создатель 7-Zip переиграл "В поле зрения" 🎥🧠🔢
Представьте программиста, который изобрёл математический чит, сжимающий любой файл до 1% от исходного размера без потерь. Никакой потери качества, никакой магии. Просто берёшь "Властелина колец" целиком - и он превращается в крошечный кусочек данных размером с фотографию в телефоне. Звучит как научная фантастика? Именно так. Этот алгоритм под названием 17-6-21 придумал гениальный программист Калеб Фиппс - герой 12-й серии 2-го сезона культового сериала "В поле зрения" (Person of Interest). Цифры - вовсе не код и не формула. Это дата: 17 лет, 6 месяцев и 21 день со дня смерти его брата. Трагедия, зашитая в алгоритм. По-киношному драматично, правда?
Вот только физика - дама суровая. И она категорически запрещает подобное чудо. А что разрешает - создал русский программист-одиночка Игорь Павлов. Бесплатно. С открытым исходным кодом. И без душераздирающих семейных тайн. Давай разбираться, где заканчивается красивое кино и начинается настоящая инженерия.
Игорь Викторович Павлов - российский разработчик, кандидат технических наук, выпускник аспирантуры кафедры информатики факультета информатики и робототехники Уфимского государственного авиационного технического университета
📺 Фантазия на тему: алгоритм Калеба Фиппса
"В поле зрения" - отличный сериал: искусственный интеллект "Машина" предсказывает преступления, бывший спецназовец и затворник-миллиардер их предотвращают. Круто, стильно, умно. Джонатан Нолан (брат того самого Кристофера) умеет делать кино с глубокой мыслью.
В эпизоде "Дилемма заключённого" (Prisoner’s Dilemma) появляется молодой гений Калеб Фиппс. Он написал алгоритм 17-6-21, способный уменьшить объём данных до одного процента от исходного. Разумеется, этот алгоритм оказывается ключом к спасению героев. Звучит впечатляюще для драматического поворота. Но ровно до того момента, как ты вспоминаешь базовый курс информатики. Писателям можно простить драматическую гиперболу. Всем хочется, чтобы герои были крутыми. Но давай посмотрим правде в глаза: если бы у Фиппса был такой алгоритм, он бы не поменял мир. Он бы сломал математику.
Рекомендуем по теме:
🧠 Почему "сжатие до 1%" невозможно даже теоретически
Объясняю на пальцах, без формул, но и без потери сути. Архиваторы (вроде ZIP, RAR и того же 7z) работают, находя в файле повторяющиеся куски данных. Представь текст: "кочерыжка-кочерыжка-кочерыжка". Глупый компьютер хранил бы это как 27 букв. Умный архиватор скажет: число "три" и один раз слово "кочерыжка". Всё, сжатие 3:1.
Но вот в чём загвоздка: в случайных данных нет повторов.
🔢 Принцип Дирихле (простой, как три копейки)
Это закон комбинаторики. Если у тебя есть 5 ящиков и 6 кроликов, то хотя бы в одном ящике сидят два кролика. При чём тут сжатие? А при том, что файлов длины N существует гораздо больше, чем файлов длины N/100. Если алгоритм сжимает любой файл до 1% от исходного размера, то двух разных исходных файлов, сжатых в один и тот же крошечный архив, будет как кроликов в ящике. А распаковать их в два разных исходника из одной короткой последовательности битов - невозможно. Это противоречит определению "сжатия без потерь". Иными словами: разных сообщений больше, чем коротких имён для них. Кого-то придётся обделить.
📐 Теорема Шеннона (это уже серьёзнее)
Клод Шеннон - отец теории информации - вывел формулу, которая определяет абсолютный предел сжатия. Этот предел называется энтропией (не путай с физической энтропией, хотя идея родственная). Простыми словами: у каждого файла есть мера "хаотичности". Текст на русском языке имеет низкую энтропию - буквы подчиняются правилам, слоги повторяются. А вот результат генерации случайных чисел имеет максимальную энтропию - там каждый бит независим и непредсказуем. Сжать файл сильнее, чем позволяет его энтропия, невозможно даже в теории. Это как пытаться сделать воду суше - не получится, это закон природы. Для наглядности: текстовый файл можно сжать в 3-5 раз. А файл со случайными числами - в 1,01 раза (да и то за счёт служебных заголовков). Ни о каких 1% речи не идёт.
🧮 Колмогоровская сложность (вишенка на торте)
Советский математик Андрей Колмогоров предложил ещё один взгляд на эту проблему. Он определил сложность объекта как длину самой короткой программы, которая этот объект порождает. Если файл можно сжать в 100 раз - значит, его колмогоровская сложность мала. Внутри него много структуры, закономерностей, повторов. Это относится к текстам, программам, некоторым изображениям. Но если файл случаен, то никакая программа его не породит короче, чем полная запись самого файла. А значит, и сжать его невозможно. И никакой алгоритм 17-6-21 этого не обойдёт, потому что это свойство самого файла, а не выдумка автора.
🎬 Так в чём же магия Калеба Фиппса?
Магия в том, что зритель не обязан знать ни Дирихле, ни Шеннона, ни Колмогорова. Ему нужно, чтобы герой выглядел гениально. Эпизод длится 43 минуты. Никто не будет объяснять пределы сжатия - это убьёт драму. Поэтому Фиппс красив. А Игорь Павлов - реален.
🔧 Реальная история: Игорь Павлов и революция 7‑Zip
А теперь - человек, который действительно изменил мир сжатия, но без пафоса, слёз и семейных драм. Просто потому что смог. Игорь Викторович Павлов - программист-фрилансер из России. В 1999 году он начал писать альтернативу коммерческим архиваторам вроде WinZip и WinRAR. И назвал её 7-Zip. Прошло полгода - вышла первая версия. Привлекла внимание IT-сообщества своими инновационными возможностями. У Павлова не было офиса, команды и маркетингового бюджета. Был только код.
К 2001 году Павлов придумал собственный формат архивов - 7z. И главное - новый алгоритм сжатия, который зашил внутрь этого формата. Назвал его LZMA.
Аббревиатура расшифровывается как Lempel-Ziv-Markov chain Algorithm - по фамилиям создателей первых словарных алгоритмов и по математической модели, которую Павлов добавил от себя. Это улучшенная версия знаменитой схемы LZ77, дополненная сложной вероятностной моделью.
В чём суть? LZMA сочетает словарное сжатие (ищет повторы и ссылается на них) с интервальным кодированием (методом оптимальной упаковки битов). Главная инновация Павлова - он отказался от байтовой модели кодирования, которую использовали все до него, и перешёл на побитовую контекстную модель. Это сложно, но суть проста: он научился не смешивать несвязанные биты в одном контексте, отчего степень сжатия резко выросла. Результат? Коэффициент выше, чем у ZIP. Гораздо выше. И всё это - с открытым исходным кодом. То есть любой желающий может посмотреть, как работает магия, и скопировать её в собственные продукты. Для сообщества это был подарок небес.
📊 Цифры, которые говорят сами за себя
Сколько людей пользуется творением Павлова? С официального сайта на SourceForge программу скачали сотни миллионов раз. Это только официальные загрузки, не считая предустановок, пакетов в Linux-дистрибутивах. В 2007 году 7-Zip стал победителем SourceForge Community Choice Awards сразу в двух номинациях: "Лучший проект" и "Лучший технический дизайн". Неплохая награда для "программы-однодневки". Программа переведена более чем на 87 языков. Она работает на Windows, Linux (портированная версия p7zip), macOS и даже React OS. Поддерживает более 40 форматов архивов: от старых добрых ZIP и RAR до экзотических. А главное - она бесплатна. Без рекламы, без пробных периодов, без "купи ключ". Лицензия GNU LGPL с одним-единственным исключением (распаковщик UnRAR по понятным причинам не может быть полностью открытым). Всё остальное - смотри код, учись, используй.
🎬 Кино и реальность: культурный парадокс
Почему же в сериале такое крутое сжатие, а в жизни - всего в несколько раз? Ответ прост: зритель хочет смотреть на супергероев. Калеб Фиппс - гений. Он должен делать необъяснимые вещи. В этом его драматургическая функция. И, честно говоря, красивее придумать просто невозможно. А 7-Zip - это скромный программист, который 20+ лет в одиночку поддерживает проект, пишет код, фиксит баги и улучшает алгоритмы. Это не драма, а история о титаническом труде. В кино такое редко показывают, потому что это скучно. Но именно благодаря таким историям компьютерный мир не разваливается, а становится удобнее и доступнее.
Да, Калеб Фиппс выдуман. Но в его образе есть правда: гениальные идеи часто приходят к людям, которые не гонятся за славой и деньгами. Только вот "фиппсы" выигрывают гонку, а "павловы" её выигрывают по-настоящему.
💎 Сухой остаток: что остаётся после прочтения
Калеб Фиппс - выдуманный гений. Его алгоритм 17‑6‑21 - красивая, но абсолютно невозможная с точки зрения математики киношная гипербола. Игорь Павлов - реальный создатель 7‑Zip, формата 7z и алгоритма сжатия LZMA, который действительно сжимает данные лучше конкурентов. Коэффициент сжатия LZMA выше, чем у классических LZ77, а распаковка остаётся быстрой и малозатратной по памяти. И миллиарды файлов, упакованных в 7z, передаваемых через интернет каждый день - это не магия. Это математика. Кропотливая, сложная, но реальная. И имя этой математики - Игорь Павлов, российский программист-одиночка, который сделал мир немного лучше.
Потому что в реальном мире невозможное происходит только в кино. А возможное - на домашнем компьютере, где 7-Zip тихо и незаметно жмёт файлы уже больше двух десятилетий.
Скопировано! #17_6_21, #LZMA, #LZMA2, #Person_of_Interest, #авторские_статьи, #алгоритм_сжатия_LZMA_и_7_Zip, #архиватор_7_Zip, #В_поле_зрения, #знаменитости, #Игорь_Павлов, #интересно, #интернет, #Калеб_Фиппс, #от_авторов, #принцип_Дирихле, #Россия, #сжатие_данных_без_потерь, #статьи, #теория_сжатия





Нет комментариев