Dynamic Optimisation - Falmouth-Games-Academy/comp350-research-journal GitHub Wiki
Dynamic Optimisation in games
Dynamic Optimisation is when a game changes its graphical settings depending on recorded frame times during the runtime of the game 1(https://www.overclock3d.net/reviews/software/forza_horizon_4_pc_performance_review/14) 2(https://www.gamerevolution.com/features/12507-forza-motorsport-6-apex-brings-revolutionary-dynamic-optimization-to-pc). By recognizing dips in framerate, a game would be able to drop the quality in order to achieve the set target framerate 1(https://www.overclock3d.net/reviews/software/forza_horizon_4_pc_performance_review/14). The aim of dynamic Optimisation is partly to allow for a game to adapt to the system it is running on, reducing the need for the user to manually tweak settings in order to get the desired performance 2(https://www.gamerevolution.com/features/12507-forza-motorsport-6-apex-brings-revolutionary-dynamic-optimization-to-pc).
This kind of technology is especially important in games such as Forza as the gameplay can go from relatively light when just cruising around to extremely taxing during a race with up to twenty cars and a lot of environmental models and details to render, so having a system that will dynamically change settings such as the resolution, LOD(Level of detail), and draw distance as these settings have the biggest draw on rendering hardware, although most sources have stated that while the technology is a good idea, it doesn't really work in practice 2(https://www.gamerevolution.com/features/12507-forza-motorsport-6-apex-brings-revolutionary-dynamic-optimization-to-pc).
Dynamic Optimisation outside of games.
Looking at dynamic optimisation algorithms more generally we can describe them as "an optimizing agent which solves intertemporal optimization problems" 3(http://web.stanford.edu/group/econ/uploads/pmwiki/Math.DynamicOptUserGuide.pdf). Intertemporal here meaning how the decisions made by the agent will later affect the performance of the application. This means that systems that use Dynamic Optimisation can take into account the effects of its decisions and in theory make better decisions later on to improve performance even further.
Types of Dynamic Optimisation
Discrete vs Continuous time
For this type of dynamic optimisation you must first define the variables that will affect the agent's decisions. These variables are then used in relation to the time taken and the time left for the periods.
Discrete optimisations use variables that are restricted 5(https://neos-guide.org/content/discrete-optimization) and are obtained through counting 6(http://www.henry.k12.ga.us/ugh/apstat/chapternotes/7supplement.html). For example an integer is limited to being whole numbers, such as the number of cars sold.
Continuous optimisations use variables that are obtained by measuring 6(http://www.henry.k12.ga.us/ugh/apstat/chapternotes/7supplement.html). Such as the distance a car travels.
Deterministic vs Stochastic Case
Deterministic optimisation focuses on finding a theoretical minimum "global solution" to an optimisation problem 8(https://en.wikipedia.org/wiki/Deterministic_global_optimization). A solution that can fit all cases of a given problem.
Stochastic optimisation tries to find the minimum and maximum global solution to an optimisation problem when randomness is present 9(http://www.stat.columbia.edu/~liam/teaching/compstat-spr14/lauren-notes.pdf). This type of optimisation is used anytime some form of randomisation enters the optimisation method. For example, constraints to the program that are seemingly random like the weather.
Finite vs Infinite horizon
In an online forum one users describes horizons as the attempt to reach a certain level of performance over an amount of time (this amount of time may be infinite). A finite horizon case is one where there is a time given to reach a certain performance value. An infinite horizon case is one which attempts to hit the performance values over the whole of the systems lifetime 7(https://math.stackexchange.com/questions/2178582/what-is-infinite-horizon-problem).
References
[1] https://www.overclock3d.net/reviews/software/forza_horizon_4_pc_performance_review/14
[2] Forza Motorsport 6: Apex Brings Revolutionary “Dynamic Optimization” To PC
[3] http://web.stanford.edu/group/econ/uploads/pmwiki/Math.DynamicOptUserGuide.pdf
[5] https://neos-guide.org/content/discrete-optimization
[6] http://www.henry.k12.ga.us/ugh/apstat/chapternotes/7supplement.html
[7] https://math.stackexchange.com/questions/2178582/what-is-infinite-horizon-problem
[8] https://en.wikipedia.org/wiki/Deterministic_global_optimization
[9] http://www.stat.columbia.edu/~liam/teaching/compstat-spr14/lauren-notes.pdf