Недавно я познакомился с генетическими алгоритмами в этой статье MSDN , в которой он называет их комбинаторной эволюцией, но, похоже, это одно и то же, и я пытаюсь понять, как объединение двух потенциальных решений всегда приведет к новому решению, которое по крайней мере хорошо, как его родители.
Почему это так? Конечно, объединение может привести к чему-то худшему.
Насколько я понимаю, алгоритм основан на концепции, согласно которой, когда мужские и женские особи какого-либо вида дают потомство, эти потомки будут иметь характеристики обоих родителей. Некоторые комбинации будут лучше, некоторые хуже, а некоторые так же хороши. Те, кто лучше (для любого определения «лучше» уместно), имеют больше шансов выжить и произвести потомство, которые имеют улучшенные характеристики. Тем не менее, будут комбинации, которые являются более слабыми. Почему это не проблема с GA?
Why isn't this an issue with GA?
Ну, это так, или, точнее, это может быть. Одним из многих (многих) параметров для оптимизации с использованием GA является размер популяции: если он слишком мал, вы можете производить только более слабых особей, но если он слишком высок, время вычислений, связанных с функцией пригодности, может быть слишком высоким.
However, there will be combinations that are weaker. Why isn't this an issue with GA?
- Потому что более слабые комбинации отбрасываются.