rabitzh 发表于 2006-5-30 19:45:04

分享我的协同优化的成果——HeartDiople和海沟问题

HeartDIople问题的迭代次数很多,得到的解也不是那么理想,可能是初始值的原因。
其中第一组数据解是:
Execution Results Summary

Start time: Mon May 29 21:15:25 WST 2006
End time: Mon May 29 22:25:56 WST 2006


Task: HeartDiopleCO
Total runs:      99
Feasible runs:   0
Infeasible runs: 99
Failed runs:   0
Database file:   HeartDiopleCO.db

Optimization Plan: NewPlan
    Executed between RunCounter 1 and 99 (99 runs)
   
    Techniques used:
      Step1: Sequential Quadratic Programming - DONLP
   
    Best design:            currently            previously
    --------------------------------------------------------------------
      RunCounter            73                     1                     
      ObjectiveAndPenalty   4495.16432085206       48369682.8357491      
      Objective             48.525598989361      2625.75               
      Penalty               4446.6387218627      48367057.0857491      
   
    Best design ObjectiveAndPenalty value improved by
    48365187.67 (99.99%) after executing this Optimization Plan
   
    Best design parameter values:
   
      z6   = 1.87059601535712
      z7   = -1.58602535552925
      z8   = -1.44375504429812
      z1   = 8.44674965102361
      z2   = -9.05310286535493
      z3   = -0.484396997889745
      z4   = 3.06553247208648
      z5   = 1.64978851836841
      J2   = 0.51435308963862    (violates UpperBound=0.01)
      J1   = 0.129861198798801   (violates UpperBound=0.01)
      f6   = 14.9323407457401
      f7   = 5.30202171054587
      minF = 48.525598989361   
      f8   = 30.332780060864   
      f5   = -2.04154352778901(violates LowerBound=0.0)
第二组为:
Execution Results Summary

Start time: Tue May 30 08:53:20 WST 2006
End time: Tue May 30 14:02:47 WST 2006


Task: HeartDiopleCO
Total runs:      505
Feasible runs:   0
Infeasible runs: 505
Failed runs:   0
Database file:   HeartDiopleCO.db

Optimization Plan: NewPlan
    Executed between RunCounter 1 and 505 (505 runs)
   
    Techniques used:
      Step1: Sequential Quadratic Programming - DONLP
   
    Best design:            currently            previously
    --------------------------------------------------------------------
      RunCounter            500                  1                     
      ObjectiveAndPenalty   55.0088823824952       98255722282.08         
      Objective             -0.0127854814708845    -7670.0               
      Penalty               55.0216678639661       98255729952.08         
   
    Best design ObjectiveAndPenalty value improved by
    9.825572223e+010 (100.0%) after executing this Optimization Plan
   
    Best design parameter values:
   
      z6   = 0.66769786750296
      z7   = -0.251870457677615
      z8   = 0.35181940505958
      z1   = 6.99997489586061
      z2   = -7.97891666262143
      z3   = 1.16246305596222
      z4   = 0.782198682612054
      z5   = 1.05256347680304
      J2   = 0.0145301822232409(violates UpperBound=0.01)
      J1   = 0.221339124462653   (violates UpperBound=0.01)
      f6   = 0.00587646539609032
      f7   = -0.0156707222170347 (violates LowerBound=0.0)
      minF = -0.0127854814708845
      f8   = 0.00656640317008339
      f5   = -0.00955762782002356 (violates LowerBound=0.0)
源程序为:
MDOLVersion: 8.0
CompilerOptions: warn

Task HeartDiopleCO

    TaskHeader HeartDiopleCO
      Version: 1.0
      Evaluation: taskplan
      ControlMode: user
      RunCounter: 1
      BoundsPolicy: adjustvalue
      CheckPoint: unknown
    End TaskHeader HeartDiopleCO

    Inputs HeartDiopleCO
      Parameter: z6 Type: real InitialValue: -10.0
      Parameter: z7 Type: real InitialValue: 2.0
      Parameter: z8 Type: real InitialValue: 3.0
      Parameter: z1 Type: real InitialValue: 8.0
      Parameter: z2 Type: real InitialValue: -8.0
      Parameter: z3 Type: real InitialValue: 1.0
      Parameter: z4 Type: real InitialValue: 5.0
      Parameter: z5 Type: real InitialValue: 4.0
    End Inputs HeartDiopleCO

    Outputs HeartDiopleCO
      Parameter: J2 Type: real
      Parameter: J1 Type: real
      Parameter: f6 Type: real
      Parameter: f7 Type: real
      Parameter: minF Type: real
      Parameter: f8 Type: real
      Parameter: f5 Type: real
    End Outputs HeartDiopleCO

    Calculations HeartDiopleCO
      Calculation Calculation5
            Parameters
                z6 z7 z8 z1 z2 z3 z4 z5 f6 f7
                minF f8 f5
            Statements
                f5 = z1*(z5^2-z7^2)-2*z3*z5*z7+z2*(z6^2-z8^2)-2*z4*z6*z8-5.0
               f6 = z3*(z5^2-z7^2)+2*z1*z5*z7+z4*(z6^2-z8^2)+2*z2*z6*z8+6.0
               
               f7=z1*z5*(z5^2-3*z7^2)+z3*z7*(z7^2-3*z5^2)+z2*z6*(z6^2-3*z8^2)+z4*z8*(z8^2-3*z6^2)-7
               f8=z3*z5*(z5^2-3*z7^2)-z1*z7*(z7^2-3*z5^2)+z4*z6*(z6^2-3*z8^2)-z2*z8*(z8^2-3*z6^2)+8
               
                minF=f5+f6+f7+f8
            End Statements
      End Calculation Calculation5
    End Calculations HeartDiopleCO

    Task output28

      TaskHeader output28
            Version: 1.0
            Evaluation: taskplan
            ControlMode: user
            RunCounter: 1
            BoundsPolicy: adjustvalue
            CheckPoint: unknown
      End TaskHeader output28

      Inputs output28
            Parameter: z6 Type: real InitialValue: 1.8705959911958
            Parameter: z7 Type: real InitialValue: -1.58718411550964
            Parameter: z8 Type: real InitialValue: -1.44375507956317
            Parameter: x1 Type: real InitialValue: 5.0
            Parameter: x3 Type: real InitialValue: 2.0
            Parameter: z1 Type: real InitialValue: 8.44674964678718
            Parameter: x4 Type: real InitialValue: 1.0
            Parameter: z2 Type: real InitialValue: -9.05310287720698
            Parameter: x5 Type: real InitialValue: -1.0
            Parameter: z3 Type: real InitialValue: -0.484397005726966
            Parameter: x6 Type: real InitialValue: 2.0
            Parameter: z4 Type: real InitialValue: 3.06553246855229
            Parameter: x7 Type: real InitialValue: -3.0
            Parameter: z5 Type: real InitialValue: 1.64978849482124
      End Inputs output28

      Outputs output28
            Parameter: x8 Type: real
            Parameter: J1 Type: real
            Parameter: x2 Type: real
      End Outputs output28

      Calculations output28
            Calculation Calculation3
                Parameters
                  z6 z7 z8 x1 x3 z1 x4 z2 x5 z3
                  x6 z4 x7 z5 x8 x2 J1
                Statements
                  x2 = -1-x1
                  x8=(x5*x1+x6*x2-x7*x3+3)/x4
                  
                  J1=(x1-z1)^2+(x2-z2)^2+(x3-z3)^2+(x4-z4)^2+(x5-z5)^2+(x6-z6)^2+(x7-z7)^2+(x8-z8)^2
                End Statements
            End Calculation Calculation3
      End Calculations output28

      TaskProcess output28
            Control: [
                Calculation3
            ]
      End TaskProcess output28

      Optimization output28
            PotentialVariables:
                z6 z7 z8 x1 x3 z1 x4 z2 x5 z3
                x6 z4 x7 z5
            Variables:
                x1 x3 x4 x5 x6 x7
            VariableScaling
                Parameter: z6 ScaleFactor: 1.0
                Parameter: z7 ScaleFactor: 1.0
                Parameter: z8 ScaleFactor: 1.0
                Parameter: x1 ScaleFactor: 10.0
                Parameter: x3 ScaleFactor: 10.0
                Parameter: z1 ScaleFactor: 1.0
                Parameter: x4 ScaleFactor: 10.0
                Parameter: z2 ScaleFactor: 1.0
                Parameter: x5 ScaleFactor: 10.0
                Parameter: z3 ScaleFactor: 1.0
                Parameter: x6 ScaleFactor: 10.0
                Parameter: z4 ScaleFactor: 1.0
                Parameter: x7 ScaleFactor: 10.0
                Parameter: z5 ScaleFactor: 1.0
            InputConstraints
                Parameter: x1 LowerBound: -100.0 UpperBound: 100.0
                Parameter: x3 LowerBound: -100.0 UpperBound: 100.0
                Parameter: x4 LowerBound: -100.0 UpperBound: 100.0
                Parameter: x5 LowerBound: -100.0 UpperBound: 100.0
                Parameter: x6 LowerBound: -100.0 UpperBound: 100.0
                Parameter: x7 LowerBound: -100.0 UpperBound: 100.0
            PotentialObjectives:
                z6 z7 z8 x1 x3 z1 x4 z2 x5 z3
                x6 z4 x7 z5 x8 J1 x2
            Objectives
                Parameter: J1 Direction: minimize Weight: 1.0 ScaleFactor: 1e-3
            OutputConstraints
                Parameter: x8 LowerBound: -100.0 Weight: 1.0 ScaleFactor: 1.0 UpperBound: 100.0 Weight: 1.0 ScaleFactor: 1.0
                Parameter: x2 LowerBound: -100.0 Weight: 1.0 ScaleFactor: 1.0 UpperBound: 100.0 Weight: 1.0 ScaleFactor: 1.0

            OptimizePlan NewPlan
                DefaultUpperBound: 1.0E15
                UseScaling: yes
                OptimizeStep Step1
                  Technique: "Generalized Reduced Gradient - LSGRG2"
                  Prologue
                        RestoreBestSolution: no
                        RerunTask: no
                  Epilogue
                        RestoreBestSolution: yes
                        RerunTask: no
                  Options
                        MaxIterations: 100
                OptimizeStep Step2
                  Technique: "Hooke-Jeeves Direct Search Method"
                  Prologue
                        RestoreBestSolution: no
                        RerunTask: no
                  Epilogue
                        RestoreBestSolution: yes
                        RerunTask: no
                  Options
                Control: [
                  Step1
                  Step2
                ]

            # PLAN TO BE CONFIGURED BY ADVISOR:
            OptimizePlan PriorityRankedPlan
                Control: [
                ]
      End Optimization output28

      TaskPlan output28
            StopTaskPlanOnError: no
            Control: [
                Tcl
                  api_UnsetBestRunInfo
                  api_SetRunCounter 1
                End Tcl
                NewPlan
            ]
      End TaskPlan output28

      DataStorage output28
            Restore: no
            DataLog: "output28.db" Mode: append
            DataLookUp: "output28.db"
            MatchMode: Exact
            Levels: betteronly
            StoreGradRuns: yes
            StoreApproxRuns: yes
      End DataStorage output28

    End Task output28


    Task output35

      TaskHeader output35
            Version: 1.0
            Evaluation: taskplan
            ControlMode: user
            RunCounter: 1
            BoundsPolicy: adjustvalue
            CheckPoint: unknown
      End TaskHeader output35

      Inputs output35
            Parameter: x8 Type: real InitialValue: 2.0
            Parameter: x4 Type: real InitialValue: 4.0
            Parameter: x1 Type: real InitialValue: -10.0
            Parameter: x6 Type: real InitialValue: 2.0
            Parameter: x2 Type: real InitialValue: -10.0
            Parameter: x7 Type: real InitialValue: -2.0
            Parameter: z6 Type: real InitialValue: 1.8705959911958
            Parameter: z7 Type: real InitialValue: -1.58718411550964
            Parameter: z8 Type: real InitialValue: -1.44375507956317
            Parameter: z1 Type: real InitialValue: 8.44674964678718
            Parameter: z2 Type: real InitialValue: -9.05310287720698
            Parameter: z3 Type: real InitialValue: -0.484397005726966
            Parameter: z4 Type: real InitialValue: 3.06553246855229
            Parameter: z5 Type: real InitialValue: 1.64978849482124
      End Inputs output35

      Outputs output35
            Parameter: x5 Type: real
            Parameter: x3 Type: real
            Parameter: J2 Type: real
      End Outputs output35

      Calculations output35
            Calculation Calculation4
                Parameters
                  z6 x8 z7 z8 x1 x2 z1 x4 z2 z3
                  x6 z4 z5 x7 J2 x5 x3
                Statements
                  x3 = 2-x4
                  x5=(-4-x1*x7-x2*x8-x4*x6)/x3
                  
                  J2=(x1-z1)^2+(x2-z2)^2+(x3-z3)^2+(x4-z4)^2+(x5-z5)^2+(x6-z6)^2+(x7-z7)^2+(x8-z8)^2
                End Statements
            End Calculation Calculation4
      End Calculations output35

      TaskProcess output35
            Control: [
                Calculation4
            ]
      End TaskProcess output35

      Optimization output35
            PotentialVariables:
                x8 x4 x1 x6 x2 x7 z6 z7 z8 z1
                z2 z3 z4 z5
            Variables:
                x8 x4 x1 x6 x2 x7
            VariableScaling
                Parameter: x8 ScaleFactor: 10.0
                Parameter: x4 ScaleFactor: 10.0
                Parameter: x1 ScaleFactor: 10.0
                Parameter: x6 ScaleFactor: 10.0
                Parameter: x2 ScaleFactor: 10.0
                Parameter: x7 ScaleFactor: 10.0
                Parameter: z6 ScaleFactor: 1.0
                Parameter: z7 ScaleFactor: 1.0
                Parameter: z8 ScaleFactor: 1.0
                Parameter: z1 ScaleFactor: 1.0
                Parameter: z2 ScaleFactor: 1.0
                Parameter: z3 ScaleFactor: 1.0
                Parameter: z4 ScaleFactor: 1.0
                Parameter: z5 ScaleFactor: 1.0
            InputConstraints
                Parameter: x8 LowerBound: -100.0 UpperBound: 100.0
                Parameter: x4 LowerBound: -100.0 UpperBound: 100.0
                Parameter: x1 LowerBound: -100.0 UpperBound: 100.0
                Parameter: x6 LowerBound: -100.0 UpperBound: 100.0
                Parameter: x2 LowerBound: -100.0 UpperBound: 100.0
                Parameter: x7 LowerBound: -100.0 UpperBound: 100.0
            PotentialObjectives:
                x8 x4 x1 x6 x2 x7 z6 z7 z8 z1
                z2 z3 z4 z5 x5 x3 J2
            Objectives
                Parameter: J2 Direction: minimize Weight: 1.0 ScaleFactor: 1e-3
            OutputConstraints
                Parameter: x5 LowerBound: -100.0 Weight: 1.0 ScaleFactor: 1.0 UpperBound: 100.0 Weight: 1.0 ScaleFactor: 1.0
                Parameter: x3 LowerBound: -100.0 Weight: 1.0 ScaleFactor: 1.0 UpperBound: 100.0 Weight: 1.0 ScaleFactor: 1.0

            OptimizePlan NewPlan
                DefaultUpperBound: 1.0E15
                UseScaling: yes
                OptimizeStep Step1
                  Technique: "Generalized Reduced Gradient - LSGRG2"
                  Prologue
                        RestoreBestSolution: no
                        RerunTask: no
                  Epilogue
                        RestoreBestSolution: yes
                        RerunTask: no
                  Options
                        MaxIterations: 100
                OptimizeStep Step2
                  Technique: "Hooke-Jeeves Direct Search Method"
                  Prologue
                        RestoreBestSolution: no
                        RerunTask: no
                  Epilogue
                        RestoreBestSolution: yes
                        RerunTask: no
                  Options
                Control: [
                  Step1
                  Step2
                ]

            # PLAN TO BE CONFIGURED BY ADVISOR:
            OptimizePlan PriorityRankedPlan
                Control: [
                ]
      End Optimization output35

      TaskPlan output35
            StopTaskPlanOnError: no
            Control: [
                Tcl
                  api_UnsetBestRunInfo
                  api_SetRunCounter 1
                End Tcl
                NewPlan
            ]
      End TaskPlan output35

      DataStorage output35
            Restore: no
            DataLog: "output35.db" Mode: append
            DataLookUp: "output35.db"
            MatchMode: Exact
            Levels: betteronly
            StoreGradRuns: yes
            StoreApproxRuns: yes
      End DataStorage output35

    End Task output35


    TaskProcess HeartDiopleCO
      Control: [
            Sequential [
                Parallel [ output28 output35 ]
                Calculation5
            ]
      ]

      SubTask output28
            InputToSubtask
                Send:
                  z1 z2 z3 z4 z5 z6 z7 z8
            OutputFromSubtask
                Receive:
                  J1
      End SubTask output28

      SubTask output35
            InputToSubtask
                Send:
                  z1 z2 z3 z4 z5 z6 z7 z8
            OutputFromSubtask
                Receive:
                  J2
      End SubTask output35

    End TaskProcess HeartDiopleCO

    Optimization HeartDiopleCO
      PotentialVariables:
            z6 z7 z8 z1 z2 z3 z4 z5
      Variables:
            z6 z7 z8 z1 z2 z3 z4 z5
      VariableScaling
            Parameter: z6 ScaleFactor: 10.0
            Parameter: z7 ScaleFactor: 10.0
            Parameter: z8 ScaleFactor: 10.0
            Parameter: z1 ScaleFactor: 10.0
            Parameter: z2 ScaleFactor: 10.0
            Parameter: z3 ScaleFactor: 10.0
            Parameter: z4 ScaleFactor: 10.0
            Parameter: z5 ScaleFactor: 10.0
      InputConstraints
            Parameter: z6 LowerBound: -100.0 UpperBound: 100.0
            Parameter: z7 LowerBound: -100.0 UpperBound: 100.0
            Parameter: z8 LowerBound: -100.0 UpperBound: 100.0
            Parameter: z1 LowerBound: -100.0 UpperBound: 100.0
            Parameter: z2 LowerBound: -100.0 UpperBound: 100.0
            Parameter: z3 LowerBound: -100.0 UpperBound: 100.0
            Parameter: z4 LowerBound: -100.0 UpperBound: 100.0
            Parameter: z5 LowerBound: -100.0 UpperBound: 100.0
      PotentialObjectives:
            z6 z7 z8 z1 z2 z3 z4 z5 J2 J1
            f6 f7 minF f8 f5
      Objectives
            Parameter: minF Direction: minimize Weight: 1.0 ScaleFactor: 1.0
      OutputConstraints
            Parameter: J2 UpperBound: 0.01 Weight: 1.0 ScaleFactor: 1.0
            Parameter: J1 UpperBound: 0.01 Weight: 1.0 ScaleFactor: 1.0
            Parameter: f6 LowerBound: 0.0 Weight: 1.0 ScaleFactor: 1.0
            Parameter: f7 LowerBound: 0.0 Weight: 1.0 ScaleFactor: 1.0
            Parameter: f8 LowerBound: 0.0 Weight: 1.0 ScaleFactor: 1.0
            Parameter: f5 LowerBound: 0.0 Weight: 1.0 ScaleFactor: 1.0

      OptimizePlan NewPlan
            DefaultUpperBound: 1.0E15
            UseScaling: yes
            OptimizeStep Step1
                Technique: "Sequential Quadratic Programming - DONLP"
                Prologue
                  RestoreBestSolution: no
                  RerunTask: no
                Epilogue
                  RestoreBestSolution: yes
                  RerunTask: no
                Options
                  Maxiter: 100
            Control: [
                Step1
            ]

      # PLAN TO BE CONFIGURED BY ADVISOR:
      OptimizePlan PriorityRankedPlan
            Control: [
            ]
    End Optimization HeartDiopleCO

    TaskPlan HeartDiopleCO
      StopTaskPlanOnError: no
      Control: [
            Tcl
                api_UnsetBestRunInfo
                api_SetRunCounter 1
            End Tcl
            NewPlan
      ]
    End TaskPlan HeartDiopleCO

    DataStorage HeartDiopleCO
      Restore: no
      DataLog: "HeartDiopleCO.db" Mode: append
      DataLookUp: "HeartDiopleCO.db"
      MatchMode: Exact
      Levels: all
      StoreGradRuns: yes
      StoreApproxRuns: yes
    End DataStorage HeartDiopleCO

End Task HeartDiopleCO

另海沟的例子(较为简单)
MDOLVersion: 8.0
CompilerOptions: warn

Task RosenbrockvalleyCO

    TaskHeader RosenbrockvalleyCO
      Version: 1.0
      Evaluation: taskplan
      ControlMode: user
      RunCounter: 1
      BoundsPolicy: adjustvalue
      CheckPoint: unknown
    End TaskHeader RosenbrockvalleyCO

    Inputs RosenbrockvalleyCO
      Parameter: z2 Type: real InitialValue: 0.0
      Parameter: z1 Type: real InitialValue: 0.0
    End Inputs RosenbrockvalleyCO

    Outputs RosenbrockvalleyCO
      Parameter: J1 Type: real
      Parameter: J2 Type: real
      Parameter: F Type: real
    End Outputs RosenbrockvalleyCO

    Task Outputy21

      TaskHeader Outputy21
            Version: 1.0
            Evaluation: taskplan
            ControlMode: user
            RunCounter: 1
            BoundsPolicy: adjustvalue
            CheckPoint: unknown
      End TaskHeader Outputy21

      Inputs Outputy21
            Parameter: z2 Type: real InitialValue: 0.0
            Parameter: x1 Type: real InitialValue: 0.0
            Parameter: x2 Type: real InitialValue: 0.0
            Parameter: z1 Type: real InitialValue: 0.0
      End Inputs Outputy21

      Outputs Outputy21
            Parameter: y21 Type: real
            Parameter: J1 Type: real
      End Outputs Outputy21

      Calculations Outputy21
            Calculation Calculation3
                Parameters
                  z2 x1 x2 z1 y21 J1
                Statements
                  y21=100*(x2-x1^2)^2
                  
                  J1=(x1-z1)^2+(y21-z2)^2
                End Statements
            End Calculation Calculation3
      End Calculations Outputy21

      TaskProcess Outputy21
            Control: [
                Calculation3
            ]
      End TaskProcess Outputy21

      Optimization Outputy21
            PotentialVariables:
                z2 x1 x2 z1
            Variables:
                x1 x2
            VariableScaling
                Parameter: z2 ScaleFactor: 1.0
                Parameter: x1 ScaleFactor: 1.0
                Parameter: x2 ScaleFactor: 1.0
                Parameter: z1 ScaleFactor: 1.0
            InputConstraints
                Parameter: x1 LowerBound: -10.0 UpperBound: 10.0
                Parameter: x2 LowerBound: -10.0 UpperBound: 10.0
            PotentialObjectives:
                z2 x1 x2 z1 y21 J1
            Objectives
                Parameter: J1 Direction: minimize Weight: 1.0 ScaleFactor: 1.0

            OptimizePlan NewPlan
                DefaultUpperBound: 1.0E15
                UseScaling: yes
                OptimizeStep Step1
                  Technique: "Generalized Reduced Gradient - LSGRG2"
                  Prologue
                        RestoreBestSolution: no
                        RerunTask: no
                  Epilogue
                        RestoreBestSolution: yes
                        RerunTask: no
                  Options
                        MaxIterations: 100
                        ConvergenceEpsilon: 1e-6
                Control: [
                  Step1
                ]

            # PLAN TO BE CONFIGURED BY ADVISOR:
            OptimizePlan PriorityRankedPlan
                Control: [
                ]
      End Optimization Outputy21

      TaskPlan Outputy21
            StopTaskPlanOnError: no
            Control: [
                Tcl
                  api_SetRunCounter 1
                  
                  api_UnsetBestRunInfo
                End Tcl
                NewPlan
            ]
      End TaskPlan Outputy21

      DataStorage Outputy21
            Restore: no
            DataLog: "Outputy21.db" Mode: append
            DataLookUp: "Outputy21.db"
            MatchMode: Exact
            Levels: betteronly
            StoreGradRuns: yes
            StoreApproxRuns: yes
      End DataStorage Outputy21

    End Task Outputy21


    Task OutputF

      TaskHeader OutputF
            Version: 1.0
            Evaluation: taskplan
            ControlMode: user
            RunCounter: 1
            BoundsPolicy: adjustvalue
            CheckPoint: unknown
      End TaskHeader OutputF

      Inputs OutputF
            Parameter: z2 Type: real InitialValue: 0.0
            Parameter: y21 Type: real InitialValue: 0.0
            Parameter: x1 Type: real InitialValue: 0.0
            Parameter: z1 Type: real InitialValue: 0.0
      End Inputs OutputF

      Outputs OutputF
            Parameter: J2 Type: real
            Parameter: F Type: real
      End Outputs OutputF

      Calculations OutputF
            Calculation Calculation4
                Parameters
                  z2 y21 x1 z1 J2 F
                Statements
                  F=y21+(1-x1)^2
                  
                  J2=(x1-z1)^2+(y21-z2)^2
                End Statements
            End Calculation Calculation4
      End Calculations OutputF

      TaskProcess OutputF
            Control: [
                Calculation4
            ]
      End TaskProcess OutputF

      Optimization OutputF
            PotentialVariables:
                z2 y21 x1 z1
            Variables:
                y21 x1
            VariableScaling
                Parameter: z2 ScaleFactor: 1.0
                Parameter: y21 ScaleFactor: 1.0
                Parameter: x1 ScaleFactor: 1.0
                Parameter: z1 ScaleFactor: 1.0
            InputConstraints
                Parameter: y21 LowerBound: 0.0
                Parameter: x1 LowerBound: -10.0 UpperBound: 10.0
            PotentialObjectives:
                z2 y21 x1 z1 J2 F
            Objectives
                Parameter: J2 Direction: minimize Weight: 1.0 ScaleFactor: 1.0

            OptimizePlan NewPlan
                DefaultUpperBound: 1.0E15
                UseScaling: yes
                OptimizeStep Step1
                  Technique: "Generalized Reduced Gradient - LSGRG2"
                  Prologue
                        RestoreBestSolution: no
                        RerunTask: no
                  Epilogue
                        RestoreBestSolution: yes
                        RerunTask: no
                  Options
                        MaxIterations: 100
                        ConvergenceEpsilon: 1e-6
                Control: [
                  Step1
                ]

            # PLAN TO BE CONFIGURED BY ADVISOR:
            OptimizePlan PriorityRankedPlan
                Control: [
                ]
      End Optimization OutputF

      TaskPlan OutputF
            StopTaskPlanOnError: no
            Control: [
                NewPlan
                Tcl
                  api_UnsetBestRunInfo
                  api_SetRunCounter 1
                End Tcl
            ]
      End TaskPlan OutputF

      DataStorage OutputF
            Restore: no
            DataLog: "OutputF.db" Mode: append
            DataLookUp: "OutputF.db"
            MatchMode: Exact
            Levels: betteronly
            StoreGradRuns: yes
            StoreApproxRuns: yes
      End DataStorage OutputF

    End Task OutputF


    TaskProcess RosenbrockvalleyCO
      Control: [
            Parallel [ Outputy21 OutputF ]
      ]

      SubTask Outputy21
            InputToSubtask
                Send:
                  z1 z2
            OutputFromSubtask
                Receive:
                  J1
      End SubTask Outputy21

      SubTask OutputF
            InputToSubtask
                Send:
                  z1 z2
            OutputFromSubtask
                Receive:
                  F J2
      End SubTask OutputF

    End TaskProcess RosenbrockvalleyCO

    Optimization RosenbrockvalleyCO
      PotentialVariables:
            z2 z1
      Variables:
            z2 z1
      VariableScaling
            Parameter: z2 ScaleFactor: 1.0
            Parameter: z1 ScaleFactor: 1.0
      InputConstraints
            Parameter: z2 LowerBound: 0.0
            Parameter: z1 LowerBound: -10.0 UpperBound: 10.0
      PotentialObjectives:
            z2 z1 J1 J2 F
      Objectives
            Parameter: F Direction: minimize Weight: 1.0 ScaleFactor: 1.0
      OutputConstraints
            Parameter: J1 UpperBound: 0.01 Weight: 1.0 ScaleFactor: 1.0
            Parameter: J2 UpperBound: 0.01 Weight: 1.0 ScaleFactor: 1.0

      OptimizePlan NewPlan
            DefaultUpperBound: 1.0E15
            UseScaling: yes
            OptimizeStep Step1
                Technique: "Sequential Quadratic Programming - DONLP"
                Prologue
                  RestoreBestSolution: no
                  RerunTask: no
                Epilogue
                  RestoreBestSolution: yes
                  RerunTask: no
                Options
                  Maxiter: 100
            Control: [
                Step1
            ]

      # PLAN TO BE CONFIGURED BY ADVISOR:
      OptimizePlan PriorityRankedPlan
            Control: [
            ]
    End Optimization RosenbrockvalleyCO

    TaskPlan RosenbrockvalleyCO
      StopTaskPlanOnError: no
      Control: [
            Tcl
                api_UnsetBestRunInfo
                api_SetRunCounter 1
            End Tcl
            NewPlan
      ]
    End TaskPlan RosenbrockvalleyCO

    DataStorage RosenbrockvalleyCO
      Restore: no
      DataLog: "RosenbrockvalleyCO.db" Mode: append
      DataLookUp: "RosenbrockvalleyCO.db"
      MatchMode: Exact
      Levels: all
      StoreGradRuns: yes
      StoreApproxRuns: yes
    End DataStorage RosenbrockvalleyCO

End Task RosenbrockvalleyCO
//
结果为:
End time: Mon May 29 19:22:44 WST 2006


Task: RosenbrockvalleyCO
Total runs:      7
Feasible runs:   7
Infeasible runs: 0
Failed runs:   0
Database file:   RosenbrockvalleyCO.db

Optimization Plan: NewPlan
    Executed between RunCounter 1 and 7 (7 runs)
   
    Techniques used:
      Step1: Sequential Quadratic Programming - DONLP
   
    Best design:            currently            previously
    --------------------------------------------------------------------
      RunCounter            5                      1                     
      ObjectiveAndPenalty   2.49999998050393e-0091.0                  
      Objective             2.49999998050393e-0091.0                  
      Penalty               0.0                  0.0                  
   
    Best design ObjectiveAndPenalty value improved by
    0.9999999975 (100.0%) after executing this Optimization Plan
   
    Best design parameter values:
   
      z2 = 1.00000000002676e-006
      z1 = 0.999950000000194
      J1 = 6.25766180395944e-008
      J2 = 1.00000000005352e-012
      F= 2.49999998050393e-009
第二组为;
Execution Results Summary

Start time: Mon May 29 19:25:55 WST 2006
End time: Mon May 29 19:26:29 WST 2006


Task: RosenbrockvalleyCO
Total runs:      7
Feasible runs:   7
Infeasible runs: 0
Failed runs:   0
Database file:   RosenbrockvalleyCO.db

Optimization Plan: NewPlan
    Executed between RunCounter 1 and 7 (7 runs)
   
    Techniques used:
      Step1: Sequential Quadratic Programming - DONLP
   
    Best design:            currently            previously
    --------------------------------------------------------------------
      RunCounter            5                      1                     
      ObjectiveAndPenalty   2.49999998050393e-0091.0                  
      Objective             2.49999998050393e-0091.0                  
      Penalty               0.0                  0.0                  
   
    Best design ObjectiveAndPenalty value improved by
    0.9999999975 (100.0%) after executing this Optimization Plan
   
    Best design parameter values:
   
      z2 = 1.00000000002676e-006
      z1 = 0.999950000000194
      J1 = 1.07944409357371e-007
      J2 = 1.00000000005352e-012
      F= 2.49999998050393e-009

strongsailor 发表于 2006-5-30 22:40:02

赞一个,楼主朋友费心了!

strongsailor 发表于 2006-5-31 09:03:03

CO优化的初衷就是减少计算量,但是通过上面的HeartDIople和其它我所做的其它CO例子来看,如何在isight中进行设置,以提高收敛效率.望大家能够多多提出意见.

rabitzh 发表于 2006-5-31 22:27:01

麻烦各同仁都研究研究HeartDiople

我看HeartDiople问题的结果数据就是感觉到其收敛的速度很慢,从系统迭代次数来看也是这样的,可能是SQP——DONLP高级参数设置方面有问题,我用的是默认的设置,各位同仁又研究过其参数影响的没有?
很急待高级参数设置研究结果。

fenfen8686 发表于 2006-11-20 08:27:00

页: [1]
查看完整版本: 分享我的协同优化的成果——HeartDiople和海沟问题