Du ska odla en skog och fördröja dess (oundvikliga) död sÄ lÀnge du kan.
Detta gör du genom att plantera ett frö (det första fröet blir trÀdets rot) som sedan vÀxer ut grenar till nya frön, som i sin tur vÀxer ut grenar till nya frön osv.
Regler frÄn definitioner:
TrĂ€den vi jobbar med Ă€r acykliska, oriktade, mĂ€rkta och rotade grafer. đ€
SĂ„ vad betyder det egentligen..?
Dessa trÀd Àr matematiska trÀd och fÄr dÀrför inte innehÄlla slutna slingor/loops. (acyklisk)
Det finns alltsÄ bara EN unik vÀg till alla frön.
TrÀdet mÄste vara sammankopplat med hjÀlp av grenar, riktningen spelar ingen roll. (oriktade)
AlltsÄ Àr ordningen irrelevant nÀr grenarna bildas.
Argumentet n avgör hur mÄnga olika typer av frön (fÀrger) du har att jobba med. (mÀrkta)
TREE(1) har bara gröna frön.
TREE(2) har gröna och röda
TREE(3) har gröna, röda och blÄ
Det första fröet som planteras kallas trÀdets rot. (rotat)
Detta frö fÄr en outline som markering.
Regler specifika för TREE(n):
För ett givet n sÄ fÄr trÀdet max innehÄlla lika mÄnga frön som dess ordning i serien.
AlltsÄ fÄr det första trÀdet i TREE(n) max innehÄlla 1 frö (nod).
Det andra trÀdet i serien fÄr max bestÄ av 2 st frön sammankopplade men kan Àven bestÄ av bara 1 frö.
Det tredje bestÄr av max 3 st osv.
Du fÄr alltsÄ inte börja med ett stort trÀd utan mÄste vÀlja en enda nod.
Om ett trĂ€d 'innehĂ„ller' ett tidigare trĂ€d (för samma n) kommer hela skogen att dö. đ„
Det luddiga begreppet 'innehÄller' kan man se ungefÀr som att vi kan Äterskapa subtrÀdet genom att plocka bort frön det större trÀdet.
I subtrÀdet kommer tvÄ löv (frön med bara en gren) alltid att ha en unik vÀg till varandra, dÀr dom möts (gemensamma förfadern) mÄste finnas i det större trÀdet.
Mer exakt innebÀr det: varje frö i subtrÀdet T1 kan Äterfinnas i det större trÀdet T2 (med samma fÀrg sÄklart).
Om ett frö F1 i T1 direkt följs av ett annat frö F2 mÄste F1:s motsvarande frö i T2 följas av det andra fröet F2 MEN fröna i T2 fÄr ha andra frön mellan sig.
Om trĂ€det T2 'innehĂ„ller' subtrĂ€det T1 kallar vi T1 "inf-embeddable" i T2. đ€
Det Àr inte sÄ lÀtt att förklara i text sÄ hÀr Àr nÄgra exempel:
Ex. 1:
Om vi plockar bort det övre gröna fröet frÄn T2 fÄr vi T1.
Vi ser ocksÄ att vÀgen frÄn det blÄa till det röda lövet innehÄller det centrala gröna fröet.
T2 innehÄller T1
Ex. 2:
PÄ samma sÀtt som innan plockar vi bort de 2 undre blÄa fröna frÄn T4 och fÄr dÄ T3.
Vi ser ocksÄ att vÀgen frÄn det röda till det gröna lövet innehÄller det översta blÄa fröet.
T4 innehÄller T3
Ex. 3:
HÀr kan vi börja med att plocka bort det centrala blÄa fröet frÄn T6 fÄr vi T5.
MEN vÀgen frÄn det gröna till det röda lövet innehÄller INTE det blÄa fröet.
T6 innehÄller INTE T5
Hajaru? Kolla pÄ en youtube-video annars och kom tillbaka sen.
Alternativt om du föredrar mer formella regler sÄ har Kruskal & Friedman en bÀttre förklaring.
Interaktion:
Plantera frö:
VÀnsterklick och hÄll ner för meny, hÄll musen över fröet du vill plantera och slÀpp upp musknappen.
Det första fröet blir trÀdets rot.
Odla grenar mellan fröna:
VÀnsterklicka pÄ ett frö och dra till fröet du vill odla en gren till, slÀpp musknappen för att odla grenen.
Flytta frön:
Högerklicka och dra för att flytta.
Spara trÀd:
NÀr du Àr klar med ett trÀd trycker du SUBMIT för att spara trÀdet.
DÄ kollar jag om du har följt alla regler, annars fÄr du veta vad du gjorde fel.
Börja om med nuvarande trÀd:
Jag har inte lagt till förmÄgan att ta bort frön sÄ om du har gjort fel trycker du CLEAR sÄ rensas det nuvarande trÀdet.
DÄ fÄr du göra om och göra rÀtt.
Rensa alla trÀd och börja om frÄn början:
Om du kÀnner att du har formulerat trÀden i fel ordning kan du börja om frÄn början med RESET
(ordningen spear ju roll dÄ ett trÀd inte fÄr innehÄlla ett tidigare trÀd)
FörlÄt för mÀngden text men reglerna Àr inte sjÀlvklara, och jag har lÀst bra mycket mer för att lista ut en implementering...