Pittsburgh approach, how does encoding and fitness function work?
So both the Pittsburgh and Michigan approaches are techniques for applying evolutionary methods to learning (essentially) a set of "if/then" rules for performing some task effectively. The important bit is the "set" there in "set of rules". You need to learn multiple rules that can each fire in different situations in order to cover the entire space of behaviors the algorithm needs to learn. Where the Pittsburgh and Michigan approaches differ is in how you arrive at that set of rules.

They're both GAs under the hood, so there's a population of things. In the Pittsburgh approach, those "things" are complete candidate solutions to the problem. A single individual in a Pittsburgh algorithm might contain many rules. A single individual in a Michigan approach contains only one rule. In order to form a viable actual algorithm for solving the problem, the Michigan approach needs to take the entire population and hope that each of those individuals with their individual rules combine together in a way to cover the problem space well.

Under the hood though, as I said, they're basically just GAs. So you can do recombination and mutation however you like. You can handle floating point genes the same way you'd handle them in any other GA -- perhaps by using variation operators that natively work on floats or by encoding the values as binary yourself. Fitness in Pittsburgh systems can be reasonably straightforward. Every individual is intended as a complete solution, so you just run your simulation and calculate how well that individual's rule set solves the problem. The answer is that individual's fitness. For Michigan approaches, it's harder, because there's a credit assignment problem. One individual encodes one rule, and that rule may be perfect for its niche, but if the rest of the population is terrible, performance will be poor. 

Another problem is that the structure inherent in classifier systems like this means that typical genetic operators won't necessarily work that well. You can use them, but tweaks to the ideas can perform quite a bit better. The Learning Classifier Systems community has done quite a bit of work figuring this stuff out. My general advice would be to start by looking at Stewart Wilson's XCS algorithm.

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.363.2210&amp;rep=rep1&amp;type=pdf

http://opim.wharton.upenn.edu/~sok/papers/b/XCSAlgDesc01202001.ps