MCPcopy Create free account
hub / github.com/avaneev/biteopt / generateSolPar

Method generateSolPar

biteopt.h:1548–1611  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1546 */
1547
1548 void generateSolPar( CBiteRnd& rnd )
1549 {
1550 DoEval = false;
1551 CBitePop* UpdPop;
1552
1553 if( UseParOpt == 1 )
1554 {
1555 // Re-assign optimizer 2 based on comparison of its
1556 // efficiency with optimizer 1.
1557
1558 UseParOpt = select( ParOpt2Sel, rnd );
1559 }
1560
1561 if( UseParOpt == 0 )
1562 {
1563 const int sc = ParOpt.optimize( rnd );
1564
1565 LastCosts = ParOpt.getLastCosts();
1566 LastValues = ParOpt.getLastValues();
1567
1568 if( sc != 0 )
1569 {
1570 UseParOpt = 1; // On stall, select optimizer 2.
1571
1572 if( sc > ParamCount * 64 )
1573 {
1574 ParOpt.init( rnd, getBestParams(), StartSD * 2.0 );
1575 ParOptPop.resetCurPopPos();
1576 }
1577 }
1578
1579 UpdPop = &ParOptPop;
1580 }
1581 else
1582 {
1583 const int sc = ParOpt2.optimize( rnd );
1584
1585 LastCosts = ParOpt2.getLastCosts();
1586 LastValues = ParOpt2.getLastValues();
1587
1588 if( sc != 0 )
1589 {
1590 UseParOpt = 0; // On stall, select optimizer 1.
1591
1592 if( sc > ParamCount * 128 )
1593 {
1594 ParOpt2.init( rnd, getBestParams(), StartSD * 4.0 );
1595 ParOpt2Pop.resetCurPopPos();
1596 }
1597 }
1598
1599 UpdPop = &ParOpt2Pop;
1600 }
1601
1602 int i;
1603
1604 for( i = 0; i < ParamCount; i++ )
1605 {

Callers

nothing calls this directly

Calls 6

resetCurPopPosMethod · 0.80
updatePopMethod · 0.80
optimizeMethod · 0.45
getLastCostsMethod · 0.45
getLastValuesMethod · 0.45
initMethod · 0.45

Tested by

no test coverage detected