bpmpdmex2.21.1d_w32
所属分类:matlab编程
开发工具:matlab
文件大小:152KB
下载次数:18
上传日期:2013-12-02 19:19:23
上 传 者:
sywhcsu
说明: matlab中利用内点法实现二次规划的工具箱
(matlab realize the point method utilizing quadratic programming toolbox)
文件列表:
bpmpdmex2.21.1d_w32\bp.m (2578, 2005-01-25)
bpmpdmex2.21.1d_w32\bp.mexw32 (335872, 2009-04-03)
bpmpdmex2.21.1d_w32\bpopt.m (8923, 2009-07-10)
bpmpdmex2.21.1d_w32\bpver.m (795, 2009-12-21)
bpmpdmex2.21.1d_w32\CHANGES.txt (2077, 2009-12-21)
bpmpdmex2.21.1d_w32\src\bp.f (11385, 2005-01-06)
bpmpdmex2.21.1d_w32\src\bpg.f (14376, 2009-04-01)
bpmpdmex2.21.1d_w32\src\makefile (2839, 2004-09-03)
bpmpdmex2.21.1d_w32\test5.m (859, 2009-06-16)
bpmpdmex2.21.1d_w32\writemps.m (4288, 2009-12-08)
bpmpdmex2.21.1d_w32\writeqps.m (4812, 2009-12-08)
bpmpdmex2.21.1d_w32\src (0, 2013-12-02)
bpmpdmex2.21.1d_w32 (0, 2013-12-02)
=============================================
BPMPD_MEX - A Matlab MEX Interface to BPMPD
=============================================
Version: 2.21.1d
Home Page: http://www.pserc.cornell.edu/bpmpd/
Author: Carlos E. Murillo-Sanchez
Thu, Dec 24, 2009
$Id: README.txt,v 1.19 2009/12/21 20:56:16 ray Exp $
Copyright (c) 1997-2009 by Power System Engineering Research Center (PSERC)
See http://www.pserc.cornell.edu/bpmpd/ for more info.
--------------
INTRODUCTION
--------------
BPMPD_MEX is a Matlab MEX interface to BPMPD
, an interior point solver for
quadratic programming developed by Csaba Meszaros
at the MTA SZTAKI, Computer and Automation
Research Institute, Hungarian Academy of Sciences, Budapest, Hungary.
This MEX interface for BPMPD has been coded by Carlos E.
Murillo-Sanchez, while he was at Cornell University. It does not provide
all of the functionality of BPMPD, however. In particular, note that the
stand-alone BPMPD program is designed to read and write results and data
from MPS and QPS format files, but the MEX interface implementation does
not allow reading data from these files into Matlab.
The current version of the MEX interface is based on version 2.21 of the
BPMPD solver.
BPMPD_MEX can be downloaded from the BPMPD_MEX home page above.
Pre-compiled versions are available for HPUX, Linux, Mac OS X, Solaris
and Windows.
--------------
TERMS OF USE
--------------
* BPMPD_MEX is free of charge.
* The use of BPMPD_MEX under this license is restricted to non-commercial
academic/research use only. Commercial use requires licensing the software
directly from the author of BPMPD.
* We make no warranties, express or implied. Specifically, we make no
guarantees regarding the correctness BPMPD_MEX's code or its fitness for any
particular purpose.
* Any publications derived from the use of BPMPD_MEX must acknowledge BPMPD.
(Please cite: Cs. Meszaros, "Fast Cholesky Factorization for Interior Point
Methods of Linear Programming", Computers & Mathematics with
Applications, Vol. 31, No. 4/5, (1996), pp. 49-51.)
* BPMPD_MEX may not be redistributed without written permission.
* BPMPD_MEX may not be modified or reverse engineered.
--------------
INSTALLATION
--------------
If you are using a pre-compiled MEX file supplied for HPUX, Linux, Mac OS X,
Solaris or Windows:
1. Unzip the downloaded file.
2. Place the *.m and bp.dll or bp.mex* files in a location on your Matlab
path.
If you are compiling the interface:
1. Unzip the downloaded file.
2. Copy the 3 files in the src directory to the BPMPD source
directory.
3. Edit the 'makefile' to select the choices appropriate for your platform.
4. Type: make
5. Run Matlab and try to execute the script called test5.m.
6. If all is well, place the MEX file along with the *.m files in a
location on your Matlab path.
If you do compile the interface for a platform other
than the ones for which we provide pre-compiled versions, please let us know.
-------
NOTES
-------
* For help on the calling syntax, type: help bp.
* For help on the options, type: help bpopt.
* The file test5.m assumes that you have lp.m from the Optimization Toolbox
Version 1.x/2.x.
* The sign convention for the multipliers is different in BPMPD than in
Matlab's Optimization Toolbox.
* In writing the interface, I assumed that the fortran compiler being used
supports the %VAL() construct. See the fortran section of the matlab
external interface guide for more details. If your compiler does not
support this construct, then you will have to modify bpg.f so that all
input arguments are copied to local versions using the subroutines
mxCopyPtrToReal8 and mxCopyReal8ToPtr. You may have to modify the
dynamic allocation of memory as well and make it static.
* The dynamic allocation is very conservative, and hopefully you will never
find a problem where the needed memory was underestimated. If you do,
then you have to recompile the MEX interface after setting the
variable L in bpg.f to something larger, perhaps 20 or 30. On the
other hand, if memory is a problem in your system you may want to
decrease it to, say L=10 and see what happens. (Note: repeated calling
of subroutine bp() with increasing values of L whenever bp() returns a
not-enough-memory error should have been introduced by now; I have put
it on hold because the default value of L has always worked for me).
The default value of L used for the pre-compiled versions is 15.
* The interface assumes that the quadratic objective matrix is symmetric, and
passes only the lower triangular part of the input matrix to BPMPD.
Thus, using Q or tril(Q) as data for BPMPD has the same effect.
* The provided MEX file seems to work fine under versions 4.2c through 7.x of
Matlab, though we haven't tested every version on every platform.
* If you want to change some of the default parameters in the options vector,
you will probably need to obtain BPMPD from Csaba Meszaros in order to
have access to the complete documentation. There are 80 parameters
that can be set by the user.
-----------
FILE LIST
-----------
bp.dll MEX file for Windows (before R2006b)
bp.m Help for the MEX file
bp.mexglx MEX file for Linux
bp.mexhp7 MEX file for HPUX
bp.mexmac MEX file for Mac OS X (PowerPC)
bp.mexmaci MEX file for Mac OS X (Intel)
bp.mexsol MEX file for Solaris
bp.mexw32 MEX file for Windows (R2006b and later)
bpopt.m Default options vector for BPMPD
bpver.m Prints or returns version information
CHANGES A detailed change history, with Unix line endings
CHANGES.txt A detailed change history, with DOS line endings (for Windows
users)
README This file, but with Unix line endings
README.txt This file
test5.m Small test; assumes you have Optimization Toolbox 1.x/2.x
writemps.m Implements basic MPS writing capability
writeqps.m Implements basic QPS writing capability
extras/lp.m Mimics lp.m in Optimization Toolbox 1.x/2.x using BPMPD
extras/qp.m Mimics qp.m in Optimization Toolbox 1.x/2.x using BPMPD
src/bp.f Interface source code
src/bpg.f Gateway routine source code
src/makefile
---------
SUPPORT
---------
General questions about BPMPD should be addressed to Csaba Meszaros at
.
Questions specific to the MEX interface should be addressed to
Carlos E. Murillo-Sanchez via the MATPOWER mailing list (see
). MATPOWER is a
power system simulation package which can take advantage of BPMPD_MEX.
--------------
KNOWN ISSUES
--------------
It appears that there may be a bug in version 2.21 of the BPMPD solver
in the presolve option which aggregates to eliminate free variables.
This option was turned on by default in version 2.21 of the MEX
interface. The effect of the bug is to sometimes give incorrect
(infeasible) solutions to DC OPF problems in MATPOWER. This is the only
context in which we have observed this bug in the course of several
years of using BPMPD_MEX.
Turning off this presolve option, by unsetting the 9th bit of bpopt(***),
appears to eliminate the problem of incorrect DC OPF solutions. Version
2.21.1 of this MEX interface now has this option turned off by default
and so should not exhibit the problem.
In addition, version 3.0b4 and later of MATPOWER provides a workaround
to this bug by including a feasibility check following the call to bp()
in the wrapper functions mp_qp() and mp_lp(). If bp() has returned an
infeasible solution, it attempts to solve the problem using the
appropriate solver from the Optimization Toolbox (quadprog, linprog, qp
or lp) instead.
While we have never encountered the bug in the context of sqppf() in the
MINOPF solver, version 3.0b4 of the MINOPF package eliminates direct
calls to bp() and instead uses the wrapper function mp_qp() with its
post-solution feasibility check.
It is strongly recommended that you upgrade to BPMPD_MEX 2.21.1 or later,
MATPOWER 3.0b4 or later, and MINOPF 3.0b4 or later, especially if you
use MATPOWER with BPMPD for solving DC optimal power flow problems.
近期下载者:
相关文件:
收藏者: