Idea hamsters – така казвали на офисен жаргон в някои държави на тези, дето вечно раждат идеи. (И неизменно тези идеи или са глупотевични, та трескавични, или преоткриват топлата вода.) И аз съм от тях.
Докато висях днес в поредното задръстване, за развлечение се мъчех да си представя екологията и еволюцията в математически вид. (Да, да, знам, че преоткривам топлата вода. Толкова пъти съм го правил, че стотина-двеста в повече няма да ми дойдат много.)
Като си помисли човек, не изглежда непостижимо например да се изчисли скоростта на еволюцията на един биологичен вид. Започва се с максимално опростен модел, и постепенно се доближава до сложността на живота.
Нека като начало дефинираме какво е скорост на еволюцията. За целта на упражнението нека това да е времето, в години, за което от този вид произлиза един друг вид. Който предпочита други критерии за скорост, надали ще е трудно да използва тях.
Най на едро погледнато, това е времето, за което дадена линия на мутации достига до степен мутантите вече да не се кръстосват с изходния вид. Без значение дали причините за некръстосване са биологични, поведенчески или каквито и да е други – ей така, за опростяване на примера. Да дефинираме това биологично разстояние като едно междувидово разстояние. В такъв случай, скоростта на еволюцията ще е:
v = G / T,
където v е скоростта, G – междувидовото разстояние, а T – времето. (Буквите, които обозначават единиците, ги подбирам без капка съобразяване с установени правила, защото не знам правилата. Не съм нито математик, нито физик. На който не му харесват, да си ги сменя. Блогът ми е под свободен лиценз.)
Прекалено просто е, за да става за нещо, нали? Нека го усложним малко. Като начало, мутациите отнемат едно поколение време (което е средното време между раждането на индивид и раждането на наследниците на този индивид – минути за някои видове бактерии, десетки години за някои видове бозайници). При равни други условия, очевидно колкото по-бързо се сменят поколенията, толкова по-бързо тече еволюцията, и се покрива междувидовото разстояние. И, ако знаем каква част от междувидовото разстояние средностатистически се изминава за едно поколение (така нареченият генетичен дрифт за поколение), можем да заместим междувидовото разстояние с двете му съставящи:
v = ( gens * gendrift ) / T
където gens e броя поколения, а gendrift – частта от междувидовото разстояние, която се изминава средностатистически за едно поколение.
Разбира се, и това е нереално просто. За такива неща всяка формула, по-къса от няколко страници, вероятно би била твърде проста, за да е приложима реално. Но нека си почовъркаме още малко. Вие може и да бързате да прочетете това, ама аз го мислех в задръстване, та нямаше как да бързам.
Скоростта на генетичния дрифт се определя от страшно много неща. Едно от тях е, да кажем, броят на индивидите. Друго е примерно процентът на мутациите. Колкото повече е броят на индивидите, толкова повече мутанти ще има. И колкото по-висок е процентът на мутациите, пак също. Значи би било правилно да заместим:
v = (gens * ( count * mutation_percent ) ) / T
Тук обаче нагазваме в малко по-дълбоки води. Като начало, тази формула важи, ако плодовитостта на индивидите трае точно едно поколение. Ако е повече, трябва да заместим броя на поколенията по формула:
v = ( gens * ( ( fertile_longevity / 2 ) + 0.5 ) * (count * mutation_percent ) ) / T
където fertile_longevity e средната продължителност на плодовитостта на индивида, измерена в поколения.
(Разбира се, и това е ужасно опростено. Но за целта на упражнението става.)
Отделно от това, не всички индивиди се размножават – било защото някои са твърде стари или твърде млади, било защото някакъв процент са стерилни по рождение, било защото водачът на стадото не пуска никой друг мъжкар да остави поколение – при повечето стадни животни, а и при т.нар. харемни, това е често явление. Тоест, броят на индивидите следва да се коригира:
v = ( gens * ( ( fertile_longevity / 2 ) + 0.5 ) * (count * fertility_percent * mutation_percent ) ) / T
Мутациите също не са толкова елементарни. Като начало, повечето от тях са смъртоносни, или лишават индивида от възможността за поколение, по една или друга причина. Тоест, бихме могли да напишем:
v = ( gens * ( ( fertile_longevity / 2 ) + 0.5 ) * (count * fertility_percent * mutation_percent ) ) / T
mutation_percent = ( total_mutation_percent * fertile_mutations_percent )
(За да не пренасям формулата, почвам да я разбивам на система от формули.)
Този запис може да продължава още много, и да стане способен да докара главоболие и на професор по висша математика. (По-нататък почват разни статистически разпределения, където играе половината гръцка азбука, а диференциалите и интегралите се отказах да ги мисля още като видях колко са дори в прост модел.) Но и толкова вече е достатъчно, за да покаже някои интересни неща:
1. Подхваната по този начин, и с този подход, формулата е лесно усложняема и разчленяема доколкото е нужно в конкретния случай. Върху различни нейни части могат да работят различни хора, без да си пречат. Тоест, тя принципно може да бъде доведена до използваемост.
2. Развиването й по-нататък поставя един интересен въпрос – в какви единици се измерват различните елементи, и как съставките на единиците се разпределят при разчленяването на елементите. А това в определени моменти може да наведе човек на МНОГО интересни изводи. (Да видя дали някой ще се вманиачи до степен да ги види – за мен бяха голямо удоволствие! :-))
3. Естественото й разделение на елементи показва, че е възможно опростяването и предизчисляването на ключови, сложни и непроменящи се комплекси в нея, така че после да може да бъде изчислявана многократно, с различни параметри, за приемливо време.
Има и други изводи, но… хайде да спестя малко време на читателя. Пък на който му е интересно, ще ги мисли. 🙂