Treatment design with dynamic program
To optimize a plan of action for treating disease we work backwards from treatment endpoints, therapy cure or adverse events such as acute toxicity.
Working backwards
Often during cancer treatment, a tiny fraction of the cells are resistant to a chemotherapy. If you are using the drug strategy to constantly minimize tumor growth rate, you will give the patient the maximum tolerated dose (MTD). However this will select for the resistant cancer cells. The patients tumor will shrink, but then the tumor that remains cannot be pharmacologically suppressed.
Dynamic programming is a branch of computational optimization that allows us to work backwards from treatment goals. If we were to use dynamic programming to identify the most promising treatment strategy, we would see that giving a much lower dose of the chemotherapy drug can suppress cancer without giving the resistant cells the chance to reach dominance in the population. This gives patients less toxicity and will increase the quality and quantity of life.
The use of therapeutic weapons
In general, clinicians start with first line therapy, then after an adverse event move to less common therapies. Each time there is an adverse event, the pathogen has had time to adapt to the therapy and it cannot be used again. The accumulation of adverse events can lead to disease states that are impossible to cure as we run out of weapons in our arsenal.
Dynamic programming works backwards from cure in a rational way, assigning values to disease states based on how easy they are to cure. Therapies are chosen backward in time. At each time point, we choose the therapy which maximizes the value of the next state. By planning for the possibility of therapy failure, we can get the most out of each available therapy while avoiding adverse events as much as possible.