MA korra olen seda algoritmi kirjeldanud - aga eks ma kirjelda uuesti
1. Kui avatakse profiil, siis proovitakse "lihtalgoritmiga" leida selle sugulus fookusisikuga (enamasti sinuga).
2. Kui lihtalgoritm ei aita, siis näidatakse sinine kast, mis võimaldab otsida pikemat teed.
Kord leitud teekond häshitakse - et ei peaks alati otsima. Häshimisel on võtmeks otspunktide koodid. Näiteks minu ja selle va vaarao teekond on korra leitud ja siis on ta mingi aja häshis meeles. Seal on miski ligi 200 sammu. aga mingit lõiku selles pole tal "meeles" ja seepärast iga lõiku sellest ei pruugi ta leida.
Lihtalgoritm ja pikem algoritm erinevad ajakulukuse mõttes. Lihtne tehakse sünkroonis. Teekond, mis on võimalik tuvastada lehe laadimise aja jooksul leitakse, siis otsing katkestatakse. Keeruline teekond leitakse assünkroonselt ja siin on "piduriks" vaid aeg ja serveri koormus (oletatavalt on mingid teised piirajad veel - näiteks olen avastanud, et teekonda näidatakse vaid need sugulussidemed, mida muidu ka näeks, aga mitte alati - seega privaatprofiilid toimivad pidurina aga mitte tõkisena.
Oletan (ei ole kontrollinud), et otsimisalgoritm toimub puu läbimise loogikas - kas käivitatkse korraga mitu threadi või ei, ei oska hinnata. Tõenäoliselt on erinevatel sugulussuundadel oma kaalud, mis määravad, millist haru eelistatakse edasi ronida. Klassikaliselt lisatakse iga node loendisse, mis pidurdab - see väldib tsükleid. Selline algoritm uurib suht kiirelt puus ühe node ümbruse.
Lihtalgoritm leiab toimib järgmise loogikaga (katsetega kontrollitud)
1. KUi sugulustee on käshis, siis see leitakse KOHE - st kui otspunktide vahel on kord tee leitud, siis seda otsima ei hakata.
Käsh unustab mingi aja jooksul
Sugulussideme lahtilõikamisel kustutatakse käshist KÕIK teed, mis sisaldavad lahtilõigatavat lõiku.
2. Kui otspunktid on samas "peres", siis leitakse ka kohe. Kui suure ringiga pere kohe leitakse, ei ole suutnud katsetega tuvastada.
Edasi tuleb kaks keerulist asja
A. Mis toimub mestimisel.
Mestimisel X1 ja X2 jääb järele üks profiil - ütleme X1. See tähendab, et käshist kaovad KÕIK teekonnad, mille otspunktiks (võimalik et ka kui teepeal) oli X2. Käik teekonnad, kus otspunktiks oli X1 jäävad ilusti alles.
St kui teekond SINA-X1 oli ntx 30 sammu ja SINA-X2 oli 5 sammu, siis see lühem teekond unustatakse ja meelde jääb pikem. JA kuna ta on meeles, siis otsima ei hakata.
Geni mootorit saab aga SUNDIDA teekondi õigesti (või soovipäraselt) näitama.
A - ajutine katkestus (ei soovita kasutada, juhul kui sul peale katkestust kaob ligipääs teisele harule, oled jamas). Loogika peaks olema, et katkesta ja ühenda uuesti - kõik teekonnad otsitakse uuesti, mis seda lõiku sisaldasid. KUna ta on aga põikpäise mäluga, siis olen kasutanud tehnikat "katkesta-otsi-ühenda". Siis jääb kindlasti "meelde" minu soovitud teekond. Katkestada tuleks mööda vertikaalharusid (vanemad-lapsed), sest need ei sisalda infot. HOrisontaallõigud (abielud) võivad sisaldada olulist infot (paarsusliik, kuupäevad jne)
B- puud pidi ronimine või väiksemad hüpped (kuni kahe node-ilised)
nimelt on vahe, kas sa avad profiili lihstalt
http://www.geni.com/profile/index/nnnn
või teise profiili "kaudu"
http://www.geni.com/profile/index/nnnn?through=mmmm
viimasel juhul vaadatakse, kas on teekond sina-mmmm ja kui on, siis lisatakse sinna kiirelt leitav mmmm-nnnn.
Näiteks selle vaaraoni minust mingit teed ei leitud. Küll aga oli olemas Björnist selle vaaraoni. Björn on nimelt selle vaarao otsene järeltulija ja ju siis ei ole see 150 esivanemat olnud tal keeruline meelde jätta.
Kuna mul olil kuskist ajast jäänud käshi teekond mina - Björn, siis avasin ühes aknas raja Björn - Vaarao
teises Mina - Björn (õigemini esimene ühispunkt) ja siis liikusin samm haaval kuni vaaraoni.
Nimelt on PROFIILI lehel kõik lingid kujul through ja puust ja nimistutest avanevad lingid otse (ilma through-ta)
Selle tehnikaga saab leida teekonna PEAAEGU kõigini, kui teepal on kõik sammud "asututavad" või "hüpatavad" - privaatprofiilid puuduvad või maksimaalslet 1 privaatprofiil.
Henn