A sample text widget

Etiam pulvinar consectetur dolor sed malesuada. Ut convallis euismod dolor nec pretium. Nunc ut tristique massa.

Nam sodales mi vitae dolor ullamcorper et vulputate enim accumsan. Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. Nulla nulla lorem, suscipit in posuere in, interdum non magna.

Триглавата Ламя – размисли на един програмист

Предполагам всички сте чели приказките за триглавата ламя, която най-малкия брат убива. В някои от тях има дори лами с повече от три глави. А в част от историите на мястото на всяка отсечена глава изникват 2-3 нови.

Но замисляли ли сте се някога как функционира една ламя? Всички глави общ мозък ли имат, който е скрит в тялото на ламята (което би обяснило защо ламята не умира като и ги отсечеш) или всяка глава има отделен мозък и са свързани помежду си с високоскоростна връзка?

Lamya7

Нека разгледаме една стандартна триглава ламя от вицовете и приказките, без възможност за възстановяване на главите. В този случай тя би могла да има три различни мозъка които са свързани с разположен в туловището нервен възел, през който командват останалата част от тялото. На теория това е една обещаваща имплементация, но възникват известни трудности. Например накъде ще тръгне тялото, ако две от главите искат едно, а третата друго? А в случая със седем, девет или повече глави? Един от вариантите е да се извършват движенията по ред на пристигането на заявките. Това обаче би накарало ламята да се движи като пияна насам натам, тъй като посоката и на движение при команди север, изток, изток ще е различна от изток, изток, север и като цяло ще е доста неопределена.  Вариант е също командния център да събира заявките за всяко движение на тялото за определен интервал и да избира желаното от мнозинството или да смята резултатния вектор и да се придвижва по него. При този подход макар и никоя от главите да не получава това което иска, като цяло движенията на ламята ще изглеждат по адекватни. Последния вариант на оработка на заявките към тялото е, командния център да не извършва нищо до постигане на консенсус. Тази технология бързо ще приучи главите да достигат съгласие за целите си, и в същото време ламите които не са в състояние да достигнат консенсус бързо ще бъдат изличени от странстващите юнаци.

Нещата още повече се усложняват ако имаме самовъзстановяваща се ламя. Реално главите и тялото образуват мрежа от тип звезда, като всеки от сървърите в мрежата може да отпадне по всяко време и отпадането не само не трябва да причинява срив на системата, но и за всеки отпаднал сървър (глава) трябва да се създават нови два, които да се връзват към мрежата. Тук логично (особенно от гледна точка на юнаците) възниква въпроса какъв е максималния брой сървъри, които могат да се вържат към рутера преди да се срине системата и какви са възможностите на системата за регенерация. От гледна точка на ламята всяка допълнителна глава е проблем, тъй като увеличава проблемите при движение на тялото. Ламите от този вид могат да бъдат убити само ако се достигне лимита на броя на главите или ако се прободат в сърцето. Реално ламя с достатъчно голям брой глави и изискване за консенсус може да се смята за безопасна, като е достатъчно да се сложи по една златна ябълка от двете и страни на достатъчно голямо разстояние.

Друг вариант на системата за управление на ламя е разпределена система. В този случай всяка глава  получава контрол над определена част от мисловните процеси и движенията на тялото. Централния център се грижи за определяне на приоритетите на главите и разпределянето на задачите и паметта. В този случай всяка от главите съдържа и частичен бекъп на информацията на част от останалите глави така че отпадането на една глава няма да е критично за системата. При добра имплементация, този вариант може да просъществува значително по-лесно от предходния. Недостатък тук отново се появава, когато се включат прекалено много сървъри (глави) в системата. Тогава времето за синхронизация и комуникация между главите, ще е значителна част и  това ще ограничи скоростта на движенията на ламята. Това е подходящия момент да и се отрежат краката(които не се регенерират) и да я оставим да умре от глад.

Нека сега разгледаме варианта, при който главата е само крайник с рецептори и огнедишаща функция евентуално. Този вариант изглежда най-лесен за управление, но дали е така? При увеличаване на броя на главите от една страна броя на гледните точки се увеличава и мозъкът може да създаде максимално реалистична 3D картина на околния свят. От друга страна времето за обработка и напасване на постъпващата информация се увеличава с всяка нова глава. Тук отново можем да предизвикаме претоварване на системата при достатъчен брой глави. Естествено това може да се отстрани като дефект, ако се обработва информацията постъпваща само от 3-4 от най-подходящо разположените в момента глави, а останалите се игнарират. Такава ламя би била изключително жизнеспособна и реално може да живее дори без нито една глава, въпреки че тогава би била глуха и сляпа и в крайна сметка би умряла от глад.

И за финал нека разгледаме един друг въпрос – кога е щастлива една ламя? В случаите на разпределена система или централен мозък нещата са относително ясни. Какво се случва обаче, ако всяка глава има собствен мозък? Тогава ламята би била щастлива ако всичките и глави са  щастливи или настроението и би било някаква равнодействаща на настроенията на главите и. Имайки в предвид трудностите при управление на тялото в този случай, смея да твърдя че всяка такава ламя страда от тежка форма на ламска депресия. Което обяснява злия им нрав.

Leave a Reply