File dicebox.py changed (mode: 100644) (index 76afe27..e18d534) |
... |
... |
teďkom je to spíše jen krabička pro krámy |
13 |
13 |
|
|
14 |
14 |
import numpy as np |
import numpy as np |
15 |
15 |
from scipy import spatial |
from scipy import spatial |
|
16 |
|
from scipy import stats |
16 |
17 |
import pickle |
import pickle |
17 |
18 |
from . import IS_stat |
from . import IS_stat |
18 |
19 |
from .candybox import CandyBox |
from .candybox import CandyBox |
|
... |
... |
class Goal(DiceBox): |
1438 |
1439 |
# bx.judge_candidates(bx.candidates) |
# bx.judge_candidates(bx.candidates) |
1439 |
1440 |
# bx.assess_candidates(bx.candidates) |
# bx.assess_candidates(bx.candidates) |
1440 |
1441 |
|
|
1441 |
|
|
|
|
1442 |
|
#ё пранк вышел из под контроля |
|
1443 |
|
#č jako, byl to takovej vtipeček označit potenciál dvojitým e |
|
1444 |
|
#č stala se z toho ale konvence, ne že by všal byla ničím nepodložena |
|
1445 |
|
#č algorithmus se sestavá ze dvou částí: |
|
1446 |
|
#č tri - triangulace, |
|
1447 |
|
#č tree - stromovej cKDTree scipy algorithmus, který hledá nejblížší body |
|
1448 |
|
#č (nechám bokem otázku, že ten asi hned na začátku nepřepiná do banalního brute force) |
|
1449 |
|
#č Každopadně, davá smysl, že psee, chee atd. potenciály spadají do tree části. |
1442 |
1450 |
def assess_candidates(bx, candidates): |
def assess_candidates(bx, candidates): |
1443 |
1451 |
#č nikdo to nepouživá, ale se mi nějaký takový parameter libí. |
#č nikdo to nepouživá, ale se mi nějaký takový parameter libí. |
1444 |
1452 |
candidates.nsim_stamp = np.full(len(candidates), bx.nsim) |
candidates.nsim_stamp = np.full(len(candidates), bx.nsim) |
|
... |
... |
class Goal(DiceBox): |
1502 |
1510 |
volume = np.power(dd, bx.nvar) |
volume = np.power(dd, bx.nvar) |
1503 |
1511 |
candidates.psee = np.sqrt(pdf*PDF) * volume |
candidates.psee = np.sqrt(pdf*PDF) * volume |
1504 |
1512 |
candidates.q_psee = pdf**bx.q * PDF**(1-bx.q) * volume |
candidates.q_psee = pdf**bx.q * PDF**(1-bx.q) * volume |
|
1513 |
|
|
|
1514 |
|
|
|
1515 |
|
elif bx.potential in ('chee', 'chee2'): |
|
1516 |
|
PDFs = bx.sample_box.pdf(bx.tree_space) |
|
1517 |
|
# teď máme hustoty kandidatů a prislušejicích jím vzorků |
|
1518 |
|
PDF = PDFs[ii] |
|
1519 |
|
candidates.PDF = PDF |
|
1520 |
|
pdf = candidates.pdf(bx.tree_space) |
|
1521 |
|
candidates.Pdf = pdf #č pdf() je funkce f_modelu |
|
1522 |
|
|
|
1523 |
|
|
|
1524 |
|
tree_Pdf_gmean = np.sqrt(pdf*PDF) |
|
1525 |
|
volume = np.power(dd, bx.nvar) |
|
1526 |
|
candidates.psee = tree_Pdf_gmean * volume |
|
1527 |
|
|
|
1528 |
|
sum_squares = np.sqrt(np.sum(np.square(candidates.G), axis=1)) |
|
1529 |
|
chi2 = stats.chi2.pdf(sum_squares, bx.nvar) |
|
1530 |
|
candidates.chi2 = chi2 |
|
1531 |
|
candidates.chee2 = np.sqrt(chi2*PDF) * volume |
|
1532 |
|
|
|
1533 |
|
r = np.sqrt(sum_squares) |
|
1534 |
|
candidates.r = r |
|
1535 |
|
chi = stats.chi.pdf(r, bx.nvar) |
|
1536 |
|
candidates.chi = chi |
|
1537 |
|
candidates.chee = np.sqrt(chi*PDF) * volume |
1505 |
1538 |
|
|
1506 |
1539 |
|
|
1507 |
1540 |
|
|
File qt_gui/qt_dicebox.py changed (mode: 100644) (index f9f925f..9639b40) |
... |
... |
class GoalWidget(pg.parametertree.ParameterTree): |
45 |
45 |
'tip': "Only used with ksee potential"}) |
'tip': "Only used with ksee potential"}) |
46 |
46 |
params.append({'name': 'potential', 'type': 'list', 'value': 'q_psee', \ |
params.append({'name': 'potential', 'type': 'list', 'value': 'q_psee', \ |
47 |
47 |
'title': "potential", \ |
'title': "potential", \ |
48 |
|
'values': ['q_psee', 'psee', 'fee', 'fee2', 'ksee', 'dd']}) |
|
|
48 |
|
'values': ['q_psee', 'psee', 'fee', 'fee2', 'ksee', 'chee', 'chee2', 'dd']}) |
49 |
49 |
q = np.log(self.box.nvar) / self.box.nvar**2 |
q = np.log(self.box.nvar) / self.box.nvar**2 |
50 |
50 |
params.append({'name': 'q', 'type': 'float', \ |
params.append({'name': 'q', 'type': 'float', \ |
51 |
51 |
'title': "q", \ |
'title': "q", \ |