/// <summary>
 /// Der Konstruktor, dem eine KleinerAlsOperation übergeben wird.
 /// <remarks>
 /// Der rechte Oparator enthält die komplette Zielfunktion, aber es muss eine Maximum-Funktion sein, z.B. max(x1+x2).
 /// Der linke Operator muss vom Typ ObjCritOperator sein, und darf keine Schranke enthalten.
 /// </remarks>
 /// </summary>
 /// <param name="op">Die KleinerAlsOperation</param>
 public OptimizationConstraint(LessThan op) : base(op)
 {
     _name = "objFunction";
     // Prüfen, ob es sich wirklich um eine gültige Operation handelt
     if (op == null)
     {
         throw new Exception("null pointer");
     }
     IOperation[] opList = op.GetOperatorList();
     // Schauen, ob linker Operator vom Typ ObjCritOperator ist
     if (opList[0].GetType() != typeof(ObjCritOperator))
     {
         throw new Exception("left operator has to be a ObjCritOperator");
     }
     _objCritOp         = (ObjCritOperator)opList[0];
     _objectiveFunction = opList[1];
 }