forked from Pyomo/pyomo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG.txt
1145 lines (902 loc) · 44.3 KB
/
CHANGELOG.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
===============
Pyomo CHANGELOG
===============
-------------------------------------------------------------------------------
Pyomo 5.3
-------------------------------------------------------------------------------
- Removed testing for Python 3.4
- Added exp() to symbolic module (#151)
- Resolved representation error with 1/var (#153)
- Added pyomo.core.kernel (#130)
- Various solver interface fixes: CBC, SCIP, IPOPT, GLPK
- Add docstring to apply function in Transformation (#174)
- Adding a TerminationCondition enum value for "Infeasible or Unbounded" (#171)
- New scripts for performance testing
- Use the has_lb() and has_ub() helper methods for vars and constraints.
- Added documentation tests.
- Updates to DAPS (#200)
- Fix KeyError message in NL writer (#189)
- New ODE/DAE simulator interface for pyomo.DAE (#180)
- Added deprecation decorator (#203)
- New transformation to fix nonnegative variables in equality constraints (#198)
- Deprecated BigM piecewise representations (#216)
- Added GAMS solver interface (#164, #215, #221, #240)
- Updates to testing configuration on Travis and Appveyor
- Tracking changes in pyutilib.th
-------------------------------------------------------------------------------
Pyomo 5.2
-------------------------------------------------------------------------------
- Resolved timeout issues running NEOS solvers
- Changing the generic ASL solver plugin to use '-AMPL' rather than '-s'
- Fixed loading solutions into sub-blocks (#127)
- Cloning a model now preserves any previous solution(s).
- Fixing pickling of ModelSolutions objects. (#65)
- Allow cloning of blocks even when attributes cannot be deep copied
- Fixed how GUROBI_RUN reports the solve time.
- Added DAPS solver (#139)
- Adding support for Python 3.6. (#103)
- Restricting user defined component names on Blocks to avoid overwriting
important Block methods. (#126)
- Updating pyomo.dae transformations to support Block-derived components.
(#132, #129, #89)
- Fix rare issue where numeric constants in the left- and right-hand sides of a
double inequality expression were incorrectly mapped to an equality
expression even when the values were different.
- Creating an Ipopt solver plugin with additional functionality for sending
options to Ipopt using an options file. Options beginning with 'OF_' will be
interpreted as options that should appear in an options file. A warning is
printed when this will cause an existing 'ipopt.opt' file in the current
working directory to be ignored.
- Make the Ipopt solver plugin more gracefully handle the case when a solution
file is not created by the solver (e.g., when the solver exits because there
are too few degrees of freedom). (#135)
- Reduce time required to import pyomo.environ by delaying checks for
availability of solver interfaces until they are used. (#109)
- Adding support for solving Blocks as if they were Models. (#110, #94)
- Adding support for declaring components on a model by decorating the rule
instead of explicitly invoking the setattr method on the block. This
eliminates the normal pattern of the component name appearing in three
places. (#99)
- Fixes to pyomo.gdp transformations for nested blocks.
- Fixing case in block recursion where descend_into was not being honored.
- Bug fix that impacted non-serial solver managers.
- Make checks for is_indexed() more efficient. (#105)
- Fixes to files for PEP8 compliance.
- Fix to statues set by CPLEX plugin when problem is unbounded.
- Improving Param exception messages.
- Putting a daps release in PySP (#124)
- Updating the bilinear transform to avoid creating a Set `index`.
-------------------------------------------------------------------------------
Pyomo 5.1.1
-------------------------------------------------------------------------------
- Monkeypatch to resolve (#95)
-------------------------------------------------------------------------------
Pyomo 5.1
-------------------------------------------------------------------------------
- Added a CONOPT plugin to handle a custom SOL file output (#88)
- Changed 'pyomo solve' to use any Model object that is found, rather than
requiring the default object to be named 'model' (#80)
- Reworked the solver testing infrastructure to enable enumeration of all
test scenarios, which is used by 'pyomo test-solvers' (#78)
- Fixes for xpress solver options writer (#79)
- Resolved an issue where Pyomo was unnecessarily cloning most inequality
expressions (#80)
- Reworked the Pyomo *.DAT file parser and post-parse processing logic. This
eliminates parse ambiguities that were causing test failures.
- Finalized book test examples for the new edition of the Pyomo book
- Added pyomo.contrib to support integration of third-party Pyomo libraries
in a standard manner
- Fixed TravisCI testing issues where the incorrect version of Python was being
tested
- Fixed error messages in pyomo.dae (#81)
- Revised CBC interface to recognize intermediate non-integer solutions (#77)
- Added checks for IPOPT test failures based on version info (#72)
- Removed support for OpenOpt
-------------------------------------------------------------------------------
Pyomo 5.0.1
-------------------------------------------------------------------------------
- Updating PyUtilib dependency
-------------------------------------------------------------------------------
Pyomo 5.0
-------------------------------------------------------------------------------
- Added examples used in the Pyomo book to the Pyomo software repos
- Added support for automatically generating "template expressions"
- Fix tuple flattening in the case of unhashable SimpleParam in indexes
- Deactivated solver plugins before the are returned from the SolverFactory
- Significantly simplified the polynomial_degree() logic for Pyomo4 expressions
- Updates to expression logic
- Adding a 'feasible' attribute to the TerminationCondition Enum
- Updates to ExternalFunction logic
- Renamed the component name() method to getname() and added a 'name' property
- Fix to allow creating undefined (and uninitialized) mutable params
- Added more careful checks in Set() and Param() to ensure that an abstract set
expression is not evaluated
- Added DAE examples to Pyomo
-------------------------------------------------------------------------------
Pyomo 4.4.1
-------------------------------------------------------------------------------
- Fixing PyUtilib dependency version.
-------------------------------------------------------------------------------
Pyomo 4.4
-------------------------------------------------------------------------------
- Output a warning in benders when the solver interface used to solve the
master problem does not report a solution gap
- Document DAE transformations (#28)
- Allow use of ellipsis in the middle of the indices when slicing
- The Component slicing logic now uses simple slices (`:`) for matching a
single index and the Ellipsis (`...`) for matching zero or more indices.
- Fixing Python 3 compatibility problems in pyomo.dae & dae examples.
- Support evaluating external functions in AMPL-stype shared libraries.
- Renaming "BasicExternalFunction" to "AMPLExternalFunction"
- Allowing Params to be used in setting bounds on a ContinuousSet.
- Use HTTPS with NEOS
- Allow a mutable Parameter that has not been initialized with a value to
be used in the rhs of an equality constraint. (#13)
- Updates to SolverFactor to better support functionality offered by the
'executable' keyword for SystemCallSolver.
- Updates to writers to enforce consistent output ordering in quadratic
expressions.
- Improving the error message for Constraint rules that return None
- Adding PySP solver interface to the SD solver
- Adding an implicit SP representation to PySP that uses annotations
for declaring mutable parameters as stochastic data and providing
a distribution (only tables supported for now).
- Partial fix for infinite recursion reported (#6). This will support
creating scalar (simple) components by passing a set([None]) in
as the index.
- Extending component slicing ability to nested (hierarchical) slices.
-------------------------------------------------------------------------------
Pyomo 4.3 (4.3.11381)
-------------------------------------------------------------------------------
- Removed 'nose' from required packages during installation.
- Fix to be compatible with older versions of 'six'.
-------------------------------------------------------------------------------
Pyomo 4.3 (4.3.11377)
-------------------------------------------------------------------------------
- Restructured PySP tests to hide expected exception output
- Updated pyomo_install to support jython (experimental)
- Fixed a missing reference to 'six'
- More robust management of file I/O in GLPK interface
-------------------------------------------------------------------------------
Pyomo 4.3 (4.3.11345)
-------------------------------------------------------------------------------
- Various fixes to the NEOS solver plugin and to the SOL parser for
certain NEOS solvers.
- Fixed a bug that caused an exception to occur when dynamically adding blocks
to a ConcreteModel.
- Miscellaneous fixes to PySP scripting examples.
-------------------------------------------------------------------------------
Pyomo 4.3 (4.3.11328)
-------------------------------------------------------------------------------
- Misc bug fix
-------------------------------------------------------------------------------
Pyomo 4.3 (4.3.11327)
-------------------------------------------------------------------------------
- Resolved bug in pyomo_install when pyvenv cannot be found.
- Gracefully trap BARON terminations
-------------------------------------------------------------------------------
Pyomo 4.3 (4.3.11323)
-------------------------------------------------------------------------------
- Scripts
- pyomo_install
- Added --pip-options to specify options for PIP option
- Added --index-url to specify the PyPI mirror
- Restructured this script to make it more modular
- Deprecated the --with-extras option
- Added "--venv-only" option for setting up a local python virtual
environment with no additional packages (apart from pip, setuptools, and
potentially wheel).
- Fixes when installing from zip files offline.
- get-pyomo-extras.py
- Misc fixes and updates
- pyomo
- Consolidated help information within the 'pyomo help' subcommand
- Added 'pyomo install-extras' to install third-party dependencies
- pyomo.bilevel
- Major changes to get the bilevel_ld solver working
- Extended the logic in SubModel to allow for implicit declarations of
upper-level variables.
- pyomo.check
- More complete scoping checks
- pyomo.core
- Changes to allow sorted output using DataPortal objects
- Bug fix in linear dualization transformation
- Adding a mechanism to load default configuration information from a
standard location.
- Changes to allow objectives to be used inside expressions, and to
allow objectives to be sent through the solver plugins
- Updating blocks so that models can be created and populated using rule options
- Added a domain property method to IndexedVar so it cannot be treated as having
a single domain
- Added the Var() 'dense' option. This defaults to True, which defines variables
densely. But sparse variables are defined when dense==False.
- Change to define a SOS constraint over the declared index set for a variable
unless an explicit index set is provided.
- Changes to ensure that most components do not define their data densely.
- pyomo.dae
- Updates to support Python3 and current Pyomo Transformation API
- Fixed the collocation extension to reduce the degrees of freedom for certain variables
- pyomo.gdp
- Many fixes to bilinear transformation
- Fixed the Big-M estimation routine to work with constant expressions
- pyomo.neos
- Added support for ephemeral solver options, which over-ride the
options dictionary
- Fixes to enable loading of solutions from NEOS solvers
- pyomo.opt
- Sort variable names when printing results
- Many fixes to sol reader.
- pyomo.pysp
- Updates to ScenarioStructure.dat to handle a larger
class of models that can have non-uniform variable sets
in later time stages. Also updating parsing rules to
allow for more convenient variable declarations
- NodeVariables / NodeDerivedVariables can be used in
place of StageVariables / StageDerivedVariables to
declare variables on a per-node basis
- Indexed variables can be declared without bracket
notation (e.g., x[*,*] -> x)
- Single or indexed block names can be used to
conveniently declare all variables found on that
block within a node or stage
- Re-write of runef and runbenders based off of new PySP
scripting tools
- Adding option to runbenders for including one or more
scenarios in the master benders problem
- Fixes to csvsolutionwriter so that it works with
distributed PH
- Added new script (evaluate_xhat) that allows users to
evaluate SP solutions on alternate scenario trees.
- Added more extensive checking to PySP->SMPS conversion
utility (pysp2smps) to alert users when conversion fails
due to non-uniform problem structure or missing
stochastic annotations
- Added helper routine to convert a networkx directed
graph into a PySP scenario tree model
- Fixes to PH for better handling of user warmstarts
- pyomo.repn
- Updates to the NL writer to handle new expression types.
- Added an MPS writer
- pyomo.scripting
- Updated the Pyro mip server to improve its efficiency
- pyomo.solvers
- Updates to xpress plugin to use the ASL interface to xpress.
- Fixed a major issue with the gap computation in the CPLEX direct/persistent
solver plugins
- Significant speed-up of the the CPLEX persistent plugin.
- Added the 'mps' mode for various solvers.
- Changes to the Pyro solver manager to allow out-of-order results collection
-------------------------------------------------------------------------------
Pyomo 4.2 (4.2.10784)
-------------------------------------------------------------------------------
- Changes to make the --json command-line option backwards compatible.
-------------------------------------------------------------------------------
Pyomo 4.2 (4.2.10782)
-------------------------------------------------------------------------------
- pyomo.core
- Removed the 'initial' attribute from Var components.
- Removed the 'reset()' method from core components.
- Objective components now store sense for each objective.
- Added support for slicing when indexing a component.
- pyomo.dae
- Added methods to set and test the value of integral expressions
- pyomo.gdp
- Added property methods to access disjunction expressions (e.g. lower, upper)
- pyomo.opt
- Added support for ephemeral solver options that override the default
values set in the solver object.
- pyomo.neos
- Bug fixes to get data after calling NEOS
- Resolving issues with python 3
- pyomo.scripting
- Added --pyro-host and --pyro-port options
- Added shutdown capabilities to pyro solver manager
- Collect solve time for pyro solvers
- pyomo.pysp
- Added --pyro-host and --pyro-port options to manage pyro-based execution
in a more robust manner.
- Adding utility for converting PySP models into SMPS input files (pysp2smps).
- pyomo.solver
- Resolved serious issues with python direct interfaces:
- CPLEX: constants in linear range constraints and all quadratic
constraints were being excluded from the expression.
- CPLEX and GUROBI: actually raise an exception when a nonlinear
(non-quadratic) objective or constraint expression is encountered
rather than just emitting the linear and quadratic part of the
expression to the solver. This could lead to a naive user
thinking they have solved a general nonlinear model with these
solvers.
- CPLEX and GUROBI: do not skip trivial constraints by default.
Adding I/O option 'skip_trivial_constraints' to recover this
behavior.
- CPLEX: Merging as much of CPLEXPersistent with CPLEXDirect
as possible to avoid repeating bug fixes. More should be done,
but for now CPLEXDirect is a base class for CPLEXPersistent.
- Fix to various solver plugins so that variable bounds set to
float('inf') and float('-inf') are treated the same as variable
bounds set to None.
- Updates to Pyro solver managers
- Major performance enhancements for Pyro-based solver managers.
- Tasks can be uploaded to the dispatcher in bulk.
- Workers no longer use a timeout when requesting tasks from the queue, which
was wasting CPU cycles.
- Compatibility fixes when Pyro4 is used.
- other
- Updated the get-pyomo-extras.py script to install conditional dependencies
for Pyomo (e.g. xlrd and ipython)
- Adding logic to explicitly identify metasolvers. This information is
reflected in the 'pyomo help -s' command.
- Deprecated 'pyomo.os', which was not being actively supported.
- Added the 'pyomo info' subcommand to provide information about the Python
installation.
-------------------------------------------------------------------------------
Pyomo 4.1 (4.1.10519)
-------------------------------------------------------------------------------
- Resolving bugs in NEOS solver interface due to change in solver options
management.
-------------------------------------------------------------------------------
Pyomo 4.1 (4.1.10509)
-------------------------------------------------------------------------------
- Cleanup runbenders script to make it easier to test
- Cleanup temporary files during testing.
- Fixing PyUtilib version
-------------------------------------------------------------------------------
Pyomo 4.1 (4.1.10505)
-------------------------------------------------------------------------------
- Allow the dim() method to be called without the equality operator, which
enables its use on unconstructed components
- RangeSet inherits from OrderedSimpleSet
- Added missing __slots__ declarations in set classes
-------------------------------------------------------------------------------
Pyomo 4.1 (4.1.10486)
-------------------------------------------------------------------------------
- API changes for model transformations
- Revised API for SOSConstraint, Suffix and Block components
- Optimization results are now loaded into models
- Removed explicit specification of model preprocessing
- Resolved many issues with writing and solving MPECs
- Changes to MPEC meta-solver names
- The solution output for runph has been changed to
- Pyomo subcommands can now use configuration files (e.g. pyomo solve config.json)
- New JSON/YAML format for parameter data
- Added a script to install pyomo.extras
-------------------------------------------------------------------------------
Pyomo 4.0 (4.0.9682)
-------------------------------------------------------------------------------
- Adding a more useful error message when a named objective is not
present when load-solution is invoked on a model.
- Bug fix for pickling results objects.
- Performance fix for ordered sets
- Removed StateVar from DAE examples.
- Resolving a bug that disabled pyodbc support.
- Added preliminary support for pypyodbc.
- Fix to enable sets to be initialized with a tuple
- PySP test baseline updates
- Added PySP ddsip extension.
- Removed the 'pyomo bilevel' and 'pyomo mpec' subcommands
- Re-enabled the 'import' and 'export' Pyomo data commands, which
are still deprecated.
- Various performance enhancements to avoid iterating over list of
dictionary keys.
- Added a ComplementarityList component.
-------------------------------------------------------------------------------
Pyomo 4.0 (4.0.9629)
-------------------------------------------------------------------------------
This release rebrands Coopr as Pyomo, which reflects the fact that
users have consistently confused the Coopr software and the Pyomo
modeling language. Pyomo 4.0 includes the following significant
changes:
- Pyomo provides a single source tree replacing all Coopr packages
- The 'pyomo' command replaces the 'coopr' command
- The 'pyomo solve' subcommand replaces the former 'pyomo' command
- The 'pyomo.environ' package is now used to import core Pyomo capabilities
- Robust support for Python 3.x
The following are highlights of this release:
- Modeling
* Added a RealInterval domain
* Major rework of coopr.dae. Can now represent higher order and partial
differential equations. Also added more discretization schemes.
- Solvers
* Added preliminary support for a Benders solver
* Added support for the BARON solver
* Preliminary support for MPEC solvers, including the PATH solver
- Transformations
* Added explicit support for model transformations
* The 'pyomo solve --transform' option specified model transformations
* Created a streamline linear dual transformation
- Other
* The 'pyomo help' command documents installed capabilities
* Major rework and simplification of the 'pyomo_install' script
* Added support for parallelism using Pyro4
-------------------------------------------------------------------------------
Pyomo 3.5.8787
-------------------------------------------------------------------------------
- pyomo.opt 2.12.2
pyomo.core 3.6.4
pyomo.pysp 3.5.5
pyomo.solvers 3.2.1
-------------------------------------------------------------------------------
Pyomo 3.5.8748
-------------------------------------------------------------------------------
- pyomo.pysp 3.5.4
-------------------------------------------------------------------------------
Pyomo 3.5.8734
-------------------------------------------------------------------------------
- PyUtilib 4.7.3336
-------------------------------------------------------------------------------
Pyomo 3.5.8716
-------------------------------------------------------------------------------
- pyomo.core 3.6.3
pyomo.pysp 3.5.3
-------------------------------------------------------------------------------
Pyomo 3.5.8706
-------------------------------------------------------------------------------
- pyomo.util 2.0.4
pyomo.core 3.6.2
-------------------------------------------------------------------------------
Pyomo 3.5.8690
-------------------------------------------------------------------------------
- pyomo.neos 1.1.2
pyomo.opt 2.12.1
pyomo.core 3.6.1
pyomo.pysp 3.5.2
- Added the pyomo_install script
-------------------------------------------------------------------------------
Pyomo 3.5.8669
-------------------------------------------------------------------------------
- PyUtilib 4.7.3311
pyomo.util 2.0.3
-------------------------------------------------------------------------------
Pyomo 3.5.8663
-------------------------------------------------------------------------------
- PyUtilib 4.7.3305
pyomo.util 2.0.2
pyomo.environ 1.0.1
-------------------------------------------------------------------------------
Pyomo 3.5.8648
-------------------------------------------------------------------------------
- PyUtilib 4.7.3301
pyomo.age 1.1.4
pyomo.bilevel 1.0
pyomo.util 2.0.1
pyomo.dae 1.2
pyomo.environ 1.0
pyomo.gdp 1.2
pyomo.util 2.8.2
pyomo.mpec 1.0
pyomo.neos 1.1.1
pyomo.openopt 1.1.3
pyomo.opt 2.12
pyomo.os 1.0.4
pyomo.core 3.6
pyomo.pysos 2.0.9
pyomo.pysp 3.5.1
pyomo.solvers 3.2
pyomo.sucasa 3.0
-------------------------------------------------------------------------------
Pyomo 3.4.7842
-------------------------------------------------------------------------------
- pyomo.dae 1.1
pyomo.gdp 1.1.1
pyomo.util 2.8.1
pyomo.openopt 1.1.2
pyomo.opt 2.11
pyomo.os 1.0.3
pyomo.plugins 3.1
pyomo.core 3.5
pyomo.pysp 3.4
-------------------------------------------------------------------------------
Pyomo 3.3.7114
-------------------------------------------------------------------------------
- pyomo.age 1.1.3
pyomo.util 1.0.1
pyomo.dae 1.0
pyomo.gdp 1.1
pyomo.util 2.7.2
pyomo.openopt 1.1
pyomo.opt 2.10
pyomo.os 1.0.2
pyomo.plugins 3.0
pyomo.core 3.4
pyomo.pysos 2.0.8
pyomo.pysp 3.3
pyomo.sucasa 2.1
-------------------------------------------------------------------------------
Pyomo 3.2.6148
-------------------------------------------------------------------------------
- pyomo.opt 2.9.1
pyomo.core 3.3.2
-------------------------------------------------------------------------------
Pyomo 3.2.6124
-------------------------------------------------------------------------------
- pyomo.core 3.3.1
-------------------------------------------------------------------------------
Pyomo 3.2.6091
-------------------------------------------------------------------------------
- pyomo.gdp 1.0.4
pyomo.openopt 1.0.3
pyomo.opt 2.9
pyomo.plugins 2.11
pyomo.core 3.3
pyomo.pysos 2.0.7
pyomo.pysp 3.2
pyomo.sucasa 2.0.6
-------------------------------------------------------------------------------
Pyomo 3.1.5746
-------------------------------------------------------------------------------
- pyomo.age 1.1.2
pyomo.gdp 1.0.3
pyomo.util 2.7
pyomo.openopt 1.0.2
pyomo.opt 2.8
pyomo.os 1.0.1
pyomo.plugins 2.9
pyomo.core 3.1
pyomo.pysp 3.1
-------------------------------------------------------------------------------
Pyomo 3.1.5409
-------------------------------------------------------------------------------
- Made the imports of pyomo.opt services more robust to the failure of
individual services.
- Minor performance improvement
- Fixing import error when ordereddict is not available.
-------------------------------------------------------------------------------
Pyomo 3.1.5362
-------------------------------------------------------------------------------
- Bug fix for Python 2.7 installation.
-------------------------------------------------------------------------------
Pyomo 3.1.5325
-------------------------------------------------------------------------------
The following are highlights of this release:
- Solvers
* Interfaces for OpenOpt solvers
* Many solver interface improvements
* A solver checker to validate solver interfaces
* Improved support for SOS constraints (cplex, gurobi)
* PH supports nonlinear models
* PH-specific solver servers
- Modeling
* Changes in rule semantics to limit rule return values
* Changes in the expected order of rule arguments
* Constant sums or products can now be used as constraint bounds
* Added full support for the !ConstraintList modeling component.
- Usability enhancements
* New 'pyomo' command has subcommands that consolidate Pyomo scripting
* Added support to connect to databases with ODBC
* Added comprehensive support for set expressions
* Comprehensive rework of blocks and connectors for modular modeling
* Made JSON the default results format
- Other
* Efficiency improvements in model generation, memory, runtime, etc.
* Preliminary support for black-box applications
* Deprecated modeling syntax in Pyomo 3.0 is no longer legal
-------------------------------------------------------------------------------
Pyomo 3.0.4362
-------------------------------------------------------------------------------
- Solvers
* More sophisticated logic for solver factory to find ASL and OS solvers
* Various solver interface improvements
* New Solver results object for efficient representation of variable values
* New support for asynchronous progressive hedging
- Modeling
* Changes in rule semantics to limit rule return values
* Changes in the expected order of rule arguments
* Constant sums or products can now be used as constraint bounds
* Added full support for the ConstraintList modeling component.
- Usability enhancements
* More explicit output from runph and runef commands
* Added support in runef to write the extensive form in NL format
* Add controls for garbage collection in PH
- Other
* Efficiency improvements in generation of NL and LP files.
* Significant efficiency improvements in parsing of Pyomo Data Files.
* More robust MS Windows installer (does not use virtual python environment)
-------------------------------------------------------------------------------
Pyomo 2.5.3978
-------------------------------------------------------------------------------
- Performance improvements in Pyomo
- Bug fix when updating a results object that contains suffix data.
-------------------------------------------------------------------------------
Pyomo 2.5.3890
-------------------------------------------------------------------------------
- Solvers
* MIP solver interface updates to use appropriate objective names
* Added support for suffixes in GUROBI solver interface
* Improved diagnostic analysis of PH solver for the extensive form
- Usability enhancements
* Improved robustness of pyomo_install
* Fixed Pyomo installation problem when using easy_install
* Added a script to launch the PyomoAge GUI.
* LP files now are written with the true objective name
* Rework of pyomo command line to create a concise output
* Many efficiency improvements during model generation!
* Many improvements to diagnostic output and error handling
* Expressions like "model.p > 1" can now be used within generation rules
- Modeling
* Added support for generalized disjunctive programs (in pyomo.gdp)
* Constraints can now be specified in "compound" form: lb <= expr <= ub
* Significant robustness enhancements for model expressions
* Improved error handling for constraint generation
- Other
* Python 2.5 is deprecated due to performance issues
* Python versions 2.6 and 2.7 are supported
* New MS Windows installer is now available
-------------------------------------------------------------------------------
Pyomo 2.4.3307
-------------------------------------------------------------------------------
- Solvers
- Various fixes for Gurobi and CPLEX
- Reorganized OS services in pyomo.os
- Usability enhancements
- Improved robustness of pyomo_install
- Default install of pyomo_install from PyPI
-------------------------------------------------------------------------------
Pyomo 2.4.3261
-------------------------------------------------------------------------------
- Updating dependencies for Pyomo.
-------------------------------------------------------------------------------
Pyomo 2.4.3209
-------------------------------------------------------------------------------
- Patch fix for pyomo.colin
-------------------------------------------------------------------------------
Pyomo 2.4.3199
-------------------------------------------------------------------------------
- Modeling
- Concrete models are now supported
- Nonlinear modeling extensions using the AMPL NL problem format
- Add support for immutable versus mutable parameters.
- Support for SOS1 and SOS2 constraints
- Data Integration
- Can now import data from relational databases
- Solvers
- Better support for Gurobi solver
- Direct CPLEX solver interface
- Interface to ipopt and nonlinear solvers via asl (just to be clear)
- ASL solver interface can now be specified with the form
--solver=asl:PICO
- Usability enchancements
- Numerous bug fixes.
- Updated messages to provide clearer indication of modeling errors
-------------------------------------------------------------------------------
Pyomo 2.3.2581
-------------------------------------------------------------------------------
- A preliminary Gurobi solver interface
- Extended syntax for data command files:
'include' command to load other data command files
'import' command to load data from other sources
namespaces to next data declarations
- The pyomo_install script can install packages from Coin Bazaar
- New conversion scripts to generate LP or NL files from Pyomo models
- Solvers now extract standard suffix information
- Various fixes to PySP solvers
-------------------------------------------------------------------------------
Pyomo 2.0
-------------------------------------------------------------------------------
- Reorganization of Pyomo into separate packages:
- pyomo.opt 2.0
- pyomo.util 2.0
- pyomo.plugins 2.0
- pyomo.core 2.0
- pyomo.pysos 2.0
- pyomo.sucasa 2.0
-------------------------------------------------------------------------------
Pyomo 1.2
-------------------------------------------------------------------------------
- OPT
- Added explicit support for a symbol_map, which is used to coordinate
the symbols used in a converted problem with the symbols used in the
original problem.
- PYOMO
- Fixed bug in logic associated with index validation in ProductSets.
- Changed the set ord() method to be 1-based
- Added presolve diagnostics.
- SUCASA
- Added draft SUCASA user manual.
- PYSP
- Modified PH to support parallelism with Pyro.
- Introduced the PH scripts, with many options that an end-user
might want to try out.
- Added a convergence criterion to PH based on the # of free
discrete variables.
- Flushed out PYSP 1.1 documentation.
- Updated/improved timing reports and output in PH.
- Setup binary quadratic term linearization.
- Setup PH checkpointing using pickle.
- Added 48-scenario test case for forestry problem.
- Added PH option to specify a user-defined PH extension.
- Fixes to PH proximal term linearization.
- Created windows-friendly versions of core PYSP scripts.
- Plugins
- Switched default CBC input file format to CPLEXLP
- General
- Added a Pyomo 'getting started' manual.
- Reorganized Pyomo package to use the 'pyomo' namespace. The pyomo.util
package was renamed pyomo.opt.
- Added documentation on how to create/install plugins in Pyomo.
- Added documentation for using pyomo_install.
- Reworked pyomo_install to be created with the pyutilib.virtualenv script
vpy_create.
- Misc edits due to the PyUtilib reorg.
-------------------------------------------------------------------------------
Pyomo 1.1
-------------------------------------------------------------------------------
- OPT
- Reorganized pyomo.opt to rely on plugins for most of its core
functionality.
- Changed the default output for PICO to be LP format, rather than
.NL. This avoids issues with name-mapping that we haven't resolved yet.
- Updated LP writer to not output integer/binary status for variables
that aren't referenced in the model.
- In LP output format, modified constraint names to be "suffixed"
with the index in the same fashion as variables. The suffix is "None"
if the constraint is a singleton. Will help debug models during
development/prototyping.
- For MIPs, added "slack" suffix to solutions and modified CPLEX solver
interface to populate the suffix accordingly.
- Improvement of the factory mechanism used to launch optimizers;
solvers can be passed options during construction.
- The CPLEX LP format assumes default variable bounds equal to 0 and
+inf. These conflict with the more sane defaults in Pyomo, which are
-inf and +inf. This leads to all kinds of silent, incorrect behavior
in terms of getting very strange solutions where you are expecting a
straightforward solve. The cpxlp writer was changed to always output
bounds for variables, which is the safest route in any case.
- Added a facility for managing asynchronous events. In particular,
this facility has been setup to support the application of Pyomo
solvers with subclasses of the AsynchronousSolverManager.
- Created a distributed solver manager that uses the Pyro
RPC package.
- Rework of MIP solver interfaces for CPLEX, GLPK, PICO and CBC.
- Using an explicit temporary file when launching the shell command
subprocess, to avoid a buffer overflow.
- A rework of the logic in shellcmd.py to segregate the solution
into preprocess/solve/postprocess. This facilitates a fine-grain
parallelization of just the IP solve, using Pyro.
- If a variable name has the format x(1,a) or x[3,4,5] then create a
dictionary attribute 'x' in the SolverResults object, which maps the
tuple values to the corresponding value.
For example:
results.solution().variable.add('x(1,a)')
print results.solution().variable.x[1,'a']
- A change in the converter semantics. Now, the convert returns a
tuple of filenames. In most cases, this is a singleton tuple. But
in some important cases this is a non-singleton tuple (e.g. AMPL
*.mod/*.dat files).
- PYOMO
- Reworked Pyomo's management of components to use plugins.
- Adding two new components BuildCheck and BuildAction. Their
usage is similar, but their expected use is a it
different. BuildAction allows for the injection of arbitrary build
actions during construction of the model, while BuildCheck is used
to test conditions and generate exceptions when the build process
goes awry.
- There is also a subtle change to the Param component. The following
is now legal:
def f(model):
return 1.3
model.x = Param(initialize=f)
That is, when the Param object does not have an explicit index,
then no index is passed to an initializer function (as is expected).
- Adding 'summation', a function that computes multi-vector
product sums:
sum_i x[i]*y[i]*z[i]
- Adding automatic computation of variable bounds based on the domain.
If the domain set supports simple bounds, then they will be used to
initialize the bounds of a variable.
- Adding logic to ignore the generation of constraints if the
constructor rule returns either 'None' or '0'.
- Changed default domain of a Param to be Any, to be consistent with Set.
- Rework of Pyomo to enable preprocessor actions to manage all
post-instance-generation activities. This includes a simple preprocessor
plugin, which simply applies preprocessor actions in an order specified
by the action-specific ranks. The problem writers are no longer
responsible for how preprocessor actions take place.
NOTE: These preprocessors are very much tailored to the needs of the
NL and LP writers. We need to figure out a mechanism to tailoring
preprocessors to specific target solvers (e.g. tailoring preprocessing
for the NL writer, or tailoring preprocessing for MILP models).
_ The Constraint and Objective classes were reworked to integrate
their data into a single _data dictionary. This simplified
the management of id and label information.
- Extending the Constraint(model.A, rule=f) constructor semantics. This
change allows the rule to return a dictionary when the constraint is
indexed by one or more sets.
- A revision to Pyomo semantics. Now, expressions are not evaluated
when performing arithemetic operations (plus, times, etc).