The embodiments disclosed herein generally relate to printing and more particularly to the handling of rush print jobs in a high volume printing operation.
In a print shop, jobs often are accepted manually by the print administrators and assigned to print operators. If the print shop is busy, the jobs typically are aligned one against the other with little room to insert any rush print jobs. In such cases, when a rush order job arrives, the print administrator must manually re-schedule print jobs in order to accommodate the rush job.
Methods are known for estimating penalites resulting from the late delivery of services. U.S. Patent Application Publication 2005/0055697 A1 is directed to a method for resource allocation in which start times for a plurality of tasks are assigned in a manner that will minimize penalties for delayed completion times. Scheduling theory has been developed that addresses the rescheduling of jobs of various types based on completion time. For example, “Approximation Algorithms for Job Interval Selection Problems and Related Scheduling Problems-42nd IEEE Symposium on Foundations of Computer Science 2001”, Rafail, describes the problems even for a single queue as NP-complete. In other words, development of an optimal solution requires an exhaustive search of all the possible solutions. This analysis takes an exponential time in the amount of the number of jobs.
It would be useful to develop an automated system for efficiently and profitably rescheduling print jobs in one or more print shops to accommodate a rush order.
One embodiment is a production planning processor comprising an admissions control module in communication with a queue management module. The admissions control module calculates a proposed profit for expedited handling of a new print job, and the queue management module determines a revised print job queue based upon data received from the admissions control module. In some cases, the admissions control module includes a cost analyzer configured to determine service cost and completion time for each submitted print job. In certain instances, the queue management module includes a job routing portion configured to manage a plurality of printer queues. The queue management module often comprises a memory containing printer queue data. The queue management module sometimes includes a job batching portion. Sometimes, the cost analyzer contains data for quality of service requirements.
In certain embodiments, the admissions control module calculates the proposed profit for expedited handling of the new print job by calculating at least one of (a) a maximum profit Pmax for accommodating the rush print job with minimal penalties, (b) a simple profit Ps based on placement of the rush print job at the beginning of the queue without re-ordering other print jobs, and (c) a consolidation profit Pcon based on a reduction in padding time between existing queued print jobs.
Another embodiment is an automated system for determining the profitability of accommodating a rush print job, comprising a production planning processor configured to determine a first profit for expedited handling of the rush print job by calculating at least one of (a) a maximum profit Pmax for accommodating the rush print job with minimal penalties, and (b) a consolidation profit Pcon based on a reduction in padding time between queued print jobs. The processor sometimes is configured to calculate Pmax wherein the rush print job is to be accommodated by inserting the rush print job into an existing queue without re-ordering print jobs. Sometimes, the processor is configured to calculate Pmax when the rush print job is to be accommodated by inserting the rush print job into an existing queue and re-ordering at least one print job in the existing queue.
Another embodiment is a method of processing print jobs, comprising obtaining a queue of multiple print jobs, receiving a request for processing a rush print job, determining a first profit for expedited handling of the rush print job, communicating with a queue management module to re-prioritize queued print jobs to accommodate the rush print job, and scheduling the rush print job. Existing queued print jobs can then be automatically re-prioritized to accommodate the rush print job, or the rush print job can be rejected, based on the value of the first profit.
In some cases, the first profit is determined by calculating at least one of (a) a maximum profit Pmax for accommodating the rush print job with minimal penalties, (b) a simple profit Ps based on placement of the rush print job at the beginning of the queue without re-ordering other print jobs, and (c) a consolidation profit Pcon based on a reduction in padding time between existing queued print jobs. In many cases, Pmax is calculated by subtracting penalties for delayed print jobs from anticipated profit for the rush print job. In some cases, the processor is configured to calculate Pmax when the rush print job is to be accommodated by inserting the rush print job within a long batched job of an existing queue and re-ordering at least one other print job in the queue.
A method of determining the profitability of accommodating a rush print job in a system having multiple printing queues, comprising inputting the expected duration of the rush print job, inputting the potential profit of the rush print job, selecting the printing queue with the greatest capacity to accommodate the rush print job, and determining a first profit for expedited handling of the rush print job by calculating at least one of (a) a maximum profit Pmax for accommodating the rush print job with minimal penalties in the selected printing queue, (b) a simple profit Ps based on placement of the rush print job at the beginning of the selected printing queue without re-ordering other print jobs, and (c) a consolidation profit Pcon based on a reduction in padding time between print jobs in the selected printing queue. In some cases, the selected printing queue is selected automatically based upon a calculation of Ps for at least two of the printing queues. Sometimes, both Pcon and Ps are considered in determining the first profit for expedited handling of the rush print job.
A production planning processor, method and system are provided herein to process rush print jobs. The disclosed embodiments provide for automated profitability analysis and automated accommodation of a rush print job in a single queue or within one of a set of multiple queues.
As used herein, a “production planning processor” is a computerized processor for managing the planning of a printing function. An “admissions control module” is a portion of the production planning processor that receives data regarding new print jobs. A “queue management module” as used herein is a portion of the production planning processor that manages one or more printing queues. As used herein, a “revised print job queue” is a print job queue into which a rush print job has been inserted.
A “job routing portion” of the queue management module, as used herein, is the part of a queue management module that manages multiple printer queues. As used herein, a “job batching portion” is the part of a queue management module that is capable of grouping print jobs into batches. As used herein, the term “printer” encompasses any apparatus, such as a digital copier, bookmaking machine, facsimile machine, multi-function machine, etc. that performs a print outputting function for any purpose.
In accordance with embodiments described herein, a production planning processor enables a print shop to be equipped with quality of service capabilities for optimized operations. This enables profits to be maximized while meeting the desired service parameters.
In one scenario, processing of a rush print job according to one or more of several different outcomes is considered. First, the job can be accepted by altering the state of the print environment in a way that minimizes alterations to quality of service for the other print jobs. Second, the job can be accepted after the quality of service parameters are adjusted as a result of negotiations with the submitter. Third, the job can be re-routed to another print shop. Fourth, the job can be rejected. The techniques described herein substantially preserve the quality of service parameters of the print jobs that are already scheduled in the print shop enterprise while taking into account costs involved in re-prioritizing particular print jobs. In some cases, the system and method consider the padding time between print jobs in determining the most profitable way of handling displaced or delayed print jobs.
In print shops that have several jobs concurrently running on different pieces of equipment, each print job is assigned its own quality of service parameters. Non-limiting examples of such parameters include turn-around time, delivery date, grammatical errors, punctuation errors, language usage problems, color discrepancies, presentation quality, cost, and price that is charged. While efforts are made to meet these quality requirements, disruptions to the print production process resulting in a delay for at least some of the print jobs inevitably occur. Common reasons for a disruption are a paper jam, the need to replenish toner, employee absence, delays in proofing, power supply interruptions, and the receipt of a rush print job. By using the disclosed processor, method and system to accommodate rush print jobs, profits can be maximized with minimal penalties to previously scheduled print jobs.
A production planning processor enables a production print shop to be equipped with quality of service capabilities for optimized operations. For example, when a rush order with certain quality of service requirements (deadline, quality, separate online retrieval of fonts, images, etc) is submitted, the system will be able to determine if the rush order can be admitted into the system only if the quality of service requirements can be guaranteed to be met without changing any of the service parameters associated with other orders. When jobs inside the system have a certain leeway (for example, when the quality of service requirement for an order calls for completion by Friday 15 Dec. 2006 and the order under the current load could be completed much earlier, e.g. Wednesday 13 Dec. 2006 there is a 2 day leeway), the new order can be admitted, and another order's completion time changed thereby reducing the leeway. Such a quality of service arrangement could be made with the new processor. Similarly, when the workload within the printing environment is within control, a print shop can use the processor to determine that it has the capacity to bid for other print orders or seek orders from other overloaded print shops. A statistical tool can be included to maintain a historical log of print orders and to advise of the need for additional resources.
The admissions control module 14 and the queue manager 16 are connected to one another through a system state controller (SSC) 18 that looks at the current state of the system with respect to the queue. In some cases the system state controller 18 also will look at printer resources such as font availability. The system state controller 18 can be part of the queue manager 16 or the admissions control module 14.
In certain cases, the queue manager 16 is connected to a job chunking module 20 that divides a large print job into batches of subjobs to facilitate manageability. Each sub-job can be started or stopped independently of the others. The sub-jobs can be sequentially sent to the same printer or they can be sent in parallel to multiple printers. The job chunking module 20 informs the queue manager 16 how the job is split into sub-jobs so that the queue manager can list each sub-job separately. The job chunking module 20 creates a data structure for the job. The data structure contains information for the start and stop pointers for each sub-job. For example, in a variable printing scenario of printing and mailing checks, the start pointer is the start number of the next set of checks to be printed, how many checks are in the batch (sub-job), and optional related information such as pointers to database entries to get the name, amount, mailing information, etc.
The job chunking module 20 (or the queue management module 16 if no job chunking module 20 is included) is connected to a printer sharing module 22 that handles routing and scheduling of print jobs. The printer sharing module 22 is connected to admissions control module 14 and is configured to receive print job data from the admissions control module 14.
The admissions control module 14 usually has included therein a cost analyzer 24 that estimates service cost and completion time for print jobs. It is noted that the cost analyzer 24 can be external to and in communication with the admissions control module 14.
Arrows 26, 30 and 32 in
On the other hand, if the cost analyzer 24 determines that the print job cannot be profitably processed while meeting quality of service parameters, the admissions control module 14 either notifies the submitter that the print job is to be rejected at 34, or re-routes the print jobs to another station or print shop at 36.
In many cases, a padding time has been inserted between scheduled print jobs in a queue. Padding time is used to take into account delays caused by errors in calculating the estimated processing time, start-up time, time to load a printer with a certain paper, remove jams, replace toner and many other unanticipated events. If the padding time is too large, the total productivity of the print shop is reduced because the machines sit idle during the padding time if no delay-causing event occurs. If the padding time is too small, orders promised for completion by a certain time get delayed either due to wrong estimates or due to unanticipated events.
Padding time is variable and the variability can be viewed as a function of the demand for the handling of rush print jobs. Based on historical data collected by the print shop, demand for rush orders can be included in the equation to determine the suitable padding time. Based on historical values, if the anticipated demand for rush orders is high, the padding time is increased for normally accepted jobs. This is because the extra padding time is useful to accommodate more than one rush order job, thus gaining more profit. On the other hand, if the demand for rush orders is small, the padding time also can be small. The padding time typically ranges from 5 minutes to 40 minutes, with a mean of 20 minutes. During peak seasons, when rush orders increase by 10%, the padding time may be increased, for example, by 5 minutes.
Padding time alone can be used to accommodate a rush print job if the sum of the padding times between the time of receipt of the rush print job and the required completion time for the rush print job are sufficient greater than the expected duration of the rush print job that the rush print job can be absorbed into the queue.
In the method and system described herein, a job order can be modeled using the following variables:
Several different methods for accommodating a rush job order are provided in the Examples. Assumptions vary from one model to the next.
In each case the profit to be made on a rush job is weighed against the financial penalties for print jobs that will be delayed as a result of the accommodation of the rush job. For each job, there is a penalty cost Cp for not having the job completed by the customer's expected completion time Tf. When a rush print job arrives, certain jobs are identified to be placed in a discounted section of the queue (usually at the end of the current queue), with each delayed job incurring a loss or penalty of Cp for the print shop, given as a discount to the customer. In this model, a rush order job is accepted into the print shop on a rush basis if the sum of all of the job penalties is less than the profit gain from accepting the rush order job. In other words, if (Σk Cp)<Ce, for all jobs k in the discounted queue, acceptance of the rush job is recommended. The task of identifying or selecting jobs to be pushed to the end of the queue (to the discounted section) is described later.
At a certain instant (e.g. 2:30 pm), there is a job queue having the following jobs (assuming that jobs are placed in the queue in a first come first served (FCFS) basis):
In all cases, if Td=20 minutes, then Cp=20% off the order.
If, at 2:45 pm, a certain rush order job arrives with the following quality of service characteristics:
Job (rush) (Ta=2:45 pm, Tf=5:45 pm, Tp=1 hour, Cr=$150.00), the result of greedily accepting the rush job to be performed next would be as follows:
In this case, the total penalties (Σk Cp) are $18.00, whereas the revenue by accepting a rush job is $150.00. The estimated over-profit by accepting the job Ce is Cr−Cq=($150.00−$80.00)=$70.00; the net over-profit after taking the penalties Cn is (Ce−Σk Cp)=($70.00−$18.00)=$52.00. The print shop can thus determine whether the additional profit justifies immediate acceptance and processing of the rush order job.
In some cases the quality of service policy might require the operator to call each of the customers who have jobs (i+1) to (1+3) and get approval to delay the job in lieu of, or in addition to, a certain discount offered by the shop to the customer.
In summary, the following process can be used if the rush print job is to be scheduled immediately:
If the rush order of Example 1 were placed after job (i+1), the resulting penalty would be less ($8.00 instead of $18.00). This is shown as follows:
The analysis can be repeated with the rush job being inserted after Job (i+2) and after Job (i+3).
In summary, the following process can be used if the rush job is to be scheduled to result in the lowest economic penalty:
In all cases, if Td=20 minutes, then Cp=20% off the order.
If, at 2:45 pm, a certain rush order job arrives with the following quality of service characteristics:
Job (rush) (Ta=2:45 pm, Tf=5:30 pm, Tp=1 hour, Cr=$150.00), the rush job can be scheduled as late as possible while meeting the time requirement of the rush job. Using the same set of regularly scheduled jobs as in Example 2, the closest job with the same finish time is Job (i+1) Tf=5:30 pm. The rush job Tc is 4:20 pm which fits well between Job (i) and Job (i+2). The rush order job can be accepted after contacting the Job (i+1) customer to get approval to delay the job, possibly in exchange for a 20% discount. The print shop's potential profit would be $140.00 (Job (rush) Cr=$150.00−Job (i+1) Cp=10.00). The delayed Job (i+1) would move to the end of the queue and have a new Ts=9:00 pm.
As in Example 3, Jobs i to (i+3) are scheduled as follows:
If, at 2:45 pm, a certain large rush order job arrives with the following quality of service characteristics:
Job (rush) (Ta=2:45 pm, Tf=6:30 pm, Tp=3 hour, Cr=$150.00), the rush job can be inserted as late as possible while meeting the time requirement of the rush job. Using the same set of regularly scheduled jobs as in Example 2, the closest job with the same finish time is Job (i+2) Tf=6:30 pm. The rush job Tc is 6:20 pm which does not fit well between Job (i+1) and Job (i+3). The next job (i+1) would need to be delayed in order to fit the rush order job. The rush order job can be accepted after calling the Job (i+1) and Job (i+2) customers to get approval to delay the jobs and, perhaps in exchange, accept a 20% discount. The print shop potential profit would be $132.00 (Job (rush) Cr=$150.00−Job (i+1) Cp=10.00−Job (i+2) Cp=8.00). Delayed Job (i+1) and Job (i+2) would move to the end of the queue and have a new Ts=9:00 pm and Ts=10:00 pm, respectively.
In summary, for Examples 3 and 4, the following process can be used if the rush job is to be scheduled to be completed near (and before) the requested finish time.
Thus, when it is desired to consider more than one type of analysis for determining the profit for accommodating a rush print job, a method such as that depicted in
If, in Example 5, one of the print jobs in the queue was a batched print job, the rush job could be inserted in between a pair of print jobs in the batch. In
The above examples 1-6 show several ways in which a rush order can be accepted into an enterprise with one queue. Usually, a print enterprise contains many queues as shown in
Each production line has a pre-press section, designated as 120, 122, 124 and 126 (numbered from top to bottom on the Figure). The pre-press section provides functions such as imposition, color management, data conversion (from one format to another for example from MS-Word to PDF, RDO to PDF, XPS to PDF, InDesign to PDF, Illustrator to PDF, CorkExpress to PDF, and etc), auto-edit (adding page numbers, tabs, watermarks, etc), pre-flight (providing a report on the errors, estimated job processing time, availability of fonts, etc). An output manager is associated with each printer. In
In a multiple queue environment, the above-described algorithms are applied at each of the sections, thereby re-scheduling the jobs within each path. Sometimes it is necessary to move the jobs across the previously planned paths to accomplish the quality of service requirements of a rush order job. Once documents are printed, the printed documents may physically be needed to move across the paths. The status of each of the queues is fed back to the previous section's algorithm processor to determine the status of jobs in each of the sections ahead in the path. Dynamic programming concepts can be used to determine which queue can accommodate a rush order most efficiently. More particularly, dynamic programming can be used to break a problem into sub-problems, solve each one recursively, and construct an overall optimal solution from the solution to each of the sub-problems. In this case, the algorithm used at each of the sub-sections is a programming sub-problem. The solutions to the sub-problems are combined at the production planning system to obtain a new optimal or near-optimal but acceptable solution.
It will be appreciated that various of the above-disclosed and other features and functions, or alternative thereof, may be desirably combined into many other different systems or application. Various presently unforeseen or unanticipated alternatives, modifications, variation, 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 |
---|---|---|---|
5327526 | Nomura et al. | Jul 1994 | A |
6546364 | Smirnov et al. | Apr 2003 | B1 |
6651081 | Salgado et al. | Nov 2003 | B1 |
6671065 | Salgado et al. | Dec 2003 | B1 |
6801333 | Weiss | Oct 2004 | B1 |
6917979 | Dutra et al. | Jul 2005 | B1 |
7009719 | Willis et al. | Mar 2006 | B2 |
7542155 | Paskalev et al. | Jun 2009 | B2 |
7796283 | Field | Sep 2010 | B2 |
20020113993 | Reddy | Aug 2002 | A1 |
20030076525 | Hikawa | Apr 2003 | A1 |
20030098991 | Laverty et al. | May 2003 | A1 |
20030152212 | Burok et al. | Aug 2003 | A1 |
20040070781 | Matsugi | Apr 2004 | A1 |
20040145772 | Stringham | Jul 2004 | A1 |
20050055697 | Buco et al. | Mar 2005 | A1 |
20050151993 | Gartstein et al. | Jul 2005 | A1 |
20050275875 | Jennings, Jr. | Dec 2005 | A1 |
20050276618 | Clement et al. | Dec 2005 | A1 |
20050289312 | Ghosal et al. | Dec 2005 | A1 |
20060009989 | McCormick | Jan 2006 | A1 |
20060061823 | Riesel et al. | Mar 2006 | A1 |
20060193006 | Lawrence et al. | Aug 2006 | A1 |
20060268317 | Lofthus et al. | Nov 2006 | A1 |
20070165266 | Tian | Jul 2007 | A1 |
20080005744 | Buco et al. | Jan 2008 | A1 |
Number | Date | Country | |
---|---|---|---|
20080235158 A1 | Sep 2008 | US |