Ты переизобрёл генетический алгоритм. Советую почитать учебные материалы по этой теме - в интернете их много.
Чтобы сравнить эффективность разных программ, необходимо, чтобы эти программы выполнялись достаточно долго. По сравнению с временем выполнения программы время её компиляции в байт-код будет пренебрежительно мало. Так что подобная оптимизация не имеет смысла.
Другие языки программирования и технологии
Как проще запрограммировать эволюцию программы?
1. Что будет из себя представлять программа зависит от того, что с ней будет дальше.
Например, если это какая-то небольшая программа, которая должна управлять устройством и размещаться в объеме 1КБ, то, скорее всего, ее нужно писать сразу в машинных кодах конкретного процессора.
Если это алгоритм, который планируется затем встроить в крупную систему, разрабатываемую на С++, то и код разумно делать на С++.
Если это учебная, исследовательская задача или предполагается, что код будет еще и людьми анализироваться или дорабатываться, то, возможно лучше выбрать то, что легче и удобнее читать и править. А может и вообще разработать свой вспомогательный язык для специальной задачи.
2. Я бы упростил себе задачу - по максимуму ограничил возможные "мутации" алгоритма. Т.е. чтобы код менялся не везде и не случайным образом, а там, где нельзя просто придумать что-то достаточно эффективное, чтобы сократить количество заведомо неработающих вариантов, чтобы изменение создавало только корректные алгоритмы. Короче, проводя аналогию с живой природой, чтобы миллионы лет эволюции со случайными мутациями, заменить на месяц работы методами генной инженерии.
3. Да, изучите, что придумано до вас. Там много чего, идея не нова ))
ps Простой вариант - параметризированный алгоритм, где "эволюционирует" не код, а только значения параметров.
Например, если это какая-то небольшая программа, которая должна управлять устройством и размещаться в объеме 1КБ, то, скорее всего, ее нужно писать сразу в машинных кодах конкретного процессора.
Если это алгоритм, который планируется затем встроить в крупную систему, разрабатываемую на С++, то и код разумно делать на С++.
Если это учебная, исследовательская задача или предполагается, что код будет еще и людьми анализироваться или дорабатываться, то, возможно лучше выбрать то, что легче и удобнее читать и править. А может и вообще разработать свой вспомогательный язык для специальной задачи.
2. Я бы упростил себе задачу - по максимуму ограничил возможные "мутации" алгоритма. Т.е. чтобы код менялся не везде и не случайным образом, а там, где нельзя просто придумать что-то достаточно эффективное, чтобы сократить количество заведомо неработающих вариантов, чтобы изменение создавало только корректные алгоритмы. Короче, проводя аналогию с живой природой, чтобы миллионы лет эволюции со случайными мутациями, заменить на месяц работы методами генной инженерии.
3. Да, изучите, что придумано до вас. Там много чего, идея не нова ))
ps Простой вариант - параметризированный алгоритм, где "эволюционирует" не код, а только значения параметров.
замись для начала с простого
Санжар Эргашев
так я и спрашиваю как проще
Похожие вопросы
- Как запрограммирована такая программа, как Paint?
- На каком языке программирования проще всего писать программы?
- подскажите простую в обращении программу типа windows movie maker и много что бы не весила не больше 700 МБ
- посаветуйте простую в обращении программу для обработки фотографий
- самая простая и лучшая программа для создания сайта? посоветуйти
- помогите написать простые программы на Qbasic
- На каком простом языке программирования можно создать такую программу?
- Как запрограммировать программу с таким условием?
- Простейшая программа/игра по qbasic
- простейшая программа которая будет выводить ответ функций умножения в C#
У таких программ обычно есть исходные данны. Что с чем сравнивать?