L-sistem dan apa yang mereka biarkan sendiri

Mari kita mulai dengan dasar-dasarnya, jika kita mengambil definisi dari Wikipedia yang terkenal dan dicintai, maka sistem-L (atau sistem Lindenmeier ) adalah sistem penulisan ulang paralel dan bentuk tata bahasa formal.





Secara sederhana, sistem-L terdiri dari alfabet karakter yang dapat digunakan untuk membuat string, sekumpulan aturan generatif yang menentukan aturan substitusi untuk setiap karakter, string awal ( "aksioma" ), yang dengannya konstruksi dimulai, dan mekanisme penerjemahan yang dibentuk oleh garis menjadi struktur geometris. Contoh paling sederhana dari sistem-L adalah masalah konstruksi pohon.





Memasukan data:





String ( selanjutnya disebut Aksioma ): AB





Variabel ( yang dapat kita gunakan dalam membangun pohon ): ABC





Aturan ( aturan di mana setiap variabel di baris berikutnya berubah ):





  • A -> AB





  • B -> AC





  • C -> A





Transformasi berikut diperoleh:                                        





Generasi





kondisi





satu





AB





2





AB AC





3





AB AC AB A





4





AB AC AB A AB AC AB





lima





AB AC AB A AB AC AB AB AC AB A AB AC





6





dll…





Arah utama sistem-L digunakan adalah memodelkan proses pertumbuhan organisme hidup dan benda mati (kristal, cangkang moluska atau sarang lebah) .





Contoh:





Untuk mensimulasikan proses seperti itu, kita akan menggunakan bahasa pemrograman seperti Python, yang memiliki pustaka "penyu" bawaan .





Jadi mari kita mulai:





  1. Di sini kami mengimpor perpustakaan Turtle ke dalam proyek kami:





    import turtle







  2. Selanjutnya, kami menyertakan semua konfigurasi yang diperlukan untuk turtle kami :





    turtle.hideturtle()







    turtle.tracer(1)







    turtle.penup()







    turtle.setposition(-300,340)







    turtle.pendown()







    turtle.pensize(1)







  3. , :





    axiom = "F+F+F+F"







    tempAx = ""







    itr = 3







    (itr- , )





  4. , itr-, "" /:





    for k in range(itr):







    for ch in axiom:







    if ch == "+":







    tempAx = tempAx + "+"







    elif ch == "-":







    tempAx = tempAx + "-"







    elif ch == "F": #F







    tempAx = tempAx + "F+F-f-F+F"







    else:







    tempAx = tempAx + "f"







    axiom = tempAx







    tempAx = " "







    print(axiom)







    , "+":





    if ch == "+":







    tempAx = tempAx + "+"







    ( ) β€œ+” β€œ+” . β€œ-” β€œf”, β€œ-” β€œf” . β€œF”, β€œF + F – f – F + F”, . , β€œβ€, . :





    axiom = tempAx







    tempAx = " "







    ( ):





  5. , , . , :





    for ch in axiom:







    if ch == "+":







    turtle.right(45)







    turtle.forward(10)







    turtle.right(45)







    elif ch == "-":







    turtle.left(45)







    turtle.forward(10)







    turtle.left(45)







    else:







    turtle.forward(20)







    , , "+", "-", "F" "f". , "+":





    if ch == "+":







    turtle.right(45)







    turtle.forward(10)







    turtle.right(45)







    , 45 , , 10, , 45 . "-":





    elif ch == "-":







    turtle.left(45)







    turtle.forward(10)







    turtle.left(45)







    , "+", , . "F" "f", 20 :





    else:







    turtle.forward(20)







    -:





  6. -, :





    turtle.fillcolor("#99BBFF")







    turtle.begin_fill()







    #99BBFF - (RGB: 153, 187, 255), begin_fill() . , , :





    turtle.end_fill()







    turtle.update()







    turtle.done()







    end_fill() . "". -:





, "" , .





Pada akhirnya saya juga ingin menambahkan bahwa saya sangat menikmati bekerja dan menulis tentang topik ini, mungkin kedepannya saya akan menulis beberapa artikel dengan topik "L-sistem", namun sementara itu, saya ingin mempersembahkan hasil kreativitas saya yang mencolek :












All Articles