US 12,242,840 B2
Reinforcement learning for controlling software update timing
Dhirendra Kumar Bhupati, Sammamish, WA (US); and Johnny Sterling Campbell, Woodinville, WA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Apr. 5, 2023, as Appl. No. 18/131,323.
Prior Publication US 2024/0338193 A1, Oct. 10, 2024
Int. Cl. G06F 8/65 (2018.01); G06F 8/33 (2018.01); G06F 9/445 (2018.01); G06F 9/455 (2018.01); G06N 3/02 (2006.01); G06N 20/00 (2019.01)
CPC G06F 8/65 (2013.01) 20 Claims
OG exemplary drawing
 
1. A computer-implemented method performed by a software update distribution service, the method comprising:
receiving an indication of a selected objective to be pursued by a software-based reinforcement learning (RL) agent in performing actions relating to the updating of software applications installed on a set of client computing devices;
configuring the software-based RL agent to perform the actions subject to a randomly selected first schedule, wherein the actions comprise i) instructing an update agent executing at a client computing device to download a software update, and ii) instructing an update agent executing at a client computing device to install a previously downloaded software update;
invoking the software-based RL agent to perform a first software update procedure for a first software update by performing the actions subject to the randomly selected first schedule;
upon determining a change in a status, calculating a penalty associated with the software-based RL agent completing the first software update procedure for the first software update by performing the actions subject to the randomly selected first schedule;
comparing the penalty to a predetermined threshold; and
upon determining that the penalty exceeds the predetermined threshold, reconfiguring the software-based RL agent to perform actions subject to a second schedule, the actions relating to the updating of software applications executing on the set of client computing devices with a second software update.