Subject | Hash | Author | Date (UTC) |
---|---|---|---|
dicebox: pochybná optimizace výběru kandidatů s použitím vlastního slovníku. Pořádně bych musel překopat celý DiceBox. | 0f30c4301a1f2b40556a9c84ee4b8c53638a6571 | I am | 2021-12-19 20:33:43 |
simplex: bottleneck optimization. Překopal jsem triangulation.update() | 3a110baebb237b3f99ec338c2b19f375cdcb5819 | Aleksei Gerasimov | 2021-12-13 15:31:38 |
convex_hull: improve orth estimator. Brat ndim nejbližších hyperrovin. Funguje dobře. Co vidím, numpy hlídá ortogonalitu, za mě cajk. | e29b374abde5e3e35dd22f327dc709927411a7b5 | I am | 2021-12-13 00:09:59 |
simplex: optimize simplex validation a little bit | 1473f72432e93bc349e34c1a7a8ed25ce96c08fd | I am | 2021-12-11 22:05:10 |
mplot: apply recommened tex settings | 48b0ce9931157494afd340d9bf02a763c75b65ec | I am | 2021-12-05 13:23:15 |
qt_gui.qt_plot: rework cubature selection | 17691c7770acdef9e862e21d62b4abbd4fee391c | Aleksei Gerasimov | 2021-11-30 13:36:34 |
qt_plot: import cubature schemes (regression fix) | e9fe073ebd2da613e834cda1fc154d8ed7455cad | Aleksei Gerasimov | 2021-11-30 12:30:48 |
qt_gui: show tree space instead of just (unclear even for me) "potential space" | 98b485ab34d7c47e3d4bcbb827589b86d0356538 | Aleksei Gerasimov | 2021-11-30 12:27:32 |
dicebox: print P coordinates of orphan candidates | ac5ea313e0e542436cb8685a2cff3e241bd57e59 | Aleksei Gerasimov | 2021-11-30 12:26:36 |
simplex: check cubatures for non finite values (nan) | e41838b1350e256e32ab2e6014c594bec873c973 | Aleksei Gerasimov | 2021-11-30 12:24:29 |
ghull: fix orth estimator for non-Gaussian distributions | ceae4981fa46cc770cdedb84bc59f4802a657364 | Aleksei Gerasimov | 2021-11-30 09:25:02 |
mplot.misc: enable latex | 633721276f8f61aa7f82b37443f5a304a85c2f84 | Aleksei Gerasimov | 2021-11-29 13:45:58 |
ghull: limit memory consuption to 1/10 of RAM | f5c173be56dff7811f799551d2261aac0f719c72 | I am | 2021-11-28 08:53:55 |
qt_gui: add missing comma | d56fa172be68d963105dd36c1cf0b1536fe6f080 | I am | 2021-11-28 08:14:29 |
mplot.mgraph: add outside line to tri_estimation_plot | de5fb9d7d6fe6fd930ec7541c82fd4cf2e7d5794 | Aleksei Gerasimov | 2021-11-25 14:13:35 |
mplot.mgraph: add tri_estimation_plot | eaaf410b48988c53ca31dee1203654dfef1adb06 | Aleksei Gerasimov | 2021-11-23 09:36:19 |
mplot.mgraph: do not use ax.sample_box | 94cee6efca47351093d49b5c801e410e1375a5c7 | Aleksei Gerasimov | 2021-11-16 17:12:08 |
testcases: sball testcase fix | 7878752fffa54bda772a5a6768bddbf05357ae73 | Aleksei Gerasimov | 2021-11-10 14:06:14 |
dicebox: replace tabs | afe3b91d0b1ee621f0e605a28b12405e15ce9a22 | I am | 2021-11-07 16:44:44 |
dicebox: prepare KickPointVoronoi | 9543e93d56d9724a91f1e2d443fdb8f4cbaf60e6 | Aleksei Gerasimov | 2021-11-04 14:13:23 |
File | Lines added | Lines deleted |
---|---|---|
dicebox.py | 44 | 10 |
File dicebox.py changed (mode: 100644) (index f78a440..b440c6f) | |||
... | ... | class GuessBox: | |
98 | 98 | else: | else: |
99 | 99 | print('GuessBox is in air mode') | print('GuessBox is in air mode') |
100 | 100 | ||
101 | |||
102 | |||
103 | #ё нам позарез нужен ещё один, свой собственный словник | ||
104 | class CacheDict(dict): | ||
105 | def __init__(self, potential): | ||
106 | super().__init__() | ||
107 | self.potential = potential | ||
108 | self.cache = dict() | ||
109 | |||
110 | |||
111 | def __setitem__(self, key, value): | ||
112 | super().__setitem__(key, value) | ||
113 | |||
114 | bids = getattr(value, self.potential) | ||
115 | if len(bids): | ||
116 | bid = np.nanmax(bids) | ||
117 | else: | ||
118 | bid = 0 | ||
119 | print("Cache", key, bid) | ||
120 | self.cache[key] = bid | ||
121 | |||
122 | def __delitem__(self, key): | ||
123 | super().__delitem__(key) | ||
124 | |||
125 | print("throw away", key) | ||
126 | self.cache.__delitem__(key) | ||
127 | |||
128 | def pop(self, *args): | ||
129 | |||
130 | print("throw away", args[0]) | ||
131 | self.cache.pop(*args) | ||
132 | |||
133 | return super().pop(*args) | ||
134 | |||
135 | |||
136 | |||
137 | |||
101 | 138 | #оӵ дӥсё | #оӵ дӥсё |
102 | 139 | class DiceBox: | class DiceBox: |
103 | 140 | #č kruci, totálně v tohlenstom ztracím | #č kruci, totálně v tohlenstom ztracím |
... | ... | class Chrt(DiceBox): | |
390 | 427 | bx._LHS_regen() | bx._LHS_regen() |
391 | 428 | ||
392 | 429 | # kind of interface to CandidatesWidget | # kind of interface to CandidatesWidget |
393 | bx.candidates_index = dict() | ||
430 | bx.candidates_index = CacheDict(bx.potential) | ||
394 | 431 | ||
395 | 432 | if bx.nsim > 0: | if bx.nsim > 0: |
396 | 433 | # needed for potential calculation | # needed for potential calculation |
... | ... | class Goal(DiceBox): | |
1384 | 1421 | def _handle_candidates(bx): | def _handle_candidates(bx): |
1385 | 1422 | #č A ještě... AUKCE, AUCTION | #č A ještě... AUKCE, AUCTION |
1386 | 1423 | # Election - selection | # Election - selection |
1387 | for candidates in bx.candidates_index.values(): | ||
1388 | bids = getattr(candidates, bx.potential) | ||
1389 | if len(bids): | ||
1390 | bid = np.nanmax(bids) | ||
1391 | # side effect | ||
1392 | if bid > bx.highest_bid: | ||
1393 | #č pokud neprovadíme optimalizaci v simplexech | ||
1394 | #č tak nám stačí jednoduše assessovat | ||
1395 | bx.assess_candidates(candidates) | ||
1424 | for key, cached_bid in bx.candidates_index.cache.items(): | ||
1425 | # side effect | ||
1426 | if cached_bid > bx.highest_bid: | ||
1427 | #č pokud neprovadíme optimalizaci v simplexech | ||
1428 | #č tak nám stačí jednoduše assessovat | ||
1429 | bx.assess_candidates(bx.candidates_index[key]) | ||
1396 | 1430 | ||
1397 | 1431 | # probably, we shouldn't purge user candidates (if they are) | # probably, we shouldn't purge user candidates (if they are) |
1398 | 1432 | # just every time evaluate them | # just every time evaluate them |