Az elméleti számítógép-tudomány , egy L-rendszer vagy Lindenmayer rendszer egy formális újraírása vagy nyelvtani rendszer , feltalálta 1968-ban a magyar biológus Aristid Lindenmayer . Az L-rendszer modellezi a növények vagy baktériumok fejlődésének és szaporodásának folyamatát .
Ez a generatív nyelvtan egyik formája. Ezeket a nyelvtanokat számos szerző grafikusan implementálta, ami látványos képeket eredményezett. Egy bizonyos készítmény szisztematikus tanulmányozását Przemysław Prusinkiewicz (en) végezte el az 1980-as években. Matematikai tanulmány, amely azonnal elkezdődött, amint Lindenmayer bevezette a rendszereket, egy kidolgozott elmélethez vezetett, amelynek első szintézise már 1980-ban megtörtént. , Rozenberg és Salomaa.
Kezdetben Lindenmayer formalizálását a formális nyelvek modelljeként fogja fel, amely lehetővé teszi az egyszerű többsejtű organizmusok fejlődésének leírását. Ebben az időben élesztőkön , gombákon és algákon dolgozott . De a számítástechnika elméletei és gyakorlói hatására ez a rendszer hivatalos nyelvcsaládokhoz vezetett, és olyan módszerekhez is vezetett, amelyek grafikusan generálják az igen összetett idealizált növényeket.
Formálisan az L-rendszer olyan szabályok és szimbólumok összessége, amelyek az élőlények, például a növények vagy a sejtek növekedési folyamatát modellezik. Az L-rendszerek központi fogalma az átírás fogalma . Az átírás az összetett objektumok felépítésének technikája egy egyszerű kezdeti objektum egyes részeinek átírási szabályok használatával.
Biológiai értelmezésben a sejteket szimbólumok segítségével modellezik. Minden generációval a sejtek osztódnak, amelyet egy szimbólum egy vagy több egymást követő szimbólumra cserélésének művelete modellez.
Az L-rendszer egy átírási rendszer, amely a következőket tartalmazza:
L-rendszert jegyeznek fel . A formális nyelvtannal való különbség a szabályok alkalmazásában rejlik: egy L-rendszerben minden lépésnél az összes változó helyettesítve van, míg egy nyelvtanban csak egy változó cserélődik ki.
Itt van a "Lindenmayer alga", Aristid Lindenmayer L-rendszere, amelyet az algák fejlődésének leírására használtak:
Rövidített jelölés: Algue { Axiom A ; A=AB, B=A}
A hasonló egyenletet úgy A=ABkell érteni, hogy az A bármelyik szimbólum AB "szó" lesz a következő generációban.
Íme az eredmény hat generáción keresztül:
Ha minden egyes iterációnál megszámoljuk a szimbólumok számát, akkor megkapjuk a Fibonacci szekvenciát , az első két tag kivételével .
A kapott karakterlánc grafikusan értelmezhető, két vagy három dimenzióban. Két dimenzióban azt képzeljük, hogy egy kéz egy ceruzát tart, amely az utasítások szerint mozog a lapon: "menjen fel egy rovattal, majd forduljon 20 ° -kal balra, mozogjon kétszer egy fokkal, jegyezze meg a helyzetét, és lépjen tovább egy lépéssel, kelj fel, majd pihenj a memorizált pozíción ”és így tovább ... Ezért bevezetjük a guide V vagy állandó ∈ S variáns szimbólumokat a kéz irányításához. Közülük többen szabványosítottak, részei annak, amit angolul " Turtle interpretációnak " neveznek . Ez a név a Logo programozási nyelv "teknőséből" származik, amely ugyanazon az elven működik. Valójában ez a teknős az a kéz, amelyik a ceruzát tartja. A leggyakrabban használt jelek:
Pontosabban: az V-hez tartozó szimbólumok egy növény részei, például egy ág vagy csak egy ág egy része. Az S-hez tartozó szimbólumok olyan rendek, amelyeket a növényt megrajzoló virtuális kezünknek adunk, ezek segítségével meghatározzuk az irányt, míg a V szimbólumok ebben az irányban rajzolnak.
Megjegyzés: az utolsó két szimbólum felidézi az OpenGl pushMatrix () és popMatrix () függvényeit , így sejthetjük, hogy ez egy grafikus környezet, amely nagyon jól alkalmazza magát az L-rendszernek. Ezenkívül a mutatókkal történő objektum-orientált programozás, például a C ++ nyelvben , jelennek tűnik a fejlődő "sejtlánc" modellezéséhez.
Courbe_de_Koch
{
angle 90
axiom F
F=F+F−F−F+F
}
angle 90meghatározza, hogy 90 ° -ot fordulunk a + és - szimbólumokkal.
Íme az eredmény három generáción keresztül:
FF + FF-F + FF + FF-F + F + F + FF-F + F - F + FF-F + F - F + FF-F + F + F + FF-F + FF + FF-F + F + F + FF-F + F-F + FF-F + F-F + FF-F + F + F + FF-F + F + F + FF-F + F + F + FF-F + F-F + FF-F + F-F + FF-F + F + F + FF-F + F - F + FF-F + F + F + FF-F + F-F + FF-F + F-F + FF-F + F + F + FF-F + F - F + FF-F + F + F + FF-F + F-F + FF-F + F-F + FF-F + F + F + FF-F + F + F + FF-F + F + F + FF-F + F-F + FF-F + F-F + FF-F + F + F + FF-F + FEzt a "teknősértelmezést" három dimenzióban lehet kiaknázni Harold Abeson és Andrea diSessa ötleteinek köszönhetően a "Teknős geometria: a számítógép mint a matematika feltárásának közegében" közös munkájuknak. A teknőshöz kapcsolódó három vektor lehetővé teszi a következő tájolásváltozás megadását:
, , Ilyen például a (vektor termék)
Ezután a teknős forgását megjegyezzük:
ahol R jelentése 3 × 3 mátrix .
Az α szög elfordulása a tengelyek körül , vagy a mátrixok képviselik őket:
A szimbólumok most a következő jelentést kapják:
A "D" rövidítés a "determinisztikus" és a "0" a "kontextustól független" rövidítéseket használja a rendszer egy adott kategóriájának kijelölésére. Egy rendszer akkor determinista, ha minden generációban csak egy lehetséges evolúciót kínál az axiómából. Egy ok következményt generál, amelynek eredményeként: egy változó csak egyfajta átalakításon megy keresztül, mindig azonos, ezért változónként csak egy szabály. Ez a fejlődés ráadásul független a kontextustól. Az első példa egy D0L-rendszer, ez az L-rendszer legegyszerűbb formája.
Szimbolikus jelölés: Plante { angle 20 axiom X ; X=F[+X]F[−X]+X; F=FF }
angle 20határozza meg, melyik szöget fordítsa a + és - szimbólumokkal. Íme két generáció eredménye:
Egy ilyen rendszer valószínűségeket használ. A D0L-rendszertől eltérően a szimbólum többféle átalakítása között is lehet választani. Minden választást egy bizonyos valószínűség súlyoz.
Az X → F [++ X] F [−X] + X és X → F [+ X] F [−X] + X szabályokat 0,2, illetve 0,8 valószínűséggel alkalmazzuk.
Itt van egy lehetséges eredmény két generáción keresztül:
Itt van egy másik lehetséges eredmény két generáció során:
Két generáció alatt 2² = 4 lehetséges lehetőség áll rendelkezésre, különböző valószínűségekkel.
A két előző rendszer (0L-rendszerek) nem tudja szimulálni a növény egyes részeinek kölcsönhatásának hatását, mert ezek nem kontextuálisak ( angolul : kontextus-mentesek ), azaz mindegyik rész a többi résztől függetlenül fejlődik. Az L-rendszerű környezetérzékeny (angolul " context-sensitive " ) figyelembe veszi azt, ami megelőzi vagy követi a helyettesítendő szimbólumot. Az ilyen rendszert IL-rendszernek vagy másképpen ( k , l ) rendszernek is nevezik , amikor a bal oldali kontextus egy k hosszúságú szó, a jobb oldalon pedig egy l hosszúságú szó . Amikor a kontextus kedvező, a helyettesítést a szabály szerint hajtják végre, különben nincs helyettesítés. Íme két példa:
Ez az L-rendszer egy akropetális jel terjedését szimulálja olyan ágágakban, amelyek nem fejlődnek ki.
A szabály <szimbólumát a következőképpen értelmezzük: ha az A szimbólumot megelőzi egy B szimbólum, akkor ez az A B-vel válik a következő generációban, különben változatlan marad. Ebben az értékelésben az állandókat figyelmen kívül hagyják.
Itt van a jel terjedése három generáción keresztül; a + és - jeleket figyelmen kívül hagyják a szabályok figyelembevételével:
Látjuk, hogy az egyes ágakat fokozatosan éri el az akropetális jel, amely lehetővé teszi a legmagasabb virágok kinyílását. Minden generációban két új elágazás fogadja a jelet, valójában, mivel mentjük a pozíciót, felhívjuk az A-t, majd visszaállítjuk a pozíciót és újrarajzolunk egy A-t, ez azt jelenti, hogy ennek a két A-nak ugyanaz az alapja, tehát ugyanaz az elágazás előzi meg mindkettőt.
Ez az L-rendszer szimulálja a basipete jel terjedését olyan ágágakban, amelyek nem fejlődnek ki.
A olyan ág, amely még nem kapta meg a jelet, és B olyan ág, amely megkapta. A szabályt a következőképpen értjük: ha az A szimbólumot B szimbólum követi, akkor ez az A B-vel válik a következő generációban.
Itt van a jel terjedése három generáción keresztül, tudva, hogy a + és - jeleket figyelmen kívül hagyják a szabályok figyelembevételével:
Látható, hogy az egyes ágakat fokozatosan éri el a basipete jel, amely lehetővé teszi, hogy a virágzatú virágok esernyőben vagy fejben centrifugális módon virágozzanak.
A (B <A <B → B) forma szabályának lehetséges megírása azt jelenti, hogy ha az A elágazást B elágazások veszik körül, akkor a következő generációban B elágazattá válik. Több szabály megírása is lehetséges, több helyzetre is.