evileli
Member
Hi everyone,
this is my first thread in this forum (i hope i'm doing it correctly).
I used Prisma as my main timer since i started cubing in 2011. Therefore by now i have already a small dataset of time measurements.
Once i was looking at the plots in the history-tab and thought about my improvement over time.
I realized that it would be funny to extrapolate the plot to estimate the improvement for future time points.
Given that i wrote a small python script that does a least-squares fit of the Prisma-dataset to a polynomial function.
If i now use this function to input the date of some time point in future, it gives back the estimated solving time for that point.
For example today i'm averaging around 20 seconds (i know, i had a 2.5 year break since 2011).
The estimated time for the date 20-09-2016 with respect the fitted function of my personal dataset would be 15.34 seconds.
There are some issues though. In my opinion the improvement of solve time is not a polynomial function but rather some kind of exponential function.
So the fitted function is only a finite taylor approximation of the "true function" and therefore inaccurate.
Then of course to do a least squares fit there must be a reasonable dataset. By only evaluating 2 solve times the fitted function will be not very representative.
Nevertheless, especially when doing a linear fit, the time frame of the dataset should not reach too much into the past.
Thats because for smaller time frames the "true function" is more linear. So the more linear the dataset in your chosen time frame the better the estimation.
However in too short time frames it is not possible to observe any improvement so there has to be made a trade off.
And last: Unfortunately the higher order approximations diverge pretty fast. That means they are accurate only for time points not to far in the future.
I know this small tool isn't useful for many people, as they don't use Prisma.
And maybe this idea is just a little weird but i thought it would not harm to share it.
The script is compatible with the .csv-output of this slightly modified PrismaPuzzleTimer (not by me):
https://bitbucket.org/euphwes/prismapuzzletimerwithexport/downloads - compiled version
https://bitbucket.org/euphwes/prismapuzzletimerwithexport - source
Python Script:
https://www.dropbox.com/s/cnuswehxr4db1fe/estimate_solving_time.py?dl=0
1.asks for the order of the fitting function.
2.asks for the name of .csv-File.
3.asks for some date (may be in future or past).
4.returns estimated solving time and fitted plot
As i'm a linux-user i have no idea, how this behaves in windows or mac (maybe also that restricts the set of users even more).
I'm very new to python so don't judge me to hard.
Thanks & happy cubing,
EvilEli
this is my first thread in this forum (i hope i'm doing it correctly).
I used Prisma as my main timer since i started cubing in 2011. Therefore by now i have already a small dataset of time measurements.
Once i was looking at the plots in the history-tab and thought about my improvement over time.
I realized that it would be funny to extrapolate the plot to estimate the improvement for future time points.
Given that i wrote a small python script that does a least-squares fit of the Prisma-dataset to a polynomial function.
If i now use this function to input the date of some time point in future, it gives back the estimated solving time for that point.
For example today i'm averaging around 20 seconds (i know, i had a 2.5 year break since 2011).
The estimated time for the date 20-09-2016 with respect the fitted function of my personal dataset would be 15.34 seconds.
There are some issues though. In my opinion the improvement of solve time is not a polynomial function but rather some kind of exponential function.
So the fitted function is only a finite taylor approximation of the "true function" and therefore inaccurate.
Then of course to do a least squares fit there must be a reasonable dataset. By only evaluating 2 solve times the fitted function will be not very representative.
Nevertheless, especially when doing a linear fit, the time frame of the dataset should not reach too much into the past.
Thats because for smaller time frames the "true function" is more linear. So the more linear the dataset in your chosen time frame the better the estimation.
However in too short time frames it is not possible to observe any improvement so there has to be made a trade off.
And last: Unfortunately the higher order approximations diverge pretty fast. That means they are accurate only for time points not to far in the future.
I know this small tool isn't useful for many people, as they don't use Prisma.
And maybe this idea is just a little weird but i thought it would not harm to share it.
The script is compatible with the .csv-output of this slightly modified PrismaPuzzleTimer (not by me):
https://bitbucket.org/euphwes/prismapuzzletimerwithexport/downloads - compiled version
https://bitbucket.org/euphwes/prismapuzzletimerwithexport - source
Python Script:
https://www.dropbox.com/s/cnuswehxr4db1fe/estimate_solving_time.py?dl=0
1.asks for the order of the fitting function.
2.asks for the name of .csv-File.
3.asks for some date (may be in future or past).
4.returns estimated solving time and fitted plot
As i'm a linux-user i have no idea, how this behaves in windows or mac (maybe also that restricts the set of users even more).
I'm very new to python so don't judge me to hard.
Thanks & happy cubing,
EvilEli