diff --git a/benchmarks/nb_gm_002_bm.py b/benchmarks/nb_gm_002_bm.py index 64dc45e..c8af543 100644 --- a/benchmarks/nb_gm_002_bm.py +++ b/benchmarks/nb_gm_002_bm.py @@ -71,9 +71,35 @@ plt.savefig(f'results/{figure_title}_targets_ratio.png', bbox_inches='tight') plt.show() + +import time +import numpy as np +import pandas as pd + +import benchmarks.common as common + +def profile(): + from generators.nb_gm_002 import SequenceGenerator + + res = [] + + for s in range(common.sample_size): + trials = np.random.randint(common.trials_range[0], common.trials_range[1]) + targets = int(trials / 3) + lures = int(targets / 6) # tl_ratio = 2.0 + n = np.random.randint(2, 8) + gen = SequenceGenerator(common.choices, n) + st = time.time() + seq = gen.generate(trials, targets, int(lures/2), int(lures/2)) + st = time.time() - st + t, lu = common.count_targets_and_lures(seq, n) + skewed = common.skewness(seq, common.choices) + res.append(['nb_gm_004', n, trials, st, t, lu, skewed, ''.join(seq)]) + print(f"sequence #{s+1} generated") + res_df = pd.DataFrame(res, columns=['alg', 'n', 'trials', 'time', 'targets', 'lures', 'skewed', 'sequence']) + res_df.to_csv('benchmarks/results/nb_gm_002_profile.csv', sep=',', encoding='utf-8') + if __name__ == '__main__': alg = 'nb_gm_002' fn = f'results/{alg}_{n}back.csv' - benchmark(fn) - # skewness_diagram(fn, alg) - targets_ratio_diagram(fn, alg) + profile() diff --git a/benchmarks/nb_gm_002_bm.py b/benchmarks/nb_gm_002_bm.py index 64dc45e..c8af543 100644 --- a/benchmarks/nb_gm_002_bm.py +++ b/benchmarks/nb_gm_002_bm.py @@ -71,9 +71,35 @@ plt.savefig(f'results/{figure_title}_targets_ratio.png', bbox_inches='tight') plt.show() + +import time +import numpy as np +import pandas as pd + +import benchmarks.common as common + +def profile(): + from generators.nb_gm_002 import SequenceGenerator + + res = [] + + for s in range(common.sample_size): + trials = np.random.randint(common.trials_range[0], common.trials_range[1]) + targets = int(trials / 3) + lures = int(targets / 6) # tl_ratio = 2.0 + n = np.random.randint(2, 8) + gen = SequenceGenerator(common.choices, n) + st = time.time() + seq = gen.generate(trials, targets, int(lures/2), int(lures/2)) + st = time.time() - st + t, lu = common.count_targets_and_lures(seq, n) + skewed = common.skewness(seq, common.choices) + res.append(['nb_gm_004', n, trials, st, t, lu, skewed, ''.join(seq)]) + print(f"sequence #{s+1} generated") + res_df = pd.DataFrame(res, columns=['alg', 'n', 'trials', 'time', 'targets', 'lures', 'skewed', 'sequence']) + res_df.to_csv('benchmarks/results/nb_gm_002_profile.csv', sep=',', encoding='utf-8') + if __name__ == '__main__': alg = 'nb_gm_002' fn = f'results/{alg}_{n}back.csv' - benchmark(fn) - # skewness_diagram(fn, alg) - targets_ratio_diagram(fn, alg) + profile() diff --git a/benchmarks/results/2v4_time_trials.png b/benchmarks/results/2v4_time_trials.png new file mode 100644 index 0000000..e28fdcb --- /dev/null +++ b/benchmarks/results/2v4_time_trials.png Binary files differ diff --git a/benchmarks/nb_gm_002_bm.py b/benchmarks/nb_gm_002_bm.py index 64dc45e..c8af543 100644 --- a/benchmarks/nb_gm_002_bm.py +++ b/benchmarks/nb_gm_002_bm.py @@ -71,9 +71,35 @@ plt.savefig(f'results/{figure_title}_targets_ratio.png', bbox_inches='tight') plt.show() + +import time +import numpy as np +import pandas as pd + +import benchmarks.common as common + +def profile(): + from generators.nb_gm_002 import SequenceGenerator + + res = [] + + for s in range(common.sample_size): + trials = np.random.randint(common.trials_range[0], common.trials_range[1]) + targets = int(trials / 3) + lures = int(targets / 6) # tl_ratio = 2.0 + n = np.random.randint(2, 8) + gen = SequenceGenerator(common.choices, n) + st = time.time() + seq = gen.generate(trials, targets, int(lures/2), int(lures/2)) + st = time.time() - st + t, lu = common.count_targets_and_lures(seq, n) + skewed = common.skewness(seq, common.choices) + res.append(['nb_gm_004', n, trials, st, t, lu, skewed, ''.join(seq)]) + print(f"sequence #{s+1} generated") + res_df = pd.DataFrame(res, columns=['alg', 'n', 'trials', 'time', 'targets', 'lures', 'skewed', 'sequence']) + res_df.to_csv('benchmarks/results/nb_gm_002_profile.csv', sep=',', encoding='utf-8') + if __name__ == '__main__': alg = 'nb_gm_002' fn = f'results/{alg}_{n}back.csv' - benchmark(fn) - # skewness_diagram(fn, alg) - targets_ratio_diagram(fn, alg) + profile() diff --git a/benchmarks/results/2v4_time_trials.png b/benchmarks/results/2v4_time_trials.png new file mode 100644 index 0000000..e28fdcb --- /dev/null +++ b/benchmarks/results/2v4_time_trials.png Binary files differ diff --git a/benchmarks/results/2vs4_skewness.png b/benchmarks/results/2vs4_skewness.png new file mode 100644 index 0000000..93743c5 --- /dev/null +++ b/benchmarks/results/2vs4_skewness.png Binary files differ diff --git a/benchmarks/nb_gm_002_bm.py b/benchmarks/nb_gm_002_bm.py index 64dc45e..c8af543 100644 --- a/benchmarks/nb_gm_002_bm.py +++ b/benchmarks/nb_gm_002_bm.py @@ -71,9 +71,35 @@ plt.savefig(f'results/{figure_title}_targets_ratio.png', bbox_inches='tight') plt.show() + +import time +import numpy as np +import pandas as pd + +import benchmarks.common as common + +def profile(): + from generators.nb_gm_002 import SequenceGenerator + + res = [] + + for s in range(common.sample_size): + trials = np.random.randint(common.trials_range[0], common.trials_range[1]) + targets = int(trials / 3) + lures = int(targets / 6) # tl_ratio = 2.0 + n = np.random.randint(2, 8) + gen = SequenceGenerator(common.choices, n) + st = time.time() + seq = gen.generate(trials, targets, int(lures/2), int(lures/2)) + st = time.time() - st + t, lu = common.count_targets_and_lures(seq, n) + skewed = common.skewness(seq, common.choices) + res.append(['nb_gm_004', n, trials, st, t, lu, skewed, ''.join(seq)]) + print(f"sequence #{s+1} generated") + res_df = pd.DataFrame(res, columns=['alg', 'n', 'trials', 'time', 'targets', 'lures', 'skewed', 'sequence']) + res_df.to_csv('benchmarks/results/nb_gm_002_profile.csv', sep=',', encoding='utf-8') + if __name__ == '__main__': alg = 'nb_gm_002' fn = f'results/{alg}_{n}back.csv' - benchmark(fn) - # skewness_diagram(fn, alg) - targets_ratio_diagram(fn, alg) + profile() diff --git a/benchmarks/results/2v4_time_trials.png b/benchmarks/results/2v4_time_trials.png new file mode 100644 index 0000000..e28fdcb --- /dev/null +++ b/benchmarks/results/2v4_time_trials.png Binary files differ diff --git a/benchmarks/results/2vs4_skewness.png b/benchmarks/results/2vs4_skewness.png new file mode 100644 index 0000000..93743c5 --- /dev/null +++ b/benchmarks/results/2vs4_skewness.png Binary files differ diff --git a/benchmarks/results/2vs4_time_n.png b/benchmarks/results/2vs4_time_n.png new file mode 100644 index 0000000..93ffae9 --- /dev/null +++ b/benchmarks/results/2vs4_time_n.png Binary files differ diff --git a/benchmarks/nb_gm_002_bm.py b/benchmarks/nb_gm_002_bm.py index 64dc45e..c8af543 100644 --- a/benchmarks/nb_gm_002_bm.py +++ b/benchmarks/nb_gm_002_bm.py @@ -71,9 +71,35 @@ plt.savefig(f'results/{figure_title}_targets_ratio.png', bbox_inches='tight') plt.show() + +import time +import numpy as np +import pandas as pd + +import benchmarks.common as common + +def profile(): + from generators.nb_gm_002 import SequenceGenerator + + res = [] + + for s in range(common.sample_size): + trials = np.random.randint(common.trials_range[0], common.trials_range[1]) + targets = int(trials / 3) + lures = int(targets / 6) # tl_ratio = 2.0 + n = np.random.randint(2, 8) + gen = SequenceGenerator(common.choices, n) + st = time.time() + seq = gen.generate(trials, targets, int(lures/2), int(lures/2)) + st = time.time() - st + t, lu = common.count_targets_and_lures(seq, n) + skewed = common.skewness(seq, common.choices) + res.append(['nb_gm_004', n, trials, st, t, lu, skewed, ''.join(seq)]) + print(f"sequence #{s+1} generated") + res_df = pd.DataFrame(res, columns=['alg', 'n', 'trials', 'time', 'targets', 'lures', 'skewed', 'sequence']) + res_df.to_csv('benchmarks/results/nb_gm_002_profile.csv', sep=',', encoding='utf-8') + if __name__ == '__main__': alg = 'nb_gm_002' fn = f'results/{alg}_{n}back.csv' - benchmark(fn) - # skewness_diagram(fn, alg) - targets_ratio_diagram(fn, alg) + profile() diff --git a/benchmarks/results/2v4_time_trials.png b/benchmarks/results/2v4_time_trials.png new file mode 100644 index 0000000..e28fdcb --- /dev/null +++ b/benchmarks/results/2v4_time_trials.png Binary files differ diff --git a/benchmarks/results/2vs4_skewness.png b/benchmarks/results/2vs4_skewness.png new file mode 100644 index 0000000..93743c5 --- /dev/null +++ b/benchmarks/results/2vs4_skewness.png Binary files differ diff --git a/benchmarks/results/2vs4_time_n.png b/benchmarks/results/2vs4_time_n.png new file mode 100644 index 0000000..93ffae9 --- /dev/null +++ b/benchmarks/results/2vs4_time_n.png Binary files differ diff --git a/benchmarks/results/2vs4_tlratio.png b/benchmarks/results/2vs4_tlratio.png new file mode 100644 index 0000000..274ede9 --- /dev/null +++ b/benchmarks/results/2vs4_tlratio.png Binary files differ diff --git a/benchmarks/nb_gm_002_bm.py b/benchmarks/nb_gm_002_bm.py index 64dc45e..c8af543 100644 --- a/benchmarks/nb_gm_002_bm.py +++ b/benchmarks/nb_gm_002_bm.py @@ -71,9 +71,35 @@ plt.savefig(f'results/{figure_title}_targets_ratio.png', bbox_inches='tight') plt.show() + +import time +import numpy as np +import pandas as pd + +import benchmarks.common as common + +def profile(): + from generators.nb_gm_002 import SequenceGenerator + + res = [] + + for s in range(common.sample_size): + trials = np.random.randint(common.trials_range[0], common.trials_range[1]) + targets = int(trials / 3) + lures = int(targets / 6) # tl_ratio = 2.0 + n = np.random.randint(2, 8) + gen = SequenceGenerator(common.choices, n) + st = time.time() + seq = gen.generate(trials, targets, int(lures/2), int(lures/2)) + st = time.time() - st + t, lu = common.count_targets_and_lures(seq, n) + skewed = common.skewness(seq, common.choices) + res.append(['nb_gm_004', n, trials, st, t, lu, skewed, ''.join(seq)]) + print(f"sequence #{s+1} generated") + res_df = pd.DataFrame(res, columns=['alg', 'n', 'trials', 'time', 'targets', 'lures', 'skewed', 'sequence']) + res_df.to_csv('benchmarks/results/nb_gm_002_profile.csv', sep=',', encoding='utf-8') + if __name__ == '__main__': alg = 'nb_gm_002' fn = f'results/{alg}_{n}back.csv' - benchmark(fn) - # skewness_diagram(fn, alg) - targets_ratio_diagram(fn, alg) + profile() diff --git a/benchmarks/results/2v4_time_trials.png b/benchmarks/results/2v4_time_trials.png new file mode 100644 index 0000000..e28fdcb --- /dev/null +++ b/benchmarks/results/2v4_time_trials.png Binary files differ diff --git a/benchmarks/results/2vs4_skewness.png b/benchmarks/results/2vs4_skewness.png new file mode 100644 index 0000000..93743c5 --- /dev/null +++ b/benchmarks/results/2vs4_skewness.png Binary files differ diff --git a/benchmarks/results/2vs4_time_n.png b/benchmarks/results/2vs4_time_n.png new file mode 100644 index 0000000..93ffae9 --- /dev/null +++ b/benchmarks/results/2vs4_time_n.png Binary files differ diff --git a/benchmarks/results/2vs4_tlratio.png b/benchmarks/results/2vs4_tlratio.png new file mode 100644 index 0000000..274ede9 --- /dev/null +++ b/benchmarks/results/2vs4_tlratio.png Binary files differ diff --git a/benchmarks/results/nb_gm_002_profile.csv b/benchmarks/results/nb_gm_002_profile.csv new file mode 100644 index 0000000..da0f34f --- /dev/null +++ b/benchmarks/results/nb_gm_002_profile.csv @@ -0,0 +1,101 @@ +,alg,n,trials,time,targets,lures,skewed,sequence +0,nb_gm_002,6,11,0.00013589859008789062,3,0,False,DADEBCDAFFB +1,nb_gm_002,3,32,0.0003619194030761719,10,0,False,EAEBDEBDBBECDDDEBDABAAFEAECABFAD +2,nb_gm_002,4,17,0.0002689361572265625,5,0,False,DCEAEFEBCFABCBAFA +3,nb_gm_002,5,11,0.00011086463928222656,3,0,True,EEBFAEECACE +4,nb_gm_002,5,34,0.0003609657287597656,11,0,False,EFFABFCDAEFCFBDACFBDEFDDDBCCEDEECE +5,nb_gm_002,5,44,0.00046896934509277344,14,1,False,DFADDECDEBCCBEDCCDACCCBADABFEFABFAADFBACDFDA +6,nb_gm_002,4,39,0.00039887428283691406,13,1,False,DBCDDFAFCFACCAAEFECFFBCBFBAAEEDDAEDDCEF +7,nb_gm_002,3,52,0.000720977783203125,17,1,True,DBAFBFDAFDFCBACCADCADFDCCCFCCDDCBDBDDEDCCACEECAFBFFE +8,nb_gm_002,6,53,0.0013470649719238281,17,2,False,EFACADDAAEAFDAEFCDDEDFBDDAEBAFEECFAEBEBFAEEFAFEEECADC +9,nb_gm_002,6,16,0.00037479400634765625,5,0,True,EEAAFEEFACCEBFAB +10,nb_gm_002,7,61,0.0010979175567626953,20,1,False,BADBEDEBFDFDFCBFDFCFABAEFCFAFAFDCFCBAFDEBAFEBDFBCBCAEEAFCFDDF +11,nb_gm_002,2,31,0.00043487548828125,10,0,True,FDFAECDCDCACABFFAFEFBFAFDBAEFCA +12,nb_gm_002,2,42,0.0005271434783935547,14,1,True,DBFBFECBBBABEBDFCCBCADDDDAFCFFFBFDADEDFBEB +13,nb_gm_002,2,33,0.00045013427734375,11,0,True,CCCCBDADAECDCDCBAFACDEDFDBBBFCDBB +14,nb_gm_002,2,49,0.0006201267242431641,16,2,True,CFEFADEEEEEECEAADDFECDBDDCFCEAEFAFEFEACAFFDFEFEDB +15,nb_gm_002,2,31,0.000415802001953125,10,0,False,BFBFEEBAFCFAFACEFAADACACDCACEDB +16,nb_gm_002,3,47,0.0006060600280761719,15,1,False,AEABECFFDBDDAAEFFEDBEDECBACEECEEAEFBEFBBCBBFFFE +17,nb_gm_002,3,26,0.0007929801940917969,8,0,True,ACBACECCEBCECFDDBDCCFABEBB +18,nb_gm_002,5,63,0.001611948013305664,21,2,True,BCABDCCCFFEFCAFADCFBAFAFAFFAACDAAABBAEBDFEFCDFEFCAFECCAEABFAFCC +19,nb_gm_002,7,50,0.0005712509155273438,16,1,False,DCCAABEDACEAEEAFEEAEAFBEFABDCCBDBDECCBEFAEDCEEFEBA +20,nb_gm_002,7,53,0.0013239383697509766,17,1,False,BDADEFAEEFCEAEDBFCFAEDFCCADCCFECAECBFAEFEBDACFFBBFACD +21,nb_gm_002,3,43,0.0005009174346923828,14,2,False,CEDABDEBFCAECDFFFAFBAFBFDBDFDDFAEFBCCAECFEC +22,nb_gm_002,5,18,0.0004649162292480469,6,0,False,ABFCEDCECDDFACDDFB +23,nb_gm_002,3,10,0.0002720355987548828,3,0,True,DEEDBCDCFD +24,nb_gm_002,7,50,0.0005559921264648438,18,1,True,BECFCBABABBCBFFABBDCEBBBFDABBBEADCCBCFFDEFFDBFDEFF +25,nb_gm_002,4,16,0.00018310546875,5,0,True,BFADFDDEFDDFFADA +26,nb_gm_002,7,63,0.0006709098815917969,22,1,False,FDFFFCDFCDEFADBEFEFECCCACAEFCCABBFACDADBCCFDAFECAEAAECDAEABECDC +27,nb_gm_002,2,28,0.0003261566162109375,9,0,True,ADCBCACAEFDCDCBBABAFDCBCBFDC +28,nb_gm_002,7,35,0.0003800392150878906,11,0,False,BDCABDDBDEFDCFAEECDEFECAADEFEDDBDAF +29,nb_gm_002,5,15,0.00014209747314453125,5,0,True,FCFFEEAFFECACDE +30,nb_gm_002,6,60,0.0006458759307861328,20,1,False,DBFBECCBCFFCABCBEDBBCDEDCDFDCACBFACBEACAFFEDDEBEEDDEAAECAEFD +31,nb_gm_002,5,34,0.00037026405334472656,11,0,False,BCEFDCFEFEEFABEEDDBAEDAFFBBECABFEC +32,nb_gm_002,5,63,0.0006792545318603516,21,2,False,FECACDDCBCBFCBFDFEAAEEEAFCFAAECBBAEBABAADACCACABFDAABFEFFDFACFC +33,nb_gm_002,3,58,0.0006279945373535156,19,1,False,EDBDDADCBDABCAFCFDDFCDFCAFBDEBAABDEDDCCECEEFEFEACBACDFEAEA +34,nb_gm_002,2,10,0.0001220703125,3,0,True,EAEBECCACF +35,nb_gm_002,7,17,0.00016617774963378906,5,0,False,ADFDEACACFEEAFDCB +36,nb_gm_002,6,61,0.0006701946258544922,20,1,False,DEEACEFEBCEFBECEBFBEDAAAACBAFBADAAEEFDBDBFDDBDBDDDBFFCADABFCA +37,nb_gm_002,4,56,0.0005986690521240234,18,1,False,DAADDEDDAEDAACBAAEAEECADEDAFFDFBBDBDBFBECBECFFCCDFACEBAE +38,nb_gm_002,6,11,0.00010180473327636719,3,0,False,CDBABBCDFAF +39,nb_gm_002,3,46,0.0004971027374267578,16,1,False,CEDCAFCDFDEECAACAAFAAFAABBEFBECDADDEBBAAAACBAA +40,nb_gm_002,5,19,0.00019097328186035156,7,0,True,DFCAEDEEAEDFEFCDEEB +41,nb_gm_002,5,60,0.0006420612335205078,20,1,False,DEACCBFBDFEFCDFCAADFEFAFFEFBBBFADABFADFBCEDABCDFEBDECDCFCCBC +42,nb_gm_002,4,20,0.00021409988403320312,6,0,False,DDBFADCEDDBECEBEFAAE +43,nb_gm_002,2,42,0.00045800209045410156,15,1,False,AFADCEFFBAACAAEAEACFCFCDDEDADFBCECDCFBFDFD +44,nb_gm_002,2,30,0.00035190582275390625,10,0,False,ADACFFDFCFDADFDFAEBCBAACFCEDED +45,nb_gm_002,4,23,0.0002701282501220703,7,0,True,DDADDDFEFDAADDADFAACFED +46,nb_gm_002,5,22,0.00023698806762695312,7,0,False,EBBBFADBDFABACCAEACEAD +47,nb_gm_002,7,30,0.0003120899200439453,10,0,False,EFABBEAEFAFDCBDFDFAFBECCCACBEC +48,nb_gm_002,4,50,0.0005471706390380859,16,1,True,BBDDADDBEDDEFFDAFFFAEBADEFDFEADEAADFAFCFEDCEECFFDA +49,nb_gm_002,6,64,0.0007898807525634766,21,1,False,EDBDEDAFEDBACBABCAAAFBDFBAFBDADAFDDAFAFDDCBEFCFEBADCEDBAFFEBADDD +50,nb_gm_002,6,45,0.0005559921264648438,15,1,True,FADFAFFDECDFFAAAFBFAAAFFCDDFFACEDBFDDECAFCDFB +51,nb_gm_002,4,10,9.989738464355469e-05,3,0,True,EFFAADFAAB +52,nb_gm_002,2,51,0.0005540847778320312,17,1,False,BDBFEEEFECDCBAEFFCCACABEDABEEFDFDBBFBCBFBEBEBCBCCDC +53,nb_gm_002,3,20,0.00038504600524902344,6,0,True,DDAFCEFCAADEEFEEAECA +54,nb_gm_002,4,43,0.0004611015319824219,14,1,False,FBDABAFABFBDBFDFBABEABCDFCCEFBCAFDCECDCDDDC +55,nb_gm_002,3,52,0.0006678104400634766,17,1,True,ADEAEFBEFDAFEABECEEBACBDEFDEDDABEEFAEBAAACABEAEEFEDB +56,nb_gm_002,5,38,0.00038504600524902344,12,1,True,CDBAEBBECECBAFBEBCBBCCCADCCCACEACFDEAB +57,nb_gm_002,2,12,0.00014090538024902344,4,0,True,DEDADFBFAEDE +58,nb_gm_002,4,12,0.00011324882507324219,4,0,False,ACBBEFBDEFBA +59,nb_gm_002,5,43,0.0005619525909423828,14,1,False,BDCABACAEFFCDECFEDBADDDFADDDBAFDCBDFCFDDEDC +60,nb_gm_002,5,29,0.0003631114959716797,9,0,True,BBCAABDADFBDADCEFABCDCADDAAFD +61,nb_gm_002,3,53,0.0006711483001708984,17,1,False,CEACACFDFEDEEDAEDEEAACDDDCEDCDFCEFEEFAEBDFBFCDABDEBAA +62,nb_gm_002,4,54,0.0006229877471923828,18,1,True,ADAFFDACFDFDBDCCBFACBDACFDEFFDADEDCBDFBFCBAABFDFCFCFCF +63,nb_gm_002,5,60,0.0007681846618652344,20,1,False,BFCCBEACCEEABCAEDBDEEBBAEBFCABBEBFCBAACEBBECECCADFBAAFFEABCF +64,nb_gm_002,4,14,0.00017595291137695312,4,0,True,AFEDDEBAEABAEA +65,nb_gm_002,6,48,0.0005950927734375,16,1,True,FAFEDBABCBBBFBCBBBDCCECBEECDBDDAEDBDDCCAADDBDACF +66,nb_gm_002,5,25,0.0003132820129394531,8,0,True,EFFADEFBABFFEFEDFDDDCFDAD +67,nb_gm_002,6,47,0.0006089210510253906,15,1,False,AFEEDFAFFEAAADFDCABCAEBDFCDCBAFCDAECDCAEBCBCABC +68,nb_gm_002,3,17,0.00021886825561523438,5,0,False,CFFBFFBAEACEADBCF +69,nb_gm_002,7,37,0.00044989585876464844,12,2,True,EFDAFEEEDEABFDDEEBBFBAABBAFEAABBEBEBC +70,nb_gm_002,6,62,0.0008101463317871094,22,0,False,FECDAFFACDCDFADDCFCEEDBFBEDFCFBFAFBBEEACBBACBCBCABBCDFAFEDECBE +71,nb_gm_002,4,44,0.00054931640625,14,1,False,FBCCFBCCFBDAEBDBBDACBAFDAFECBFEDCFAFAFCDACAA +72,nb_gm_002,2,57,0.0007417201995849609,19,2,False,CCFEBBDDDFFFAFCEAECEBEEBEBCBEDFACADABEBCCFCBCBDBAEDCBCBCF +73,nb_gm_002,4,48,0.0005822181701660156,16,2,False,FABADABBAAEAFCFDDCDCCBDFABDEEEDFFDDAFDCCFACCFECA +74,nb_gm_002,5,35,0.0004601478576660156,11,0,True,FDFDBFBFCADDCDECAADEBBAFFDBFFDDBFCD +75,nb_gm_002,2,13,0.0002009868621826172,4,0,True,EBDDAEBFBFBAB +76,nb_gm_002,6,42,0.0005300045013427734,14,2,True,ABCFDCADEEDAABEDDDEDCDCDBDBDDDCDCADACBCEFE +77,nb_gm_002,3,34,0.00043511390686035156,11,0,False,FAFDBDDEDDFADCAEADECDCAECFBBDEBDFB +78,nb_gm_002,2,28,0.0004279613494873047,9,0,False,BABADDEDEDBACACBEEEADCDFBEDC +79,nb_gm_002,4,23,0.00030493736267089844,7,0,False,DDBABEFAEDBADDFCEBFCEAF +80,nb_gm_002,6,53,0.0006649494171142578,17,1,False,EFEECFEFBFCFBBEABBCEEABFAEEBBDDEEDDAEEEFBCFDFFDBEDAAD +81,nb_gm_002,3,61,0.0007090568542480469,22,1,False,EEEEBEAEEAFFACFEFEEDEFBCFAEFBDFBDACFEDBECBEDBDBFDEABEBBDBBCCA +82,nb_gm_002,5,58,0.0006530284881591797,20,2,False,DFFBADFFFCBEBDCBCBCFBAAAECECFDADCDDEECECCEAEFBEAEFBEEECCED +83,nb_gm_002,7,11,9.107589721679688e-05,3,0,False,FCEBFCDFAEB +84,nb_gm_002,4,41,0.0004858970642089844,13,1,False,EBBAFFBADCCDBEEBAEEADEEDCEECCEEFDECEBEDAF +85,nb_gm_002,6,22,0.00023603439331054688,7,0,True,AFDDAAADADEBAFEDEADFDD +86,nb_gm_002,7,49,0.0005178451538085938,16,2,False,DBEFDEDDEEECCDEFECCFEFCECDDCBCFFBAFBDBFBDFEBBFBDE +87,nb_gm_002,3,64,0.0008380413055419922,21,1,True,FEAEDEEDEDAABBDDDDAAEFFEDFEDAEAEEAFEAFBFBBEBDECEEBAEADFFBACAACEC +88,nb_gm_002,5,11,0.0002498626708984375,3,0,True,CBBBCCABACA +89,nb_gm_002,7,56,0.0007159709930419922,19,1,False,EFBFBEDEFDDBCBEADFBAEBBEBCFEBDACEDCFDCCECCFDEFFCAFDECDAA +90,nb_gm_002,6,54,0.0006489753723144531,18,2,False,BCACBEBDFCDABDEDBABCFADACCFDFBEBABFAEBBEDAFCFFDACCFAEA +91,nb_gm_002,3,26,0.0003719329833984375,9,0,True,BBEBFAFFAECDEBAFBAEDEEFFEF +92,nb_gm_002,7,53,0.001650094985961914,18,0,False,BDAFBFECDFBEFEFABBFFDDCFEFDDDBFBFBAFFFEFADFDAEFACCBAE +93,nb_gm_002,6,26,0.0002880096435546875,8,0,False,AEFFAEABDDABBFDDFDDEBDCDDE +94,nb_gm_002,7,36,0.00036406517028808594,12,2,False,EBEECEFDCEEDFDBCBCAFDBCBEBBFBCEBBDFD +95,nb_gm_002,4,20,0.0002219676971435547,6,0,True,DCAADEDEEBAEABEEDDEE +96,nb_gm_002,3,12,0.0003161430358886719,4,0,True,CFEFFEFFCACE +97,nb_gm_002,3,17,0.00019812583923339844,5,0,False,BDABCEBDEFDFBBFCA +98,nb_gm_002,5,35,0.0004279613494873047,11,0,False,FCEBFECEBCDAEFDDBFAADFFEDCBCEFCBEFF +99,nb_gm_002,2,21,0.0002372264862060547,7,0,True,BFFCFAAABABAEEBFBEACA diff --git a/benchmarks/nb_gm_002_bm.py b/benchmarks/nb_gm_002_bm.py index 64dc45e..c8af543 100644 --- a/benchmarks/nb_gm_002_bm.py +++ b/benchmarks/nb_gm_002_bm.py @@ -71,9 +71,35 @@ plt.savefig(f'results/{figure_title}_targets_ratio.png', bbox_inches='tight') plt.show() + +import time +import numpy as np +import pandas as pd + +import benchmarks.common as common + +def profile(): + from generators.nb_gm_002 import SequenceGenerator + + res = [] + + for s in range(common.sample_size): + trials = np.random.randint(common.trials_range[0], common.trials_range[1]) + targets = int(trials / 3) + lures = int(targets / 6) # tl_ratio = 2.0 + n = np.random.randint(2, 8) + gen = SequenceGenerator(common.choices, n) + st = time.time() + seq = gen.generate(trials, targets, int(lures/2), int(lures/2)) + st = time.time() - st + t, lu = common.count_targets_and_lures(seq, n) + skewed = common.skewness(seq, common.choices) + res.append(['nb_gm_004', n, trials, st, t, lu, skewed, ''.join(seq)]) + print(f"sequence #{s+1} generated") + res_df = pd.DataFrame(res, columns=['alg', 'n', 'trials', 'time', 'targets', 'lures', 'skewed', 'sequence']) + res_df.to_csv('benchmarks/results/nb_gm_002_profile.csv', sep=',', encoding='utf-8') + if __name__ == '__main__': alg = 'nb_gm_002' fn = f'results/{alg}_{n}back.csv' - benchmark(fn) - # skewness_diagram(fn, alg) - targets_ratio_diagram(fn, alg) + profile() diff --git a/benchmarks/results/2v4_time_trials.png b/benchmarks/results/2v4_time_trials.png new file mode 100644 index 0000000..e28fdcb --- /dev/null +++ b/benchmarks/results/2v4_time_trials.png Binary files differ diff --git a/benchmarks/results/2vs4_skewness.png b/benchmarks/results/2vs4_skewness.png new file mode 100644 index 0000000..93743c5 --- /dev/null +++ b/benchmarks/results/2vs4_skewness.png Binary files differ diff --git a/benchmarks/results/2vs4_time_n.png b/benchmarks/results/2vs4_time_n.png new file mode 100644 index 0000000..93ffae9 --- /dev/null +++ b/benchmarks/results/2vs4_time_n.png Binary files differ diff --git a/benchmarks/results/2vs4_tlratio.png b/benchmarks/results/2vs4_tlratio.png new file mode 100644 index 0000000..274ede9 --- /dev/null +++ b/benchmarks/results/2vs4_tlratio.png Binary files differ diff --git a/benchmarks/results/nb_gm_002_profile.csv b/benchmarks/results/nb_gm_002_profile.csv new file mode 100644 index 0000000..da0f34f --- /dev/null +++ b/benchmarks/results/nb_gm_002_profile.csv @@ -0,0 +1,101 @@ +,alg,n,trials,time,targets,lures,skewed,sequence +0,nb_gm_002,6,11,0.00013589859008789062,3,0,False,DADEBCDAFFB +1,nb_gm_002,3,32,0.0003619194030761719,10,0,False,EAEBDEBDBBECDDDEBDABAAFEAECABFAD +2,nb_gm_002,4,17,0.0002689361572265625,5,0,False,DCEAEFEBCFABCBAFA +3,nb_gm_002,5,11,0.00011086463928222656,3,0,True,EEBFAEECACE +4,nb_gm_002,5,34,0.0003609657287597656,11,0,False,EFFABFCDAEFCFBDACFBDEFDDDBCCEDEECE +5,nb_gm_002,5,44,0.00046896934509277344,14,1,False,DFADDECDEBCCBEDCCDACCCBADABFEFABFAADFBACDFDA +6,nb_gm_002,4,39,0.00039887428283691406,13,1,False,DBCDDFAFCFACCAAEFECFFBCBFBAAEEDDAEDDCEF +7,nb_gm_002,3,52,0.000720977783203125,17,1,True,DBAFBFDAFDFCBACCADCADFDCCCFCCDDCBDBDDEDCCACEECAFBFFE +8,nb_gm_002,6,53,0.0013470649719238281,17,2,False,EFACADDAAEAFDAEFCDDEDFBDDAEBAFEECFAEBEBFAEEFAFEEECADC +9,nb_gm_002,6,16,0.00037479400634765625,5,0,True,EEAAFEEFACCEBFAB +10,nb_gm_002,7,61,0.0010979175567626953,20,1,False,BADBEDEBFDFDFCBFDFCFABAEFCFAFAFDCFCBAFDEBAFEBDFBCBCAEEAFCFDDF +11,nb_gm_002,2,31,0.00043487548828125,10,0,True,FDFAECDCDCACABFFAFEFBFAFDBAEFCA +12,nb_gm_002,2,42,0.0005271434783935547,14,1,True,DBFBFECBBBABEBDFCCBCADDDDAFCFFFBFDADEDFBEB +13,nb_gm_002,2,33,0.00045013427734375,11,0,True,CCCCBDADAECDCDCBAFACDEDFDBBBFCDBB +14,nb_gm_002,2,49,0.0006201267242431641,16,2,True,CFEFADEEEEEECEAADDFECDBDDCFCEAEFAFEFEACAFFDFEFEDB +15,nb_gm_002,2,31,0.000415802001953125,10,0,False,BFBFEEBAFCFAFACEFAADACACDCACEDB +16,nb_gm_002,3,47,0.0006060600280761719,15,1,False,AEABECFFDBDDAAEFFEDBEDECBACEECEEAEFBEFBBCBBFFFE +17,nb_gm_002,3,26,0.0007929801940917969,8,0,True,ACBACECCEBCECFDDBDCCFABEBB +18,nb_gm_002,5,63,0.001611948013305664,21,2,True,BCABDCCCFFEFCAFADCFBAFAFAFFAACDAAABBAEBDFEFCDFEFCAFECCAEABFAFCC +19,nb_gm_002,7,50,0.0005712509155273438,16,1,False,DCCAABEDACEAEEAFEEAEAFBEFABDCCBDBDECCBEFAEDCEEFEBA +20,nb_gm_002,7,53,0.0013239383697509766,17,1,False,BDADEFAEEFCEAEDBFCFAEDFCCADCCFECAECBFAEFEBDACFFBBFACD +21,nb_gm_002,3,43,0.0005009174346923828,14,2,False,CEDABDEBFCAECDFFFAFBAFBFDBDFDDFAEFBCCAECFEC +22,nb_gm_002,5,18,0.0004649162292480469,6,0,False,ABFCEDCECDDFACDDFB +23,nb_gm_002,3,10,0.0002720355987548828,3,0,True,DEEDBCDCFD +24,nb_gm_002,7,50,0.0005559921264648438,18,1,True,BECFCBABABBCBFFABBDCEBBBFDABBBEADCCBCFFDEFFDBFDEFF +25,nb_gm_002,4,16,0.00018310546875,5,0,True,BFADFDDEFDDFFADA +26,nb_gm_002,7,63,0.0006709098815917969,22,1,False,FDFFFCDFCDEFADBEFEFECCCACAEFCCABBFACDADBCCFDAFECAEAAECDAEABECDC +27,nb_gm_002,2,28,0.0003261566162109375,9,0,True,ADCBCACAEFDCDCBBABAFDCBCBFDC +28,nb_gm_002,7,35,0.0003800392150878906,11,0,False,BDCABDDBDEFDCFAEECDEFECAADEFEDDBDAF +29,nb_gm_002,5,15,0.00014209747314453125,5,0,True,FCFFEEAFFECACDE +30,nb_gm_002,6,60,0.0006458759307861328,20,1,False,DBFBECCBCFFCABCBEDBBCDEDCDFDCACBFACBEACAFFEDDEBEEDDEAAECAEFD +31,nb_gm_002,5,34,0.00037026405334472656,11,0,False,BCEFDCFEFEEFABEEDDBAEDAFFBBECABFEC +32,nb_gm_002,5,63,0.0006792545318603516,21,2,False,FECACDDCBCBFCBFDFEAAEEEAFCFAAECBBAEBABAADACCACABFDAABFEFFDFACFC +33,nb_gm_002,3,58,0.0006279945373535156,19,1,False,EDBDDADCBDABCAFCFDDFCDFCAFBDEBAABDEDDCCECEEFEFEACBACDFEAEA +34,nb_gm_002,2,10,0.0001220703125,3,0,True,EAEBECCACF +35,nb_gm_002,7,17,0.00016617774963378906,5,0,False,ADFDEACACFEEAFDCB +36,nb_gm_002,6,61,0.0006701946258544922,20,1,False,DEEACEFEBCEFBECEBFBEDAAAACBAFBADAAEEFDBDBFDDBDBDDDBFFCADABFCA +37,nb_gm_002,4,56,0.0005986690521240234,18,1,False,DAADDEDDAEDAACBAAEAEECADEDAFFDFBBDBDBFBECBECFFCCDFACEBAE +38,nb_gm_002,6,11,0.00010180473327636719,3,0,False,CDBABBCDFAF +39,nb_gm_002,3,46,0.0004971027374267578,16,1,False,CEDCAFCDFDEECAACAAFAAFAABBEFBECDADDEBBAAAACBAA +40,nb_gm_002,5,19,0.00019097328186035156,7,0,True,DFCAEDEEAEDFEFCDEEB +41,nb_gm_002,5,60,0.0006420612335205078,20,1,False,DEACCBFBDFEFCDFCAADFEFAFFEFBBBFADABFADFBCEDABCDFEBDECDCFCCBC +42,nb_gm_002,4,20,0.00021409988403320312,6,0,False,DDBFADCEDDBECEBEFAAE +43,nb_gm_002,2,42,0.00045800209045410156,15,1,False,AFADCEFFBAACAAEAEACFCFCDDEDADFBCECDCFBFDFD +44,nb_gm_002,2,30,0.00035190582275390625,10,0,False,ADACFFDFCFDADFDFAEBCBAACFCEDED +45,nb_gm_002,4,23,0.0002701282501220703,7,0,True,DDADDDFEFDAADDADFAACFED +46,nb_gm_002,5,22,0.00023698806762695312,7,0,False,EBBBFADBDFABACCAEACEAD +47,nb_gm_002,7,30,0.0003120899200439453,10,0,False,EFABBEAEFAFDCBDFDFAFBECCCACBEC +48,nb_gm_002,4,50,0.0005471706390380859,16,1,True,BBDDADDBEDDEFFDAFFFAEBADEFDFEADEAADFAFCFEDCEECFFDA +49,nb_gm_002,6,64,0.0007898807525634766,21,1,False,EDBDEDAFEDBACBABCAAAFBDFBAFBDADAFDDAFAFDDCBEFCFEBADCEDBAFFEBADDD +50,nb_gm_002,6,45,0.0005559921264648438,15,1,True,FADFAFFDECDFFAAAFBFAAAFFCDDFFACEDBFDDECAFCDFB +51,nb_gm_002,4,10,9.989738464355469e-05,3,0,True,EFFAADFAAB +52,nb_gm_002,2,51,0.0005540847778320312,17,1,False,BDBFEEEFECDCBAEFFCCACABEDABEEFDFDBBFBCBFBEBEBCBCCDC +53,nb_gm_002,3,20,0.00038504600524902344,6,0,True,DDAFCEFCAADEEFEEAECA +54,nb_gm_002,4,43,0.0004611015319824219,14,1,False,FBDABAFABFBDBFDFBABEABCDFCCEFBCAFDCECDCDDDC +55,nb_gm_002,3,52,0.0006678104400634766,17,1,True,ADEAEFBEFDAFEABECEEBACBDEFDEDDABEEFAEBAAACABEAEEFEDB +56,nb_gm_002,5,38,0.00038504600524902344,12,1,True,CDBAEBBECECBAFBEBCBBCCCADCCCACEACFDEAB +57,nb_gm_002,2,12,0.00014090538024902344,4,0,True,DEDADFBFAEDE +58,nb_gm_002,4,12,0.00011324882507324219,4,0,False,ACBBEFBDEFBA +59,nb_gm_002,5,43,0.0005619525909423828,14,1,False,BDCABACAEFFCDECFEDBADDDFADDDBAFDCBDFCFDDEDC +60,nb_gm_002,5,29,0.0003631114959716797,9,0,True,BBCAABDADFBDADCEFABCDCADDAAFD +61,nb_gm_002,3,53,0.0006711483001708984,17,1,False,CEACACFDFEDEEDAEDEEAACDDDCEDCDFCEFEEFAEBDFBFCDABDEBAA +62,nb_gm_002,4,54,0.0006229877471923828,18,1,True,ADAFFDACFDFDBDCCBFACBDACFDEFFDADEDCBDFBFCBAABFDFCFCFCF +63,nb_gm_002,5,60,0.0007681846618652344,20,1,False,BFCCBEACCEEABCAEDBDEEBBAEBFCABBEBFCBAACEBBECECCADFBAAFFEABCF +64,nb_gm_002,4,14,0.00017595291137695312,4,0,True,AFEDDEBAEABAEA +65,nb_gm_002,6,48,0.0005950927734375,16,1,True,FAFEDBABCBBBFBCBBBDCCECBEECDBDDAEDBDDCCAADDBDACF +66,nb_gm_002,5,25,0.0003132820129394531,8,0,True,EFFADEFBABFFEFEDFDDDCFDAD +67,nb_gm_002,6,47,0.0006089210510253906,15,1,False,AFEEDFAFFEAAADFDCABCAEBDFCDCBAFCDAECDCAEBCBCABC +68,nb_gm_002,3,17,0.00021886825561523438,5,0,False,CFFBFFBAEACEADBCF +69,nb_gm_002,7,37,0.00044989585876464844,12,2,True,EFDAFEEEDEABFDDEEBBFBAABBAFEAABBEBEBC +70,nb_gm_002,6,62,0.0008101463317871094,22,0,False,FECDAFFACDCDFADDCFCEEDBFBEDFCFBFAFBBEEACBBACBCBCABBCDFAFEDECBE +71,nb_gm_002,4,44,0.00054931640625,14,1,False,FBCCFBCCFBDAEBDBBDACBAFDAFECBFEDCFAFAFCDACAA +72,nb_gm_002,2,57,0.0007417201995849609,19,2,False,CCFEBBDDDFFFAFCEAECEBEEBEBCBEDFACADABEBCCFCBCBDBAEDCBCBCF +73,nb_gm_002,4,48,0.0005822181701660156,16,2,False,FABADABBAAEAFCFDDCDCCBDFABDEEEDFFDDAFDCCFACCFECA +74,nb_gm_002,5,35,0.0004601478576660156,11,0,True,FDFDBFBFCADDCDECAADEBBAFFDBFFDDBFCD +75,nb_gm_002,2,13,0.0002009868621826172,4,0,True,EBDDAEBFBFBAB +76,nb_gm_002,6,42,0.0005300045013427734,14,2,True,ABCFDCADEEDAABEDDDEDCDCDBDBDDDCDCADACBCEFE +77,nb_gm_002,3,34,0.00043511390686035156,11,0,False,FAFDBDDEDDFADCAEADECDCAECFBBDEBDFB +78,nb_gm_002,2,28,0.0004279613494873047,9,0,False,BABADDEDEDBACACBEEEADCDFBEDC +79,nb_gm_002,4,23,0.00030493736267089844,7,0,False,DDBABEFAEDBADDFCEBFCEAF +80,nb_gm_002,6,53,0.0006649494171142578,17,1,False,EFEECFEFBFCFBBEABBCEEABFAEEBBDDEEDDAEEEFBCFDFFDBEDAAD +81,nb_gm_002,3,61,0.0007090568542480469,22,1,False,EEEEBEAEEAFFACFEFEEDEFBCFAEFBDFBDACFEDBECBEDBDBFDEABEBBDBBCCA +82,nb_gm_002,5,58,0.0006530284881591797,20,2,False,DFFBADFFFCBEBDCBCBCFBAAAECECFDADCDDEECECCEAEFBEAEFBEEECCED +83,nb_gm_002,7,11,9.107589721679688e-05,3,0,False,FCEBFCDFAEB +84,nb_gm_002,4,41,0.0004858970642089844,13,1,False,EBBAFFBADCCDBEEBAEEADEEDCEECCEEFDECEBEDAF +85,nb_gm_002,6,22,0.00023603439331054688,7,0,True,AFDDAAADADEBAFEDEADFDD +86,nb_gm_002,7,49,0.0005178451538085938,16,2,False,DBEFDEDDEEECCDEFECCFEFCECDDCBCFFBAFBDBFBDFEBBFBDE +87,nb_gm_002,3,64,0.0008380413055419922,21,1,True,FEAEDEEDEDAABBDDDDAAEFFEDFEDAEAEEAFEAFBFBBEBDECEEBAEADFFBACAACEC +88,nb_gm_002,5,11,0.0002498626708984375,3,0,True,CBBBCCABACA +89,nb_gm_002,7,56,0.0007159709930419922,19,1,False,EFBFBEDEFDDBCBEADFBAEBBEBCFEBDACEDCFDCCECCFDEFFCAFDECDAA +90,nb_gm_002,6,54,0.0006489753723144531,18,2,False,BCACBEBDFCDABDEDBABCFADACCFDFBEBABFAEBBEDAFCFFDACCFAEA +91,nb_gm_002,3,26,0.0003719329833984375,9,0,True,BBEBFAFFAECDEBAFBAEDEEFFEF +92,nb_gm_002,7,53,0.001650094985961914,18,0,False,BDAFBFECDFBEFEFABBFFDDCFEFDDDBFBFBAFFFEFADFDAEFACCBAE +93,nb_gm_002,6,26,0.0002880096435546875,8,0,False,AEFFAEABDDABBFDDFDDEBDCDDE +94,nb_gm_002,7,36,0.00036406517028808594,12,2,False,EBEECEFDCEEDFDBCBCAFDBCBEBBFBCEBBDFD +95,nb_gm_002,4,20,0.0002219676971435547,6,0,True,DCAADEDEEBAEABEEDDEE +96,nb_gm_002,3,12,0.0003161430358886719,4,0,True,CFEFFEFFCACE +97,nb_gm_002,3,17,0.00019812583923339844,5,0,False,BDABCEBDEFDFBBFCA +98,nb_gm_002,5,35,0.0004279613494873047,11,0,False,FCEBFECEBCDAEFDDBFAADFFEDCBCEFCBEFF +99,nb_gm_002,2,21,0.0002372264862060547,7,0,True,BFFCFAAABABAEEBFBEACA diff --git a/benchmarks/results/skewness_002_vs_004.png b/benchmarks/results/skewness_002_vs_004.png new file mode 100644 index 0000000..93743c5 --- /dev/null +++ b/benchmarks/results/skewness_002_vs_004.png Binary files differ diff --git a/benchmarks/nb_gm_002_bm.py b/benchmarks/nb_gm_002_bm.py index 64dc45e..c8af543 100644 --- a/benchmarks/nb_gm_002_bm.py +++ b/benchmarks/nb_gm_002_bm.py @@ -71,9 +71,35 @@ plt.savefig(f'results/{figure_title}_targets_ratio.png', bbox_inches='tight') plt.show() + +import time +import numpy as np +import pandas as pd + +import benchmarks.common as common + +def profile(): + from generators.nb_gm_002 import SequenceGenerator + + res = [] + + for s in range(common.sample_size): + trials = np.random.randint(common.trials_range[0], common.trials_range[1]) + targets = int(trials / 3) + lures = int(targets / 6) # tl_ratio = 2.0 + n = np.random.randint(2, 8) + gen = SequenceGenerator(common.choices, n) + st = time.time() + seq = gen.generate(trials, targets, int(lures/2), int(lures/2)) + st = time.time() - st + t, lu = common.count_targets_and_lures(seq, n) + skewed = common.skewness(seq, common.choices) + res.append(['nb_gm_004', n, trials, st, t, lu, skewed, ''.join(seq)]) + print(f"sequence #{s+1} generated") + res_df = pd.DataFrame(res, columns=['alg', 'n', 'trials', 'time', 'targets', 'lures', 'skewed', 'sequence']) + res_df.to_csv('benchmarks/results/nb_gm_002_profile.csv', sep=',', encoding='utf-8') + if __name__ == '__main__': alg = 'nb_gm_002' fn = f'results/{alg}_{n}back.csv' - benchmark(fn) - # skewness_diagram(fn, alg) - targets_ratio_diagram(fn, alg) + profile() diff --git a/benchmarks/results/2v4_time_trials.png b/benchmarks/results/2v4_time_trials.png new file mode 100644 index 0000000..e28fdcb --- /dev/null +++ b/benchmarks/results/2v4_time_trials.png Binary files differ diff --git a/benchmarks/results/2vs4_skewness.png b/benchmarks/results/2vs4_skewness.png new file mode 100644 index 0000000..93743c5 --- /dev/null +++ b/benchmarks/results/2vs4_skewness.png Binary files differ diff --git a/benchmarks/results/2vs4_time_n.png b/benchmarks/results/2vs4_time_n.png new file mode 100644 index 0000000..93ffae9 --- /dev/null +++ b/benchmarks/results/2vs4_time_n.png Binary files differ diff --git a/benchmarks/results/2vs4_tlratio.png b/benchmarks/results/2vs4_tlratio.png new file mode 100644 index 0000000..274ede9 --- /dev/null +++ b/benchmarks/results/2vs4_tlratio.png Binary files differ diff --git a/benchmarks/results/nb_gm_002_profile.csv b/benchmarks/results/nb_gm_002_profile.csv new file mode 100644 index 0000000..da0f34f --- /dev/null +++ b/benchmarks/results/nb_gm_002_profile.csv @@ -0,0 +1,101 @@ +,alg,n,trials,time,targets,lures,skewed,sequence +0,nb_gm_002,6,11,0.00013589859008789062,3,0,False,DADEBCDAFFB +1,nb_gm_002,3,32,0.0003619194030761719,10,0,False,EAEBDEBDBBECDDDEBDABAAFEAECABFAD +2,nb_gm_002,4,17,0.0002689361572265625,5,0,False,DCEAEFEBCFABCBAFA +3,nb_gm_002,5,11,0.00011086463928222656,3,0,True,EEBFAEECACE +4,nb_gm_002,5,34,0.0003609657287597656,11,0,False,EFFABFCDAEFCFBDACFBDEFDDDBCCEDEECE +5,nb_gm_002,5,44,0.00046896934509277344,14,1,False,DFADDECDEBCCBEDCCDACCCBADABFEFABFAADFBACDFDA +6,nb_gm_002,4,39,0.00039887428283691406,13,1,False,DBCDDFAFCFACCAAEFECFFBCBFBAAEEDDAEDDCEF +7,nb_gm_002,3,52,0.000720977783203125,17,1,True,DBAFBFDAFDFCBACCADCADFDCCCFCCDDCBDBDDEDCCACEECAFBFFE +8,nb_gm_002,6,53,0.0013470649719238281,17,2,False,EFACADDAAEAFDAEFCDDEDFBDDAEBAFEECFAEBEBFAEEFAFEEECADC +9,nb_gm_002,6,16,0.00037479400634765625,5,0,True,EEAAFEEFACCEBFAB +10,nb_gm_002,7,61,0.0010979175567626953,20,1,False,BADBEDEBFDFDFCBFDFCFABAEFCFAFAFDCFCBAFDEBAFEBDFBCBCAEEAFCFDDF +11,nb_gm_002,2,31,0.00043487548828125,10,0,True,FDFAECDCDCACABFFAFEFBFAFDBAEFCA +12,nb_gm_002,2,42,0.0005271434783935547,14,1,True,DBFBFECBBBABEBDFCCBCADDDDAFCFFFBFDADEDFBEB +13,nb_gm_002,2,33,0.00045013427734375,11,0,True,CCCCBDADAECDCDCBAFACDEDFDBBBFCDBB +14,nb_gm_002,2,49,0.0006201267242431641,16,2,True,CFEFADEEEEEECEAADDFECDBDDCFCEAEFAFEFEACAFFDFEFEDB +15,nb_gm_002,2,31,0.000415802001953125,10,0,False,BFBFEEBAFCFAFACEFAADACACDCACEDB +16,nb_gm_002,3,47,0.0006060600280761719,15,1,False,AEABECFFDBDDAAEFFEDBEDECBACEECEEAEFBEFBBCBBFFFE +17,nb_gm_002,3,26,0.0007929801940917969,8,0,True,ACBACECCEBCECFDDBDCCFABEBB +18,nb_gm_002,5,63,0.001611948013305664,21,2,True,BCABDCCCFFEFCAFADCFBAFAFAFFAACDAAABBAEBDFEFCDFEFCAFECCAEABFAFCC +19,nb_gm_002,7,50,0.0005712509155273438,16,1,False,DCCAABEDACEAEEAFEEAEAFBEFABDCCBDBDECCBEFAEDCEEFEBA +20,nb_gm_002,7,53,0.0013239383697509766,17,1,False,BDADEFAEEFCEAEDBFCFAEDFCCADCCFECAECBFAEFEBDACFFBBFACD +21,nb_gm_002,3,43,0.0005009174346923828,14,2,False,CEDABDEBFCAECDFFFAFBAFBFDBDFDDFAEFBCCAECFEC +22,nb_gm_002,5,18,0.0004649162292480469,6,0,False,ABFCEDCECDDFACDDFB +23,nb_gm_002,3,10,0.0002720355987548828,3,0,True,DEEDBCDCFD +24,nb_gm_002,7,50,0.0005559921264648438,18,1,True,BECFCBABABBCBFFABBDCEBBBFDABBBEADCCBCFFDEFFDBFDEFF +25,nb_gm_002,4,16,0.00018310546875,5,0,True,BFADFDDEFDDFFADA +26,nb_gm_002,7,63,0.0006709098815917969,22,1,False,FDFFFCDFCDEFADBEFEFECCCACAEFCCABBFACDADBCCFDAFECAEAAECDAEABECDC +27,nb_gm_002,2,28,0.0003261566162109375,9,0,True,ADCBCACAEFDCDCBBABAFDCBCBFDC +28,nb_gm_002,7,35,0.0003800392150878906,11,0,False,BDCABDDBDEFDCFAEECDEFECAADEFEDDBDAF +29,nb_gm_002,5,15,0.00014209747314453125,5,0,True,FCFFEEAFFECACDE +30,nb_gm_002,6,60,0.0006458759307861328,20,1,False,DBFBECCBCFFCABCBEDBBCDEDCDFDCACBFACBEACAFFEDDEBEEDDEAAECAEFD +31,nb_gm_002,5,34,0.00037026405334472656,11,0,False,BCEFDCFEFEEFABEEDDBAEDAFFBBECABFEC +32,nb_gm_002,5,63,0.0006792545318603516,21,2,False,FECACDDCBCBFCBFDFEAAEEEAFCFAAECBBAEBABAADACCACABFDAABFEFFDFACFC +33,nb_gm_002,3,58,0.0006279945373535156,19,1,False,EDBDDADCBDABCAFCFDDFCDFCAFBDEBAABDEDDCCECEEFEFEACBACDFEAEA +34,nb_gm_002,2,10,0.0001220703125,3,0,True,EAEBECCACF +35,nb_gm_002,7,17,0.00016617774963378906,5,0,False,ADFDEACACFEEAFDCB +36,nb_gm_002,6,61,0.0006701946258544922,20,1,False,DEEACEFEBCEFBECEBFBEDAAAACBAFBADAAEEFDBDBFDDBDBDDDBFFCADABFCA +37,nb_gm_002,4,56,0.0005986690521240234,18,1,False,DAADDEDDAEDAACBAAEAEECADEDAFFDFBBDBDBFBECBECFFCCDFACEBAE +38,nb_gm_002,6,11,0.00010180473327636719,3,0,False,CDBABBCDFAF +39,nb_gm_002,3,46,0.0004971027374267578,16,1,False,CEDCAFCDFDEECAACAAFAAFAABBEFBECDADDEBBAAAACBAA +40,nb_gm_002,5,19,0.00019097328186035156,7,0,True,DFCAEDEEAEDFEFCDEEB +41,nb_gm_002,5,60,0.0006420612335205078,20,1,False,DEACCBFBDFEFCDFCAADFEFAFFEFBBBFADABFADFBCEDABCDFEBDECDCFCCBC +42,nb_gm_002,4,20,0.00021409988403320312,6,0,False,DDBFADCEDDBECEBEFAAE +43,nb_gm_002,2,42,0.00045800209045410156,15,1,False,AFADCEFFBAACAAEAEACFCFCDDEDADFBCECDCFBFDFD +44,nb_gm_002,2,30,0.00035190582275390625,10,0,False,ADACFFDFCFDADFDFAEBCBAACFCEDED +45,nb_gm_002,4,23,0.0002701282501220703,7,0,True,DDADDDFEFDAADDADFAACFED +46,nb_gm_002,5,22,0.00023698806762695312,7,0,False,EBBBFADBDFABACCAEACEAD +47,nb_gm_002,7,30,0.0003120899200439453,10,0,False,EFABBEAEFAFDCBDFDFAFBECCCACBEC +48,nb_gm_002,4,50,0.0005471706390380859,16,1,True,BBDDADDBEDDEFFDAFFFAEBADEFDFEADEAADFAFCFEDCEECFFDA +49,nb_gm_002,6,64,0.0007898807525634766,21,1,False,EDBDEDAFEDBACBABCAAAFBDFBAFBDADAFDDAFAFDDCBEFCFEBADCEDBAFFEBADDD +50,nb_gm_002,6,45,0.0005559921264648438,15,1,True,FADFAFFDECDFFAAAFBFAAAFFCDDFFACEDBFDDECAFCDFB +51,nb_gm_002,4,10,9.989738464355469e-05,3,0,True,EFFAADFAAB +52,nb_gm_002,2,51,0.0005540847778320312,17,1,False,BDBFEEEFECDCBAEFFCCACABEDABEEFDFDBBFBCBFBEBEBCBCCDC +53,nb_gm_002,3,20,0.00038504600524902344,6,0,True,DDAFCEFCAADEEFEEAECA +54,nb_gm_002,4,43,0.0004611015319824219,14,1,False,FBDABAFABFBDBFDFBABEABCDFCCEFBCAFDCECDCDDDC +55,nb_gm_002,3,52,0.0006678104400634766,17,1,True,ADEAEFBEFDAFEABECEEBACBDEFDEDDABEEFAEBAAACABEAEEFEDB +56,nb_gm_002,5,38,0.00038504600524902344,12,1,True,CDBAEBBECECBAFBEBCBBCCCADCCCACEACFDEAB +57,nb_gm_002,2,12,0.00014090538024902344,4,0,True,DEDADFBFAEDE +58,nb_gm_002,4,12,0.00011324882507324219,4,0,False,ACBBEFBDEFBA +59,nb_gm_002,5,43,0.0005619525909423828,14,1,False,BDCABACAEFFCDECFEDBADDDFADDDBAFDCBDFCFDDEDC +60,nb_gm_002,5,29,0.0003631114959716797,9,0,True,BBCAABDADFBDADCEFABCDCADDAAFD +61,nb_gm_002,3,53,0.0006711483001708984,17,1,False,CEACACFDFEDEEDAEDEEAACDDDCEDCDFCEFEEFAEBDFBFCDABDEBAA +62,nb_gm_002,4,54,0.0006229877471923828,18,1,True,ADAFFDACFDFDBDCCBFACBDACFDEFFDADEDCBDFBFCBAABFDFCFCFCF +63,nb_gm_002,5,60,0.0007681846618652344,20,1,False,BFCCBEACCEEABCAEDBDEEBBAEBFCABBEBFCBAACEBBECECCADFBAAFFEABCF +64,nb_gm_002,4,14,0.00017595291137695312,4,0,True,AFEDDEBAEABAEA +65,nb_gm_002,6,48,0.0005950927734375,16,1,True,FAFEDBABCBBBFBCBBBDCCECBEECDBDDAEDBDDCCAADDBDACF +66,nb_gm_002,5,25,0.0003132820129394531,8,0,True,EFFADEFBABFFEFEDFDDDCFDAD +67,nb_gm_002,6,47,0.0006089210510253906,15,1,False,AFEEDFAFFEAAADFDCABCAEBDFCDCBAFCDAECDCAEBCBCABC +68,nb_gm_002,3,17,0.00021886825561523438,5,0,False,CFFBFFBAEACEADBCF +69,nb_gm_002,7,37,0.00044989585876464844,12,2,True,EFDAFEEEDEABFDDEEBBFBAABBAFEAABBEBEBC +70,nb_gm_002,6,62,0.0008101463317871094,22,0,False,FECDAFFACDCDFADDCFCEEDBFBEDFCFBFAFBBEEACBBACBCBCABBCDFAFEDECBE +71,nb_gm_002,4,44,0.00054931640625,14,1,False,FBCCFBCCFBDAEBDBBDACBAFDAFECBFEDCFAFAFCDACAA +72,nb_gm_002,2,57,0.0007417201995849609,19,2,False,CCFEBBDDDFFFAFCEAECEBEEBEBCBEDFACADABEBCCFCBCBDBAEDCBCBCF +73,nb_gm_002,4,48,0.0005822181701660156,16,2,False,FABADABBAAEAFCFDDCDCCBDFABDEEEDFFDDAFDCCFACCFECA +74,nb_gm_002,5,35,0.0004601478576660156,11,0,True,FDFDBFBFCADDCDECAADEBBAFFDBFFDDBFCD +75,nb_gm_002,2,13,0.0002009868621826172,4,0,True,EBDDAEBFBFBAB +76,nb_gm_002,6,42,0.0005300045013427734,14,2,True,ABCFDCADEEDAABEDDDEDCDCDBDBDDDCDCADACBCEFE +77,nb_gm_002,3,34,0.00043511390686035156,11,0,False,FAFDBDDEDDFADCAEADECDCAECFBBDEBDFB +78,nb_gm_002,2,28,0.0004279613494873047,9,0,False,BABADDEDEDBACACBEEEADCDFBEDC +79,nb_gm_002,4,23,0.00030493736267089844,7,0,False,DDBABEFAEDBADDFCEBFCEAF +80,nb_gm_002,6,53,0.0006649494171142578,17,1,False,EFEECFEFBFCFBBEABBCEEABFAEEBBDDEEDDAEEEFBCFDFFDBEDAAD +81,nb_gm_002,3,61,0.0007090568542480469,22,1,False,EEEEBEAEEAFFACFEFEEDEFBCFAEFBDFBDACFEDBECBEDBDBFDEABEBBDBBCCA +82,nb_gm_002,5,58,0.0006530284881591797,20,2,False,DFFBADFFFCBEBDCBCBCFBAAAECECFDADCDDEECECCEAEFBEAEFBEEECCED +83,nb_gm_002,7,11,9.107589721679688e-05,3,0,False,FCEBFCDFAEB +84,nb_gm_002,4,41,0.0004858970642089844,13,1,False,EBBAFFBADCCDBEEBAEEADEEDCEECCEEFDECEBEDAF +85,nb_gm_002,6,22,0.00023603439331054688,7,0,True,AFDDAAADADEBAFEDEADFDD +86,nb_gm_002,7,49,0.0005178451538085938,16,2,False,DBEFDEDDEEECCDEFECCFEFCECDDCBCFFBAFBDBFBDFEBBFBDE +87,nb_gm_002,3,64,0.0008380413055419922,21,1,True,FEAEDEEDEDAABBDDDDAAEFFEDFEDAEAEEAFEAFBFBBEBDECEEBAEADFFBACAACEC +88,nb_gm_002,5,11,0.0002498626708984375,3,0,True,CBBBCCABACA +89,nb_gm_002,7,56,0.0007159709930419922,19,1,False,EFBFBEDEFDDBCBEADFBAEBBEBCFEBDACEDCFDCCECCFDEFFCAFDECDAA +90,nb_gm_002,6,54,0.0006489753723144531,18,2,False,BCACBEBDFCDABDEDBABCFADACCFDFBEBABFAEBBEDAFCFFDACCFAEA +91,nb_gm_002,3,26,0.0003719329833984375,9,0,True,BBEBFAFFAECDEBAFBAEDEEFFEF +92,nb_gm_002,7,53,0.001650094985961914,18,0,False,BDAFBFECDFBEFEFABBFFDDCFEFDDDBFBFBAFFFEFADFDAEFACCBAE +93,nb_gm_002,6,26,0.0002880096435546875,8,0,False,AEFFAEABDDABBFDDFDDEBDCDDE +94,nb_gm_002,7,36,0.00036406517028808594,12,2,False,EBEECEFDCEEDFDBCBCAFDBCBEBBFBCEBBDFD +95,nb_gm_002,4,20,0.0002219676971435547,6,0,True,DCAADEDEEBAEABEEDDEE +96,nb_gm_002,3,12,0.0003161430358886719,4,0,True,CFEFFEFFCACE +97,nb_gm_002,3,17,0.00019812583923339844,5,0,False,BDABCEBDEFDFBBFCA +98,nb_gm_002,5,35,0.0004279613494873047,11,0,False,FCEBFECEBCDAEFDDBFAADFFEDCBCEFCBEFF +99,nb_gm_002,2,21,0.0002372264862060547,7,0,True,BFFCFAAABABAEEBFBEACA diff --git a/benchmarks/results/skewness_002_vs_004.png b/benchmarks/results/skewness_002_vs_004.png new file mode 100644 index 0000000..93743c5 --- /dev/null +++ b/benchmarks/results/skewness_002_vs_004.png Binary files differ diff --git a/benchmarks/results/time_002_vs_004.png b/benchmarks/results/time_002_vs_004.png new file mode 100644 index 0000000..93ffae9 --- /dev/null +++ b/benchmarks/results/time_002_vs_004.png Binary files differ diff --git a/benchmarks/nb_gm_002_bm.py b/benchmarks/nb_gm_002_bm.py index 64dc45e..c8af543 100644 --- a/benchmarks/nb_gm_002_bm.py +++ b/benchmarks/nb_gm_002_bm.py @@ -71,9 +71,35 @@ plt.savefig(f'results/{figure_title}_targets_ratio.png', bbox_inches='tight') plt.show() + +import time +import numpy as np +import pandas as pd + +import benchmarks.common as common + +def profile(): + from generators.nb_gm_002 import SequenceGenerator + + res = [] + + for s in range(common.sample_size): + trials = np.random.randint(common.trials_range[0], common.trials_range[1]) + targets = int(trials / 3) + lures = int(targets / 6) # tl_ratio = 2.0 + n = np.random.randint(2, 8) + gen = SequenceGenerator(common.choices, n) + st = time.time() + seq = gen.generate(trials, targets, int(lures/2), int(lures/2)) + st = time.time() - st + t, lu = common.count_targets_and_lures(seq, n) + skewed = common.skewness(seq, common.choices) + res.append(['nb_gm_004', n, trials, st, t, lu, skewed, ''.join(seq)]) + print(f"sequence #{s+1} generated") + res_df = pd.DataFrame(res, columns=['alg', 'n', 'trials', 'time', 'targets', 'lures', 'skewed', 'sequence']) + res_df.to_csv('benchmarks/results/nb_gm_002_profile.csv', sep=',', encoding='utf-8') + if __name__ == '__main__': alg = 'nb_gm_002' fn = f'results/{alg}_{n}back.csv' - benchmark(fn) - # skewness_diagram(fn, alg) - targets_ratio_diagram(fn, alg) + profile() diff --git a/benchmarks/results/2v4_time_trials.png b/benchmarks/results/2v4_time_trials.png new file mode 100644 index 0000000..e28fdcb --- /dev/null +++ b/benchmarks/results/2v4_time_trials.png Binary files differ diff --git a/benchmarks/results/2vs4_skewness.png b/benchmarks/results/2vs4_skewness.png new file mode 100644 index 0000000..93743c5 --- /dev/null +++ b/benchmarks/results/2vs4_skewness.png Binary files differ diff --git a/benchmarks/results/2vs4_time_n.png b/benchmarks/results/2vs4_time_n.png new file mode 100644 index 0000000..93ffae9 --- /dev/null +++ b/benchmarks/results/2vs4_time_n.png Binary files differ diff --git a/benchmarks/results/2vs4_tlratio.png b/benchmarks/results/2vs4_tlratio.png new file mode 100644 index 0000000..274ede9 --- /dev/null +++ b/benchmarks/results/2vs4_tlratio.png Binary files differ diff --git a/benchmarks/results/nb_gm_002_profile.csv b/benchmarks/results/nb_gm_002_profile.csv new file mode 100644 index 0000000..da0f34f --- /dev/null +++ b/benchmarks/results/nb_gm_002_profile.csv @@ -0,0 +1,101 @@ +,alg,n,trials,time,targets,lures,skewed,sequence +0,nb_gm_002,6,11,0.00013589859008789062,3,0,False,DADEBCDAFFB +1,nb_gm_002,3,32,0.0003619194030761719,10,0,False,EAEBDEBDBBECDDDEBDABAAFEAECABFAD +2,nb_gm_002,4,17,0.0002689361572265625,5,0,False,DCEAEFEBCFABCBAFA +3,nb_gm_002,5,11,0.00011086463928222656,3,0,True,EEBFAEECACE +4,nb_gm_002,5,34,0.0003609657287597656,11,0,False,EFFABFCDAEFCFBDACFBDEFDDDBCCEDEECE +5,nb_gm_002,5,44,0.00046896934509277344,14,1,False,DFADDECDEBCCBEDCCDACCCBADABFEFABFAADFBACDFDA +6,nb_gm_002,4,39,0.00039887428283691406,13,1,False,DBCDDFAFCFACCAAEFECFFBCBFBAAEEDDAEDDCEF +7,nb_gm_002,3,52,0.000720977783203125,17,1,True,DBAFBFDAFDFCBACCADCADFDCCCFCCDDCBDBDDEDCCACEECAFBFFE +8,nb_gm_002,6,53,0.0013470649719238281,17,2,False,EFACADDAAEAFDAEFCDDEDFBDDAEBAFEECFAEBEBFAEEFAFEEECADC +9,nb_gm_002,6,16,0.00037479400634765625,5,0,True,EEAAFEEFACCEBFAB +10,nb_gm_002,7,61,0.0010979175567626953,20,1,False,BADBEDEBFDFDFCBFDFCFABAEFCFAFAFDCFCBAFDEBAFEBDFBCBCAEEAFCFDDF +11,nb_gm_002,2,31,0.00043487548828125,10,0,True,FDFAECDCDCACABFFAFEFBFAFDBAEFCA +12,nb_gm_002,2,42,0.0005271434783935547,14,1,True,DBFBFECBBBABEBDFCCBCADDDDAFCFFFBFDADEDFBEB +13,nb_gm_002,2,33,0.00045013427734375,11,0,True,CCCCBDADAECDCDCBAFACDEDFDBBBFCDBB +14,nb_gm_002,2,49,0.0006201267242431641,16,2,True,CFEFADEEEEEECEAADDFECDBDDCFCEAEFAFEFEACAFFDFEFEDB +15,nb_gm_002,2,31,0.000415802001953125,10,0,False,BFBFEEBAFCFAFACEFAADACACDCACEDB +16,nb_gm_002,3,47,0.0006060600280761719,15,1,False,AEABECFFDBDDAAEFFEDBEDECBACEECEEAEFBEFBBCBBFFFE +17,nb_gm_002,3,26,0.0007929801940917969,8,0,True,ACBACECCEBCECFDDBDCCFABEBB +18,nb_gm_002,5,63,0.001611948013305664,21,2,True,BCABDCCCFFEFCAFADCFBAFAFAFFAACDAAABBAEBDFEFCDFEFCAFECCAEABFAFCC +19,nb_gm_002,7,50,0.0005712509155273438,16,1,False,DCCAABEDACEAEEAFEEAEAFBEFABDCCBDBDECCBEFAEDCEEFEBA +20,nb_gm_002,7,53,0.0013239383697509766,17,1,False,BDADEFAEEFCEAEDBFCFAEDFCCADCCFECAECBFAEFEBDACFFBBFACD +21,nb_gm_002,3,43,0.0005009174346923828,14,2,False,CEDABDEBFCAECDFFFAFBAFBFDBDFDDFAEFBCCAECFEC +22,nb_gm_002,5,18,0.0004649162292480469,6,0,False,ABFCEDCECDDFACDDFB +23,nb_gm_002,3,10,0.0002720355987548828,3,0,True,DEEDBCDCFD +24,nb_gm_002,7,50,0.0005559921264648438,18,1,True,BECFCBABABBCBFFABBDCEBBBFDABBBEADCCBCFFDEFFDBFDEFF +25,nb_gm_002,4,16,0.00018310546875,5,0,True,BFADFDDEFDDFFADA +26,nb_gm_002,7,63,0.0006709098815917969,22,1,False,FDFFFCDFCDEFADBEFEFECCCACAEFCCABBFACDADBCCFDAFECAEAAECDAEABECDC +27,nb_gm_002,2,28,0.0003261566162109375,9,0,True,ADCBCACAEFDCDCBBABAFDCBCBFDC +28,nb_gm_002,7,35,0.0003800392150878906,11,0,False,BDCABDDBDEFDCFAEECDEFECAADEFEDDBDAF +29,nb_gm_002,5,15,0.00014209747314453125,5,0,True,FCFFEEAFFECACDE +30,nb_gm_002,6,60,0.0006458759307861328,20,1,False,DBFBECCBCFFCABCBEDBBCDEDCDFDCACBFACBEACAFFEDDEBEEDDEAAECAEFD +31,nb_gm_002,5,34,0.00037026405334472656,11,0,False,BCEFDCFEFEEFABEEDDBAEDAFFBBECABFEC +32,nb_gm_002,5,63,0.0006792545318603516,21,2,False,FECACDDCBCBFCBFDFEAAEEEAFCFAAECBBAEBABAADACCACABFDAABFEFFDFACFC +33,nb_gm_002,3,58,0.0006279945373535156,19,1,False,EDBDDADCBDABCAFCFDDFCDFCAFBDEBAABDEDDCCECEEFEFEACBACDFEAEA +34,nb_gm_002,2,10,0.0001220703125,3,0,True,EAEBECCACF +35,nb_gm_002,7,17,0.00016617774963378906,5,0,False,ADFDEACACFEEAFDCB +36,nb_gm_002,6,61,0.0006701946258544922,20,1,False,DEEACEFEBCEFBECEBFBEDAAAACBAFBADAAEEFDBDBFDDBDBDDDBFFCADABFCA +37,nb_gm_002,4,56,0.0005986690521240234,18,1,False,DAADDEDDAEDAACBAAEAEECADEDAFFDFBBDBDBFBECBECFFCCDFACEBAE +38,nb_gm_002,6,11,0.00010180473327636719,3,0,False,CDBABBCDFAF +39,nb_gm_002,3,46,0.0004971027374267578,16,1,False,CEDCAFCDFDEECAACAAFAAFAABBEFBECDADDEBBAAAACBAA +40,nb_gm_002,5,19,0.00019097328186035156,7,0,True,DFCAEDEEAEDFEFCDEEB +41,nb_gm_002,5,60,0.0006420612335205078,20,1,False,DEACCBFBDFEFCDFCAADFEFAFFEFBBBFADABFADFBCEDABCDFEBDECDCFCCBC +42,nb_gm_002,4,20,0.00021409988403320312,6,0,False,DDBFADCEDDBECEBEFAAE +43,nb_gm_002,2,42,0.00045800209045410156,15,1,False,AFADCEFFBAACAAEAEACFCFCDDEDADFBCECDCFBFDFD +44,nb_gm_002,2,30,0.00035190582275390625,10,0,False,ADACFFDFCFDADFDFAEBCBAACFCEDED +45,nb_gm_002,4,23,0.0002701282501220703,7,0,True,DDADDDFEFDAADDADFAACFED +46,nb_gm_002,5,22,0.00023698806762695312,7,0,False,EBBBFADBDFABACCAEACEAD +47,nb_gm_002,7,30,0.0003120899200439453,10,0,False,EFABBEAEFAFDCBDFDFAFBECCCACBEC +48,nb_gm_002,4,50,0.0005471706390380859,16,1,True,BBDDADDBEDDEFFDAFFFAEBADEFDFEADEAADFAFCFEDCEECFFDA +49,nb_gm_002,6,64,0.0007898807525634766,21,1,False,EDBDEDAFEDBACBABCAAAFBDFBAFBDADAFDDAFAFDDCBEFCFEBADCEDBAFFEBADDD +50,nb_gm_002,6,45,0.0005559921264648438,15,1,True,FADFAFFDECDFFAAAFBFAAAFFCDDFFACEDBFDDECAFCDFB +51,nb_gm_002,4,10,9.989738464355469e-05,3,0,True,EFFAADFAAB +52,nb_gm_002,2,51,0.0005540847778320312,17,1,False,BDBFEEEFECDCBAEFFCCACABEDABEEFDFDBBFBCBFBEBEBCBCCDC +53,nb_gm_002,3,20,0.00038504600524902344,6,0,True,DDAFCEFCAADEEFEEAECA +54,nb_gm_002,4,43,0.0004611015319824219,14,1,False,FBDABAFABFBDBFDFBABEABCDFCCEFBCAFDCECDCDDDC +55,nb_gm_002,3,52,0.0006678104400634766,17,1,True,ADEAEFBEFDAFEABECEEBACBDEFDEDDABEEFAEBAAACABEAEEFEDB +56,nb_gm_002,5,38,0.00038504600524902344,12,1,True,CDBAEBBECECBAFBEBCBBCCCADCCCACEACFDEAB +57,nb_gm_002,2,12,0.00014090538024902344,4,0,True,DEDADFBFAEDE +58,nb_gm_002,4,12,0.00011324882507324219,4,0,False,ACBBEFBDEFBA +59,nb_gm_002,5,43,0.0005619525909423828,14,1,False,BDCABACAEFFCDECFEDBADDDFADDDBAFDCBDFCFDDEDC +60,nb_gm_002,5,29,0.0003631114959716797,9,0,True,BBCAABDADFBDADCEFABCDCADDAAFD +61,nb_gm_002,3,53,0.0006711483001708984,17,1,False,CEACACFDFEDEEDAEDEEAACDDDCEDCDFCEFEEFAEBDFBFCDABDEBAA +62,nb_gm_002,4,54,0.0006229877471923828,18,1,True,ADAFFDACFDFDBDCCBFACBDACFDEFFDADEDCBDFBFCBAABFDFCFCFCF +63,nb_gm_002,5,60,0.0007681846618652344,20,1,False,BFCCBEACCEEABCAEDBDEEBBAEBFCABBEBFCBAACEBBECECCADFBAAFFEABCF +64,nb_gm_002,4,14,0.00017595291137695312,4,0,True,AFEDDEBAEABAEA +65,nb_gm_002,6,48,0.0005950927734375,16,1,True,FAFEDBABCBBBFBCBBBDCCECBEECDBDDAEDBDDCCAADDBDACF +66,nb_gm_002,5,25,0.0003132820129394531,8,0,True,EFFADEFBABFFEFEDFDDDCFDAD +67,nb_gm_002,6,47,0.0006089210510253906,15,1,False,AFEEDFAFFEAAADFDCABCAEBDFCDCBAFCDAECDCAEBCBCABC +68,nb_gm_002,3,17,0.00021886825561523438,5,0,False,CFFBFFBAEACEADBCF +69,nb_gm_002,7,37,0.00044989585876464844,12,2,True,EFDAFEEEDEABFDDEEBBFBAABBAFEAABBEBEBC +70,nb_gm_002,6,62,0.0008101463317871094,22,0,False,FECDAFFACDCDFADDCFCEEDBFBEDFCFBFAFBBEEACBBACBCBCABBCDFAFEDECBE +71,nb_gm_002,4,44,0.00054931640625,14,1,False,FBCCFBCCFBDAEBDBBDACBAFDAFECBFEDCFAFAFCDACAA +72,nb_gm_002,2,57,0.0007417201995849609,19,2,False,CCFEBBDDDFFFAFCEAECEBEEBEBCBEDFACADABEBCCFCBCBDBAEDCBCBCF +73,nb_gm_002,4,48,0.0005822181701660156,16,2,False,FABADABBAAEAFCFDDCDCCBDFABDEEEDFFDDAFDCCFACCFECA +74,nb_gm_002,5,35,0.0004601478576660156,11,0,True,FDFDBFBFCADDCDECAADEBBAFFDBFFDDBFCD +75,nb_gm_002,2,13,0.0002009868621826172,4,0,True,EBDDAEBFBFBAB +76,nb_gm_002,6,42,0.0005300045013427734,14,2,True,ABCFDCADEEDAABEDDDEDCDCDBDBDDDCDCADACBCEFE +77,nb_gm_002,3,34,0.00043511390686035156,11,0,False,FAFDBDDEDDFADCAEADECDCAECFBBDEBDFB +78,nb_gm_002,2,28,0.0004279613494873047,9,0,False,BABADDEDEDBACACBEEEADCDFBEDC +79,nb_gm_002,4,23,0.00030493736267089844,7,0,False,DDBABEFAEDBADDFCEBFCEAF +80,nb_gm_002,6,53,0.0006649494171142578,17,1,False,EFEECFEFBFCFBBEABBCEEABFAEEBBDDEEDDAEEEFBCFDFFDBEDAAD +81,nb_gm_002,3,61,0.0007090568542480469,22,1,False,EEEEBEAEEAFFACFEFEEDEFBCFAEFBDFBDACFEDBECBEDBDBFDEABEBBDBBCCA +82,nb_gm_002,5,58,0.0006530284881591797,20,2,False,DFFBADFFFCBEBDCBCBCFBAAAECECFDADCDDEECECCEAEFBEAEFBEEECCED +83,nb_gm_002,7,11,9.107589721679688e-05,3,0,False,FCEBFCDFAEB +84,nb_gm_002,4,41,0.0004858970642089844,13,1,False,EBBAFFBADCCDBEEBAEEADEEDCEECCEEFDECEBEDAF +85,nb_gm_002,6,22,0.00023603439331054688,7,0,True,AFDDAAADADEBAFEDEADFDD +86,nb_gm_002,7,49,0.0005178451538085938,16,2,False,DBEFDEDDEEECCDEFECCFEFCECDDCBCFFBAFBDBFBDFEBBFBDE +87,nb_gm_002,3,64,0.0008380413055419922,21,1,True,FEAEDEEDEDAABBDDDDAAEFFEDFEDAEAEEAFEAFBFBBEBDECEEBAEADFFBACAACEC +88,nb_gm_002,5,11,0.0002498626708984375,3,0,True,CBBBCCABACA +89,nb_gm_002,7,56,0.0007159709930419922,19,1,False,EFBFBEDEFDDBCBEADFBAEBBEBCFEBDACEDCFDCCECCFDEFFCAFDECDAA +90,nb_gm_002,6,54,0.0006489753723144531,18,2,False,BCACBEBDFCDABDEDBABCFADACCFDFBEBABFAEBBEDAFCFFDACCFAEA +91,nb_gm_002,3,26,0.0003719329833984375,9,0,True,BBEBFAFFAECDEBAFBAEDEEFFEF +92,nb_gm_002,7,53,0.001650094985961914,18,0,False,BDAFBFECDFBEFEFABBFFDDCFEFDDDBFBFBAFFFEFADFDAEFACCBAE +93,nb_gm_002,6,26,0.0002880096435546875,8,0,False,AEFFAEABDDABBFDDFDDEBDCDDE +94,nb_gm_002,7,36,0.00036406517028808594,12,2,False,EBEECEFDCEEDFDBCBCAFDBCBEBBFBCEBBDFD +95,nb_gm_002,4,20,0.0002219676971435547,6,0,True,DCAADEDEEBAEABEEDDEE +96,nb_gm_002,3,12,0.0003161430358886719,4,0,True,CFEFFEFFCACE +97,nb_gm_002,3,17,0.00019812583923339844,5,0,False,BDABCEBDEFDFBBFCA +98,nb_gm_002,5,35,0.0004279613494873047,11,0,False,FCEBFECEBCDAEFDDBFAADFFEDCBCEFCBEFF +99,nb_gm_002,2,21,0.0002372264862060547,7,0,True,BFFCFAAABABAEEBFBEACA diff --git a/benchmarks/results/skewness_002_vs_004.png b/benchmarks/results/skewness_002_vs_004.png new file mode 100644 index 0000000..93743c5 --- /dev/null +++ b/benchmarks/results/skewness_002_vs_004.png Binary files differ diff --git a/benchmarks/results/time_002_vs_004.png b/benchmarks/results/time_002_vs_004.png new file mode 100644 index 0000000..93ffae9 --- /dev/null +++ b/benchmarks/results/time_002_vs_004.png Binary files differ diff --git a/benchmarks/results/time_trials_002_vs_004.png b/benchmarks/results/time_trials_002_vs_004.png new file mode 100644 index 0000000..274ede9 --- /dev/null +++ b/benchmarks/results/time_trials_002_vs_004.png Binary files differ diff --git a/benchmarks/nb_gm_002_bm.py b/benchmarks/nb_gm_002_bm.py index 64dc45e..c8af543 100644 --- a/benchmarks/nb_gm_002_bm.py +++ b/benchmarks/nb_gm_002_bm.py @@ -71,9 +71,35 @@ plt.savefig(f'results/{figure_title}_targets_ratio.png', bbox_inches='tight') plt.show() + +import time +import numpy as np +import pandas as pd + +import benchmarks.common as common + +def profile(): + from generators.nb_gm_002 import SequenceGenerator + + res = [] + + for s in range(common.sample_size): + trials = np.random.randint(common.trials_range[0], common.trials_range[1]) + targets = int(trials / 3) + lures = int(targets / 6) # tl_ratio = 2.0 + n = np.random.randint(2, 8) + gen = SequenceGenerator(common.choices, n) + st = time.time() + seq = gen.generate(trials, targets, int(lures/2), int(lures/2)) + st = time.time() - st + t, lu = common.count_targets_and_lures(seq, n) + skewed = common.skewness(seq, common.choices) + res.append(['nb_gm_004', n, trials, st, t, lu, skewed, ''.join(seq)]) + print(f"sequence #{s+1} generated") + res_df = pd.DataFrame(res, columns=['alg', 'n', 'trials', 'time', 'targets', 'lures', 'skewed', 'sequence']) + res_df.to_csv('benchmarks/results/nb_gm_002_profile.csv', sep=',', encoding='utf-8') + if __name__ == '__main__': alg = 'nb_gm_002' fn = f'results/{alg}_{n}back.csv' - benchmark(fn) - # skewness_diagram(fn, alg) - targets_ratio_diagram(fn, alg) + profile() diff --git a/benchmarks/results/2v4_time_trials.png b/benchmarks/results/2v4_time_trials.png new file mode 100644 index 0000000..e28fdcb --- /dev/null +++ b/benchmarks/results/2v4_time_trials.png Binary files differ diff --git a/benchmarks/results/2vs4_skewness.png b/benchmarks/results/2vs4_skewness.png new file mode 100644 index 0000000..93743c5 --- /dev/null +++ b/benchmarks/results/2vs4_skewness.png Binary files differ diff --git a/benchmarks/results/2vs4_time_n.png b/benchmarks/results/2vs4_time_n.png new file mode 100644 index 0000000..93ffae9 --- /dev/null +++ b/benchmarks/results/2vs4_time_n.png Binary files differ diff --git a/benchmarks/results/2vs4_tlratio.png b/benchmarks/results/2vs4_tlratio.png new file mode 100644 index 0000000..274ede9 --- /dev/null +++ b/benchmarks/results/2vs4_tlratio.png Binary files differ diff --git a/benchmarks/results/nb_gm_002_profile.csv b/benchmarks/results/nb_gm_002_profile.csv new file mode 100644 index 0000000..da0f34f --- /dev/null +++ b/benchmarks/results/nb_gm_002_profile.csv @@ -0,0 +1,101 @@ +,alg,n,trials,time,targets,lures,skewed,sequence +0,nb_gm_002,6,11,0.00013589859008789062,3,0,False,DADEBCDAFFB +1,nb_gm_002,3,32,0.0003619194030761719,10,0,False,EAEBDEBDBBECDDDEBDABAAFEAECABFAD +2,nb_gm_002,4,17,0.0002689361572265625,5,0,False,DCEAEFEBCFABCBAFA +3,nb_gm_002,5,11,0.00011086463928222656,3,0,True,EEBFAEECACE +4,nb_gm_002,5,34,0.0003609657287597656,11,0,False,EFFABFCDAEFCFBDACFBDEFDDDBCCEDEECE +5,nb_gm_002,5,44,0.00046896934509277344,14,1,False,DFADDECDEBCCBEDCCDACCCBADABFEFABFAADFBACDFDA +6,nb_gm_002,4,39,0.00039887428283691406,13,1,False,DBCDDFAFCFACCAAEFECFFBCBFBAAEEDDAEDDCEF +7,nb_gm_002,3,52,0.000720977783203125,17,1,True,DBAFBFDAFDFCBACCADCADFDCCCFCCDDCBDBDDEDCCACEECAFBFFE +8,nb_gm_002,6,53,0.0013470649719238281,17,2,False,EFACADDAAEAFDAEFCDDEDFBDDAEBAFEECFAEBEBFAEEFAFEEECADC +9,nb_gm_002,6,16,0.00037479400634765625,5,0,True,EEAAFEEFACCEBFAB +10,nb_gm_002,7,61,0.0010979175567626953,20,1,False,BADBEDEBFDFDFCBFDFCFABAEFCFAFAFDCFCBAFDEBAFEBDFBCBCAEEAFCFDDF +11,nb_gm_002,2,31,0.00043487548828125,10,0,True,FDFAECDCDCACABFFAFEFBFAFDBAEFCA +12,nb_gm_002,2,42,0.0005271434783935547,14,1,True,DBFBFECBBBABEBDFCCBCADDDDAFCFFFBFDADEDFBEB +13,nb_gm_002,2,33,0.00045013427734375,11,0,True,CCCCBDADAECDCDCBAFACDEDFDBBBFCDBB +14,nb_gm_002,2,49,0.0006201267242431641,16,2,True,CFEFADEEEEEECEAADDFECDBDDCFCEAEFAFEFEACAFFDFEFEDB +15,nb_gm_002,2,31,0.000415802001953125,10,0,False,BFBFEEBAFCFAFACEFAADACACDCACEDB +16,nb_gm_002,3,47,0.0006060600280761719,15,1,False,AEABECFFDBDDAAEFFEDBEDECBACEECEEAEFBEFBBCBBFFFE +17,nb_gm_002,3,26,0.0007929801940917969,8,0,True,ACBACECCEBCECFDDBDCCFABEBB +18,nb_gm_002,5,63,0.001611948013305664,21,2,True,BCABDCCCFFEFCAFADCFBAFAFAFFAACDAAABBAEBDFEFCDFEFCAFECCAEABFAFCC +19,nb_gm_002,7,50,0.0005712509155273438,16,1,False,DCCAABEDACEAEEAFEEAEAFBEFABDCCBDBDECCBEFAEDCEEFEBA +20,nb_gm_002,7,53,0.0013239383697509766,17,1,False,BDADEFAEEFCEAEDBFCFAEDFCCADCCFECAECBFAEFEBDACFFBBFACD +21,nb_gm_002,3,43,0.0005009174346923828,14,2,False,CEDABDEBFCAECDFFFAFBAFBFDBDFDDFAEFBCCAECFEC +22,nb_gm_002,5,18,0.0004649162292480469,6,0,False,ABFCEDCECDDFACDDFB +23,nb_gm_002,3,10,0.0002720355987548828,3,0,True,DEEDBCDCFD +24,nb_gm_002,7,50,0.0005559921264648438,18,1,True,BECFCBABABBCBFFABBDCEBBBFDABBBEADCCBCFFDEFFDBFDEFF +25,nb_gm_002,4,16,0.00018310546875,5,0,True,BFADFDDEFDDFFADA +26,nb_gm_002,7,63,0.0006709098815917969,22,1,False,FDFFFCDFCDEFADBEFEFECCCACAEFCCABBFACDADBCCFDAFECAEAAECDAEABECDC +27,nb_gm_002,2,28,0.0003261566162109375,9,0,True,ADCBCACAEFDCDCBBABAFDCBCBFDC +28,nb_gm_002,7,35,0.0003800392150878906,11,0,False,BDCABDDBDEFDCFAEECDEFECAADEFEDDBDAF +29,nb_gm_002,5,15,0.00014209747314453125,5,0,True,FCFFEEAFFECACDE +30,nb_gm_002,6,60,0.0006458759307861328,20,1,False,DBFBECCBCFFCABCBEDBBCDEDCDFDCACBFACBEACAFFEDDEBEEDDEAAECAEFD +31,nb_gm_002,5,34,0.00037026405334472656,11,0,False,BCEFDCFEFEEFABEEDDBAEDAFFBBECABFEC +32,nb_gm_002,5,63,0.0006792545318603516,21,2,False,FECACDDCBCBFCBFDFEAAEEEAFCFAAECBBAEBABAADACCACABFDAABFEFFDFACFC +33,nb_gm_002,3,58,0.0006279945373535156,19,1,False,EDBDDADCBDABCAFCFDDFCDFCAFBDEBAABDEDDCCECEEFEFEACBACDFEAEA +34,nb_gm_002,2,10,0.0001220703125,3,0,True,EAEBECCACF +35,nb_gm_002,7,17,0.00016617774963378906,5,0,False,ADFDEACACFEEAFDCB +36,nb_gm_002,6,61,0.0006701946258544922,20,1,False,DEEACEFEBCEFBECEBFBEDAAAACBAFBADAAEEFDBDBFDDBDBDDDBFFCADABFCA +37,nb_gm_002,4,56,0.0005986690521240234,18,1,False,DAADDEDDAEDAACBAAEAEECADEDAFFDFBBDBDBFBECBECFFCCDFACEBAE +38,nb_gm_002,6,11,0.00010180473327636719,3,0,False,CDBABBCDFAF +39,nb_gm_002,3,46,0.0004971027374267578,16,1,False,CEDCAFCDFDEECAACAAFAAFAABBEFBECDADDEBBAAAACBAA +40,nb_gm_002,5,19,0.00019097328186035156,7,0,True,DFCAEDEEAEDFEFCDEEB +41,nb_gm_002,5,60,0.0006420612335205078,20,1,False,DEACCBFBDFEFCDFCAADFEFAFFEFBBBFADABFADFBCEDABCDFEBDECDCFCCBC +42,nb_gm_002,4,20,0.00021409988403320312,6,0,False,DDBFADCEDDBECEBEFAAE +43,nb_gm_002,2,42,0.00045800209045410156,15,1,False,AFADCEFFBAACAAEAEACFCFCDDEDADFBCECDCFBFDFD +44,nb_gm_002,2,30,0.00035190582275390625,10,0,False,ADACFFDFCFDADFDFAEBCBAACFCEDED +45,nb_gm_002,4,23,0.0002701282501220703,7,0,True,DDADDDFEFDAADDADFAACFED +46,nb_gm_002,5,22,0.00023698806762695312,7,0,False,EBBBFADBDFABACCAEACEAD +47,nb_gm_002,7,30,0.0003120899200439453,10,0,False,EFABBEAEFAFDCBDFDFAFBECCCACBEC +48,nb_gm_002,4,50,0.0005471706390380859,16,1,True,BBDDADDBEDDEFFDAFFFAEBADEFDFEADEAADFAFCFEDCEECFFDA +49,nb_gm_002,6,64,0.0007898807525634766,21,1,False,EDBDEDAFEDBACBABCAAAFBDFBAFBDADAFDDAFAFDDCBEFCFEBADCEDBAFFEBADDD +50,nb_gm_002,6,45,0.0005559921264648438,15,1,True,FADFAFFDECDFFAAAFBFAAAFFCDDFFACEDBFDDECAFCDFB +51,nb_gm_002,4,10,9.989738464355469e-05,3,0,True,EFFAADFAAB +52,nb_gm_002,2,51,0.0005540847778320312,17,1,False,BDBFEEEFECDCBAEFFCCACABEDABEEFDFDBBFBCBFBEBEBCBCCDC +53,nb_gm_002,3,20,0.00038504600524902344,6,0,True,DDAFCEFCAADEEFEEAECA +54,nb_gm_002,4,43,0.0004611015319824219,14,1,False,FBDABAFABFBDBFDFBABEABCDFCCEFBCAFDCECDCDDDC +55,nb_gm_002,3,52,0.0006678104400634766,17,1,True,ADEAEFBEFDAFEABECEEBACBDEFDEDDABEEFAEBAAACABEAEEFEDB +56,nb_gm_002,5,38,0.00038504600524902344,12,1,True,CDBAEBBECECBAFBEBCBBCCCADCCCACEACFDEAB +57,nb_gm_002,2,12,0.00014090538024902344,4,0,True,DEDADFBFAEDE +58,nb_gm_002,4,12,0.00011324882507324219,4,0,False,ACBBEFBDEFBA +59,nb_gm_002,5,43,0.0005619525909423828,14,1,False,BDCABACAEFFCDECFEDBADDDFADDDBAFDCBDFCFDDEDC +60,nb_gm_002,5,29,0.0003631114959716797,9,0,True,BBCAABDADFBDADCEFABCDCADDAAFD +61,nb_gm_002,3,53,0.0006711483001708984,17,1,False,CEACACFDFEDEEDAEDEEAACDDDCEDCDFCEFEEFAEBDFBFCDABDEBAA +62,nb_gm_002,4,54,0.0006229877471923828,18,1,True,ADAFFDACFDFDBDCCBFACBDACFDEFFDADEDCBDFBFCBAABFDFCFCFCF +63,nb_gm_002,5,60,0.0007681846618652344,20,1,False,BFCCBEACCEEABCAEDBDEEBBAEBFCABBEBFCBAACEBBECECCADFBAAFFEABCF +64,nb_gm_002,4,14,0.00017595291137695312,4,0,True,AFEDDEBAEABAEA +65,nb_gm_002,6,48,0.0005950927734375,16,1,True,FAFEDBABCBBBFBCBBBDCCECBEECDBDDAEDBDDCCAADDBDACF +66,nb_gm_002,5,25,0.0003132820129394531,8,0,True,EFFADEFBABFFEFEDFDDDCFDAD +67,nb_gm_002,6,47,0.0006089210510253906,15,1,False,AFEEDFAFFEAAADFDCABCAEBDFCDCBAFCDAECDCAEBCBCABC +68,nb_gm_002,3,17,0.00021886825561523438,5,0,False,CFFBFFBAEACEADBCF +69,nb_gm_002,7,37,0.00044989585876464844,12,2,True,EFDAFEEEDEABFDDEEBBFBAABBAFEAABBEBEBC +70,nb_gm_002,6,62,0.0008101463317871094,22,0,False,FECDAFFACDCDFADDCFCEEDBFBEDFCFBFAFBBEEACBBACBCBCABBCDFAFEDECBE +71,nb_gm_002,4,44,0.00054931640625,14,1,False,FBCCFBCCFBDAEBDBBDACBAFDAFECBFEDCFAFAFCDACAA +72,nb_gm_002,2,57,0.0007417201995849609,19,2,False,CCFEBBDDDFFFAFCEAECEBEEBEBCBEDFACADABEBCCFCBCBDBAEDCBCBCF +73,nb_gm_002,4,48,0.0005822181701660156,16,2,False,FABADABBAAEAFCFDDCDCCBDFABDEEEDFFDDAFDCCFACCFECA +74,nb_gm_002,5,35,0.0004601478576660156,11,0,True,FDFDBFBFCADDCDECAADEBBAFFDBFFDDBFCD +75,nb_gm_002,2,13,0.0002009868621826172,4,0,True,EBDDAEBFBFBAB +76,nb_gm_002,6,42,0.0005300045013427734,14,2,True,ABCFDCADEEDAABEDDDEDCDCDBDBDDDCDCADACBCEFE +77,nb_gm_002,3,34,0.00043511390686035156,11,0,False,FAFDBDDEDDFADCAEADECDCAECFBBDEBDFB +78,nb_gm_002,2,28,0.0004279613494873047,9,0,False,BABADDEDEDBACACBEEEADCDFBEDC +79,nb_gm_002,4,23,0.00030493736267089844,7,0,False,DDBABEFAEDBADDFCEBFCEAF +80,nb_gm_002,6,53,0.0006649494171142578,17,1,False,EFEECFEFBFCFBBEABBCEEABFAEEBBDDEEDDAEEEFBCFDFFDBEDAAD +81,nb_gm_002,3,61,0.0007090568542480469,22,1,False,EEEEBEAEEAFFACFEFEEDEFBCFAEFBDFBDACFEDBECBEDBDBFDEABEBBDBBCCA +82,nb_gm_002,5,58,0.0006530284881591797,20,2,False,DFFBADFFFCBEBDCBCBCFBAAAECECFDADCDDEECECCEAEFBEAEFBEEECCED +83,nb_gm_002,7,11,9.107589721679688e-05,3,0,False,FCEBFCDFAEB +84,nb_gm_002,4,41,0.0004858970642089844,13,1,False,EBBAFFBADCCDBEEBAEEADEEDCEECCEEFDECEBEDAF +85,nb_gm_002,6,22,0.00023603439331054688,7,0,True,AFDDAAADADEBAFEDEADFDD +86,nb_gm_002,7,49,0.0005178451538085938,16,2,False,DBEFDEDDEEECCDEFECCFEFCECDDCBCFFBAFBDBFBDFEBBFBDE +87,nb_gm_002,3,64,0.0008380413055419922,21,1,True,FEAEDEEDEDAABBDDDDAAEFFEDFEDAEAEEAFEAFBFBBEBDECEEBAEADFFBACAACEC +88,nb_gm_002,5,11,0.0002498626708984375,3,0,True,CBBBCCABACA +89,nb_gm_002,7,56,0.0007159709930419922,19,1,False,EFBFBEDEFDDBCBEADFBAEBBEBCFEBDACEDCFDCCECCFDEFFCAFDECDAA +90,nb_gm_002,6,54,0.0006489753723144531,18,2,False,BCACBEBDFCDABDEDBABCFADACCFDFBEBABFAEBBEDAFCFFDACCFAEA +91,nb_gm_002,3,26,0.0003719329833984375,9,0,True,BBEBFAFFAECDEBAFBAEDEEFFEF +92,nb_gm_002,7,53,0.001650094985961914,18,0,False,BDAFBFECDFBEFEFABBFFDDCFEFDDDBFBFBAFFFEFADFDAEFACCBAE +93,nb_gm_002,6,26,0.0002880096435546875,8,0,False,AEFFAEABDDABBFDDFDDEBDCDDE +94,nb_gm_002,7,36,0.00036406517028808594,12,2,False,EBEECEFDCEEDFDBCBCAFDBCBEBBFBCEBBDFD +95,nb_gm_002,4,20,0.0002219676971435547,6,0,True,DCAADEDEEBAEABEEDDEE +96,nb_gm_002,3,12,0.0003161430358886719,4,0,True,CFEFFEFFCACE +97,nb_gm_002,3,17,0.00019812583923339844,5,0,False,BDABCEBDEFDFBBFCA +98,nb_gm_002,5,35,0.0004279613494873047,11,0,False,FCEBFECEBCDAEFDDBFAADFFEDCBCEFCBEFF +99,nb_gm_002,2,21,0.0002372264862060547,7,0,True,BFFCFAAABABAEEBFBEACA diff --git a/benchmarks/results/skewness_002_vs_004.png b/benchmarks/results/skewness_002_vs_004.png new file mode 100644 index 0000000..93743c5 --- /dev/null +++ b/benchmarks/results/skewness_002_vs_004.png Binary files differ diff --git a/benchmarks/results/time_002_vs_004.png b/benchmarks/results/time_002_vs_004.png new file mode 100644 index 0000000..93ffae9 --- /dev/null +++ b/benchmarks/results/time_002_vs_004.png Binary files differ diff --git a/benchmarks/results/time_trials_002_vs_004.png b/benchmarks/results/time_trials_002_vs_004.png new file mode 100644 index 0000000..274ede9 --- /dev/null +++ b/benchmarks/results/time_trials_002_vs_004.png Binary files differ diff --git a/demo/nb_gm_002_demo.py b/demo/nb_gm_002_demo.py index 776b951..98b8358 100644 --- a/demo/nb_gm_002_demo.py +++ b/demo/nb_gm_002_demo.py @@ -17,27 +17,35 @@ # left and right arrow keys for responses response_keys = [misc.constants.K_LEFT, misc.constants.K_RIGHT] -expyriment.control.start(exp) - # initialize three blocks -for b in range(0, 2): +for b in range(2): block = design.Block() - block.set_factor("block", b) - for item in nback_sequence: + block.set_factor("index", b) + for tindex, item in enumerate(nback_sequence): trial = design.Trial() trial.set_factor("stimulus", item) - stim = stimuli.TextLine(item, text_size=200) - stim.preload() - trial.add_stimulus(stim) + trial.set_factor("index", tindex) + for x in range(10): + stim = stimuli.TextLine(item, text_size=200, background_colour=[0,0,0], text_colour=[255,0,0]) + c = stimuli.Canvas(stim.surface_size) + stim.plot(c) + c._get_surface().set_alpha(x*25) + c.preload() + trial.add_stimulus(c) block.add_trial(trial, random_position=False) exp.add_block(block) +expyriment.control.start(exp) + +# present trials for block in exp.blocks: for trial in block.trials: exp.clock.wait(1000 - fixation.present()) - trial.stimuli[0].present() + for stim in trial.stimuli: + stim.present() + exp.clock.wait(5) pressed_key, rt = exp.keyboard.wait(response_keys) - exp.data.add([block.get_factor("block"), trial.get_factor("stimulus"), pressed_key, rt]) + exp.data.add([block.get_factor("index"), trial.get_factor("stimulus"), pressed_key, rt]) exp.clock.wait(1000 - expyriment.stimuli.BlankScreen().present() - trial.stimuli[0].unload()) expyriment.control.end("Goodbye!", goodbye_delay=1000)