โปรแกรมเมอร์อัลกอริทึมทางพันธุกรรมได้รับฟังก์ชั่น

[Kory] ได้เขียนอัลกอริทึมทางพันธุกรรมมาสองสามเดือนแล้ว สิ่งนี้ในตัวมันเองไม่ใช่สิ่งที่ไม่ซ้ำใครหรือยอดเยี่ยมยกเว้นสิ่งที่เขาได้รับขั้นตอนวิธีทางพันธุกรรมเหล่านี้ที่จะทำ [Kory] ใช้อัลกอริทึมทางพันธุกรรมเพื่อเขียนโปรแกรมใน Brainfuck ใช่มันเป็นโปรแกรมคอมพิวเตอร์คอมพิวเตอร์ ขอขอบคุณ Skynet คือ 18 ปีที่ผ่านมา

เมื่อเราเห็นงานของ [Kory] ครั้งแรกเขาได้ตั้งโปรแกรมให้คอมพิวเตอร์เขียนและเรียกใช้โปรแกรมของตัวเองใน Brainfuck แม้ว่าชื่อของภาษา [Kory] Chose สามารถใช้งานได้ แต่จริงๆแล้วมันเป็นภาษาที่เหมาะสำหรับโปรแกรมที่สร้างจากคอมพิวเตอร์ มีเพียงแปดคำสั่งแต่ละรายการประกอบด้วยอักขระตัวเดียวมันช่วยลดค่าใช้จ่ายของอัลกอริทึมทางพันธุกรรมใด ๆ ที่ต้องผลิตและสิ่งที่ฟังก์ชั่นการออกกำลังกายจะต้องประเมิน

มีข้อบกพร่องอย่างหนึ่งของความพยายามเริ่มต้น [Kory]: ฟังก์ชั่น มันค่อนข้างง่ายที่จะได้รับโปรแกรมที่จะพูดว่าสวัสดีโลก แต่ทำสิ่งที่ซับซ้อนคุณจะต้องมีบางอย่างเช่นแมโครหรือฟังก์ชั่น Brainfuck มันเป็นรูปแบบที่ง่ายที่สุดไม่รองรับฟังก์ชั่น นี่เป็นการโยนประแจในแผน [Kory] เพื่อให้คอมพิวเตอร์การเขียนโปรแกรมคอมพิวเตอร์ของเขาเติบโตอย่างชาญฉลาดและได้รับมากกว่าขั้นต่ำในอัลกอริทึมทางพันธุกรรม

การแก้ปัญหานี้คือการสร้างภาษาถิ่นใหม่ของ Brainfuck [Kory] เรียก BrainPlus สิ่งนี้ใช้ชิ้นส่วนที่ดีที่สุดของ Brainfuck แบบขยายและเพิ่มคำสั่งที่โดยทั่วไปทำหน้าที่เป็นคำสั่ง Break

ด้วยสิ่งนี้คอมพิวเตอร์การเขียนโปรแกรมด้วยตนเอง [Kory] สามารถพัฒนาโปรแกรมที่ซับซ้อนมากขึ้น แล้วมันได้สร้างโปรแกรมที่จะสร้างตัวเลขสองสามตัวแรกของลำดับ Fibonacci มันจะสูงถึง 233 เนื่องจาก 255 คือค่าสูงสุดสำหรับไบต์และโปรแกรมนั้นใช้เวลาเจ็ดชั่วโมงในการสร้าง อย่างไรก็ตามมันทำงานได้ โปรแกรมอื่น ๆ ที่สร้างขึ้นด้วยฟังก์ชั่น BrainPlus ใหม่รวมถึงการท่อง 99 ขวดบนผนังและโปรแกรมที่ทวีคูณสองค่า

แม้ว่าคอมพิวเตอร์ [Kory] ใช้เวลานานในการสร้างโปรแกรมเหล่านี้ให้เวลาเพียงพอ แต่ไม่มีโปรแกรมนี้ไม่สามารถทำได้ Brainfuck และ Braineplus ของ [Kory] ของ [Kory] มีความสมบูรณ์ดังนั้นจึงได้รับความทรงจำที่ไม่มีที่สิ้นสุดและเวลาที่สามารถคำนวณอะไรได้ ด้วยการเพิ่มฟังก์ชั่นใหม่มันสามารถคำนวณอะไรได้เร็วขึ้น

รหัสทั้งหมดสำหรับ [Kyle] GA มีอยู่ใน GitHub

Author: found

Leave a Reply

Your email address will not be published. Required fields are marked *