こんにちは,pyomo を使用して DAE モデルを構築し、ipopt で解決します。
しかし、私はこれらの問題を発見しました。
モデルは許容レベルまで解決できますが、nfe の数または有限要素の長さを変更すると、解決できず、「小さな主実行不可能性を持つ点に復元フェーズが収束しました」というメッセージが表示されます。
変数の初期値が原因である可能性があります。そのため、ソルバーからモデルの結果を取得し、それを新しいイニシャルとしてモデルに渡そうとしましたが、失敗しました。
簡単な例(car_example)で取得したところ、イテレーションが減りました。
では、なぜ大規模なモデルで失敗するのでしょうか?</p>
どうもありがとうございます
D:\python\python.exe E:/Yan/4Keyan/1HTRmodel/PYOMO/H_sml1114/HTR_run.py
Ipopt 3.8.1: linear_solver=ma57
max_iter=100
******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear optimization.
Ipopt is released as open source code under the Common Public License (CPL).
For more information visit http://projects.coin-or.org/Ipopt
******************************************************************************
NOTE: You are using Ipopt by default with the MUMPS linear solver.
Other linear solvers might be more efficient (see Ipopt documentation).
This is Ipopt version 3.8.1, running with linear solver ma57.
Number of nonzeros in equality constraint Jacobian...: 103614
Number of nonzeros in inequality constraint Jacobian.: 120
Number of nonzeros in Lagrangian Hessian.............: 57810
Total number of variables............................: 31800
variables with only lower bounds: 5100
variables with lower and upper bounds: 23400
variables with only upper bounds: 0
Total number of equality constraints.................: 31800
Total number of inequality constraints...............: 62
inequality constraints with only lower bounds: 62
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 0
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 1.0000000e+000 1.49e+004 1.00e+000 -1.0 0.00e+000 - 0.00e+000 0.00e+000 0
1 1.0000000e+000 1.06e+003 6.25e+011 -1.0 8.68e+006 - 6.86e-005 9.92e-001f 1
2 1.0000000e+000 1.05e+003 6.23e+011 -1.0 1.12e+008 - 1.57e-002 3.17e-003h 5
3 1.0000000e+000 1.05e+003 6.21e+011 -1.0 9.69e+007 - 2.01e-002 3.70e-003h 5
4 1.0000000e+000 1.06e+003 6.16e+011 -1.0 8.31e+007 - 3.05e-002 8.25e-003h 4
5 1.0000000e+000 1.06e+003 6.10e+011 -1.0 6.08e+007 - 3.85e-002 9.55e-003h 4
6 1.0000000e+000 1.06e+003 5.97e+011 -1.0 4.46e+007 - 5.25e-002 2.20e-002h 3
7 1.0000000e+000 1.08e+003 5.64e+011 -1.0 2.42e+007 - 7.27e-002 5.57e-002h 2
8 1.0000000e+000 1.06e+003 4.74e+011 -1.0 1.04e+007 - 2.64e-001 1.60e-001h 1
9 1.0000000e+000 5.34e+002 8.69e+011 -1.0 4.91e+006 - 9.93e-003 1.00e+000h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10 1.0000000e+000 5.04e+001 1.22e+008 -1.0 1.52e+006 - 3.46e-001 1.00e+000h 1
11 1.0000000e+000 7.80e-002 5.31e+006 -1.0 1.94e+005 - 9.13e-001 1.00e+000h 1
12 1.0000000e+000 1.81e-007 7.24e+003 -1.0 2.07e+003 - 9.90e-001 1.00e+000h 1
13 1.0000000e+000 1.68e-007 3.00e-002 -1.0 8.66e-002 - 9.90e-001 1.00e+000h 1
14 1.0000000e+000 2.61e-007 2.99e-004 -1.0 1.02e-005 - 9.90e-001 1.00e+000h 1
15 1.0000000e+000 2.19e-007 2.09e-006 -1.0 2.06e-005 - 9.93e-001 1.00e+000h 1
16 1.0000000e+000 2.62e-007 2.10e-007 -1.7 4.16e-005 - 1.00e+000 1.00e+000h 1
17 1.0000000e+000 2.20e-007 1.13e-008 -3.8 8.50e-005 - 1.00e+000 1.00e+000h 1
18 1.0000000e+000 1.81e-007 2.96e-009 -5.7 1.78e-004 - 1.00e+000 1.00e+000h 1
19 1.0000000e+000 2.01e-007 2.08e-011 -8.6 3.88e-004 - 1.00e+000 1.00e+000s 22
Number of Iterations....: 19
(scaled) (unscaled)
Objective...............: 1.0000000000000000e+000 1.0000000000000000e+000
Dual infeasibility......: 0.0000000000000000e+000 0.0000000000000000e+000
Constraint violation....: 2.0069879269613011e-007 4.7683715820312500e-007
Complementarity.........: 0.0000000000000000e+000 0.0000000000000000e+000
Overall NLP error.......: 2.0069879269613011e-007 4.7683715820312500e-007
Number of objective function evaluations = 66
Number of objective gradient evaluations = 21
Number of equality constraint evaluations = 66
Number of inequality constraint evaluations = 66
Number of equality constraint Jacobian evaluations = 21
Number of inequality constraint Jacobian evaluations = 21
Number of Lagrangian Hessian evaluations = 20
Total CPU secs in IPOPT (w/o function evaluations) = 10.373
Total CPU secs in NLP function evaluations = 5.245
EXIT: Solved To Acceptable Level.
Ipopt 3.8.1: linear_solver=ma57
max_iter=100
******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear optimization.
Ipopt is released as open source code under the Common Public License (CPL).
For more information visit http://projects.coin-or.org/Ipopt
******************************************************************************
NOTE: You are using Ipopt by default with the MUMPS linear solver.
Other linear solvers might be more efficient (see Ipopt documentation).
This is Ipopt version 3.8.1, running with linear solver ma57.
Number of nonzeros in equality constraint Jacobian...: 103614
Number of nonzeros in inequality constraint Jacobian.: 120
Number of nonzeros in Lagrangian Hessian.............: 57810
Total number of variables............................: 31800
variables with only lower bounds: 5100
variables with lower and upper bounds: 23400
variables with only upper bounds: 0
Total number of equality constraints.................: 31800
Total number of inequality constraints...............: 62
inequality constraints with only lower bounds: 62
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 0
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 1.0000000e+000 4.61e-001 1.00e+000 -1.0 0.00e+000 - 0.00e+000 0.00e+000 0
1 1.0000000e+000 1.06e+003 2.38e+010 -1.0 8.65e+006 - 7.93e-001 9.92e-001f 1
2 1.0000000e+000 3.89e+003 2.12e+010 -1.0 1.01e+008 - 2.88e-002 2.88e-002s 18
3 1.0000000e+000 3.68e+003 1.80e+010 -1.0 3.26e+007 - 5.55e-002 5.55e-002s 18
4 1.0000000e+000 3.46e+003 1.62e+010 -1.0 1.16e+007 - 6.04e-002 6.04e-002s 18
5 1.0000000e+000 3.45e+003 1.62e+010 -1.0 7.01e+006 - 2.12e-003 2.12e-003s 18
6r1.0000000e+000 3.45e+003 9.99e+002 3.5 0.00e+000 - 0.00e+000 0.00e+000R 1
7r1.0000000e+000 3.43e+003 2.20e+005 3.5 4.05e+005 - 1.45e-002 3.96e-004f 1
8r1.0000000e+000 4.25e+003 5.65e+006 3.5 1.44e+005 - 1.45e-001 3.95e-003f 3
9r1.0000000e+000 3.20e+003 3.98e+006 3.5 2.38e+000 4.0 9.90e-001 3.54e-001f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10r1.0000000e+000 3.20e+003 1.44e+006 2.8 4.11e-001 3.5 8.25e-001 1.00e+000f 1
11r1.0000000e+000 3.20e+003 4.66e+005 2.8 1.29e+000 3.0 9.91e-001 1.00e+000f 1
12r1.0000000e+000 3.20e+003 1.44e+005 2.8 2.78e+000 2.6 8.16e-001 8.51e-001f 1
13r1.0000000e+000 3.20e+003 5.24e+004 2.1 1.17e+000 3.0 9.97e-001 1.00e+000f 1
14r1.0000000e+000 3.20e+003 1.89e+004 2.1 3.80e-001 3.4 1.00e+000 1.00e+000f 1
15r1.0000000e+000 3.20e+003 8.86e+003 2.1 1.14e+000 2.9 1.00e+000 7.27e-001f 1
16r1.0000000e+000 3.20e+003 1.77e+004 1.4 3.41e+000 2.5 5.65e-001 2.53e-001f 1
17r1.0000000e+000 3.20e+003 5.68e+003 1.4 1.28e+000 2.9 6.15e-001 6.57e-001f 1
18r1.0000000e+000 3.20e+003 4.48e+003 1.4 5.12e-002 5.1 9.80e-001 1.00e+000f 1
19r1.0000000e+000 3.20e+003 9.99e+002 1.4 2.25e-002 4.6 1.00e+000 1.00e+000f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
20r1.0000000e+000 3.20e+003 1.00e+003 0.7 6.75e-002 4.2 9.96e-001 9.85e-001f 1
21r1.0000000e+000 3.20e+003 1.29e+003 0.7 4.13e-002 4.6 1.00e+000 1.00e+000f 1
22r1.0000000e+000 3.20e+003 1.04e+005 0.7 7.60e-002 4.1 1.00e+000 8.09e-001f 1
23r1.0000000e+000 3.20e+003 6.02e+004 0.7 1.18e-002 5.4 1.00e+000 1.00e+000f 1
24r1.0000000e+000 3.20e+003 2.16e+004 0.7 1.07e-002 5.0 1.00e+000 1.00e+000f 1
25r1.0000000e+000 3.20e+003 1.92e+005 0.7 3.21e-002 4.5 1.00e+000 1.00e+000f 1
26r1.0000000e+000 3.20e+003 4.71e+004 0.7 9.62e-002 4.0 1.00e+000 5.73e-001f 1
27r1.0000000e+000 3.20e+003 1.72e+004 0.7 2.89e-001 3.5 7.97e-001 4.16e-001f 1
28r1.0000000e+000 3.20e+003 3.77e+004 0.7 8.66e-001 3.1 5.31e-001 2.28e-001f 1
29r1.0000000e+000 3.20e+003 2.36e+004 0.7 2.60e+000 2.6 6.76e-001 1.52e-001f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30r1.0000000e+000 3.20e+003 2.85e+004 0.7 9.74e-001 3.0 1.00e+000 2.78e-001f 1
31r1.0000000e+000 3.20e+003 4.13e+004 0.7 2.92e+000 2.5 4.21e-001 1.95e-001f 1
32r1.0000000e+000 3.20e+003 4.73e+004 0.7 1.10e+000 3.0 1.00e+000 1.30e-001f 1
33r1.0000000e+000 3.20e+003 1.15e+004 0.7 4.11e-001 3.4 1.00e+000 6.13e-001f 1
34r1.0000000e+000 3.20e+003 2.25e+004 0.7 1.38e+000 2.9 2.89e-001 1.01e-001f 1
35r1.0000000e+000 3.20e+003 2.34e+004 0.7 4.62e-001 3.3 1.00e+000 3.10e-001f 1
36r1.0000000e+000 3.20e+003 5.55e+004 0.7 1.39e+000 2.9 8.19e-001 1.10e-001f 1
37r1.0000000e+000 3.20e+003 8.08e+004 0.7 4.16e+000 2.4 1.00e+000 1.66e-002f 1
38r1.0000000e+000 3.19e+003 6.29e+004 0.7 1.25e+001 1.9 5.59e-001 2.31e-001f 1
39r1.0000000e+000 3.19e+003 1.04e+005 0.7 4.68e+000 2.3 9.06e-001 4.07e-001f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
40r1.0000000e+000 3.19e+003 9.88e+003 0.7 2.74e-002 4.6 1.00e+000 1.00e+000f 1
41r1.0000000e+000 3.19e+003 9.99e+002 0.7 8.22e-002 4.1 1.00e+000 1.00e+000f 1
42r1.0000000e+000 3.19e+003 2.32e+003 0.7 2.47e-001 3.6 1.00e+000 7.78e-001f 1
43r1.0000000e+000 3.19e+003 2.67e+003 0.7 7.40e-001 3.1 1.00e+000 1.00e+000f 1
44r1.0000000e+000 3.19e+003 9.99e+002 0.7 3.47e-002 4.5 1.00e+000 1.00e+000f 1
45r1.0000000e+000 3.19e+003 9.99e+002 0.7 1.04e-001 4.0 1.00e+000 1.00e+000f 1
46r1.0000000e+000 3.19e+003 9.99e+002 0.7 3.90e-002 4.4 1.00e+000 1.00e+000f 1
47r1.0000000e+000 3.19e+003 5.75e+005 0.7 3.73e-001 3.9 1.72e-001 2.14e-001f 1
48r1.0000000e+000 3.19e+003 3.62e+005 0.7 5.99e-002 4.4 5.89e-001 1.00e+000f 1
49r1.0000000e+000 3.19e+003 2.62e+005 0.7 1.64e-001 3.9 3.15e-001 6.86e-001f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
50r1.0000000e+000 3.19e+003 2.46e+005 0.7 6.78e-001 3.4 1.10e-001 7.88e-002f 1
51r1.0000000e+000 3.19e+003 1.93e+005 0.7 1.95e-001 3.8 7.28e-001 3.47e-001f 1
52r1.0000000e+000 3.19e+003 1.05e+005 0.7 8.01e-002 4.3 9.03e-001 1.00e+000f 1
53r1.0000000e+000 3.19e+003 5.73e+004 0.7 8.67e-002 4.7 6.12e-001 1.00e+000f 1
54r1.0000000e+000 3.19e+003 5.38e+004 0.7 1.09e-001 5.1 1.55e-001 6.96e-002f 1
55r1.0000000e+000 3.19e+003 4.94e+004 0.7 4.67e-001 4.6 8.91e-002 9.90e-002f 1
56r1.0000000e+000 3.19e+003 4.48e+004 0.7 1.40e-001 5.1 3.39e-001 1.99e-001f 1
57r1.0000000e+000 3.19e+003 3.69e+004 0.7 1.76e-001 4.6 8.44e-001 5.09e-001f 1
58r1.0000000e+000 3.19e+003 1.97e+004 0.7 2.32e-001 4.1 6.74e-001 3.75e-001f 1
59r1.0000000e+000 3.19e+003 2.01e+003 0.7 5.95e-002 4.5 1.00e+000 1.00e+000f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
60r1.0000000e+000 3.19e+003 1.38e+003 0.7 8.90e-002 4.1 8.42e-001 4.25e-001f 1
61r1.0000000e+000 3.19e+003 1.12e+003 0.7 2.74e-001 3.6 6.18e-001 2.50e-001f 1
62r1.0000000e+000 3.19e+003 1.45e+003 0.7 9.71e-001 3.1 3.96e-001 1.01e-001f 1
63r1.0000000e+000 3.19e+003 9.99e+002 0.7 2.40e+000 2.6 5.66e-001 2.06e-001f 1
64r1.0000000e+000 3.19e+003 8.27e+004 0.7 9.01e-001 3.0 4.92e-001 1.85e-001f 1
65r1.0000000e+000 3.19e+003 1.45e+006 0.7 3.38e-001 3.5 1.00e+000 4.09e-001f 1
66r1.0000000e+000 3.19e+003 1.38e+006 0.7 1.59e+000 3.0 6.84e-002 1.54e-001f 1
67r1.0000000e+000 3.19e+003 1.12e+006 0.7 8.15e-001 3.4 1.52e-001 5.24e-001f 1
68r1.0000000e+000 3.19e+003 9.10e+005 0.7 4.15e-001 3.8 4.66e-001 2.84e-001f 1
69r1.0000000e+000 3.19e+003 9.10e+005 0.7 2.43e+001 3.4 7.37e-003 3.81e-004h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
70r1.0000000e+000 3.19e+003 4.96e+005 0.7 5.13e-001 3.8 2.59e-001 1.00e+000f 1
71r1.0000000e+000 3.19e+003 4.74e+005 0.7 9.71e-001 4.2 8.99e-002 4.43e-002f 1
72r1.0000000e+000 3.19e+003 3.25e+005 0.7 2.89e-001 4.6 4.77e-001 4.19e-001f 1
73r1.0000000e+000 3.19e+003 2.92e+005 0.7 2.67e-001 5.1 1.37e-001 2.64e-001f 1
74r1.0000000e+000 3.19e+003 2.57e+005 0.7 3.92e+000 4.6 6.00e-003 7.71e-002h 1
75r1.0000000e+000 3.19e+003 2.51e+005 0.7 2.66e+000 5.0 9.47e-002 3.15e-002h 1
76r1.0000000e+000 3.19e+003 2.51e+005 0.7 5.36e-001 5.4 1.26e-001 1.65e-003h 1
77r1.0000000e+000 3.19e+003 2.47e+005 0.7 6.22e-001 5.9 2.62e-003 2.22e-002f 1
78r1.0000000e+000 3.19e+003 3.11e+005 0.7 4.98e-001 5.4 1.55e-002 3.31e-001f 1
79r1.0000000e+000 3.19e+003 1.29e+005 0.7 7.78e-001 4.9 2.31e-001 7.94e-001f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
80r1.0000000e+000 3.19e+003 3.16e+004 0.7 2.89e-001 4.4 4.59e-002 1.00e+000f 1
81r1.0000000e+000 3.19e+003 5.46e+003 0.7 1.08e-001 4.0 9.14e-001 4.75e-001f 1
82r1.0000000e+000 3.19e+003 2.73e+003 0.7 3.25e-001 3.5 2.69e-001 4.26e-001f 1
83r1.0000000e+000 3.19e+003 1.73e+003 0.7 9.76e-001 3.0 4.05e-001 2.97e-001f 1
84r1.0000000e+000 3.19e+003 1.49e+003 0.7 3.66e-001 3.4 1.00e+000 1.40e-001f 1
85r1.0000000e+000 3.19e+003 9.99e+002 0.7 1.10e+000 3.0 7.08e-001 5.09e-001f 1
86r1.0000000e+000 3.19e+003 9.99e+002 0.7 4.12e-001 3.4 1.00e+000 2.02e-001f 1
87r1.0000000e+000 3.19e+003 1.15e+003 0.7 1.23e+000 2.9 4.51e-001 5.90e-002f 1
88r1.0000000e+000 3.19e+003 1.46e+003 0.7 9.01e-001 3.3 4.76e-001 1.47e-001f 1
89r1.0000000e+000 3.19e+003 1.20e+003 0.7 1.39e+000 2.9 1.00e+000 3.88e-001f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
90r1.0000000e+000 3.19e+003 1.85e+003 0.7 4.17e+000 2.4 7.44e-001 7.41e-002f 1
91r1.0000000e+000 3.19e+003 3.62e+003 0.7 1.25e+001 1.9 4.51e-001 8.65e-002f 1
92r1.0000000e+000 3.19e+003 2.01e+003 0.7 4.69e+000 2.3 1.00e+000 1.35e-001f 1
93r1.0000000e+000 3.19e+003 2.59e+003 0.7 1.41e+001 1.9 9.76e-002 1.18e-001f 1
94r1.0000000e+000 3.19e+003 2.59e+003 0.7 6.59e-001 3.2 1.00e+000 3.80e-001f 1
95r1.0000000e+000 3.19e+003 2.35e+003 0.7 1.98e+000 2.7 5.13e-001 4.15e-001f 1
96r1.0000000e+000 3.19e+003 3.01e+003 0.7 5.93e+000 2.2 1.00e+000 3.64e-001f 1
97r1.0000000e+000 3.19e+003 3.22e+003 0.7 2.22e+000 2.7 1.00e+000 5.73e-001f 1
98r1.0000000e+000 3.18e+003 1.25e+003 0.7 6.67e+000 2.2 6.56e-001 4.76e-001f 1
99r1.0000000e+000 3.18e+003 1.22e+003 0.7 2.50e+000 2.6 1.00e+000 2.42e-002f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
100r1.0000000e+000 3.18e+003 2.27e+003 0.7 7.51e+000 2.1 1.19e-001 1.41e-001f 1
Number of Iterations....: 100
(scaled) (unscaled)
Objective...............: 1.0000000000000000e+000 1.0000000000000000e+000
Dual infeasibility......: 2.2653433308109729e+003 2.2653433308109729e+003
Constraint violation....: 3.1839522727329108e+003 6.7124334869609377e+005
Complementarity.........: 6.0142110405593208e+000 6.0142110405593208e+000
Overall NLP error.......: 3.1839522727329108e+003 6.7124334869609377e+005
Number of objective function evaluations = 122
Number of objective gradient evaluations = 8
Number of equality constraint evaluations = 125
Number of inequality constraint evaluations = 125
Number of equality constraint Jacobian evaluations = 102
Number of inequality constraint Jacobian evaluations = 102
Number of Lagrangian Hessian evaluations = 100
Total CPU secs in IPOPT (w/o function evaluations) = 42.638
Total CPU secs in NLP function evaluations = 29.731
EXIT: Maximum Number of Iterations Exceeded.
WARNING: Loading a SolverResults object with a warning status into model=unknown;
message from solver=Ipopt 3.8.1\x3a Maximum Number of Iterations Exceeded.
Process finished with exit code 0