tsp_individual_multi::DNA tsp_individual_multi::translateToDnaPhenotypicOrdinal(const DNA trait){ DNA ordinal; DNA tmp; for(int i=0;i<trait.size();i++){ tmp.push_back(i); } ordinal.resize(trait.size()); for(int i=0;i<trait.size();i++){ ordinal[i] = tmp[trait[i]]; tmp.erase(tmp.begin() + trait[i]); } return ordinal; }
tsp_individual_multi::DNA tsp_individual_multi::translateToDnaPhenotypicTrait(const DNA ordinal){ DNA trait; DNA tmp; for(int i=0;i<ordinal.size();i++){ tmp.push_back(i); } for(int i=0;i<ordinal.size();i++){ for(int j=0;j<tmp.size();j++){ if(ordinal[i] == tmp[j]){ trait.push_back(j); tmp.erase(tmp.begin() + j); break; } } } return trait; }