poolslot.h File Reference
poolslot. More...
#include "abacus/abacusroot.h"
#include "abacus/poolslot.inc"
Go to the source code of this file.
Detailed Description
poolslot.
- Author:
- Matthias Elf
Constraints or variables are not directly stored in a pool. But are stored in a pool slot, which form again the basic building blocks of a pool. The reason is that in order to save memory it can be necessary that a constraint or variable in the pool has to be deleted although it is still contained in the active formulation of an inactive subproblem. Of course this deletion can be only done with constraints/variables which can be regenerated or which are not required for the correctness of the algorithm (e.g., for a cutting plane, but not for a variable or constraint of the problem formulation of a general ).
- Such that the deletion of a variable or constraint cannot cause a run-time error, we store it in a pool slot. Together with the pointer to the constraint/variable we store also its version number. The version number is initially zero and incremented each time when a new item is inserted in the pool slot. When we refer to a constraint/variable, e.g., from the sets of active constraints or variables, then we point to the slot and memorize the version number (class ABA_POOLSLOTREF), when this reference has been set up. Later by comparing the version number of ABA_POOLSLOTREF and the one of the corresponding ABA_POOLSLOT we can check if still the constraint/variable is contained in the slot which is supposed to be there. Usually, if the expected constraint/variable is missing, it is ignored.
- Warning:
- A ABA_POOLSLOT must not be deleted before the termination of the optimization process, except that it can be guaranteed that there is no reference to this slot from any other place of the program.
- License:
- This file is part of ABACUS - A Branch And CUt System Copyright (C) 1995 - 2003 University of Cologne, Germany
- This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
- This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- See also:
- http://www.gnu.org/copyleft/gpl.html
Definition in file poolslot.h.
Generated on Tue Aug 14 18:09:55 2007 for ABACUS by
1.5.1