[Tutor] Encoding and Decoding

Carlos carloslara at web.de
Tue Jan 2 19:37:27 CET 2007


Hello,

I have been having problems to solve a situation in which I need to 
encode and decode information, hope that someone can give me a hand. The 
solution for this problem has gone thru many iterations, but I recently 
found that the long (for me) is the only one.

As you might remember Im working with some elements, for example:

ELEMENTS = [{'Name': 'Access', 'Parent': 'Plot', 'Level': 1.0, 'Height': 
3.0, 'Width': 3.0, 'Depth': 3.0},
                            {'Name': 'Circulation_01', 'Parent': 
'Access', 'Level': 1.0, 'Height': 3.0, 'Width': 3.0, 'Depth': 3.0},
                            {'Name': 'Circulation_02', 'Parent': 
'Access', 'Level': 2.0, 'Height': 3.0, 'Width': 3.0, 'Depth': 3.0},
                            {'Name': 'Circulation_03', 'Parent': 
'Access', 'Level': 3.0, 'Height': 3.0, 'Width': 3.0, 'Depth': 3.0},
                            {'Name': 'Int_Circ_01', 'Parent': 
'Circulation_01', 'Level': 1.0, 'Height': 3.0, 'Width': 3.0, 'Depth': 3.0},
                            {'Name': 'Int_Circ_02', 'Parent': 
'Circulation_01', 'Level': 1.0, 'Height': 3.0, 'Width': 3.0, 'Depth': 3.0},
                            {'Name': 'Int_Circ_03', 'Parent': 
'Circulation_02', 'Level': 2.0, 'Height': 3.0, 'Width': 3.0, 'Depth': 3.0},
                            {'Name': 'Int_Circ_04', 'Parent': 
'Circulation_02', 'Level': 2.0, 'Height': 3.0, 'Width': 3.0, 'Depth': 3.0},
                            {'Name': 'Int_Circ_05', 'Parent': 
'Circulation_03', 'Level': 3.0, 'Height': 3.0, 'Width': 3.0, 'Depth': 3.0},
                            {'Name': 'Int_Circ_06', 'Parent': 
'Circulation_03', 'Level': 3.0, 'Height': 3.0, 'Width': 3.0, 'Depth': 3.0}
                         ]

The genetic algorithm that Im using (GA) generates solutions for a given 
problem, expressed in a list, this list is composed by integers. Every 
element in the list takes 8 integers, is a little messy but this is because

List [0] = Tens X position
List [1] = Units X position
List [2] = Decimals X position
List [3] = If < than 5 the number is negative, else is positive

Then if the result is List = [6, 1, 2, 3] the X position equals -612.3. 
This is the same for the Y position. If there are 10 elements the list 
is going to be 80 integers long and if there are 100 elements, well you 
get a very long list...

With this in mind my question would be, how can I keep track of this 
information? I mean how can I assign this List positions to each 
element? This is needed because this is going to be a long list and the 
GA needs to evaluate the position of each element with respect to the 
position of the other elements. So it needs to know that certain numbers 
are related to certain element and it needs to have access to the size, 
level, name and parent information... I hope that this is clear enough.

Thanks in advance,
Carlos








More information about the Tutor mailing list