Съществува ли универсален алгоритъм?
Алгоритъм наричаме всяка добре описана процедура за решаване на даден тип проблеми и са предназначени да дават пълно решение на дадения тип проблеми. Идеята за алгоритмите е позната на човечеството още от древността. Древните индуси, елини, вавилонци и китайци са използвали алгоритми за решаване на различни аритметични изчисления.
Алгоритмите обикновено се конструират според всеки отделен случай, като се приспособяват към проблема. Въпреки това през изминалото хилядолетие не са били един или два случаите, в които хората са се опитвали да разработят универсален алгоритъм, който да се приложи към всеки проблем. Някои от по-известните исторически личности, които са работили по създаването на универсален алгоритъм са:
- испанският теолог и философ Раймонд Лулий (1232 – 1315), който иска да обясни християнското учение чрез логическа аргументация и да сведе рационалната дискусия до механична манипулация на символични системи за означаване и комбинаторни диаграми;
- Готфрид Вилхелм Лайбниц (немски философ, математик, дипломат, юрист), който в опита си да добави възможност за умножение и деление към механичния калкулатор на Паскал, създава „колелото на Лайбниц“, което се използва в аритмометъра – първият серийно произвеждан механичен калкулатор. Той също така допринася и за развитието на двоичната аритметика, която е в основата на днешната цифрова техника.
- Чарлз Бабидж (1791 – 1871) е британски математик и философ, който е изобретил сметачна машина, аналогов предшественик на дигиталния компютър. Първият човек, който го използвал обаче била дъщерята на поета Лорд Байрон – Ада Лъвлейс. Тя се смята за първият програмист в историята на човечеството, след като написва алгоритъм за намиране на числата на Бернули, в такава форма, че да бъдат разчетени от машината. За разлика от нея Бабидж, създателя на машината, е виждал ролята на своята машина единствено като математически калкулатор.
- Едва век по-късно, друг математик от Кеймбридж – Алън Тюринг (1912 – 1954) полага теоретичните основи за ефективно имплементиране на универсален алгоритъм. Той предлага много просто концептуално устройство, включващо касета с движим четец, което може да маркира и изтрива букви върху лентата. Тюринг показал, че всички алгоритми могат да се изпишат върху тази лента (като данни) и след това да се разчетат от универсален алгоритъм (който също се записвал на лентата). Тази машина, позната като универсалната машина на Тюринг, се превърнала в основата за модерната теория на изчисленията (позната като теорията за рекурсията) и е вдъхновила създаването на съвременния цифров компютър. Въпреки това Тюринг не успява да създаде универсалният алгоритъм, като неговата машина е по-близо до празна кутия, която може да съхранява и възпроизвежда други алгоритми, поставени в нея. По този начин Тюринг създава концепцията за хардуер - механичното устройство т.е. „празната кутия“, която приема и възпроизвежда софтуера и софтуер – алгоритмите, които тя приема и възпроизвежда. Самият Тюринг бил очарован от разграничението между софтуер и хардуер, което според него било скрито безсмъртието на хората, тъй като виждал сходство между човешкото тяло и празната кутия на хардуера от една страна, а от друга - софтуера, който продължава да съществува в една абстрактна математическа реалност, предпазен от унищожение, дори когато хардуера е унищожен.
Ако вие сте сред хората, които искат да развиват логическото си мислене и познават езика, на който ще пишат на средно ниво, а също така имате фундаментални знания по ООП и по основните структури от данни (масиви, списъци, речници, сетове, опашки и стекове), то можете да надградите тези знания, като запишете курса „Алгоритми – март 2018“, като кликнете ТУК.