|
|
Přičítá hodnocení za každý stav s konfigurací vzniklou úplným vylitím nebo naplněním kýblu
Odečítá hodnocení za každý kýbl se správným množstvím kapaliny
Odečítá hodnocení za každý kýbl, který je naplňen jako některý jiný v koncovém stavu
Odečítá hodnocení za každý kýbl, který lze do koncového stavu dostat jeho vylitím, naplněním a zejm. pokud je to možné udělat jeho přelitím do jiného nebo přelitím jiného do tohoto kýble
|
|
|
|
|
velikost instance | doba bruteforce | doba B&B | doba dynamického | doba heuristiky |
---|---|---|---|---|
4 | 0.022 | - | - | - |
10 | 1.220 | - | - | - |
15 | 57.02 | - | - | - |
20 | 1655 | 44 | 8.95 | 0.3124 |
22 | 6031 | 173 | 10.64 | 0.3561 |
25 | 49077 | 1314 | 14.82 | 0.4077 |
27 | 208311 | 5171 | 18.90 | 0.4452 |
30 | 1655937 | 41358 | 24.36 | 0.5202 |
32 | - | 163530 | 29.68 | 0.5546 |
35 | - | 1298233 | 36.40 | 0.6296 |
37 | - | 5215061 | 42.80 | 0.6733 |
40 | - | - | 52.18 | 0.7421 |
|
|
Obr 4.1.1 Citlivost algoritmů na max. váhu věci - instance velikosti 15 | Obr 4.1.2 Citlivost algoritmů na max. váhu věci - instance velikosti 35 |
Obr 4.2.1 Citlivost algoritmů na max. cenu věci - instance velikosti 15 | Obr 4.2.2 Citlivost algoritmů na max. cenu věci - instance velikosti 35 |
Obr 4.3.1 Citlivost algoritmů na měrnou kapacitu batohu - instance velikosti 15 | Obr 4.3.2 Citlivost algoritmů na měrnou kapacitu batohu - instance velikosti 35 |
Obr 4.4.1 Citlivost algoritmů na granularitu (velké věci) - instance velikosti 15 | Obr 4.4.2 Citlivost algoritmů na granularitu (velké věci) - instance velikosti 35 |
Obr 4.5.1 Citlivost algoritmů na granularitě (malé věci) - instance velikosti 15 | Obr 4.5.2 Citlivost algoritmů na granularitě (malé věci) - instance velikosti 35 |
|
|
|
|
Obr 5.1 Průběhy konvergence řešení pro některé známé instance - instance velikosti 40 | Obr 5.2 Průběhy chyb v závislosti na velikosti populace - instance velikosti 40 |
Obr 6.1 Průběhy konvergence řešení pro nevážený 3-SAT, 100 jedinců v populaci |
Obr 6.2 Průběhy konvergence řešení pro nevážený 3-SAT, 100 jedinců v populaci | Obr 6.3 Průběhy konvergence řešení pro nevážený 3-SAT, 100 jedinců v populaci |
Obr 6.2 Průběhy konvergence řešení pro nevážený 3-SAT, 200 jedinců v populaci | Obr 6.3 Průběhy konvergence řešení pro nevážený 3-SAT, 200 jedinců v populaci |
Obr 6.4 Hodnocení výsledků v závislosti na velikosti populace | Obr 6.5 Hodnocení výsledků v závislosti na počtu generací |
Obr 6.6 Hodnocení výsledků v závislosti na pravděpodobnosti křížení | Obr 6.7 Hodnocení výsledků v závislosti na pravděpodobnosti mutace |
Obr 6.8 Hodnocení výsledků v závislosti na algoritmu selekce | Obr 6.9 Hodnocení výsledků v závislosti na nahrazování populace |
$ ./sat-ga.exe <inst/weighted/vars_10.cnf -i=500 -v best fitness found: 54.72 phenotype: clauses satisfied: 43 (100.00%), sum of weights: 53 (55.79%) genotype: 0101001110 $ ./sat-ga.exe <inst/weighted/vars_30.cnf -v -i=1000 best fitness found: 161.86 phenotype: clauses satisfied: 129 (100.00%), sum of weights: 171 (51.35%) genotype: 101111100010111001000011001011 $ ./sat-ga.exe <inst/weighted/vars_50.cnf -v -i=2000 best fitness found: 275.39 phenotype: clauses satisfied: 215 (100.00%), sum of weights: 298 (56.44%) genotype: 10001111111100101010111111100010100111110010010011 $ ./sat-ga.exe <inst/weighted/vars_70.cnf -v -i=2000 best fitness found: 300.66 phenotype: clauses satisfied: 300 (99.67%), sum of weights: 501 (65.58%) genotype: 0101011101100111000011111001110001110110101011101101111111011100000110 $ ./sat-ga.exe <inst/weighted/vars_90.cnf -v -i=5000 best fitness found: 386.66 phenotype: clauses satisfied: 386 (99.74%), sum of weights: 639 (65.54%) genotype: 000011101111001001111101111100111111101010111100101111100101110011111011101111010011010001U prvních třech instancí jsme splnili všechny klauzule a konfrontace genotypu s váhami ze souborů dává představu o snaze optimalizovat součet vah. U 2 instancí s větším počtem proměnných se nám podařilo splnit všechny klauzule až na jednu pro 70 proměnných a 2 pro 90. Vzhledem k tomu, že nezafungovalo použití větší populace, spuštění jako Las Vegas, jiná selekce/nahrazování ani upravování jiných parametrů (pravděpodobnost mutace), je možné, že formule absolutně splnitelné nejsou (leč dokázat to lokální metodou nikdy nemůžeme). K optimalizaci součtu vah však dochází i tak (i když ne se stejným selekčním tlakem, jako pokud by se formuli podařilo splnit, protože v tom případě by získala tato složka fitness větší vliv). Celkově se zdá, že algoritmus poskytuje dobré výsledky. Bylo by zajímavé konfrontovat tyto konkrétní výsledky s někým, kdo řešil úlohu pomocí SA nebo Tabu search.
© 1997-2008 Jan Skalicky
cz (dot) skalda (at) seznam (dot) cz