Целью моей функции является использование 1-точечной функции кроссовера между двумя векторами, чтобы получить новый гибридный вектор «Сын», имеющий некоторый элемент из первого вектора, а второй - второй.Функция кроссовера двух векторных ошибок
public Vector crossover(int Sol1,int Sol2){
int size;
Vector sol1 = new Vector();
Vector sol2 = new Vector();
sol1 = (Vector) allpop.get(Sol1);
sol2 = (Vector) allpop.get(Sol2);
int crosspoint = (int) sol1.size()/2 ;
Vector son = new Vector();
son= (Vector) sol1.clone() ;
if (sol1.size() < sol2.size())
size = sol1.size();
else size = sol2.size();
for(int j=(crosspoint-1);j<size;j++)
son.set(j,sol2.get(j));
return son;
}
иногда это работает хорошо, и иногда это дает мне ошибку «java.lang.ArrayIndexOutOfBoundsException» .. Некоторые идеи?
Можете ли вы дать нам exemples из действительные и недопустимые входы? – Julien