The computing device 600 can include a processor 640 interfaced with other hardware via a bus 605. A memory 610, which can include any suitable tangible (and non-transitory) computer readable medium, such as RAM, ROM, EEPROM, or the like, can embody program components (e.g., program code 615) that configure operation of the computing device 600. Memory 610 can store the program code 615, program data 617, or both. In some examples, the computing device 600 can include input/output (“I/O”) interface components 625 (e.g., for interfacing with a display 645, keyboard, mouse, and the like) and additional storage 630.
The computing device 600 executes program code 615 that configures the processor 640 to perform one or more of the operations described herein. Examples of the program code 615 include, in various embodiments an adaptive rule-based system, such as the adaptive learning system of
The computing device 600 may generate or receive program data 617 by virtue of executing the program code 615. For example, context data, traffic data, historical driver data, and other data described herein are all examples of program data 617 that may be used by the computing device 600 during execution of the program code 615.