      
      - SeeAlso: "Essentials of Metaheuristics", Sean Luke, Seite 42
      */
-    public func lineRecombination(parentA parentA: [Float], parentB: [Float]) -> (childA: [Float], childB: [Float]) {
+    public func lineRecombination(parentA parentA: [Float], parentB: [Float]) -> (childA: [AnyObject], childB: [AnyObject]) {
         var childA = parentA
         var childB = parentB
         

     - Returns: Zwei Kinder als Tupel, die durch Vertauschung von Werten der beiden Eltern entstanden sind.
     */
    public func crossover(parentA parentA: [AnyObject], parentB: [AnyObject]) -> (childA: [AnyObject], childB: [AnyObject]) {
        switch self.crossover {
            case .onePointCrossover:                return onePointCrossover(parentA: parentA, parentB: parentB)
            case .twoPointCrossover:                return twoPointCrossover(parentA: parentA, parentB: parentB)
            case .uniformCrossover:                 return uniformCrossover(parentA: parentA, parentB: parentB)
            case .uniformCrossoverAmongKVektors:    return onePointCrossover(parentA: parentA, parentB: parentB) //return uniformCrossoverAmongKVectors(parents: [parentA, parentB])
            case .lineRecombination:                return onePointCrossover(parentA: parentA, parentB: parentB) //return lineRecombination(parentA: parentA, parentB: parentB)
            case .intermediateRecombination:        return onePointCrossover(parentA: parentA, parentB: parentB) //return intermediateRecombination(parentA: parentA, parentB: parentB)
        }
    }
    

            }
        }
        
        return (childA as [AnyObject], childB as [AnyObject])
    }
    
    /**
