-
-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Maintain the downward trend of review load when applying Easy Days #372
Comments
Because |
Sorry for the late reply. There are two issues here:
Firstly, let me show that the problem exists even when ALL the cards are rescheduled. My Future Due graph today looks like the following: If I press "Reschedule all cards" after enabling load balancer, it looks like the following: You can see that the load balancer reduced my tomorrow's review load from 148 reviews to 95 reviews because it "thinks" that the load is more balanced now. But actually, it is the opposite as I explained in my previous comment (when I do more new cards and fail some review cards, the future due count will increase). By the way, the rescheduling changed my burden in FSRS Stats from 149 to 140. This also suggests that I should be doing around 140 reviews per day, not just 95 reviews. Frankly speaking, I think that the current load balancer is useless because of this behavior. Something like https://github.com/lune-stone/anki-addon-limit-new-by-young may benefit the users more (thank you @aleksejrs for linking it above). Now, let's come to the issue of Easy Days. The above behavior of the load balancer is directly responsible for causing weird Future Due graph when Easy Days are applied to specific dates. To correct this, an approach similar to my drawing in the previous comment can be used. |
The mechanism of load balance is to reschedule each card to the day within their fuzz range that has the fewest reviews. When you reschedule all cards, the fuzz ranges of cards are slightly overlapped. Due to the tendency of decreasing of reviews in the future, the result of load balance is more like smoothen instead flatten. However, when we apply easy days to the specific dates, the cards in the time windows is likely to be rescheduled out of the time windows, but the cards out of the window cannot be rescheduled into it. It's the main cause of current issue. But I have no idea to solve it without coming up with a new method for load balance. |
Then, let's add a |
I can work on this. |
This comment was marked as outdated.
This comment was marked as outdated.
With the new implementation of load balance and easy days, I guess this issue has a solution: apply a weight decay over time on this line of code: fsrs4anki-helper/schedule/reschedule.py Line 51 in a459532
or here: fsrs4anki-helper/schedule/reschedule.py Line 17 in a459532
What do you think of this idea? @user1823 |
Looks like a good idea. But, how to calculate what decay should be applied? |
Looks like the issue has been solved. 🎉 |
Almost every day, my Future Due graph looks like the following.
Here, you can see a downward trend in the number of due cards. But my daily review load remains roughly constant. This is because I do some new cards daily and fail some review cards. These cards get short intervals and increase the review load on the subsequent days, causing it to become roughly equal to that today.
In short, my review load remains constant despite not using the load balancing feature of the add-on.
But, if I apply Easy Day to a specific date (say, 3rd March) with a review percentage of say, 80%, I get a Future Due graph like the following:
Look how it has "postponed" many cards so that the review load remains roughly equal on all days in the range. You can see that even the number of cards due in 1 month has decreased. So, some cards are postponed even beyond a month (they must have a large fuzz range though).
This graph gives the impression that the add-on has balanced my review load, but it has not. Once I do some new cards or fail some cards, the cards due on future days (say, a week later) would become greater than the next few days (say, 3 days from now).
If you are wondering what happens if I apply Easy Day to tomorrow, this is what happens:
This is not a significant problem if I were using the load balancer every day because it would continuously adjust the number of due cards to keep them roughly constant (it is still wasteful, though). However, if I use it just once (say, to apply Easy Days to a specific busy day), the load balancer "unnecessarily" postpones many of my reviews, causing a high workload in the future.
The following drawing summarizes what I want the load balancer to do:
When Easy Days is applied, it can do something like this:
The text was updated successfully, but these errors were encountered: