Josh Miller
This week, I did some more work on the recommendation algorithm to allow the user to select between multiple goal types. While the app already had a functioning algorithm by this point, it was only for one type of exercise goal. I used this week to change that.
The first step was to research the various other exercise techniques related to the possible goal types. After reading through several fitness articles, I compiled the following data:
Fitness Goal Sets Reps Rest Period Intensity
General Fitness 1 or 2 8 to 15 30 to 90 seconds Can vary
Endurance 3 to 4 15+ Up to 30 seconds 50% to 65% of 1RM
Mass 3 to 6 6 to 12 30 to 90 seconds 70% to 80% of 1RM
Strength 2 to 3 Up to 6 2 to 5 minutes 80% to 90% of 1RM
Power 3 to 5 1 or 2 2 to 5 minutes 90%+ of 1RM
With this in hand, I was able to design a new set of algorithms that take the target sets, reps, rest period, and 1RM percentage into account to be able generate a routine for each of the app's goal types. Next, I had to adjust the default starting values for the app. These values would be used when a new user generates a routine and the app has not yet had a change to adjust their difficulty for the next routine.
I needed to produce numerical values for things like how quickly muscles tire after lifting weight and how the recommended rest period length affects muscle exhaustion. Through some self-experimentation, I was able to come up with a set of values for the app to use by simply plotting some weightlifting data in a spreadsheet and creating equations based on the values. While this data will obviously not apply to every user of the app, it will at least provide a starting point from which the app will be able to improve the values for its users as it is utilized. This is done by comparing the app's projected results with the actual results over time and adjusting the next projection accordingly.