https://github.com/gsurma/meta_intelligence
关于
鉴于一种深奥的,简约的,虽然图灵完整的编程语言Brainfuck,目标是人工生成执行特定任务的程序。
Brainfuck只有8个指令,使得它很容易为计算机阅读(检查python解释器brainfuck_interpreter.py),但另一方面,很难理解人类,因此这个名称。
">" Increment the pointer.
"<" Decrement the pointer.
"+" Increment the byte at the pointer.
"-" Decrement the byte at the pointer.
"." Output the byte at the pointer.
"[" Jump forward past the matching ] if the byte at the pointer is zero.
"]"] Jump backward to the matching [ unless the byte at the pointer is zero.
"," Input a byte and store it in the byte at the pointer.
遗传进化
目标是生成一个输出给定目标字符串的brainfuck程序。目标字符串'HI'的示例用法:
python3 genetic_evolution_meta_programmer.py 'HI'
超参数
POPULATION = 100
MUTATION_RATE = 0.115
MAX_MUTATION_ATTEMPTS = 500
SELECTION_RATE = 0.9
PROGRAM_LENGTH_LOWER_BOUND = 10
PROGRAM_LENGTH_UPPER_BOUND = 100
结果
FOUND SOLUTION: +++++++++++++++++++++++++++++++++. for: '!' in: 5 minutes
FOUND SOLUTION: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+. for: 'HI' in: 27 minutes
FOUND SOLUTION: +++++-+++[>+++++++<-]>-+.+.+. for: '123' in: 20 minutes