close
Pojdi na vsebino

L-sistem

Iz Wikipedije, proste enciklopedije
Drevesa L-sistema tvorijo realistične modele naravnih vzorcev

L-sistem ali Lindenmayerjev sistem je vzporedni sistem prepisovanja in vrsta formalne slovnice. L-sistem sestavlja abeceda simbolov, ki se lahko uporabijo za ustvarjanje znakovnih nizov (stringov), zbirke produkcijskih pravil, ki vsak simbol razširijo v nek večji znakovni niz simbolov, začetnega »aksiomskega« znakovnega niza, iz katerega se začne konstrukcija, in mehanizma za prevajanje ustvarjenih znakovnih nizov v geometrijske strukture. L-sisteme je leta 1968 predstavil in razvil Aristid Lindenmayer, madžarski teoretični biolog in botanik na Univerzi v Utrechtu.[1] L-sisteme je uporabil za opis vedenja rastlinskih celic in za modeliranje rastnih procesov razvoja rastlin. L-sistemi so bili uporabljeni tudi za modeliranje morfologije različnih organizmov[2] in se lahko uporabljajo za ustvarjanje samopodobnih fraktalov.

Izvori

[uredi | uredi kodo]
Predstavitve rastlin, ustvarjene z uporabo L-sistema v treh razsežnostih.

Kot biolog se je Lindenmayer ukvarjal s kvasovkami in nitastimi glivami ter preučeval vzorce rasti različnih vrst bakterij, kot je modrozelena cepljivka (cianobakterija) Anabaena catenula. Prvotno so bili L-sistemi zasnovani za formalni opis razvoja takšnih preprostih večceličnih organizmov in za ponazoritev sosedskih odnosov med rastlinskimi celicami. Kasneje je bil ta sistem razširjen na opis višjih rastlin in kompleksnih razvejanih struktur.

Struktura L-sistema

[uredi | uredi kodo]

Rekurzivna narava pravil L-sistema vodi do samopodobnosti, zato je fraktalne oblike enostavno opisati z L-sistemom. Rastlinske modele in organske oblike naravnega videza je enostavno definirati, saj z naraščanjem ravni rekurzije oblika počasi 'raste' in postaja kompleksnejša. Lindenmayerjevi sistemi so priljubljeni tudi pri ustvarjanju umetnega življenja.

Slovnice L-sistemov so zelo podobne slovnici polThuejevi slovnici (glej hierarhija Chomskega). L-sistemi so sedaj splošno znani kot parametrični L-sistemi, definirani kot trojica.

kjer je:

  • (abeceda) množica simbolov, ki vsebuje tako elemente, ki jih je mogoče nadomestiti (spremenljivke), kot tiste, ki jih ni mogoče nadomestiti (konstante ali terminali)
  • (začetek, aksiom ali iniciator) je znakovni niz simbolov iz , ki definira začetno stanje sistema
  • množica produkcijskih pravil ali produkcij, ki definira način na katerega se lahko spremenljivke zamenjajo s kombinacijamiu konstant in drugih spremenljivk. Produkcijo sestavljata dva znakovna niza, predhodnik in naslednik. Za poljubni , ki je element množice in se ne pojavlja na levi strani produkcije v , se predpostavlja identična produkcija ti simboli se imenujejo konstante ali terminali. (Glej zakon identičnosti).

Pravila slovnice L-sistema se uporabljajo iterativno, začenši od začetnega stanja. Na iteracijo se hkrati uporabi čim več pravil. Dejstvo, da vsaka iteracija uporabi čim več pravil, razlikuje L-sistem od formalnega jezika, nastalega iz formalne slovnice, ki na iteracijo uporabi le eno pravilo. Če bi se produkcijska pravila uporabljala le eno naenkrat, bi se preprosto ustvarilo znakovni niz v jeziku in vsa taka zaporedja aplikacij bi ustvarila jezik, ki ga določa slovnica. Vendar pa v nekaterih jezikih obstajajo znakovni nizi, ki jih ni mogoče ustvariti, če se slovnico obravnava kot L-sistem in ne kot jezikovno specifikacijo. Na primer,[3] naj se predpostavi, da v slovnici obstaja pravilo . Če se produkcije izvajajo ena naenkrat, potem se lahko, začenši s , najprej dobi in nato, če se pravilo ponovno uporabi, . Če pa se uporabijo vsa ustrezna pravila v vsakem koraku, kot v L-sistemu, potem se ne da dobiti te stavčne oblike. Namesto tega bi prvi korak dal , drugi pa bi pravilo uporabil dvakrat, kar bi dalo . Tako je množica znakovnih nizov, ustvarjena z L-sistemi iz dane slovnice, podmnožica formalnega jezika, ki ga definira slovnica, in če se jezik definira kot množico znakovnih nizov, to pomeni, da je dani L-sistem dejansko podmnožica formalnega jezika, ki ga definira slovnica L-sistema.

L-sistem je kontekstno prost, če se vsako produkcijsko pravilo nanaša le na posamezen simbol in ne na njegove sosede. Kontekstno prosti L-sistem je torej določen s kontekstno prosto slovnico. Če pravilo ni odvisno le od enega samega simbola, temveč tudi od njegovih sosedov, se imenuje kontekstno občutljivi L-sistem.

Če obstaja natanko ena produkcija za vsak simbol, potem je L-sistem determinističen (deterministični kontekstno prosti L-sistem se popularno imenuje sistem D0L). Če jih je več in je vsak izbran z določeno verjetnostjo med vsako iteracijo, potem gre za stohastični L-sistem.

Uporaba L-sistemov za ustvarjanje grafičnih slik zahteva, da se simboli v modelu nanašajo na elemente risbe na računalniškem zaslonu. Program Fractint na primer uporablja želvjo grafiko (podobno tisti v programskem jeziku Logo) za ustvarjanje slik na zaslonu. Vsako konstanto v modelu L-sistema interpretira kot želvin ukaz.

Zgledi L-sistemov

[uredi | uredi kodo]

Zgled 1: alge

[uredi | uredi kodo]

Lindenmayerjev izvirni L-sistem za modeliranje rasti alg.

spremenljivke : A, B
konstante : nobena
aksiom : A
pravila : (A → AB), (B → A)

kar ustvari:

n = 0 : A
n = 1 : AB
n = 2 : ABA
n = 3 : ABAAB
n = 4 : ABAABABA
n = 5 : ABAABABAABAAB
n = 6 : ABAABABAABAABABAABABA
n = 7 : ABAABABAABAABABAABABAABAABABAABAAB

Zgled 1: alge, s pojasnili

[uredi | uredi kodo]
n = 0:             A             začetek (aksiom/iniciator)
                  / \
n = 1:           A   B           začetni A postane AB s pravilom (A → AB), pravilo (B → A) se ne da uporabiti
                /|     \
n = 2:         A B      A        prejšnji znakovni niz AB z vsemi uporabljenimi pravili, A je spet postal AB,
prejšnji B se je spremenil v A
             / | |       | \
n = 3:       A B A       A B     upošteva se, da vsi A najprej ustvarijo kopijo sebe, nato pa B, ki se spremeni ...
           / | | | \     | \ \
n = 4:     A B A A B     A B A   ... v A eno generacijo kasneje in se nato začne pojavljati/ponavljati/rekurzivno pojavljati

Rezultat je zaporedje Fibonaccijevih besed. Če se šteje dolžino vsakega znakovnega niza, se dobi Fibonaccijevo zaporedje števil (pri čemer se prva 1 preskoči zaradi izbire aksioma):

1 2 3 5 8 13 21 34 55 89 ...

Če se ne želi preskočiti prve 1, se lahko uporabi aksiom . To bi postavilo vozlišče pred najvišje vozlišče () zgornjega grafa.

Za vsak znakovni niz, če se šteje -ti položaj od levega konca znakovnega niza, je vrednost določena s tem, ali mnogokratnik zlatega reza spada v interval . Razmerje med in prav tako konvergira k zlatemu rezu.

Ta zgled daje enak rezultat (glede dolžine vsakega znakovnega niza, ne zaporedja jev in jev), če se pravilo () nadomesti z (), le da so znakovni nizi zrcaljeni.

To zaporedje je krajevno katenativno, ker je , kjer je -ta generacija.

Zgled 2: fraktalno (dvojiško) drevo

[uredi | uredi kodo]
  • spremenljivke : 0, 1
  • konstante: »[«, »]«
  • aksiom : 0
  • pravila : (1 → 11), (0 → 1[0]0)

Oblika dvojiškega drevesa se gradi z rekurzivnim podajanjem aksioma skozi produkcijska pravila. Vsak znak vhodnega znakovnega niza se preveri s seznamom pravil, da se določi, s katerim znakom ali znakovnim nizom ga je treba nadomestiti v izhodnem znakovnem nizu. V tem primeru '1' v vhodnem znakovnem nizu postane '11' v izhodnem znakovnem nizu, medtem ko '[' ostane enak. Če se to uporabi za aksiom '0', nastane:

aksiom:0
1. rekurzija:1[0]0
2. rekurzija:11[1[0]0]1[0]0
3. rekurzija:1111[11[1[0]0]1[0]0]11[1[0]0]1[0]0
...

Vidi se lahko, da ta znakovni niz hitro raste v velikosti in kompleksnosti. Ta znakovni niz se lahko nariše kot sliko z uporabo želvje grafike, kjer je vsakemu simbolu dodeljena grafična operacija, ki jo mora želva izvesti. V zgornjem primeru lahko na primer želva dobi naslednja navodila:

  • 0: risanje daljice, ki se konča v listu
  • 1: risanje daljice
  • [: postavljanje (push) lege in kota, zavijanje levo za 45°
  • ]: vzemanje (pop) lege in kota, zavijanje desno za 45°

Postavljanje in vzemanje se nanašata na sklad LIFO (bolj tehnična slovnica bi imela ločena simbola za »postavljanje lege« in »zavijanje levo«). Ko interpretacija želve naleti na '[', se trenutni lega in kot shranita, nato pa se obnovita, ko interpretacija naleti na ']'. Če je bilo »postavljenih« več vrednosti, potem »vzemanje« obnovi nazadnje shranjene vrednosti. Če se zgoraj navedena grafična pravila uporabi za prejšnjo rekurzijo, nastane:

Zgled 3: Cantorjeva množica

[uredi | uredi kodo]
spremenljivke : A, B
konstante : nobena
začetek : A {začetni znak znakovnega niza}
pravila : (A → ABA), (B → BBB)

Naj A pomeni »risanje naprej« in B »premikanje naprej«.

Tako nastane znana Cantorjeva množica na realni osi .

Zgled 4: Kochova krivulja

[uredi | uredi kodo]

Različica Kochove krivulje, ki uporablja le prave kote.

spremenljivke : F
konstante : +,
začetek : F
pravila : (F → F+FFF+F)

Tukaj F pomeni »risanje naprej«, + »zavijanje levo za 90°« in »zavijanje desno za 90°« (glej želvja grafika).

n = 0:
F
Kochov kvadrat – 0 iteracij
n = 1:
F+FFF+F
Kochov kvadrat – 1 iteracija
n = 2:
F+FFF+F+F+FFF+FF+FFF+FF+FFF+F+F+FFF+F
Kochov kvadrat – 2 iteraciji
n = 3:
F+FFF+F+F+FFF+FF+FFF+FF+FFF+F+F+FFF+F+
F+FFF+F+F+FFF+FF+FFF+FF+FFF+F+F+FFF+F
F+FFF+F+F+FFF+FF+FFF+FF+FFF+F+F+FFF+F
F+FFF+F+F+FFF+FF+FFF+FF+FFF+F+F+FFF+F+
F+FFF+F+F+FFF+FF+FFF+FF+FFF+F+F+FFF+F
Kochov kvadrat – 3 iteracije

Zgled 5: trikotnik Sierpińskega

[uredi | uredi kodo]

Trikotnik Sierpińskega ustvarjen s pomočjo L-sistema.

spremenljivke : F, G
konstante : +,
začetek : FGG
pravila : (F → FG+F+GF), (G → GG)
kot : 120°

Tukaj F in G obe pomenita »risanje naprej«, + »zavijanje levo za kot« in »zavijanje desno za kot«.

Trikotnik Sierpińskega je mogoče aproksimirati tudi z uporabo L-sistema krivulje puščične konice Sierpińskega.

spremenljivke : A, B
konstante : +,
začetek : A
pravila : (A → BAB), (B → A+B+A)
kot : 60°

Tukaj A in B obe pomenita »risanje naprej«, + »zavijanje levo za kot« in »zavijanje desno za kot« (glej želvja grafika).

Razvoj za , , in

Zgled 6: zmajeva krivulja

[uredi | uredi kodo]

Zmajeva krivulja ustvarjena s pomočjo L-sistema.

spremenljivke : F, G
konstante : +,
začetek : F
pravila : (F → F+G), (G → FG)
kot : 90°

Tukaj F in G obe pomenita »risanje naprej«, + »zavijanje levo za kot« in »zavijanje desno za kot«.

n = 0 : F
n = 2 : F+G
n = 2 : F+G+FG
n = 3 : F+G+FG+F+GFG
n = 4 : F+G+FG+F+GFG+F+G+FGF+GFG
Zmajeva krivulja za

Zgled 7: fraktalna rastlina

[uredi | uredi kodo]
spremenljivke : X, F
constants : +, , »[«, »]«
začetek : X
pravila : (X → F+[[X]X]F[FX]+X), (F → FF)
kot : 25°

Najprej je treba inicializirati prazen sklad. To sledi metodi LIFO (zadnji noter, prvi ven) za dodajanje in odstranjevanje elementov. Tukaj F pomeni »risanje naprej«, »zavijanje desno za 25°« in + »zavijanje levo za 25°«. X ne ustreza nobenemu dejanju risanja in se uporablja za nadzor razvoja krivulje. Oglati oklepaj »[« ustreza shranjevanju trenutnih vrednosti za lego in kot, zato se lega in kot postavita na vrh sklada. Ko se naleti na znak »]«, se s sklada vzame in lega ter kot se ponastavita. Vsak »[« je pred vsakim znakom »]«.

Fraktalna rastlina za

Različice

[uredi | uredi kodo]

Razvitih je bilo več podrobnih opisov te osnovne tehnike L-sistemov, ki jih je mogoče uporabljati skupaj. Med njimi so stohastične slovnice, kontekstno občutljive slovnice in parametrične slovnice.

Stohastične slovnice

[uredi | uredi kodo]

Slovnični model, o katerem je bilo do sedaj govora, je bil determinističen to pomeni, da za vsak simbol v slovnični abecedi obstaja natanko eno produkcijsko pravilo, ki je vedno izbrano in vedno izvede isto pretvorbo. Ena od možnosti je, da se za simbol določi več kot eno produkcijsko pravilo, pri čemer se vsakemu določi verjetnost, da se pojavi. Na primer, v slovnici zgleda 2 bi se lahko spremenilo pravilo za prepisovanje »0« iz:

0 → 1[0]0

v verjetnostno pravilo:

0 (0,5) → 1[0]0
0 (0,5) → 0

Pri tej produkciji, kadar bi se med prepisovanjem znakovnega niza srečal znak »0«, bi obstajala 50-odstotna verjetnost, da bi se obnašala, kot je bilo opisano prej, in 50-odstotna verjetnost, da se med produkcijo ne bi spremenila. Ko se stohastična slovnica uporablja v evolucijskem kontekstu, je priporočljivo v genotip vključiti naključno seme, tako da stohastične značilnosti slike ostanejo nespremenjene med generacijami.

Kontekstno občutljive slovnice

[uredi | uredi kodo]

Kontekstno občutljivo produkcijsko pravilo ne upošteva le simbola, ki ga spreminja, temveč tudi simbole v znakovnem nizu, ki se pojavljajo pred njim in za njim. Na primer, produkcijsko pravilo:

b < a > c → aa

transformira »a« v »aa«, vendar samo, če se »a« pojavi med »b« in »c« v vhodnem znakovnem nizu:

...bac...

Kot pri stohastičnih produkcijah obstaja več produkcij za obravnavo simbolov v različnih kontekstih. Če za dani kontekst ni mogoče najti produkcijskega pravila, se predpostavlja identitetna produkcija in simbol se pri transformaciji ne spremeni. Če znotraj iste slovnice obstajata tako kontekstno občutljiva kot kontekstno prosta produkcija, se predpostavlja, da ima kontekstno občutljiva produkcija prednost, kadar je uporabna.

Parametrične slovnice

[uredi | uredi kodo]

V parametrični slovnici ima vsak simbol v abecedi seznam parametrov, ki je z njim povezan. Simbol, povezan s seznamom parametrov, se imenuje modul, znakovni niz v parametrični slovnici pa je vrsta modulov. Zgled znakovnega niza je lahko:

a(0, 1)[b(0, 0)]a(1, 2)

Parametre lahko uporabljajo funkcije risanja in tudi produkcijska pravila. Produkcijska pravila lahko parametre uporabljajo na dva načina: prvič, v pogojnem stavku, ki določa, ali bo pravilo veljalo, in drugič, produkcijsko pravilo lahko spremeni dejanske parametre. Na primer pri:

a(x, y) : x == 0 → a(1, y + 1)b(2, 3)

Modul a(x, y) se po tem produkcijskem pravilu transformira, če je izpolnjen pogoj x = 0. Na primer, a(0, 2) bi se transformiral, a(1, 2) pa ne.

V transformacijskem delu produkcijskega pravila se lahko vpliva tako na parametre kot na celotne module. V zgornjem zgledu je znakovnemu nizu dodan modul b(x, y) z začetnimi parametri (2, 3). Prav tako se transformirajo parametri že obstoječega modula. V skladu z zgornjim produkcijskim pravilom:

a(0, 2)

postane:

a(1, 3)b(2, 3),

ker se parameter »x« od a(x, y) eksplicitno transformira v »1«, parameter »y« od a pa se poveča za ena.

Parametrične slovnice omogočajo, da dolžine črt in kote razvejanja določi slovnica in ne metode želvje interpretacije. Če je podana tudi starost kot parameter za modul, se lahko pravila spreminjajo glede na starost rastlinskega segmenta, kar omogoča ustvarjanje animacij celotnega življenjskega cikla drevesa.

Dvosmerne slovnice

[uredi | uredi kodo]

Dvosmerni model eksplicitno ločuje sistem simbolnega prepisovanja od dodeljevanja oblik. Na primer, postopek prepisovanja znakovnih nizov v zgledu 2 (fraktalno (dvojiško) drevo) je neodvisen od tega, kako so grafične operacije dodeljene simbolom. Z drugimi besedami, za dani sistem prepisovanja je uporabno neskončno število metod risanja.

Dvosmerni model je sestavljen iz 1) procesa naprej, ki gradi drevo izpeljave s produkcijskimi pravili, in 2) procesa nazaj, ki drevo z oblikami realizira postopno (od listov do korena). Vsak korak inverzne izpeljave vključuje bistveno geometrijskotopološko sklepanje. S tem dvosmernim ogrodjem so oblikovne omejitve in cilji kodirani v prevodu slovnice in oblike. V aplikacijah arhitekturnega oblikovanja ima dvosmerna slovnica dosledno notranjo povezljivost in bogato prostorsko hierarhijo.[4]

Konstrukcija in inferenčnost L-sistema

[uredi | uredi kodo]

Ročna konstrukcija L-sistema

[uredi | uredi kodo]

Zgodovinsko gledano je bila konstrukcija L-sistemov močno odvisna od ročnega dela strokovnjakov,[5][6][7] kar je zahtevalo podrobne meritve, poznavanje področja in znatne časovne naložbe. Postopek je pogosto vključeval analizo bioloških struktur in kodiranje njihovih razvojnih pravil v L-sisteme, simbol za simbolom. Zaradi te delovno intenzivne metode je bilo ustvarjanje natančnih modelov za kompleksne procese dolgočasno in nagnjeno k napakam.

Pomemben primer je Nishidovo[7] delo na japonskih cipresah (Chamaecyparis obtusa), kjer je ročno segmentiral veje iz niza slik in identificiral 42 različnih mehanizmov rasti za konstrukcijo stohastičnega L-sistema. Kljub znatnemu vloženemu trudu je nastali sistem zagotovil le približek rasti drevesa, kar ponazarja izzive ročnega kodiranja tako podrobnih bioloških procesov. Ta naporna naloga je bila opisana kot »mučna in zapletena«, kar je poudarilo omejitve ročnih pristopov.

Izzivi ročne konstrukcije L-sistemov so dobro dokumentirani tudi v knjigi Algoritemska lepota rastlin (The Algorithmic Beauty of Plants[6]) avtorjev Przemysława Prusinkiewicza in Lindenmayerja. Knjiga prikazuje, kako lahko L-sistemi elegantno modelirajo rast rastlin in fraktalne vzorce, vendar so primeri pogosto zahtevali posredovanje strokovnjakov za opredelitev potrebnih pravil.

Ročno konstrukcijo je dodatno omejevala potreba po specifičnem strokovnem znanju, kot je razvidno iz drugih aplikacij L-sistemov, ki presegajo biologijo, kot sta arhitekturno načrtovanje in urbanistično modeliranje.[8] Na teh področjih je ustvarjanje natančnega L-sistema zahtevalo ne le razumevanje formalizma L-sistema, temveč tudi obsežno poznavanje modelirane domene.

Inferenčnost L-sistema

[uredi | uredi kodo]

Zamisel o avtomatizaciji inferenčnosti (sklepanju) L-sistemov se je pojavila, da bi odpravila neučinkovitost ročnih metod, ki so pogosto zahtevale obsežno strokovno znanje, meritve in postopke poskusov in napak. Namen te avtomatizacije je bil omogočiti inferenčnost L-sistemov neposredno iz opazovalnih podatkov, s čimer bi se odpravila potreba po ročnem kodiranju pravil.

Začetni algoritmi so bili primarno usmerjeni na deterministične kontekstno proste L-sisteme (sisteme D0L), ki spadajo med najpreprostejše vrste L-sistemov. Ta zgodnja prizadevanja so pokazala izvedljivost samodejne inferenčnosti, vendar so bila po obsegu zelo omejena, saj so običajno obravnavala le sisteme z majhnimi abecedami in preprostimi pravili prepisovanja.[9][10][11][12] Nakanovo[10] delo je na primer poudarilo izzive inferenčnosti L-sistemov z večjimi abecedami in kompleksnejšimi strukturami, nalogo pa je opisalo kot »izjemno zapleteno«.

Ročna in polavtomatska orodja

[uredi | uredi kodo]

Zgodnja orodja za inferenčnost L-sistemov so bila pogosto zasnovana tako, da pomagajo strokovnjakom, ne pa da bi jih nadomestila. Sistemi, ki so uporabniku predstavili populacijo potencialnih L-sistemov in mu omogočili izbiro estetsko prijetnih ali verjetnih možnosti, so na primer zmanjšali del ročnega bremena.[12][13] Vendar so se ta orodja močno zanašala na človeško presojo in niso v celoti avtomatizirala procesa inferenčnosti.

Pristopi inferenčnosti, specifični za domeno

[uredi | uredi kodo]

Nekateri zgodnji algoritmi so bili tesno integrirani v specifična raziskovalna področja, predvsem modeliranje rastlin.[13] Ti pristopi so uporabljali domensko znanje za omejitev iskalnega prostora in doseganje boljših rezultatov. Vendar pa je njihova odvisnost od vnaprej določenih domensko specifičnih pravil omejevala njihovo posplošljivost in uporabnost na druga področja.

Posplošeni algoritmi inferenčnosti

[uredi | uredi kodo]

Poskusi ustvarjanja posplošenih algoritmov za inferenčnost L-sistemov so se začeli z determinističnimi kontekstno prostimi sistemi. Raziskovalci so želeli inferirati na L-sisteme zgolj iz podatkov, kot so zaporedja znakovnih nizov ali časovni podatki iz slik, ne da bi se zanašali na specifično znanje o domeni. Ti algoritmi so naleteli na znatne izzive,[14][15] vključno z:

  • eksponentno rastjo iskalnega prostora z naraščajočo velikostjo abecede in kompleksnostjo pravil.
  • obravnavo nepopolnih ali šumnih podatkov, ki so v inferenčne sisteme vnesli napake.
  • omejitvami računske učinkovitosti, saj so izčrpne metode iskanja postale neobvladljive za vse razen za najpreprostejše primere.

Bernardova doktorska disertacija,[16] ki jo je mentoriral Ian McQuillan na Univerzi Saskatchewana, predstavlja pomemben napredek pri interferenčnosti L-sistemov, saj uvaja paket orodij za interferenčnost modelov rastlin (PMIT). Kljub imenu je to orodje neodvisno od problema in je tako poimenovano zaradi vira prvotnega financiranja projekta P2IRC. Ta orodja obravnavajo izzive interferenčnosti determinističnih, stohastičnih in parametričnih L-sistemov:

Deterministični kontekstno prosti L-sistemi (D0L):

Orodje PMIT-D0L je izboljšalo najsodobnejšo tehnologijo, saj je omogočilo inferenčnost L-sistemov z do 31 simboli v primerjavi s prejšnjimi algoritmi, ki so upravljali le z dvema. To je bilo doseženo z novimi tehnikami kodiranja in metodami za zmanjšanje iskalnega prostora.

Deterministični kontekstno občutljivi L-sistemi (D(j,k)L):

Orodje PMIT-DCSL je dodatno izboljšalo inferenčnost determinističnih L-sistemov z dokazovanjem, da tehnike delujejo v kontekstualno občutljivem primeru z majhnimi spremembami. To orodje je predstavilo tudi nadaljnje izboljšave, ki omogočajo inferenčnost determinističnih L-sistemov z do stotinami simbolov. Poleg tega to delo in McQuillanov[17] teoretični članek dokazujeta kompleksnost inferenčnosti kontekstualno občutljivih L-sistemov. V neobjavljenem delu Bernard trdi, da dokazuje, da kontekstualna občutljivost nikoli ne spremeni temeljne narave problema inferenčnosti, ne glede na pravilo izbora. To pomeni, da je inferenčnost kontekstualno občutljivih stohastičnih L-sistemov mogoča, če je mogoča inferenčnost kontekstno prostega L-sistema.

Stohastični L-sistemi (S0L):

Za stohastične L-sisteme je bilo razvito orodje PMIT-S0L, ki uporablja hibridni pristop pohlepnega in genetskega algoritma za inferenčnost o sistemih iz več zaporedij znakovnih nizov. Orodje je pokazalo sposobnost inferenčnosti o pravilih prepisovanja in verjetnostih z visoko natančnostjo, kar je prvo na tem področju.

Časovni parametrični L-sistemi:

McQuillan je prvi ugotovil, da se lahko parametrične L-sisteme predstavlja kot stohastične L-sisteme vendar to ni rešilo problema inferenčnosti o parametričnih izbirnih pravilih. Z uporabo kartezičnega genetskega programiranja je bilo mogoče sklepati o parametričnih L-sistemih skupaj s parametričnimi izbirnimi pravili, če je nabor parametrov vključeval čas (da bi zagotovili zaporedje parametrov, vendar je čas razumen parameter za vsak resnični proces). To orodje, PMIT-PARAM, je uspešno inferiralo o kompleksnih sistemih z do 27-imi pravili prepisovanja, s čimer je postavilo nov standard v inferenčnosti o L-sistemih.

Odprti problemi

[uredi | uredi kodo]

Pri preučevanju L-sistemov je veliko odprtih problemov. Na primer:

  • karakterizacija vseh determinističnih kontekstno prostih L-sistemov, ki so krajevno katenativni. (Popolna rešitev je znana le v primeru, ko obstajata le dve spremenljivki).[15]

Vrste L-sistemov

[uredi | uredi kodo]

L-sistem na realni osi je na primer:

Znani L-sistemi na ravnini so:

Glej tudi

[uredi | uredi kodo]

Sklici

[uredi | uredi kodo]
  1. Lindenmayer (1968).
  2. Rozenberg; Salomaa (1980).
  3. »L-systems«, Encyclopedia of Mathematics (v angleščini), Springer, arhivirano iz prvotnega spletišča dne 9. avgusta 2022, pridobljeno 26. julija 2022
  4. Hua (2017).
  5. Frijters; Lindenmayer (1974).
  6. 1 2 Prusinkiewicz; Lindemayer (2012).
  7. 1 2 Nishida (1980).
  8. Muller; idr (2006).
  9. Runqiang; idr. (2002).
  10. 1 2 Nakano (2014).
  11. Doucet (1974).
  12. 1 2 Curry (2000).
  13. 1 2 Anastacio; Prusinkiewicz; Sousa (2009).
  14. de la Higuera (2005).
  15. 1 2 Kari; Rozenberg; Salomaa (1997).
  16. Bernard (2020).
  17. McQuillan; Bernard; Prusinkiewicz (2018).

Zunanje povezave

[uredi | uredi kodo]
Sklici na zunanje povezave