Я в процессе кодирования просто Genetic Algorithm (GA). Есть, вероятно, бесчисленные области, где я излишне использовал цикл for. Я хотел бы получить несколько советов о том, как быть более эффективным MATLAB, а также отвечать на мой вопрос. Насколько я могу судить, я преуспел, но я не уверен. Область, которая определяет этот код является одноточечной crossoverКак я могу поменять часть строки на другую в массиве?
Вот что я пытался ...
crossPoints=randi([1 24],popSize/2,1);
for popNo=2:2:popSize
isolate=chromoParent(popNo-1:popNo,crossPoints(popNo/2,1)+1:end);
isolate([1 2],:)=isolate([2 1],:);
chromoParent(popNo-1:popNo,crossPoints(popNo/2,1)+1:end)=isolate;
end
chromoChild=chromoParent;
- где «» точками пересечения является точкой, в которой одна точке пересечения между двумя бинарными кодируется chromosomes.
- «popSize» является размер population, требует мой код, чтобы быть четным числом
- «изолят» определяет секции 2 строки, которые необходимы для быть выгружена друг с другом
- «chromoParent 'является начальная популяция, которая требуется, чтобы быть изменен одноточечного кроссовера
- „chromoChild“ является полученное население
- и „chromoParent“ и „chromoChild“ представлены массив размера, popSize х 25 двоичные символы
Вы можете обнаружить ошибку в том, как я думаю об этой проблеме? Каков наиболее эффективный способ (в вычислительном времени) достичь того же? Это помогло бы, если бы вы были как можно более широкими, чтобы я мог начать применять принципы, которые я изучаю здесь, для остальной части моего кода.
спасибо.
Не уверен, что вы подразумеваете под «вы должны сначала его профиль». Если это простая концепция, вы можете сообщить мне об этом? Или, если это более активно, возможно, вы могли бы указать мне хороший ресурс. Спасибо. –
@DeanKayton: Когда вы просматриваете код, вы измеряете время выполнения для каждой строки, что позволяет идентифицировать узкие места в вашем коде. [Вот ссылка на документацию к профилировщику Matlab] (http://www.mathworks.com/help/matlab/matlab_prog/profiling-for-improving-performance.html) – Jonas