The present exemplary embodiment relates generally to power management. It finds particular application in conjunction with a multi-device print system comprising a plurality of print devices and will be described with particular reference thereto. However, it is to be understood that it also finds application in other usage scenarios and is not necessarily limited to the aforementioned application.
Print devices typically include different operating modes corresponding to different power consumption levels. Such operating modes typically include idle modes and power saving modes. In an idle mode, a print device is ready to be used for printing, which typically requires the most power. When not in use, the print device is cycled down to a power saving mode, also known as standby mode, low power mode, or sleep mode. In the power saving mode, the print device draws enough power to support certain functions of the print device, but requires a warm up period before it is fully operational again.
The warm up period for a print device is actuated, for example, when a print job is received for printing or a user actuates the print device. The print device control system then activates components that draw additional power in preparation for use of the print device. For example, a printer may heat a fuser roll and cause the marking material to be readied for use. In the case of laser printers, this generally involves circulating the toner particles in a developer housing. For solid ink printers, the solid inks are heated to above their melting points.
Once a print device has been used, it may remain in an idle mode at the higher power consumption level for some predetermined period of time (a time-out), to maintain one or more components within an operational temperature range or state. The time-out reduces the number of cycles experienced by the components, which helps preserve their operational life and also reduces or eliminates waiting time for the customer. If the print device is not in use again by the preset time-out, the print device begins to cycle down to the power saving mode.
Currently, in most print devices, the inactivity period to wait before entering into sleep mode is either set by the administrator or predefined by the print device manufacturer according to environmental standards, such as Energy Star. Until 2006, print devices were evaluated as Energy Star compliant based on whether the manufacturer respected the time-out recommendations of the Environmental Protection Agency (EPA). The recommendations were dependent on the type of print device (e.g., scanner, copiers, multi-function devices) and its speed capabilities. Further, the recommendations were arbitrary and not self-adapted by any logic or intelligence embedded on print devices.
Today, Energy Star criteria are based on the evaluation of power consumption during a fixed period of a week in which the print device receives requests with a predefined standard usage pattern. The result of the evaluation method is the Typical Energy Consumption (TEC) value measured in kWh and which must be under a certain level in order to obtain the Energy Star certification. For example, for a color multi-function device producing 24 images per minute (IPM), its power consumption must be below (0.2 kWh*24)+5 kWh. Although the current evaluation method takes into account a usage pattern, it does not take into account the stochastic nature of usage patterns.
In order to respect TEC maximum levels, manufacturers employ time-out strategies which reduce the time-outs and make improvements in power consumption. One strategy for accomplishing this is to adjust time-out according to the unavailability time of the print device during switching from sleep to an active status. Another strategy is to set time-out according to the relation between the idle period and the wakeup delay (i.e., the time to get out of power saving mode). If this relation is small, time-out increases; otherwise, time-out decreases. However, in most cases, time-out values are static and/or not adapted to the real usage of devices.
Further, print devices are typically deployed in a multi-device print system comprising a plurality of print devices, where each print device is typically capable of executing incoming print jobs. In such systems, users typically specify the print devices they want to execute their print jobs. In doing so, users commonly select the print devices that are most convenient or best for them. However, users often fail to consider the power costs. For example, while a user may prefer a certain print device, if the print device is in a power saving mode, the cost of waking the print device up may outweigh the “cost” to the user of printing to another print device.
The present disclosure provides a new and improved system and method which overcome the above-referenced problems and others.
The following reference, the disclosure of which is incorporated herein by reference in its entirety, is mentioned.
U.S. Pub. No. 20110010571, entitled PRINTER TIME-OUT, by Dance, et al., discloses a method for calculating a time-out for a single print device. The method includes acquiring data comprising a set of inter-arrival times and, for each of a set of candidate time-outs, deriving a probability that an inter-arrival time from the set of inter-arrival times is greater than the candidate time-out. A cost function is computed, based on the derived probability and a robustness term, and a time-out is identified for the device for which the cost function is a minimum.
In accordance with one aspect of the present disclosure, a control system for reducing energy consumption in an associated multi-device system including a plurality of devices is provided. The control system includes at least one processor. The processor is programmed to receive a job to be executed, as well as a selection of one of the plurality of devices for executing the job and a transfer cost for transferring the job from the selected device to each of the others of the plurality of devices. A device from the plurality of devices to execute the job is determined through optimization of a first cost function. The first cost function is based on the device selection and the received transfer costs. The job is assigned to the determined device and a time-out for each device in the multi-device system is determined through optimization of a second cost function. The second cost function is based on an expected energy consumption by the multi-device system. The devices are provided with the determined time-outs.
In accordance with another aspect of the present disclosure, a method for reducing energy consumption in a multi-device system comprising a plurality of devices is provided. A job to be executed is received, as well as a selection of one of the plurality of devices for executing the job and a transfer cost for transferring the job from the selected device to each of the plurality of devices. A device from the plurality of the devices to execute the job is determined through optimization of a first cost function. The first cost function is based on the device selection and the received transfer costs. The job is assigned to the determined device and a time-out for each device in the multi-device system is determined through optimization of a second cost function. The second cost function is based on an expected energy consumption by the multi-device system. The devices are provided with the determined time-outs.
In accordance with another aspect of the present disclosure, a printing system is provided. The printing system includes a plurality of print devices and a control system configured for reducing energy consumption. The control system includes at least one processor programmed to receive a print job to be executed, as well as a selection of one of the plurality of print devices for executing the print job and a transfer cost for transferring the print job from the selected print device to each of the plurality of print devices. A print device from the plurality of print devices to execute the print job is determined through optimization of a first cost function. The first cost function based on the print device selection and the received transfer costs. The print job is assigned to the determined print device and a time-out for each of the plurality of print devices is determined through optimization of a second cost function. The second cost function is based on an expected energy consumption by the printing system. The print devices are provided with the determined time-outs.
The exemplary embodiment provides a method for reducing power consumption in a multi-device system which includes plural devices capable of performing the same job, such as a network print system. Jobs to be executed by one of the devices, such as print jobs, are selectively transferred from a selected device to another device, in the exemplary embodiment, when doing so reduces power consumption of the system and the reduction outweighs the transfer costs. To further minimize power consumption, time-outs for the devices are optimized to minimize the expected cost to the system.
As used herein, the terms “optimization,” “minimization,” and similar phraseology are to be broadly construed as one of ordinary skill in the art would understand these terms. For example, these terms are not to be construed as being limited to the absolute global optimum value, absolute global minimum, and so forth. For example, minimization of a function may employ an iterative minimization algorithm that terminates at a stopping criterion before an absolute minimum is reached. It is also contemplated for the optimum or minimum value to be a local optimum or local minimum value.
A “time-out” is a time period after a job has been received (or completed) by a device, during which the device remains in a high energy-consuming state (such as an idle mode in the case of a print device, where the print device is ready to print) before transferring to a lower energy-consuming state (such as standby mode in which the print device is not ready to print and has to be warmed up to the idle mode before printing can commence), assuming that no further job is received in the interim period (which resets the time-out).
In the discussion which follows, the multi-device system will be described in terms of a print system and the devices as printers, however, it is to be appreciated that the system may include other devices, in particular, electromechanical devices.
With reference to
In general, when executing the print jobs 16, the print engines 18, 20 apply images to print media, such as paper, using marking materials, such as inks or toners, to yield hardcopy prints 22. In the case of a xerographic print engine, the print engine charges a photoreceptor, in the form of a belt or drum, thereof to a uniform potential and selectively discharges the photoreceptor to create a latent image. The print engine then develops the latent image by applying toner particles of a selected color or colors from a developer housing to the photoreceptor and transferring the latent image to the print media. The transferred image is then fused to the print media with a fuser using heat and/or pressure, thereby yielding a hardcopy print.
Communications units 24, 26, such as modems, of the print devices 12, 14 typically receive the print jobs 16 via a communications network 28, such as a local area network, and receive the print jobs 16 at variable times. For example, some print jobs may arrive at intervals of 1-2 minutes, while others may be many minutes or even hours apart. Upon receiving the print jobs 16, controllers 30, 32 of the print devices 12, 14 add the print jobs 16 to local print queues of the print engines 18, 20 and schedule the print jobs 16 for execution using, for example, a first-in-first-out (FIFO) scheduling algorithm. In some embodiments, a print device receiving one of the print jobs 16 is further awakened from a power saving mode and/or otherwise readied for execution of the print job. The controllers 30, 32 each include a processor executing computer executable instructions on associated memories. The computer executable instructions suitably embody the foregoing functionality, such as the scheduling algorithm. Further, the controllers 30, 32 exchange data with components of the print devices 12, 14, such as the communication units 24, 26 and the print engines 18, 20, via one or more system buses 34, 36.
To reduce power consumption, each of the print devices 12, 14 includes a plurality of different operating modes corresponding to different power consumption levels. For ease of discussion, it is assumed that each print device includes an idle mode and a power saving mode. However, it is to be appreciated that additional operating modes are equally amenable. In an idle mode, a print device is ready to be used for printing and typically requires the most power. In the power saving mode, the print device draws enough power to support certain functions of the print device, but requires a warm up period before it is fully operational again.
The controllers 30, 32 of the print devices 12, 14 switch the print devices 12, 14 from idle mode to power saving mode depending upon time-outs assigned to the print devices 12, 14 by a power control system 38. Typically, the communications units 24, 26 of the print devices 12, 14 receive the time-outs from the power control system 38 via the communications network 28. Further, as is discussed below, the time-outs are optimized to minimize the expected cost to the multi-device print system 10 as a whole, rather than per device. When a print device is in the idle mode and the length of time since a print job was executed exceeds the assigned time-out, the controller of the print device switches the print device to the power saving mode.
One or more print job generators 40 generate the print jobs 16. The print job generators 40 may generate print jobs based on manual input and/or automatically. As to the former, print job generators are associated with users which control generation of print jobs. To facilitate the user generation of print jobs, these print job generators typically each include or are associated with one or more user input devices 42, such as a keyboard, cursor, control device, touch screen, and so on and/or one or more user output devices 44, such as a display. As to the latter, print job generators include software component stored in memories 46, and executed by processors 48, which are pre-programmed to generate print jobs in response to a set of criteria. For example, a software agent may be pre-programmed to print every email received at an inbox.
Each of the print jobs 16 generated by the print job generators 40 includes a selection of one of the print devices 12, 14 to execute the print job. Further, a software agent pre-programmed with a set of one or more rules typically carries out the selection. For example, such rules may specify that all color print jobs use a first print device, and all other print jobs use a second print device or a different print engine of the same device. However, when the print job is manually generated, the selection may be carried out based on manual input using, for example, the user input devices 42. As noted above, users typically select the print device that is best for them individually, without factoring in power consumption considerations.
When a print device is selected, transfer costs for executing the print job on the other print devices are also specified. For example, if a first print device of a two print device system is selected, the transfer cost for executing the print job on the second print device is also specified. The “transfer cost” for the selected print device is assumed to be zero. The transfer costs to other devices typically correspond to one or more of the loss of productivity to the user and print quality as a result of using the other print device(s). Typically, a software component stored in the memories 46, and executed by the processors 48, is pre-programmed with a set of one or more rules for completing the transfer costs. However, when the print job is manually generated, the transfer costs may be specified manually using, for example, the user input devices 42.
The print job generators 40 include the processors 48 executing computer executable instructions stored on the memories 46. The computer executable instructions suitably embody the foregoing functionality, such as the functionality of the software agents. In some embodiments, the print job generators 40 include one or more computers, such as laptop computers, workstation computers, desktop computers, smart phones, personal digital assistants, and the like, or any computing device capable of implementing the exemplary method. The print job generators 40 further includes communication units 50 for communicating with other devices connected to the communications network 28. Components of the print job generators 40, such as the processors 48, the memories 46, the user input devices 42, the user output devices 44, and the communication units 50, communicate via one or more system buses 52.
The power control system 38 aims to reduce power consumption of the multi-device print system 10 by assigning each of the print jobs 16 to a globally optimal print device under the constraints imposed by the print jobs. The globally optimal print device for a print job is the print device which can execute the print job under the print job constraints with the least cost to the multi-device print system 10. Costs taken in to account include power consumption costs (present and/or future) and transfer costs. When no transfer costs are specified, the transfer costs are assumed to be zero. Further, transfers can be disabled when infinite transfer costs are specified. An assignment for a print job is typically determined in response to receiving the print job at the power control system 38.
To determine the globally optimal print device for a print job, a number of approaches may be employed. In some embodiments, the overall system cost is modeled as a function of at least one of a cost of printing on the selected device, including costs associated with waking up the selected print device if it is in a power saving mode, the transfer cost of transferring the print job to a device other than the selected device, and the cost of printing on the transfer device for each of the devices to which the print job could be transferred. The cost function is then optimized (e.g., minimized using a suitable optimization method). In some embodiments, the system cost for each print device is determined and then the print device with the minimum cost can be selected for assignment of the print job. In other embodiments, the assignment decision is modeled using a Markov Decision Process (MDP), as discussed below, which also employs minimization of a cost function. After determining the optimal print device, the print job is assigned to the print device.
The exemplary power control system 38 further reduces power consumption of the multi-device print system 10 by optimizing the time-out for each print device. The optimal time-out for a print device can be computed as the time-out which minimizes the expected power consumption resulting from keeping the print device in idle mode, then possibly putting it in power saving mode and back to idle mode again, until the next print job is assigned to the print device. Notably, the optimal time-out for a print device is not based solely on the stochastic behavior of the demand since the device may receive print jobs through transfers. Typically, the time-outs are determined after assignment of a print job. However, other trigger events are contemplated, such as periodic timer events.
To determine the optimal time-out for each print device, a number of approaches may be employed. In some embodiments, the expected power cost of the multi-device print system 10 is modeled as a function of at least a combination of two or more time-outs, each time-out corresponding to a respective one of the print devices 12, 14 (or at least those print devices in idle mode). The time-out cost function includes the cost of transitioning the print devices between idle mode and power saving mode given at least the demands of the print devices and the expected transfers to the print devices. The expected demands may be determined from known probability distributions for the inter-arrival time of print jobs of the print devices. The expected transfers may be determined from known probability distributions for device selection and, optionally, predicted transfer costs for users. The time-out cost function is then minimized using a suitable optimization method. In other embodiments, the time-out decisions are modeled using an MDP, as discussed below, which also employs minimization of a cost function.
The probability distributions can be generated in a number of different ways. In one method, the requisite data (e.g., inter-arrival data, device selections, and/or transfer costs) are obtained directly from the print devices 12, 14. Alternatively, it may be derived from job tracking data stored and available for retrieval on the print devices 12, 14. Or, the data may be obtained from print servers or client workstations which host the print job generators on which software monitoring the print activity is present. In some embodiments, these probability distributions may vary for different demand states, such as time of day. For example, the demand is likely to be very different at midnight than at noon. Changes in demand state may be determined from probability distributions determined as described above.
The power control system 38 may be embodied in hardware or a combination of software and hardware. In the exemplary embodiment, the power control system 38 includes a memory 54 and a processor 56 in communication therewith. The memory 54 stores instructions for performing the exemplary method, described in further detail hereafter, including optimizing the power consumption of the multi-device print system 10, and which are executed by the processor 56. The power control system 38 further includes a communication unit 58 for communicating with devices connected to the communications network 28. One or more system buses 60 link components of the power control system 38, such as the processor 56, the memory 54, and the communication unit 58. The power control system 38 may be resident, for example, on a server linked to the print devices 12, 14 via the communications network 28. However, in some embodiments, the power control system 38 is integrated with one of the print devices 12, 14 and/or distributed across the print devices 12, 14.
The term “software,” as used herein, is intended to encompass any collection or set of instructions executable by a computer or other digital system so as to configure the computer or other digital system to perform the task that is the intent of the software. The term “software” as used herein is intended to encompass such instructions stored in storage medium such as RAM, a hard disk, optical disk, or so forth, and is also intended to encompass so called “firmware” that is software stored on a ROM or so forth. Such software may be organized in various ways, and may include software components organized as libraries, Internet based programs stored on a remote server or so forth, source code, interpretive code, object code, directly executable code, and so forth. It is contemplated that the software may invoke system level code or calls to other software residing on a server or other location to perform certain functions.
The term “controller,” as used herein, is intended to include a processor and a memory. The term “user input device,” as used herein, is intended to include one or more of a mouse, a keyboard, a touch screen display, one or more buttons, one or more switches, one or more toggles, and the like. The term “user output device,” as used herein, is intended to include one or more of a LCD display, an LED display, a plasma display, a projection display, a touch screen display, and the like. The term “communications network,” as used herein, is intended to include one or more of the Internet, a local area network, a wide area network, a wireless network, a wired network, a cellular network, a data bus, such as USB and I2C, and the like. The term “communication unit,” as used herein, is intended to include one or more of a modem, Ethernet adapter, WiFi adapter, 3G modem, a cable modem, a DSL modem, and any other adapter or modem facilitating communication with a network.
The term “processor,” as used herein, is intended to include one or more of a microprocessor, a microcontroller, a graphic processing unit (GPU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and the like. Further, the above described processors, such as the processors 48, 56 of the print job generators 40 and the power control system 56, can each be variously embodied, such as by a single core processor, a dual core processor (or more generally by a multiple core processor), a digital processor and cooperating math coprocessor, a digital controller, or the like. As to the processor 56 of the power control system 38, any device capable of implementing a finite state machine that is in turn capable of implementing the flowchart shown in
The term “memory,” as used herein, is intended to include one or more of a non-transient computer readable medium; a magnetic disk or other magnetic storage medium; an optical disk or other optical storage medium; a flash memory; a holographic memory; a random access memory (RAM), read-only memory (ROM), or other electronic memory device or chip or set of operatively interconnected chips; an Internet/Intranet server from which the stored instructions may be retrieved via the Internet/Intranet or a local area network; or so forth. In one embodiment, each of the memories above described, such as the memories 46, 54 of the print job generators 40 and the power control system 56, comprises a combination of random access memory and read only memory. Exemplary memory stores instructions for performing the exemplary method and data used and generated therein, as well operating instructions for operating the respective computer.
With reference to
The method illustrated in
Alternatively, the method may be implemented in transitory media, such as a transmittable carrier wave in which the control program is embodied as a data signal using transmission media, such as acoustic or light waves, such as those generated during radio wave and infrared data communications, and the like.
Alternatively, the method may be implemented on one or more general purpose computers, special purpose computer(s), a programmed microprocessor or microcontroller and peripheral integrated circuit elements, an ASIC or other integrated circuit, a digital signal processor, a hardwired electronic or logic circuit such as a discrete element circuit, a programmable logic device such as a PLD, PLA, FPGA, Graphical card CPU (GPU), or PAL, or the like. In general, any device capable of implementing a finite state machine that is in turn capable of implementing the flowchart shown in
Further details of the exemplary multi-device print system 10 and method will now be described.
Model of the System
The exemplary print system 10 is modeled as a set of devices, each with costs assigned to it, such as power consumption costs in various states, such as sleep and ready modes, and transfer costs (predetermined and/or user assignable) for transferring jobs between devices. The system model 62 may be stored in memory 54, or elsewhere in the system. The model 64, when input with parameters for a new job to be executed, identifies an optimum solution to a value function (energy cost function) over all devices in the system 10 (i.e., for a plurality of devices capable of performing the job), based on the current states of the devices and their expected future states (based on the expected future demand for jobs to be executed). The solution indicates whether a job should be transferred to another device in the system (and if so, to which device) or be executed on the device to which it is assigned by the job ticket. The exemplary model 64 also computes time-outs for the devices, following the job assignment decision.
One approach for reducing power consumption is to model the multi-device print system 10 as a Markov Decision Process (MDP) with a constrained cost structure. MDPs are typically employed to facilitate decision making by identifying the decision with the least cost. As noted above, power consumption is minimized by determining assignments of print jobs and time-outs for the print devices. Each possible decision takes the multi-device print system 10 to a different system state and each transition to a different system state includes a cost.
The state of the multi-device print system 10 is given by a demand state and a control state. The demand state corresponds to at least one variable affecting demand or load of the multi-device print system 10, such as time of day. It is assumed known and determines the stochastic behavior of two random variables, time to the next job (i.e., inter-arrival time) and user choice of device for that job. The probability distributions for these two random variables are determined as discussed above. The control state corresponds to the operating mode, such as one of an idle mode and a power saving mode, of each print device in the system. As noted above, each operating mode has a different power consumption level.
For each print job, two determinations (or decisions) are made. The first determination is which print device to assign a received print job to and is made prior to assignment by the power control system 38 to a specific device when the print job is received by the power control system 38. Such a determination takes in to account the selected print device as specified in the print job ticket. The second decision is what time-outs should be assigned to the print devices 12, 14. This decision is made by the power control system 38 after assigning a print job. In contrast to the first determination, the selected print device is not taken in to account when making the decision.
The costs incurred by a decision can be of two types. The first type of cost is incurred when a job is assigned and includes the expected cost of transfer, if any, plus the cost of transitioning the assigned print device to the idle mode (if needed). As discussed above, the expected cost of transfer is typically set when the print job is created and can be included in the print job ticket. The second type of cost is incurred when time-outs are set and includes the cumulated cost induced by the time-out on each device in idle mode. The individual cost of a device includes the overhead cost of maintaining the device in idle mode until the time-out or the next job plus the cost of putting the device in to power saving mode if the time-out is actually reached. The cost of maintaining a device in sleep mode or the cost to actually perform the jobs need not be considered as they are incurred whatever the decision.
In one embodiment, the MDP is solved with a value iteration procedure. However, other procedures for solving the MDP are also contemplated. The value iteration procedure is a dynamic programming technique to compute the expected cost to go associated with each state of the system (i.e., the expected cost of the whole sequence of events from that state). Since the expected cost is typically infinite, in one embodiment, the horizon of the sequences is bounded and/or a discount factor is introduced which exponentially or otherwise reduces the contribution of the different steps in the sequence over time. While the use of a bounded horizon can be employed, the solution hereafter employs a discount factor.
One challenge with solving the MDP using the value iteration procedure is in how to compute the value of a state immediately after assignment (i.e., how to determine the time-outs). There are as many variables as there are print devices, where each variable represents the time-out of one device. Further, even when the number of print devices is assumed small (e.g., 10 or less), the solution can still be quite involved and does not have advantageous properties, such as convexity, which would make it amenable to standard numerical optimization methods. In one embodiment, the problem can be solved by reducing the problem to a bounded sequence of one-dimension optimizations.
Value Iteration Method
To solve the MDP using the value iteration procedure and a discount factor, it can be assumed the multi-device print system 10 includes K print devices where each print device k has two operating modes (0 or 1) in which 0 represents a power saving mode, such as a sleep mode, and 1 represents a mode in which more power is consumed than in the power saving mode, such as an idle mode. A binary set of operating modes is chosen for ease of discussion; however, additional modes are also contemplated, such as three, four, or five modes, each with a respective power consumption.
Let each print device k have a power cost rate āk in the idle mode, a power cost rate ak in the sleep (power saving) mode, and a rate of savings ak when the print device is in the power saving mode. The cost rates āk, ak, and ak can each be expressed as a monetary unit per unit time, such as dollars/hour or in other similar units, and can be stored in memory 54. Since power consumption in the power saving mode is less than power consumption in the idle mode, the rate of savings ak is equal to āk-ak. Further, let each print device k have a cost {hacek over (b)}k to transition from idle mode to power saving mode and a cost {circumflex over (b)}k to transition from power saving mode to idle mode. These costs can be expressed in monetary units, as for the cost rates āk, āk, and ak, and can be stored in memory 54.
A vector (Rk)1:K can be generated in which each component Rkh is the cost of transferring a job that was elected to be printed by a device k to a device h. As should be appreciated, this vector corresponds to the transfers costs. When determining the present cost of a job, specified transfer costs can be employed e.g., specified by the submitter of the job 16, e.g., in the job ticket. When determining an expected cost, the transfer costs may be determined probabilistically or based on a system average (over all devices). A component Rkh of the vector is assumed to have a value of zero if device k is the same as device h (because there is no transfer cost) and is non-negative otherwise.
The total cost generated by a print device k, initially in idle (ready) mode, that is scheduled to switch to sleep mode after a timeout τ and which is assigned a single job at the beginning of a period x, during the period x includes an uncontrollable cost and an overhead cost gk. The uncontrollable cost includes the job execution cost plus the cost akx incurred by the device if it were in the most cost efficient mode (i.e., power saving mode) during the whole period. The overhead cost gk is the cost of maintaining the device in idle mode during a part or the whole of the period x, which is controlled by the time-out τ. The overhead cost gk for the device k, initially in idle mode and assigned a single job at the beginning of the period x, can therefore be modeled as follows.
gk(x,τ)II[x<τ]akx+II[x≧τ](akτ+{hacek over (b)}k) (1)
II[condition] returns 1 when the condition in brackets is true and 0 otherwise. Since the uncontrollable cost is static and not affected by the decisions taken, only the overhead cost gk is considered.
The multi-device print system 10 receives job requests, such as the print jobs 16, in sequence. For the nth print job in the sequence, let Lnε{1:K} be the index of the device that was selected for the print job and let Xnε+ (where + indicates a positive number), be the time elapsed since the previous print job was submitted to the device infrastructure (i.e., the global inter-arrival time). The device Ln that was selected for the nth print job may not be the one which executed it due to a transfer. It is assumed that the random variable (XL)n follows a probability distribution such as a semi-Markov dynamic controlled by an observed demand state Zn, which exists in an arbitrary space of possible demand states.
It is further assumed that two stationary probability distributions P, Q define the process and are known.
p(Xn,Ln|(Z,X,L)1:n−1)=P(Xn,Ln|Zn−1) (2)
p(Zn|Xn,Ln,(Z,X,L)1:n−1)=Q(Zn|Xn,Ln,Zn−1) (3)
These equations express the semi-Markov assumption and make explicit the two probability distributions involved. They describe a generative model of the random process, given an initial demand state Z0 as follows:
1 Set n:=1
2 repeat forever:
3 Draw Xn, Ln from distribution P(·|Zn−1)
4 Draw Zn from Q(·|Xn, Ln, Zn−1)
5 Set n+=1
“Stationary” means that these distributions P, Q are not influenced by the decisions taken by the power control system 38. They deal only with the external demand, which is assumed independent of the actions of the power control system 38. Overall, the random variable (Z,X,L)n follows a full Markov dynamics determined by P, Q.
One (poor) choice for the demand state, which intrinsically always satisfies the semi-Markov assumption, is to let Zn be the whole history of the demand Zn=(X,L)1:n. Then Q is deterministic (i.e., a Dirac distribution): given Xn=x, Ln=l and Zn−1=z, Q concentrates all the mass of Zn onto the history z′ obtained by appending (x, l) at the end of z. However, the demand space in that case is unmanageable. Hence, the choice of a manageable demand state space and model satisfying the semi-Markov assumptions is application dependent. In the exemplary embodiment, no assumption is made regarding P, Q, which may or may not be deterministic, but it is assumed that they are known.
To model the multi-device print system 10, it is assumed that job execution time is negligible and that a job selected for execution on a device k is assigned immediately as soon as it is received either to device k or to some other device. The state of the multi-device print system 10 at any time is given by a pair σ1:K, z, where σ1:K is a control state of the system 10 and z denotes the demand state of the system 10. The control state σ1:K is a binary vector whose k-th component holds the mode of device k (0 or 1).
In response to receiving a job for execution on one of the devices, two decisions are made. Let h be the selected device's index. The first decision is made immediately upon receipt of the job and is to which device to assign the job. The second decision is made just after the assignment when the system 10 is in state σ. This decision is a family (τk)kεσ of non-negative time-outs, where each τk denotes the time-out for device k (i.e., the time after which device k is to be switched to power saving mode if it has not been assigned a job in between).
Consider the optimization at infinite horizon with discount factor γ. Let Vhσ, z and Vσ, z be the optimal expected costs to go from state σ, z, respectively before and after the assignment. The optimality equations (i.e., Bellman equations) for these costs are as follows.
ek denotes a vector of size K with the kth component equal to 1 and the other components equal to 0.
Equation (4) can be explained as follows: if a job for device h is received in state σ, z, and that job is sent to device k instead, the expected cost to go includes:
Equation (5) can be explained as follows: if, in state σ, z after the (n−1)-th job has been assigned (hence Zn−1=z), the time-outs (τk)kεσ are applied to the idle devices (i.e., those which belong to a), the expected cost to go is the expectation over the random variables Xn, Ln, Zn (i.e., the integral over all their possible values x, l, z′ with the appropriate distribution defined by Equations (2) and (3)) of the following costs:
1. Σkεσgk(x, τk): the total overhead consumption cost induced by the timeouts for each currently idle device, as defined by Equation (1); since this term does not depend on z′ it can be taken out of the integral over that variable; and
2. γVl(σ′, z′): the discounted cost to go from the new state σ′, z′ when the new job has just been received on device l but not yet assigned; state σ′ consists of the devices which are still idle when that job is received (i.e., those kεσ for which τk>x), which can be written as:
σ′=ΣkεσII(τk>x)ek.
Reduction of the Optimality Equation
The optimization problem of Equation (5) is transformed by changing the control variable τ. In state σ, there are r=Σkσk devices which need to be assigned a time-out. Equation (5) can be conveniently specified by giving the sorted sequence τ′1:r of elements in τ, and the injective mapping v: {1: r}→{1: K} such that σv
It can be observed in Equation (6) that τ is now a vector with r non decreasing components, and σ has disappeared from the objective. It is only present in the constraint that v should be an ordering of the indices of the r non null components of σ. For a given τ, let τ be extended with τ0=0 and τr+1=∞. Since τ is non-decreasing, for all non-negative x, there exists a single iε{1:r+1} such that τi−1≦x<τi. Furthermore, in that case, for all jε{1:r} it holds that II[x<τj]=II[i≦j]. Reformulating the above Equation (6), yields the following:
This minimization problem has a discrete component v in a range of size r, and a continuous component τ in dimension r. However, the objective function is a sum of r+1 terms, each of which involves a limited subset of variables: τi−1, τi and (vj)j=ir. This suggests that it can be transformed into a sequence of one-dimensional optimizations. An intermediate value function V•t, σ, z can be introduced, which is the value function at different steps during that sequence, and has a single extra parameter t (a non negative number) defined backward inductively as follows.
For any σ (null or non-null), the following holds:
Vσ,z=V•0,σ,z. (10)
A value-iteration algorithm for solving the problem can be implemented, as follows.
The propagations of the value functions can be summarized as follows.
Representation of the Solution
One challenge with the foregoing is that the inductive definition of V• makes the computation of the value at t, σ, in a given demand state z, dependent on all the values at τ, σ′ for τ≧t and σ′⊂σ. There are finitely many σ′⊂σ, but infinitely many τ≧t. A solution to this problem uses a formulation of the equation in terms of operators in a function space rather than point-wise computations. Let V∘ and v be defined as follows, where gσ(x,t)=Σkεσgk(x, t):
V∘t,σ,z∫xl(−gσ(x,t)+γII[t≦x]∫z′Vlσ,z′dQ(z′|zxl)dP(xl|z) (11)
vt,σ,zV•t,σ,z−∫xlgσ(x,t)dP(xl|z) (12)
Transforming Equations (8), (9), and (10) yields the following.
The purpose of this transformation is that now, the point-wise equations can be translated in a compact way into the following functional equations.
The notation ƒ(•, p) is used here to denote the function t→ƒ(t,p), where p is some parameter or tuple thereof. Operator ↓ on functions is defined as follows:
The propagations of the value functions can now be summarized, in the general case, as
(the numbers in parentheses indicating the equations used) with the following equations.
Given z, let ∘ be the (finite) set consisting of the initial functions V∘t, σ, z for all σ. A computable function space is identified which includes the following properties.
Given such a space, vt, σ, zε can be constructed inductively in using Equations (16) and (17), and V can finally be computed from v. If there is no obvious space satisfying (), then can be chosen a priori. In that case, the elements of ∘ and the operators min(ƒ,g) and ↓(ƒ−g)+g are replaced by approximations which satisfy (). A typical example of such an a priori space where approximations are possible is the space of piecewise constant functions.
Choice of the Solution Function Space
To choose the function space, let c be the set of functions of the form ƒ+r1 where ƒε∘ and r is any scalar. Further, let * be the space of functions which are piecewise c (i.e., of the form ΣkεK1A
then it can be shown that * satisfies Assumption () and is amenable to the treatment described above. Note that in (2*), T may be equal to +∞. Now, observe that Assumption (*) is rather mild. Indeed, consider two functions ƒ, gεc and let h=ƒ−g. Let=I denote the (equivalence) relation which holds between two functions when they coincide on a given interval I.
Assumption (*1) holds if II[h(t)≧0] is piecewise constant in t (i.e., there is an interval partition of +, such that h is either uniformly negative or uniformly non negative on each interval). Indeed, if h is negative on an interval I, then min(ƒ, g)=Iƒεc, and if h is non negative on the interval I, then min(ƒ,g)=Igεc. Therefore, min(ƒ,g) is piecewise c and in *. Furthermore, the boundaries of the intervals of the partition can be computed: they are either discontinuity points of h or points where h(t)=0. See
Assumption (*2) also holds if h has only finitely many discontinuities and II[∃τ>t hT(τ)<hT(t)] is piecewise constant in t, where hT=1[0,T)h. Indeed, consider an interval I where it is constant. One of these intervals is I=[T, +∞) on which hT=I0 and hence ↓hT+g=Igεc. Now assume that I⊂[0,T). Without loss of generality, assume that h is continuous on I (otherwise split I at the discontinuities). If for all tεI and τ>t it is true that hT(τ)≧h(t), then ↓hT(t)=h(t)=ƒ(t)−g(t) and hence ↓hT+g=Iƒεc. If, on the other hand, for all tεI there exists τ>t such that hT(τ)<h(t), then it is easy to show that ↓hT must be constant on I.
Hence, ↓(1[0,T)(ƒ−g))+g is piecewise c and hence in *. The boundaries of the intervals are slightly more difficult to compute. It essentially requires the identification of the discontinuities of h, its local minima, and the points at which the value of a local minimum is reached. See
Implementation
If Assumption (*) holds, all the computation in * needed to obtain v(t, σ, z) can be done in the space Δ∘ of functions of the form V∘t, σ′, z−V∘t, σ″, z with σ′, σ″⊂σ (difference of initial functions). And this computation can be entirely based on two procedures
Both procedures return a finite interval partition of the real positive numbers +. For each interval I in the partition,
Assuming (to simplify) that all functions in ∘ are continuous, both procedures can, in turn, be implemented using a
At line 6, if the condition is satisfied, h−r1 changes sign over [u, v) and since, by definition of procedure
Initialization of the Model
With some further assumptions on the distributions driving the demand, the functions in ∘ have a regular form which simplifies their analysis.
x and l are independent given z, and z′ is independent of x given zl. Under assumption (∘), it can be shown that V∘t, σ, z is of the following form:
V∘t,σ,z=−aσψ(t|z)+(−{hacek over (b)}σ+γΣlP(l|z)∫z,Vlσ,z′dQ(z′|zl))ψ′(t|z), (27)
where aσ=Σkεσak, {hacek over (b)}σ=Σkεσ{hacek over (b)}k and ψ, ψ′ are defined as follows:
Note that ψ′ is indeed the derivative of ψ wherever the former is continuous. Equation (34) means that the solution space Δ∘ is included in the function space spanned by ψ(•|z), ψ′(•|z). Since procedures SIGN and GLMB are homogeneous, it is sufficient to know how to compute them for functions of the form ψ+cψ′ or ψ′ alone.
Hereafter described are a few examples that have special properties that simplify decision making.
1. Single Device
Suppose the system 10 includes only a single print device. As will be appreciated, this example demonstrates the applicability of the method and is not intended to represent the exemplary multi-device system. In such a system, there is no alternative for job assignment. Further, there are only two control states 0 and 1, but only state 1 is of interest since power saving mode needs only to be scheduled just after assignment (i.e., when the single device is in idle mode). The optimization problem then simplifies to the following equations. The propagation of the value functions can be summarized as V→V.
It can be observed that in a given demand state z, the minimization problem above does not depend on distribution Q and is outside the integral over the possible subsequent states. In other words, optimization can be made in each demand state independently, and only at a one-step horizon. The actual computation of the value function is of no interest and the optimal time-out schedule in a given demand state z is directly obtained by the minimization objective above, which can be rewritten as (omitting z) follows.
Hence, the following holds.
Equation (33) is simply obtained by annulling the derivative of the objective, assuming that distribution P has a density ƒ (i.e., dP(x)=ƒ(x)dx), and F is its cumulated density.
2. Memoryless Process
In this example, it is assumed that P is an exponential under a single demand state, and hence Q is trivial and the demand state can be omitted in the expressions. P can be represented as follows.
dP(x)=λ exp(−λx)dx (34)
P(l)=πl (35)
where Σlπl=1.
This assumes that job requests arrive according to a Poisson distribution process of rate λ and each request is independently dispatched according to a multinomial of parameter π over the devices. Alternatively, and equivalently, requests to any one device I arrive according to a Poisson distribution process of rate λπl and devices are independent. Assumption (∘) holds yielding:
Note that the constant −aσ/λ can be dropped in V∘, because it is null when σ=0 and irrelevant otherwise, as can be seen from Equation (17). Hence space Δ∘ is included in the unidimensional function space spanned by exp(−λ) only.
For any scalar a it can be shown that:
↓(a exp(−λt))=min(a,0)exp(−λt) (39)
This leads to the following simplified equations.
The propagation of the value functions in the case of a memoryless process can be summarized as V→V1:K→V with Equations (40) and (41).
If V, V1:K satisfy these equations, then an optimal control is obtained as follows:
3. Partially Revealed Process
The distributions P and Q are the drivers of the demand process. Given a sequence (xilizi)i=1N, zN+1, consider the variant of the demand process driven by distributions P′ and Q′ as follows. The variant state space is ′= {1: N} and for all iε{1: N}:
In other words, P′, Q′ drive a process in which the N first items are prescribed, and the remainder is driven by P, Q. The optimal value functions at a demand state zε are identical under the original process P, Q and its variant P′, Q′. Therefore only the prescribed demand states iε{1: N} are of interest. At these states, assumption ∘ holds and yields the following.
For any non-decreasing function ƒ, it can be shown that:
↓(ƒII[t≦xi])=min(ƒ,0)II[t≦xi] (44)
This leads to the following simplified equations.
The propagation of the value functions for the partially revealed case can then be summarized as V→V1:K→V with Equations (45) and (46).
If V, V1:K satisfy these equations, then an optimal control is obtained as follows:
4. Weibull Demand
In this example, P is considered to be a Weibull distribution under a single demand state, and hence Q is trivial and the demand state can be omitted in the expressions. P can be represented as follows:
dP(x)=λκ(λx)κ−1 exp(−(λt)κ)dx (47)
P(l)=πl (48)
where Σlπl=1.
Further, assumption (∘) holds leaving the following.
γ denotes the incomplete Gamma function and Ψ the function
(thus depending only on κ). Up to rescaling, the functions in Δ∘ are of the form either Ψ′, which has an exponential-like shape, or Ψ+cΨ′, which can assume the different shapes shown in
which is a maximum if κ>1 and a minimum if κ<1.
Here the equations do not simplify, but primitives
5. Other Demand Distributions
Many other demand distributions can be handled in the same way as the Weibull distribution example above. The distribution examples above include the following: there is a single demand state (hence Q is trivial and the demand state can be omitted in the expressions); and (∘) holds, which essentially means that demand generates independently the global job flow and then dispatches each job still independently according to a fixed multinomial among the devices. Function ψ′ is essentially the complementary cumulative distribution function associated with P and often has an analytic form. Function ψ is obtained by integration of ψ′. If an analytic form is available for ψ, as in the Weibull case, then the computation of primitives
Without intending to limit the scope of the exemplary embodiment, the following example experiments illustrate the applicability of the method.
An experiment was performed using simulated demand. This experiment included the following steps: (i) choose a distribution P for which ψ and ψ′ have an analytic form, as well as some arbitrary multinomial distribution π for dispatch; (ii) generate N demand sequences of length T accordingly, starting at some given demand state; (iii) compute the value functions of various policies under demand P, π; (iv) for each of the N sequences, compute the variant of each policy when that sequence is revealed; (v) compute the costs generated by the two kinds of policies (non-revealed and revealed) at each of the T steps; and (vi) average the costs over the N sequences. The resulting T (cumulated) costs can be plotted, showing, for each policy, the regret between that policy when the future up to T is known and when it is not known. In all cases, the revealed policy is expected to perform not worse than the original one.
Two policies were employed, the transfer policy, which is the optimal policy computed as described above, and the selfish policy, in which each device separately implements its own optimization independently of the others (as for the single device case above). The selfish policy is not easy to compute from the global demand. Indeed, the global demand process induces device specific demand processes which may be very different from the global one, and may not be easily computable. In general, the demand process for device l is obtained as an infinite mixture with geometric weights πl(1−πl)n of self-convolutions of order n of the global demand. However, in the case of an exponential global demand with rate λ, computations simplify and the individual device demand for device l is also exponential with rate πlλ. In that case, comparing the two policies transfer and selfish is possible.
The results are shown in
Another experiment was performed using real demand data. This experiment included the following steps: (i) fit a global demand model to the data; (ii) compute the value function of the transfer policy under this demand model; (iii) for each of the devices, fit an individual demand model to the data corresponding to that model; (iv) and compute the value function of the selfish policy under that demand model assuming the device is alone; and (v) compute the costs of the transfer and selfish policies on the available data. The main difference with simulated data is that here, the global demand model and the individual ones for each device can be chosen from the same family (e.g., Weibull), as they are most likely to both be non-exact anyway.
The results are show in
Although the present disclosure has been described with respect to a multi-device print system 10, it is to be appreciated that it finds application in other usage scenarios. For example, it could be applied to an inventory management system, where the print devices 12 are replaced with items in the inventory which are interchangeable at a cost, electricity consumption corresponds to holding cost, and the penalty for not having an item is infinite (this corresponds to the constraint of immediate execution of the jobs. Furthermore, a single item can serve multiple demands, so there is never need for more than one unit of the item, and there is an option of throwing it away, possibly at a cost.
Even more, although the present disclosure has been described for power consumption, it is to be appreciated that it is more broadly applicable to energy consumption. As used herein, the term “energy” is the amount of power consumed. In contrast, power is the rate of energy consumption. In the context of a print system, energy costs include the amount of power used to complete a print job, the energy cost of making paper, ink/toner, and other resources which need replacement, and so on. For example, printing on lighter paper sheets saves energy since thick paper requires more energy to manufacture. Hence, the present disclosure can transfer print jobs and optimize time-outs so as to use the least amount of energy, including the energy going in to manufacturing components thereof, such as consumable components (e.g., ink, paper, etc.).
It will be appreciated that variants of the above-disclosed and other features and functions, or alternatives thereof, may be combined into many other different systems or applications. Various presently unforeseen or unanticipated alternatives, modifications, variations or improvements therein may be subsequently made by those skilled in the art which are also intended to be encompassed by the following claims.
Number | Name | Date | Kind |
---|---|---|---|
6167524 | Goodnow et al. | Dec 2000 | A |
6453127 | Wood et al. | Sep 2002 | B2 |
6526433 | Chang et al. | Feb 2003 | B1 |
20060112388 | Taniguchi et al. | May 2006 | A1 |
20060206445 | Andreoli et al. | Sep 2006 | A1 |
20080313640 | Liu et al. | Dec 2008 | A1 |
20090138878 | Fernstrom et al. | May 2009 | A1 |
20090201531 | Pandit et al. | Aug 2009 | A1 |
20090300390 | Vojak et al. | Dec 2009 | A1 |
20110010571 | Dance | Jan 2011 | A1 |
20110026070 | Kohli et al. | Feb 2011 | A1 |
20130163037 | Huster | Jun 2013 | A1 |
Number | Date | Country |
---|---|---|
1 703 372 | Sep 2006 | EP |
WO-2011-110673 | Sep 2011 | WO |
Entry |
---|
Ciriza, et al. “User-friendly power management algorithms”, hal-00142509, Version 1, Sep. 1, 2009, pp. 1-32. |
Bertsekas, D. P., “Chapter 6, Approximate Dynamic Programming”, Dynamic Programming and Optimal Control, 3rd Edition, vol. 2, MIT, Sep. 9, 2011, pp. 320-552. |
Energy Star®, Program Requirements for Imaging Equipment, Version 1.0, downloaded Jun. 29, 2009, p. 1-19. |
Helmbold, et al., Adaptive Disk Spin-Down Policies for Mobile Computers, In Proc. 2nd USENIX Symp. on Mobile Networks and Applications, 5 (2000) 285-297. |
Lu, et al., Adaptive Hard Disk Power Management on Personal Computers, IEEE Great Lakes Symposium on VLSI, pp. 50-53, 1999. |
Market Transformation Programme, BNICT17: Energy Star® Specification for Imaging Equipment, Version 2.1, May 25, 2006, available at www.mtprog.com. pp. 1-12. |
Network Working Group, RFC1759—Print MIB, downloaded Jun. 29, 2009, available at http://www.faqs.org/rfcs/rfc1759.html. pp. 1-95. |
Ciriza, et al., A Statistical Model for Optimizing Power Consumption of Printers, Poster Presentation during a joint meeting of the Statistical Society of Canada & the Societe Franyaise de Statistique, in Ottawa Congress Centre, May 25-29, 2008, pp. 1-7. (Re-submitted). |
Number | Date | Country | |
---|---|---|---|
20130145187 A1 | Jun 2013 | US |