| 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 | { |
nothing calls this directly
no test coverage detected