Nastudoval som si niekolko materialov ku evolucnym algoritmom. Vychadza mi z toho to, kazdy neuron musi mat jediny vystup a musi ist o cislo. To zarucuje moznost porovnavania potomkov a vytvaranie novej generacie. Problem je, ze ja chcem mat aj viac vystupov a mozu to byt napr. textove retazce.
Teraz napr. ucim neuronovu siet pracovat s regularnymi vyrazmy a hladat take vstupy do funkcie RegExp, aby sa spravne vyhodnotil retazec, ci splna dany pattern.
To je aj dovod, preco som pouzil trochu iny pristup.
1. nahodne sa vytvori novy neuron a miesto toho aby sa porovnaval jeho vystup; hlada sa ci kdekolvek vo vnutri neexistuje vystup zhodny s danym vzorom
2. ak sa najde spravny a PRESNY algoritmus pre neuron, tak sa bud rovno ulozi, alebo ak uz existuje iny algoritmus, porovna sa s tymto novym a ponecha sa ten KRATSI, co by mal byt aj rychlejsi algoritmus
Ak myslis, ze sa mylim a evolucny algoritmus by sa dal pouzit aj pri napr. textovom vystupe a pri viacnasobnom vystupe, tak mi to prosim skus popisat.
//autoeditácia príspevku (04 Nov 2016, 21:21)
harrison314 napísal:na toto je umela inteligencia uplne zbytocna. Pretoze, cokolvek vieme riesit jednoducho algoritmicky, malo by sa to riesit algoritmicky, kvoli zolozitosti algoritmou.
Ak na nieco mame standardny algoritmus treba pouzit ten, jeho vykonanie bude v drvivej vetcine bezat kratcie ako to co ti vypluje evolucny algoritmus, ci nueronova siet, bude (pravdepodobne) deterministicky, a bude fungovat vo vetcej miere pripadov.
Tvoj argument je logicky. Za dlhe roky prace pri vyvoji softveru som vsak zistil dve veci:
1. pri zlozitej funkcii v programe sa casom neustale doplnaju nove a nove kroky a odocky v algoritme az nakoniec vznikne tak obrovsky a neprehladny kod, ze je skoro nemozne popisat cely jeho postup a rychlejsie ako optimalizacia kodu je vymazanie a urobenie ho znovu
2. pri velkom projekte a mnozstve programatorov sa velmi casto stava, ze aby programator pri novom probleme vytvori novy algoritmus, miesto toho aby pouzil uz existujuci. Dovod je jednoduchy - nenasiel ho
Oba dovody riesi umela inteligencia. V prvom je stale znamy pattern, takze UI bude drzat kod optimalizovany a miesto pridavania kodu ho casom zmensuje, pretoze ho neustale optimalizuje.
Ak je urceny spravy okruh neuronov pre vyvoj noveho neuronu, tak sa najde neuron s uz existujucim algoritmom a pouzije sa ten.
Opakujem, ze netvorim uplne standartnu neuronovu siet, kde byt aj riesenia s odchylkami. Ja odchylky netolerujem, takze takato UI sa da pouzit pre velke programy.