На 16-годишна възраст американският математик Рей Соломонов си поставя изумителната цел да открие метод, който може да реши всеки научен проблем. Докато повечето тийнейджъри мечтаят за по-земни неща, амбицията на Соломонов е да разработи алгоритъм, който да може да обясни всички явления в света с помощта на прости модели. Тази амбициозна идея довежда до създаването на изцяло нова област на научните изследвания, която може систематично да търси модели в данните и да разкрива скритите процеси, определящи структурата на нашия свят.
Въпреки че тези идеи може да приличат на съвременните техники за създаване и използване на изкуствен интелект, Соломонов ги формулира за първи път още през 1942 г., много преди появата на първите ИИ алгоритми. Неговият подход се основава на принципа на бръснача на Окам, според който най-простото обяснение на всяко явление обикновено е най-правилното. Този принцип се използва активно от физиците при търсенето на формули, които описват възможно най-много физически процеси с минимална сложност.

Соломонов се стремял да създаде набор от правила или алгоритъм, който да идентифицира най-простите връзки в данните. Той вярва, че с негова помощ може да се обясни всичко. Така например, ако запишете траекторията на полета на хвърлена бейзболна топка, бихте могли да предложите много математически формули, които да опишат движението ѝ. Най-простият закон обаче вероятно ще бъде правилният – законите на Нютон, описващи взаимодействието между силата на хвърляне и силата на тежестта, действаща върху топката.
Затова Соломонов иска да намери правило, което да му даде възможност да избере възможно най-простото обяснение. Това правило би могло да се превърне в компютърна програма, в която да се зареждат данните, а на изхода да се извежда най-простото обяснение на данните. Такава програма би могла да бъде истинска „машина за чудеса“.
Проблемът с определянето на „простотата“
Все пак си струва да се отбележи, че програма, способна да намери най-простите обяснения, никога не е създавана и вероятно никога няма да бъде създадена. Въпреки това именно тези идеи на тийнейджъра Соломоноф поставиха началото на ново направление в науката, което изследва природата на случайността и сложността. Както често се случва в природните науки, подобни мисли се появяват и при други изследователи по онова време.
Един такъв изследовател е руският (1903 г.) математик Андрей Колмогоров, който се фокусира върху вероятностите и случайните числа. Той се интересувал от това как може да се определи дали дадено описание на явление е просто или сложно.

Така например, ако ви бъде показано числото 25 041 903, то може да изглежда случайно на пръв поглед. Има много начини да се обясни произходът му: може да е резултат от генератор на случайни числа или да е произведение от простите числа 3, 61 и 136 841. Или пък може да се окаже, че това число заема определено място в безкрайната последователност на пи, или пък да е свързано с рождената дата на Колмогоров – 25 април 1903 г. Кое от тези обяснения изглежда най-просто? За всеки човек отговорът може да е различен.
Колмогоров е разработил обективен метод за определяне на сложността на обектите. Така наречената сложност на Колмогоров на едно число се определя от дължината на най-кратката компютърна програма, която може да го изчисли. Колкото по-кратка е програмата – толкова по-просто е числото.
Само че сложността на Колмогоров зависи от използвания език за програмиране. Програма на Python може да бъде по-кратка от програмата на C++ и обратното. Всяка компютърна програма може да бъде изразена в машинен код – последователност от нули и единици. Дължината на най-кратката последователност от нули и единици, която позволява на компютъра да изчисли желаната стойност, съответства на сложността на Колмогоров на това число.
Така, за да изчислим сложността на Колмогоров на числото 25 041 903, можем да приведем различни обяснения на това число (например чрез прости числа или позиция в числото Пи) в компютърни програми и да преброим броя на символите в съответния машинен код.
Парадоксът, който разруши мечтата
На пръв поглед може да изглежда, че мечтата на Соломоноф е осъществена с помощта на сложността на Колмогоров – в крайна сметка тя дава възможност да се идентифицират модели в произволни данни. По този въпрос обаче възниква парадокс, който разрушава идеята за създаване на универсален алгоритъм. Този парадокс е описан за първи път от философа Бъртранд Ръсел, който през 1908 г. го приписва на библиотекаря Х. Г. Бери.
Един пример за парадокса на Бери може да бъде описан по следния начин: Да предположим, че имаме речник от 20 думи, с които се опитваме да опишем различни числа. Можем да започнем с прости комбинации от тези думи, за да дефинираме постепенно числата, както предлага Колмогоров със своите програми. Но броят на комбинациите е ограничен, а числата са безкрайно много. В крайна сметка ще се сблъскаме с число, което не може да бъде описано с 20 думи. Но какво ще стане, ако опишем това число като „най-малкото число, което не може да се опише с 20 или по-малко думи“? В този случай определението на това число се състои само от 12 думи, което създава противоречие.

Парадоксът на Бери показва, че е невъзможно да се определи колко думи (или програмни символи) са необходими, за да се опише едно число. Това е така, защото математиката е непълна – някои истини в нея просто не могат да бъдат доказани.
Да предположим, че съществува програма K, която изчислява сложността на Колмогоров за всяко число. Да предположим, че програмата се състои от един милион символа. Можем да въведем всички възможни числа в програмата, докато намерим едно голямо число x, чиято сложност е два милиона символа. Сега можем да създадем нова програма P, която да премине през всички възможни низове и да използва програмата K за изчисляване на сложността на тези низове, докато намери низ с дължина два милиона символа. Програмата P, зависеща от програмата K, ще има дължина по-малка от два милиона символа, което ще създаде противоречие – програмата с по-малка дължина ще изчисли число с по-голяма сложност.
Така стигаме до заключението, че не може да съществува програма K, която да изчислява сложността на Колмогоров за всяка входна стойност.
Въпреки всичко мечтата продължава да живее
Въпреки че мечтата на Соломоноф да създаде универсален алгоритъм за решаване на всички задачи се оказва неосъществима, идеите му продължават да намират приложение. В повечето случаи не се изисква точно изчисляване на сложността на Колмогоров – достатъчни са приблизителни методи. Един такъв метод е използването на програми за компресиране на данни, като например gzip. Така например, ако искаме да разберем дали две числови последователности са свързани, можем да ги компресираме поотделно и заедно. Ако компресията на комбинираната последователност е почти идентична с компресията на всяка от тях, това може да означава, че между тях има връзка.

Сложността на Колмогоров също може да помогне за определяне на случайността на дадена числова последователност. Например три осемцифрените числа – 25 041 903, 47 395 929 и 10 101 010 – биха могли да бъдат генерирани от генератор на случайни числа, но всяко от тях има различна характеристика: едното число представлява дата, а другото има очевиден повтарящ се модел. В такива случаи е възможно да се оцени доколко тези числа следват определени модели, за да се провери надеждността на генератора на случайни числа.
Така, макар че сложността на Колмогоров не може да даде отговор на всички загадки на Вселената, идеите на Соломоноф и Колмогоров продължават да оказват влияние върху математиката и информатиката, като помагат за решаването на множество изключително сложни проблеми, макар и не по универсалния начин, за който е мечтал Соломоноф.
Всичко важно от света на технологиите, директно в пощата ти.
С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.
Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!