#c #genetic-algorithm
#c #genetic-algorithm
Вопрос:
Моя основная программа, я думаю, что все правильно, кто-нибудь может сказать мне, где моя ошибка, я никогда не получал 100% пригодности
я был разочарован этим, пожалуйста, ответьте мне, если вы знаете
void mutate(population *parent,int ratio){
for(unsigned int i=0; i<sizeof(parent[0].gen); i ){
int condition = (rand()%11);
int temp0 = (int)parent[0].gen[i];
int temp1 = (int)parent[1].gen[i];
if(condition < ratio){
if(temp0 10 <127 ){
parent[0].gen[i] = char(temp0 10);
//cout<<temp0<<endl;
}else{
temp0 = temp0 10 - 80;
parent[0].gen[i] = char(temp0);
// cout<<(int)parent[0].gen[i]<<endl;
}
if(temp1 10 <127 ){
parent[1].gen[i] = char(temp1 10);
//cout<<temp0<<endl;
}else{
temp1 = temp1 10 - 80;
parent[1].gen[i] = char(temp1);
}
}
}
это мой пример кода для мутации, полная программа на рисунке ниже
Комментарии:
1. Я думаю, вам нужно еще немного изучить нейронные сети и генетические алгоритмы. Получить 100%-ный показатель успеха невозможно.
2. Пожалуйста, расскажите подробнее, когда и почему, по вашему мнению, вы должны достичь 100%.
3. Ваш вопрос кажется интересным. К сожалению, скриншоты для нас бесполезны, и вам следует лучше описать ожидаемый результат и почему вы считаете, что должно быть достигнуто 100%, когда ваше условие цикла, похоже, рассчитано на остановку с более низким качеством.
Ответ №1:
Из вашего вопроса неясно, какую проблему вы решаете, но, скорее всего, это NP-полнота, другие типы могут быть решены гораздо эффективнее без машинного обучения. Но вы должны понимать, что точное решение проблемы NP-полноты требует исчерпывающего поиска всех возможных решений. Машинное обучение не может избежать этой проблемы, поэтому достижение 100% точности нет ничего проще, чем методы, основанные на brutfors. Цель машинного обучения и, в частности, генетических алгоритмов — найти приемлемое решение за приемлемое время.
Комментарии:
1. Добро пожаловать! Хотя ваше утверждение не является неправильным, оно вообще не отвечает на вопрос. Кстати, генетические алгоритмы не обязательно являются машинным обучением. Они часто больше связаны с оптимизацией, хотя их можно использовать для оптимизации обучения . Кроме того, они оказались очень эффективными для некоторых задач, в которых традиционные алгоритмы не могут справиться с комбинаторным взрывом.