Scippy

    SCIP

    Solving Constraint Integer Programs

    circlepacking.c File Reference

    Detailed Description

    Packing circles in a rectangle of minimal size.

    Author
    Jose Salmeron
    Stefan Vigerske

    This example shows how to setup quadratic constraints in SCIP when using SCIP as callable library. The example implements a model for the computation of a smallest rectangle that contains a number of given circles in the plane or the computation of the maximal number of circles that can be placed into a given rectangle.

    Suppose that n circles with radii \(r_i\) are given. The task is to find coordinates \((x_i, y_i)\) for the circle midpoints and a rectangle of width \(W \geq 0\) and height \(H \geq 0\), such that

    • every circle is placed within the rectangle ( \(r_i \leq x_i \leq W-r_i\), \(r_i \leq y_i \leq H-r_i\)),
    • circles are not overlapping \(\left((x_i-x_j)^2 + (y_i-y_j)^2 \geq (r_i + r_j)^2\right)\), and
    • the area of the rectangle is minimal.

    Alternatively, one may fix the size of the rectangle and maximize the number of circles that can be fit into the rectangle without being overlapping.

    Definition in file circlepacking.c.

    #include <stdio.h>
    #include <string.h>
    #include <math.h>
    #include "scip/scip.h"
    #include "scip/scipdefplugins.h"

    Go to the source code of this file.

    Functions

    static void visualizeSolutionMatplotlib (SCIP *scip, SCIP_SOL *sol)
     
    static void visualizeSolutionGnuplot (SCIP *scip, SCIP_SOL *sol)
     
    static SCIP_RETCODE visualizeSolutionAscii (SCIP *scip, SCIP_SOL *sol)
     
    static SCIP_DECL_EVENTINIT (eventInitDispsol)
     
    static SCIP_DECL_EVENTEXIT (eventExitDispsol)
     
    static SCIP_DECL_EVENTEXEC (eventExecDispsol)
     
    static SCIP_RETCODE includeEventHdlrDispsol (SCIP *scip)
     
    static SCIP_RETCODE setupProblem (SCIP *scip, SCIP_Real fixwidth, SCIP_Real fixheight)
     
    static SCIP_RETCODE runPacking (SCIP_Real fixwidth, SCIP_Real fixheight, SCIP_Bool dognuplot, SCIP_Bool domatplotlib)
     
    int main (int argc, char **argv)
     

    Variables

    int ncircles = 0
     
    SCIP_Realr = NULL
     
    int rsize = 0
     
    SCIP_VAR ** x
     
    SCIP_VAR ** y
     
    SCIP_VAR ** b
     
    SCIP_VARa
     
    SCIP_VARw
     
    SCIP_VARh
     
    SCIP_Bool minarea
     

    Function Documentation

    ◆ visualizeSolutionMatplotlib()

    static void visualizeSolutionMatplotlib ( SCIP scip,
    SCIP_SOL sol 
    )
    static

    plots solution by use of Python/Matplotlib

    Parameters
    scipSCIP data structure
    solsolution to plot

    Definition at line 74 of file circlepacking.c.

    References a, b, h, minarea, ncircles, NULL, r, SCIPerrorMessage, SCIPgetSolOrigObj(), SCIPgetSolVal(), SCIPinfoMessage(), SCIPround(), w, x, and y.

    Referenced by runPacking().

    ◆ visualizeSolutionGnuplot()

    static void visualizeSolutionGnuplot ( SCIP scip,
    SCIP_SOL sol 
    )
    static

    plots solution by use of gnuplot

    Parameters
    scipSCIP data structure
    solsolution to plot

    Definition at line 136 of file circlepacking.c.

    References a, b, h, MAX, minarea, ncircles, NULL, r, SCIP_Real, SCIPerrorMessage, SCIPgetSolOrigObj(), SCIPgetSolVal(), SCIPinfoMessage(), SCIPround(), w, x, and y.

    Referenced by runPacking().

    ◆ visualizeSolutionAscii()

    static SCIP_RETCODE visualizeSolutionAscii ( SCIP scip,
    SCIP_SOL sol 
    )
    static

    plots solution by use of ascii graphics

    Parameters
    scipSCIP data structure
    solsolution to plot

    Definition at line 194 of file circlepacking.c.

    References b, h, minarea, ncircles, NULL, phi(), r, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPceil(), SCIPfreeBufferArray, SCIPgetIntParam(), SCIPgetSolOrigObj(), SCIPgetSolVal(), SCIPinfoMessage(), SCIPround(), SCIPsnprintf(), w, x, and y.

    Referenced by SCIP_DECL_EVENTEXEC().

    ◆ SCIP_DECL_EVENTINIT()

    static SCIP_DECL_EVENTINIT ( eventInitDispsol  )
    static

    initialization method of event handler (called after problem was transformed)

    Definition at line 286 of file circlepacking.c.

    References NULL, SCIP_CALL, SCIP_EVENTTYPE_BESTSOLFOUND, SCIP_OKAY, and SCIPcatchEvent().

    ◆ SCIP_DECL_EVENTEXIT()

    static SCIP_DECL_EVENTEXIT ( eventExitDispsol  )
    static

    deinitialization method of event handler (called before transformed problem is freed)

    Definition at line 295 of file circlepacking.c.

    References NULL, SCIP_CALL, SCIP_EVENTTYPE_BESTSOLFOUND, SCIP_OKAY, and SCIPdropEvent().

    ◆ SCIP_DECL_EVENTEXEC()

    static SCIP_DECL_EVENTEXEC ( eventExecDispsol  )
    static

    execution method of event handler

    Definition at line 304 of file circlepacking.c.

    References NULL, SCIP_CALL, SCIP_EVENTTYPE_BESTSOLFOUND, SCIP_OKAY, SCIPeventGetSol(), SCIPeventGetType(), and visualizeSolutionAscii().

    ◆ includeEventHdlrDispsol()

    static SCIP_RETCODE includeEventHdlrDispsol ( SCIP scip)
    static

    creates event handler for dispsol event

    Parameters
    scipSCIP data structure

    Definition at line 320 of file circlepacking.c.

    References NULL, SCIP_CALL, SCIP_OKAY, SCIPincludeEventhdlrBasic(), SCIPsetEventhdlrExit(), and SCIPsetEventhdlrInit().

    Referenced by runPacking().

    ◆ setupProblem()

    static SCIP_RETCODE setupProblem ( SCIP scip,
    SCIP_Real  fixwidth,
    SCIP_Real  fixheight 
    )
    static

    create problem in given SCIP and add all variables and constraints to model the circle packing problem

    Parameters
    scipSCIP data structure
    fixwidtha given fixed width for the rectangle, or SCIP_INVALID if not fixed
    fixheighta given fixed height for the rectangle, or SCIP_INVALID if not fixed

    Definition at line 339 of file circlepacking.c.

    References a, b, FALSE, h, MIN, minarea, ncircles, NULL, r, SCIP_Bool, SCIP_CALL, SCIP_INVALID, SCIP_MAXSTRLEN, SCIP_OBJSENSE_MAXIMIZE, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_CONTINUOUS, SCIPaddCoefLinear(), SCIPaddCons(), SCIPaddVar(), SCIPallocMemoryArray, SCIPcreateConsBasicLinear(), SCIPcreateConsQuadraticNonlinear(), SCIPcreateProbBasic(), SCIPcreateVarBasic(), SCIPfixVar(), SCIPinfinity(), SCIPisLT(), SCIPreleaseCons(), SCIPsetObjsense(), SCIPsnprintf(), SQR, TRUE, w, x, and y.

    Referenced by runPacking().

    ◆ runPacking()

    static SCIP_RETCODE runPacking ( SCIP_Real  fixwidth,
    SCIP_Real  fixheight,
    SCIP_Bool  dognuplot,
    SCIP_Bool  domatplotlib 
    )
    static

    run circle packing example

    Sets up SCIP and the SCIP problem, solves the problem, and shows the solution.

    Parameters
    fixwidtha given fixed width for the rectangle, or SCIP_INVALID if not fixed
    fixheighta given fixed height for the rectangle, or SCIP_INVALID if not fixed
    dognuplotwhether to draw best solution with gnuplot
    domatplotlibwhether to draw best solution with python/matplotlib

    Definition at line 554 of file circlepacking.c.

    References a, b, FALSE, h, includeEventHdlrDispsol(), minarea, ncircles, NULL, r, SCIP_CALL, SCIP_OKAY, SCIPcreate(), SCIPfree(), SCIPfreeMemoryArray, SCIPgetBestSol(), SCIPgetNSols(), SCIPincludeDefaultPlugins(), SCIPinfoMessage(), SCIPprintOrigProblem(), SCIPprintSol(), SCIPreleaseVar(), SCIPsetRealParam(), SCIPsolve(), setupProblem(), visualizeSolutionGnuplot(), visualizeSolutionMatplotlib(), w, x, and y.

    Referenced by main().

    ◆ main()

    int main ( int  argc,
    char **  argv 
    )

    main method starting SCIP

    Parameters
    argcnumber of arguments from the shell
    argvarray of shell arguments

    Definition at line 629 of file circlepacking.c.

    References BMSallocMemoryArray, BMSreallocMemoryArray, FALSE, ncircles, r, rsize, runPacking(), SCIP_ALLOC_ABORT, SCIP_Bool, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPprintError(), and TRUE.

    Variable Documentation

    ◆ ncircles

    int ncircles = 0

    ◆ r

    Radii

    Definition at line 59 of file circlepacking.c.

    Referenced by scip::abs(), addFlowrowToCommodity(), addFracCounter(), addLocalRows(), addOrbitopesDynamic(), addRangeInfo(), addRelaxation(), allRowsInLP(), applyCompression(), branchruledataEnsureArraySize(), checkCons(), cleanupNetwork(), computeAndConstraintInfos(), computeVarRatio(), consdataCreate(), consdataFreeRows(), constructCompression(), createCGMIPprimalsols(), createRelaxation(), createSubscip(), cutsSubstituteMIR(), cutsSubstituteMIRSafely(), cutsSubstituteStrongCG(), deleteCommodity(), detectParallelCols(), displayReaders(), enforceExprNlhdlr(), ensureRngrowmapMem(), evaluateLiftingFunction(), extractCapacities(), extractCapacityRows(), extractFlow(), extractFlowRows(), extractNodes(), fillRelationTables(), findUncapacitatedArcs(), forkAddLP(), generateAverageRay(), generateClusterCuts(), generateDisjCutSOS1(), getAlphaAndBeta(), getDualBranchscore(), getFlowrowFit(), getIncidentNodes(), getJobs(), getNActiveConsScore(), getNextFlowrow(), getNodeSimilarityScore(), getResourcesCapacities(), getResourcesNames(), getSimplexCoefficients(), getVarRank(), heurdataEnsureArraySize(), identifySourcesTargets(), improvePoint(), invertCommodity(), lpCleanupRows(), lpDelRowset(), lpExactFlushAddRows(), lpFlushAddRows(), lpLexDualSimplex(), lpRemoveObsoleteRows(), main(), markRelaxsUnsolved(), markRowsXj(), mcfnetworkFill(), operator<<(), scip::Rational::operator=(), parseDetails(), ObjPricerVRP::pricing(), profilesFindEarliestFeasibleStart(), profilesFindLatestFeasibleStart(), propagateStaticOrbitope(), propVariables(), pseudoforkAddLP(), relaxVar(), RsetSpxR(), RsetSpxVector(), runPacking(), SCIP_DECL_COMPREXIT(), SCIP_DECL_CONSGETNVARS(), SCIP_DECL_CONSGETVARS(), SCIP_DECL_HEUREXEC(), SCIP_DECL_NLHDLRENFO(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_READERREAD(), SCIPapplyLockFixings(), SCIPcolExactPrint(), SCIPcolPrint(), SCIPconflictAnalyzeLP(), SCIPcreateSchedulingProblem(), SCIPexprintHessianSparsity(), SCIPfreeRepresentation(), SCIPgetDualProof(), SCIPgetFarkasProof(), SCIPgetLPBInvARow(), SCIPgetLPBInvRow(), SCIPgetReadingTime(), SCIPinitRepresentation(), SCIPlpEndDive(), SCIPlpExactDelRowset(), SCIPlpExactEndDive(), SCIPlpExactGetDualfarkas(), SCIPlpExactGetSol(), SCIPlpExactLink(), SCIPlpExactOverwriteFpDualSol(), SCIPlpExactShrinkRows(), SCIPlpExactStartDive(), SCIPlpGetBInvARow(), SCIPlpGetBInvRow(), SCIPlpGetDualDegeneracy(), SCIPlpGetDualfarkas(), SCIPlpGetSol(), SCIPlpGetUnboundedSol(), SCIPlpiAddRows(), SCIPlpiDelRows(), SCIPlpiDelRowset(), SCIPlpiExactGetBInvRow(), SCIPlpiGetBase(), SCIPlpiGetBasisInd(), SCIPlpiGetBInvACol(), SCIPlpiGetBInvARow(), SCIPlpiGetBInvCol(), SCIPlpiGetBInvRow(), SCIPlpiGetRows(), SCIPlpiGetSol(), SCIPlpiLoadColLP(), SCIPlpiSetBase(), SCIPlpRemoveRedundantRows(), SCIPlpShrinkRows(), SCIPlpStartDive(), SCIPlpSumRows(), SCIPlpUpdateAges(), SCIPmatrixGetParallelCols(), SCIPrandomGetSubset(), SCIPrationalarraySetVal(), SCIPreoptApplyCompression(), SCIPreoptGetNSols(), SCIPreoptMergeVarHistory(), SCIPresetRepresentation(), SCIProwExactPrint(), SCIPrunBoundHeuristic(), SCIPsolAdjustImplicitSolVals(), SCIPsolveProbingRelax(), SCIPxmlFindNode(), SCIPxmlFindNodeMaxdepth(), separateCons(), separateConsBinaryRepresentation(), separateCoverCutsCons(), separateCuts(), separateRltCuts(), setupProblem(), solveBilinearLP(), solveNodeRelax(), solveRowEchelonGF2(), storeCuts(), storeSuitableRows(), strengthenOrbitopeConstraint(), subrootConstructLP(), updateActivities(), updateLoopStatus(), updateSymInfoConflictGraphSST(), varProcessBoundChanges(), visualizeSolutionAscii(), visualizeSolutionGnuplot(), visualizeSolutionMatplotlib(), and writeOpbRelevantAnds().

    ◆ rsize

    int rsize = 0

    Definition at line 60 of file circlepacking.c.

    Referenced by main().

    ◆ x

    SCIP_VAR** x

    x coordinates

    Definition at line 63 of file circlepacking.c.

    Referenced by addBilinearTermToCut(), addCut(), addLinearTermToCut(), addProductVars(), applyObbtBilinear(), bilinboundGetScore(), bilinearTermsInsertAll(), bilinearTermsInsertEntry(), checkSystemGF2(), cleanCycle(), computeBilinEnvelope2(), computeConvexEnvelopeFacet(), computeCut(), computeHyperplaneThreePoints(), createSepaData(), detectMinors(), drawScaledImage(), ecaggrAddBilinTerm(), ecaggrAddQuadvar(), errorf(), estimateConvexSecant(), estimateUnivariateQuotient(), eval(), evalFunctionGradient(), evalFunctionValue(), evaluateLiftingFunction(), evaluateLiftingFunctionKnapsack(), extractProducts(), extractVariablesMINLP(), F77_FUNC(), filterExistingLP(), getBestEstimators(), getBilinearBinaryTerms(), getBinaryProductExpr(), getBinaryProductExprDo(), getCorner(), getCorners(), getEigenValues(), getIneqViol(), getMinorVars(), getRelDistance(), getX(), hessLagAddExpr(), hessLagSparsitySetNzFlagForExpr(), initBounds(), isFiniteNonnegativeIntegral(), isPackingCons(), isPointFeasible(), markRowsXj(), negate(), nlrowaggrAddRemBilinTerm(), nlrowaggrCreate(), printRow(), processSolveOutcome(), provedBound(), rbDeleteFixup(), rbRotate(), read_problem(), SPxexSCIP::restorePreStrongbranchingBasis(), reversePropBinarySearch(), roundFixingValue(), runBrachistochrone(), runPacking(), SPxexSCIP::savePreStrongbranchingBasis(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_NLHDLRESTIMATE(), SCIP_DECL_NLHDLRSOLLINEARIZE(), SCIP_DECL_READERREAD(), SCIPaddIneqBilinear(), SCIPcalcRootNewton(), SCIPcreateConsBasicSignpowerNonlinear(), SCIPerf(), SCIPevalBilinAuxExprNonlinear(), SCIPgetBilinTermIdxNonlinear(), SCIPgetBilinTermNonlinear(), SCIPinsertBilinearTermExistingNonlinear(), SCIPinsertBilinearTermImplicitNonlinear(), SCIPintervalNegateReal(), SCIPintervalQuadBivar(), SCIPintervalQuadUpperBound(), SCIPintervalSquare(), SCIPlapackSolveLinearEquations(), SCIPlpiAddCols(), SCIPlpiAddRows(), SCIPlpiChgBounds(), SCIPlpiChgObj(), SCIPlpiChgSides(), SCIPlpiClearState(), SCIPlpiExactAddCols(), SCIPlpiExactAddRows(), SCIPlpiExactChgBounds(), SCIPlpiExactChgObj(), SCIPlpiExactChgSides(), SCIPlpiExactClearState(), SCIPlpiExactGetDualfarkas(), SCIPlpiExactGetPrimalRay(), SCIPlpiExactGetSol(), SCIPlpiExactLoadColLP(), SCIPlpiExactReadLP(), SCIPlpiExactWriteLP(), SCIPlpiGetBInvACol(), SCIPlpiGetBInvARow(), SCIPlpiGetBInvCol(), SCIPlpiGetBInvRow(), SCIPlpiGetDualfarkas(), SCIPlpiGetPrimalRay(), SCIPlpiGetSol(), SCIPlpiLoadColLP(), SCIPlpiReadLP(), SCIPlpiScaleCol(), SCIPlpiScaleRow(), SCIPlpiWriteLP(), SCIPnegateReal(), SCIPnlpiOracleEvalConstraintGradient(), SCIPnlpiOracleEvalConstraintValue(), SCIPnlpiOracleEvalConstraintValues(), SCIPnlpiOracleEvalHessianLag(), SCIPnlpiOracleEvalJacobian(), SCIPnlpiOracleEvalObjectiveGradient(), SCIPnlpiOracleEvalObjectiveValue(), SCIPpatternAddElement(), SCIPpatternSetElementPos(), SCIPrbtreeDelete_call(), SCIPrbtreePredecessor_call(), SCIPrbtreeSuccessor_call(), SCIPrealHashCode(), SCIPregressionAddObservation(), SCIPregressionRemoveObservation(), SCIPsolveLinearEquationsIpopt(), sepadataAddMinor(), separateMcCormickImplicit(), separatePoint(), setupProblem(), setupStart(), solveBilinearLP(), solveLinearProb3(), solvePricingMINLP(), solveRowEchelonGF2(), spxSolve(), SPxexSCIP::trySolve(), updateBestCandidate(), updateBilinearRelaxation(), useBilinIneqs(), visualizeSolutionAscii(), visualizeSolutionGnuplot(), and visualizeSolutionMatplotlib().

    ◆ y

    SCIP_VAR** y

    y coordinates

    Definition at line 64 of file circlepacking.c.

    Referenced by addBilinearTermToCut(), addCut(), addProductVars(), applyObbtBilinear(), bilinboundGetScore(), bilinearTermsInsertAll(), bilinearTermsInsertEntry(), computeBilinEnvelope2(), computeCut(), createSepaData(), detectMinors(), drawScaledImage(), ecaggrAddBilinTerm(), errorf(), extractProducts(), extractVariablesMINLP(), filterExistingLP(), getBestEstimators(), getBilinearBinaryTerms(), getBinaryProductExpr(), getBinaryProductExprDo(), getCorner(), getCorners(), getEigenValues(), getIneqViol(), getMinorVars(), getRelDistance(), initBounds(), isPackingCons(), isPointFeasible(), markRowsXj(), nlrowaggrAddRemBilinTerm(), nlrowaggrCreate(), printRow(), provedBound(), rbInsertFixup(), rbRotate(), read_problem(), runBrachistochrone(), runPacking(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_NLHDLRESTIMATE(), SCIP_DECL_READERREAD(), SCIPaddIneqBilinear(), SCIPerf(), SCIPevalBilinAuxExprNonlinear(), SCIPgetBilinTermIdxNonlinear(), SCIPgetBilinTermNonlinear(), SCIPinsertBilinearTermExistingNonlinear(), SCIPinsertBilinearTermImplicitNonlinear(), SCIPintervalQuadBivar(), SCIPintervalSquare(), SCIPpatternAddElement(), SCIPpatternSetElementPos(), SCIPrbtreeDelete_call(), SCIPrbtreePredecessor_call(), SCIPrbtreeSuccessor_call(), SCIPregressionAddObservation(), SCIPregressionRemoveObservation(), sepadataAddMinor(), separateMcCormickImplicit(), separatePoint(), setupProblem(), solveBilinearLP(), solvePricingMINLP(), updateBestCandidate(), updateBilinearRelaxation(), useBilinIneqs(), visualizeSolutionAscii(), visualizeSolutionGnuplot(), and visualizeSolutionMatplotlib().

    ◆ b

    SCIP_VAR** b

    whether circle is placed into rectangle

    Definition at line 65 of file circlepacking.c.

    Referenced by aggregateConstraints(), alnsFixMoreVariables(), analyseOnoffBounds(), cancelCol(), cancelRow(), checkBlocking(), checkCons(), checkSystemGF2(), collectBinaryVars(), computeModularity(), computeMonoidalQuadCoefs(), computeMonoidalStrengthCoef(), computePosCircleCircle(), computePosRingCircle(), computeRestrictionToLine(), computeRestrictionToRay(), computeRoot(), computeRowEchelonGF2(), consdataCreateBinvars(), consdataLinearize(), createAndSplitProblem(), createBucketlistAndBuckets(), createCapacityRestriction(), createCoverCutsTimepoint(), createRows(), decompHorizonGetFirstPosBestPotential(), decompHorizonInitialize(), decompHorizonMarkInterval(), detectExpr(), determineVariableFixingsDecomp(), doBinarySearch(), encodeColPair(), encodeRowPair(), estimateBivariateQuotient(), estimateUnivariate(), estimateUnivariateQuotient(), evalPhiAtRay(), fillBuckets(), findMonoidalQuadRoot(), findNonDominatedVars(), freeRedcostArrays(), getLinkingScoreAndBlocklabels(), initCurrent(), integerpow(), intEvalQuotient(), isNeighbor(), LNSFixMoreVariables(), lockRounding(), lpiStrongbranch(), optimize(), processRealBoundChg(), projectVbd(), propagateBoundsLinExpr(), propagateBoundsQuadExpr(), provedBound(), reducedCostSort(), removeFixedBinvars(), reoptimize(), reuseSolution(), reversepropQuotient(), roundPartition(), runPacking(), scalePenalties(), SCIP_DECL_CONSCHECK(), SCIP_DECL_CONSINITSOL(), SCIP_DECL_CONSLOCK(), SCIP_DECL_CONSRESPROP(), SCIP_DECL_DIVESETGETSCORE(), SCIP_DECL_HEUREXEC(), SCIP_DECL_NLHDLRINTEVAL(), SCIP_DECL_NLHDLRREVERSEPROP(), SCIP_DECL_PROPRESPROP(), SCIPclassifyConstraintTypesLinear(), SCIPintervalQuadUpperBound(), SCIPintervalSolveBivariateQuadExpressionAllScalar(), SCIPintervalSolveUnivariateQuadExpressionPositiveAllScalar(), SCIPlapackSolveLinearEquations(), SCIPlpiGetBInvCol(), SCIPlpiGetBInvRow(), SCIPrealToRational(), SCIPsolveLinearEquationsIpopt(), SCIPvisualizeConsCumulative(), setupProblem(), solveLinearProb3(), solveRowEchelonGF2(), solveSingleRowLP(), SORTTPL_NAME(), splitAndMergeSeries(), strengthenVarbounds(), tightenedLinkvar(), transformAndMergeSeries(), transformFirstPathMember(), tryAggregateIntVars(), tryAggregateIntVarsExact(), updateLambda(), visualizeSolutionAscii(), visualizeSolutionGnuplot(), visualizeSolutionMatplotlib(), and xmlFreeAttr().

    ◆ a

    area of rectangle

    Definition at line 66 of file circlepacking.c.

    Referenced by addRowMark(), aggregateConstraints(), applyOptcumulative(), buildVertexPolyhedralSeparationLP(), cancelCol(), cancelRow(), checkBlocking(), cleanCycle(), cleanupNetwork(), computeAndConstraintInfos(), computeMaxBoundaryForBilinearProp(), computeMaxForBilinearProp(), computeMonoidalQuadCoefs(), computeMonoidalStrengthCoef(), computeObjWeightSize(), computePosCircleCircle(), computePosRingCircle(), computeRestrictionToLine(), computeRestrictionToRay(), computeRevPropIntervalSin(), computeRoot(), computeVarRatio(), createEdgesFromRow(), createInitialColumns(), createLP(), detectExpr(), doBinarySearch(), encodeColPair(), encodeRowPair(), estimateBivariateQuotient(), estimateUnivariate(), estimateUnivariateQuotient(), evalPhiAtRay(), F77_FUNC(), findMonoidalQuadRoot(), findNonDominatedVars(), generateClusterCuts(), identifyComponent(), identifySourcesTargets(), integerpow(), intEvalQuotient(), isNeighbor(), markRowsXj(), mcfnetworkFill(), mcfnetworkFree(), nodepairqueueCreate(), nodepartitionIsConnected(), performAggregations(), printNLRow(), propagateBoundsQuadExpr(), provedBound(), reversepropQuotient(), runPacking(), SCIP_DECL_CONSINITSOL(), SCIP_DECL_HEURFREE(), SCIPcallLapackDsyevIpopt(), SCIPintervalQuadUpperBound(), SCIPlapackComputeEigenvalues(), SCIPrealToRational(), SCIPwriteCcg(), SCIPxmlAddAttr(), SCIPxmlGetAttrval(), SCIPxmlNewAttr(), SCIPxmlShowNode(), setupGradients(), setupProblem(), solveSingleRowLP(), sortArray(), SORTTPL_NAME(), splitAndMergeSeries(), transformAndMergeSeries(), transformFirstPathMember(), tryAggregateIntVars(), tryAggregateIntVarsExact(), visualizeSolutionGnuplot(), visualizeSolutionMatplotlib(), writeOpbObjective(), writeOpbRelevantAnds(), and xmlFreeAttr().

    ◆ w

    ◆ h

    ◆ minarea

    SCIP_Bool minarea

    whether we minimize the area (TRUE) or maximize the number of circles in the rectangle (FALSE)

    Definition at line 69 of file circlepacking.c.

    Referenced by runPacking(), setupProblem(), visualizeSolutionAscii(), visualizeSolutionGnuplot(), and visualizeSolutionMatplotlib().