Exemplo n.º 1
0
IMParams BSO::decode(bitset<chromoLength> codes)
{
	int buffer[chromoLength];
	for(int i= 0;i<chromoLength;i++)
		buffer[i] = codes.at(i);

	int param1[]  = {0,0,0,0,0};
	int param2[]  = {0,0,0,0};
	int param3[]  = {0,0,0,0,0};
	int param4[]  = {0,0,0,0};
	int param5[]  = {0,0,0,0,0,0};
	int param6[]  = {0,0,0,0,0,0};
	int param7[]  = {0,0,0,0,0,0};
	int param8[]  = {0,0,0,0};
	int param9[]  = {0,0,0,0};
	int param10[] = {0,0,0,0};

	int offset = 0;
	for(int i=offset;i<offset+5; i++) {	param1[i-offset] = buffer[i]; }
	offset +=5;
	for(int i=offset;i<offset+4; i++) {	param2[i-offset] = buffer[i]; }
	offset +=4;
	for(int i=offset;i<offset+5; i++) {	param3[i-offset] = buffer[i]; }
	offset +=5;
	for(int i=offset;i<offset+4; i++){  param4[i-offset] = buffer[i]; }
	offset +=4;
	for(int i=offset;i<offset+6; i++){	param5[i-offset] = buffer[i]; }
	offset +=6;
	for(int i=offset;i<offset+6; i++){	param6[i-offset] = buffer[i]; }
	offset +=6;
	for(int i=offset;i<offset+6; i++){	param7[i-offset] = buffer[i]; }
	offset +=6;
	for(int i=offset;i<offset+4; i++){	param8[i-offset] = buffer[i]; }
	offset +=4;
	for(int i=offset;i<offset+4; i++){	param9[i-offset] = buffer[i]; }
	offset +=4;
	for(int i=offset;i<offset+4; i++){	param10[i-offset] = buffer[i]; }

	currentParams.TankValue     = decode(param1, 5);
	currentParams.TankRadius    = decode(param2, 4);
	currentParams.MarineValue   = decode(param3, 5);
	currentParams.MarineRadius  = decode(param4, 4);

	currentParams.A = decode(param5, 6);
	currentParams.B = decode(param6, 6);
	currentParams.C = decode(param7, 6);

	currentParams.l = decode(param8, 4);
	currentParams.m = decode(param9, 4);
	currentParams.n = decode(param10, 4);
	

	return currentParams;
}