Jeigu žmonės, dirbdami darbą, gali mokytis ir tobulėti, kodėl to negalėtų padaryti programinė įranga? Nors jau yra sukurta programų, kurias galima 'apmokyti', tačiau sukurti tokias programas, kurios pačios 'mokytųsi' ir net keistų savo programinį kodą darbo metu, yra gerokai sudėtingiau. Princetono Universiteto mokslininkai sukūrė prototipus tokių programinės įrangos algoritmų, kurie mokosi, analizuodami tokius duomenis, su kokiais programa prieš tai nebuvo dirbusi, ir pati prisiderina prie jų, kad galėtų kuo geriau apdoroti tokio tipo duomenis. Šie algoritmai sukurti taip, kad analizuotų, kaip pateiktų duomenų dalys galėtų atitikti tam tikras kategorijas, vietoj to, kad mėgintų tirti duomenų visumą, o po to juos pradėtų nagrinėti detaliai.
Pasirodė, kad nors kiekviena duomenų dalis yra parinkta atsitiktiniu būdu, jų elementai išlieka santykinai nedideliame pasiskistymo diapazone, ir algoritmas gali greičiau suprasti kokie tai duomenys, be to, algoritmas gali 'pasitobulinti', išanalizavęs pakankamai nedidelį duomenų dalių skaičių. Kol kas tyrėjai sukūrė du 'besitobulinančius' algoritmus - vieną rūšiuojantį duomenis tam tikromis tvarkomis, kitą - juos skirstantį į grupes.
Tai nemažas žingsnis į priekį kuriant programas, kurios galės pačios keisti savo kodą darbo metu.
Self-Improving Algorithms, ACM-SIAM Symposium on Discrete Algorithms, January 22-24, 2006, Miami, Florida Tik prisijungę skaitytojai gali rašyti komentarus. Prašome prisijungti (pirmame puslapyje). |