Accurate customer demand data is important to print shop design, projection of operational costs for a print shop, determining contract pricing, performing customer account management and/or the like. Demand data from a print shop can be used to simulate and optimize print shop configurations. However, this data collection process can be expensive and time-consuming in many instances.
Bootstrapping is a resampling technique used to study the sampling distribution of an estimator such as, for example, sample mean, sample deviation and/or the like. Bootstrapping typically involves randomly resampling (with replacement) from a sample used as a surrogate population. A sample statistic is computed on each of the bootstrap samples and a sampling distribution is created. For example, given a random sample of size n (X1, X2, X3, . . . , Xn), the corresponding sample statistic calculated from this sample may be represented by {circumflex over (θ)}·{circumflex over (θ)}B may represent a random quantity that represents some statistic calculated from the sample such as, for example, a mean, sum of random variables and/or the like. As the limit n→∞, {circumflex over (θ)}B follows a normal distribution with {circumflex over (θ)} as the center and
as the standard deviation, where s is the sample standard deviation computed from (X1, X2, X3, . . . , Xn).
Bootstrapping is commonly used on underlying distributions that are normal or that belong to an exponential family of distributions. However, heavy-tailed distributions behave quite differently than normal distributions. Because their tails decline relatively slowly, the probability of very large observations is not negligible. Heavy-tailed distributions have infinite variance indicating high variability in the underlying process that generates these distributions.
This disclosure is not limited to the particular systems, methodologies or protocols described, as these may vary. The terminology used in this description is for the purpose of describing the particular versions or embodiments only, and is not intended to limit the scope.
As used in this document, the singular forms “a,” “an,” and “the” include plural reference unless the context clearly dictates otherwise. Unless defined otherwise, all technical and scientific terms used herein have the same meanings as commonly understood by one of ordinary skill in the art. All publications mentioned in this document are incorporated by reference. All sizes recited in this document are by way of example only, and the invention is not limited to structures having the specific sizes or dimension recited below. As used herein, the term “comprising” means “including, but not limited to.”
In an embodiment, a system of forecasting future print job demand for a print shop may include a computing device, a print shop having a plurality of print devices in communication with the computing device, a historical database in communication with the computing device, and a computer-readable storage medium comprising one or more programming instructions. The system may collect a sample of print jobs having a same print job type from a historical database via an electronic communication network, identify an increase value representing a percentage increase in future print job volume for the print shop, and determine a target job volume for the print shop based on a job volume associated with the sample of print jobs and the increase value. The system may identify an acceptance limit and a maximum number of samples and initialize a counter value to a value of one. So long as the counter value is less than or equal to the maximum number of samples, the system may generate a bootstrap sample of the collected sample, determine a sample job volume for the bootstrap sample, determine an acceptance value based on the sample volume, the target job volume and the job volume associated with the sample of print jobs, determine a threshold value based on the acceptance limit and the increase value, and compare the acceptance value to the threshold value. In response to the acceptance value being less than or equal to the threshold value, the system may increment the counter value, and repeat the generating a bootstrap sample, determining a sample job volume, determining an acceptance value, determining a threshold value and comparing the acceptance value to the threshold value.
The system may determine a target job volume based on a job volume associated with the sample of print jobs and the increase value by determining a first value by summing a value of ‘100’ and the increase value, determining a second value by multiplying the job volume associated with the sample of print jobs by the first value, and determining a third value by dividing the second value by a value of ‘100.’
Optionally, generating a bootstrap sample of the collected sample may include randomly selecting a bootstrap sample from the collected sample.
The system may determine a sample job volume for the bootstrap sample by identifying a job volume associated with each print job in the bootstrap sample and summing the job volumes. The system may determine a threshold value based on the acceptance limit by multiplying the acceptance limit by the increase value. The system may output the bootstrap sample when the counter value exceeds the maximum number of samples. Optionally, the system may perform a robustness test of a print shop to determine one or more performance metrics associated with processing the print jobs of the bootstrap sample by the print shop.
The following terms shall have, for purposes of this application, the respective meanings set forth below:
A “computing device,” “processing device,” or “electronic device” refers to a device that includes a processor and non-transitory, computer-readable memory. The memory may contain programming instructions that, when executed by the processor, cause the computing device to perform one or more operations according to the programming instructions. As used in this description, a “computing device,” “processing device,” or “electronic device” may be a single device, or any number of devices having one or more processors that communicate with each other and share data and/or instructions. Examples of computing devices, processing devices, or electronic devices include, without limitation, personal computers, servers, mainframes, gaming systems, televisions, and portable electronic devices such as smartphones, personal digital assistants, cameras, tablet computers, laptop computers, media players and the like.
A “historical print job” refers to a print job that has been previously processed by a print shop, a theoretical print job that may be processed by a print shop, a benchmark print job processed by a print shop and/or the like.
A “job” refers to a logical unit of work that is to be completed for a customer in a production environment.
A “job function” refers to one or more processing steps associated with processing a job. In a print production environment, a “print job function” refers to one or more processing steps associated with processing a print job. Example print job functions may include, without limitation, printing, binding, collating, scanning and/or the like.
A “job size” refers to a quantity of a job to be processed. In a print production environment, a “print job size” refers to a quantity of a print job to be processed, such as, for example, a number of pages, a number of impressions, a number of units and/or the like.
A “job type” refers to a combination of one or more job functions required to process a job. In a print production environment, a “print job type” refers to a combination of one or more print job functions required to process a print job.
A “performance metric” is a measure of a print shop's operation. Examples of performance metrics include workspan, turnaround time, print device utilization, energy consumption, number of late print jobs and/or the like.
A “print job” refers to a job processed or to be processed in a print production environment such as, for instance, a print shop.
A “print job function” refers to an operation, such as printing, binding, collating and/or the like that is performed on a print job.
A “print production resource” may be a physical device capable of processing at least a portion of a print job. Example print production resources may include black-and-white printers, color-printers, scanners, inserters, collators, binders, cutters, multi-function devices and/or the like.
A “print shop” refers to a grouping of one or more document production resources, such as printers, cutters, collators and the like. Example print shops include, without limitation, a printing service provider, or it may be a document production group within a corporation or other entity, such as a work area that contains one or more printers. Additionally, a print shop may communicate with one or more servers or other electronic devices by way of a local area network or a wide area network, such as the Internet, the World Wide Web or the like.
“Processing of a print job” means performing one or more print job functions on a print job to transform a print job in some manner and/or result in the display, transmission or conversion of the print job to a physical substrate.
A “production environment” refers to one or more entities having multiple items of equipment to manufacture and/or process items that may be customized based on customer requirements. For example, a vehicle production environment may exist in an automobile assembly plant, where different areas exist to assemble and/or finish portions of the automobile such as the engine, trim, drive train, and other parts. A document production environment or print shop includes document production devices, such as printers, cutters, collators and the like. A chemical, pharmaceutical or other process industry production environment may include production devices such as chemical processing units, vessels, heating equipment, mixing equipment and the like. A production environment may be a free standing entity, including one or more production-related devices, or it may be part of a corporation or other entity. Additionally, the production environment may communicate with one or more servers by way of a local area network or a wide area network, such as the Internet or the World Wide Web.
A “resource” is a physical device capable of processing at least a portion of a job.
Forecasting customer demand is an important activity for the design and optimization of service operations. For instance, in a print production environment, forecasting print job demand over a period of time may help print shop operators better optimize their operations to meet requirements of service level agreements. Forecasting methods such as the ARIMA time series model may be used to predict future customer demand based on historical demand. However, a drawback of this approach is that it does not consider the future market outlook in modeling and it requires a large amount of data to produce a reliable prediction.
Efron's bootstrapping method may be used to generate future job demand. Efron's bootstrapping method may involve resampling with replacement from an initial sample until the total job volume reaches a target volume. However, the job sizes in large service operations, such as print shops scheduling server farms, file size distributions, Internet traffic, CPU process lifetimes, and econometric applications, often exhibit characteristics of heavy-tailed distributions. A heavy-tailed distribution may be characterized as a job size distribution possessing a tail that decays slowly. In other words, as the value of the random variable increases, a probability associated with the random variable decreases, however there still may be a finite probability associated with very large values of the random variable. If X is a random variable with a distribution function F(x)=Pr[X≤x] and complementary distribution
The Efron's bootstrapping method is inconsistent when applied to heavy-tailed distributions. The process described in this disclosure pertains to a bootstrapping method that can be used to forecast future job demand that meets a desired total job volume for a job type, even if an underlying distribution contains a heavy-tailed component.
Demand data may be collected from print shop operations and used to simulate and optimize print shop configurations. Often, the collected data exhibits variability and variety. Within a print shop, multiple workflows or job types may simultaneously coexist, with each having its own demand distribution. These demand distributions are often not amenable to description by known closed-form distributions, and can only be described empirically.
Bootstrapping refers to a method that involves random sampling with replacement, and allows estimation of a sampling distribution of a metric using random sampling methods. For example, bootstrapping may include a self-sustaining, non-parametric, computationally-intensive approach to statistical inference used to produce voluminous data. Bootstrapping typically involves resampling (with replacement) from a sample assuming the sample as a surrogate population.
The bootstrapping approach described in this disclosure relies on certain assumptions. First, it is assumed that future job variety doesn't change from a historical pattern and that a percentage increase in future total job volume for each job type is known. Second, it is assumed that for each job type, the job inter-arrival times are exponential with a mean value as the average inter-arrival time and due dates are set to values as requested in a corresponding service level agreement.
In an embodiment, a computing device may determine 402 a sum of job volumes in the collected sample. For instance, a computing device may identify a job volume associated with one or more jobs in the sample, and may sum the identified job volumes to determine 402 a sum of job volumes, represented in this disclosure by S.
In an embodiment, a computing device may determine 404 an increase value. An increase value may be a percentage increase in future job volume over a future time period. For instance, a print shop may process a job volume of ten million impressions in one year. However, an operator may anticipate a job volume of fifteen million impressions in the following year. As such, an increase value of 50% may be used. An increase value may be received by a computing device from a user such as, for example, a production environment operator. In this disclosure, an increase value is represented by α.
In certain embodiments, a computing device may determine 406 a target job volume value, represented in this disclosure as Starget. A target job volume may represent a level of job volume that is desired to forecast customer demand. A computing device may determine 406 a target job volume value as follows:
As illustrated by
(as described in more detail below).
In an embodiment, a computing device may determine 410 a maximum sample value. A maximum sample value may be a maximum number of bootstrap samples to be drawn, which may be represented in this disclosure as r. A computing device may determine a maximum number of bootstrap samples by receiving information from a user. For instance a print shop administrator or other user may set a maximum number of samples to be drawn. In another embodiment, a computing device may determine 410 a maximum number of bootstrap samples by identifying a default value.
As illustrated by
In an embodiment, a computing device may compare 412 the counter value to the maximum sample value. If the counter value is less than or equal to the maximum sample value, the computing device may generate 414 a bootstrap sample. In certain embodiments, a computing device may generate 414 a bootstrap sample using Efron's bootstrap approach. For instance, a computing device may generate 414 a bootstrap sample by selecting a random sample of the collected sample job volume data.
A computing device may determine 416 a sample job volume for the generated sample, represented in this disclosure as Sm. For instance, a computing device may determine the job size of each job in the generated sample, and may sum the job sizes to determine 416 a sample job volume for the generate sample.
In an embodiment, a computing device may determine 418 an acceptance value for the sample. A computing device may determine 418 an acceptance value by receiving a value specified by a user. In another embodiment, a computing device may determine 418 an acceptance value by identifying a default value to use such as, for example, 0.05.
A computing device may determine 420 a threshold value. A computing device may determine 420 a threshold value by multiplying the increase value by the acceptance limit value. A computing device may compare 422 the acceptance value to the threshold value. In response to the acceptance value being greater than the threshold value, the computing device may increment the counter value, and repeat steps 412-422. Otherwise, the computing device may output 324 the bootstrap sample.
The following illustrates example pseudocode corresponding to the process described above with respect to
NoSampleFound=false and
sampleFlag =true ,bootstrapFlag =true
m=m+1
m=m+1
i=i+1
In various embodiments, the output bootstrap sample may be used to predict or forecast future customer demand such as, for example, print job demand. Future customer demand may be used to test the robustness of a print shop. A robustness test may identify scenarios in which the operational efficiency of a print shop may be compromised. For example, scenarios such as change in job arrival frequency, job type mix, job content and/or the like may affect the operational efficiency of a print shop.
In an embodiment, a robustness test may be performed to determine whether or not to accept a new customer account. For example, an account manager may generate a set of demand data that accounts for jobs from one or more prospective customers. The demand data may be used to simulate print shop operations. One or more performance metrics associated with the simulated print shop may be analyzed to determine whether the print shop is able to withstand the additional demand associated with the prospective customer account without encountering a significant decline in overall efficiency.
In an embodiment, a computing device may determine that a prospective customer account should be accepted, or automatically accept a prospective customer account, if the computing device determines that accepting the prospective customer account will cause a decline in overall efficiency that does not exceed a threshold value. In an embodiment, a computing device may determine that a prospective customer account should not be accepted, or automatically deny a prospective customer account, if the computing device determines that accepting the prospective customer account will cause a decline in overall efficiency that exceeds a threshold value.
For example, if α=20%, then Starget=4,270,733.
Bootstrap samples that meet the desired 20% increase may be drawn with the parameters α=20%, Ψ=0.01, and r=5.
A controller 720 interfaces with one or more optional non-transitory computer-readable storage media 725 to the system bus 700. These storage media 725 may include, for example, an external or internal DVD drive, a CD ROM drive, a hard drive, flash memory, a USB drive or the like. As indicated previously, these various drives and controllers are optional devices.
Program instructions, software or interactive modules for providing the interface and performing any querying or analysis associated with one or more data sets may be stored in the ROM 710 and/or the RAM 715. Optionally, the program instructions may be stored on a tangible, non-transitory computer-readable medium such as a compact disk, a digital disk, flash memory, a memory card, a USB drive, an optical disc storage medium and/or other recording medium.
An optional display interface 730 may permit information from the bus 700 to be displayed on the display 735 in audio, visual, graphic or alphanumeric format. Communication with external devices, such as a printing device, may occur using various communication ports 740. A communication port 740 may be attached to a communications network, such as the Internet or an intranet.
The hardware may also include an interface 745 which allows for receipt of data from input devices such as a keyboard 750 or other input device 755 such as a mouse, a joystick, a touch screen, a remote control, a pointing device, a video input device and/or an audio input device.
It will be appreciated that the various above-disclosed and other features and functions, or alternatives thereof, may be desirably combined into many other different systems or applications or combinations of systems and applications. Also that 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.
This application claims the priority benefit of U.S. Provisional Patent Application No. 62/143,916, filed on Apr. 7, 2015, which is incorporated by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
6509974 | Hansen | Jan 2003 | B1 |
7162427 | Myrick | Jan 2007 | B1 |
7805382 | Rosen | Sep 2010 | B2 |
7970729 | Cozzi | Jun 2011 | B2 |
8060394 | Woodings | Nov 2011 | B2 |
8060451 | Degeratu | Nov 2011 | B2 |
8144364 | Rai | Mar 2012 | B2 |
8660876 | Woodings | Feb 2014 | B2 |
8896863 | Hu et al. | Nov 2014 | B2 |
20030225607 | Kopunovic | Dec 2003 | A1 |
20040267595 | Woodings | Dec 2004 | A1 |
20050060217 | Douglas | Mar 2005 | A1 |
20060080134 | Toomey | Apr 2006 | A1 |
20060106825 | Cozzi | May 2006 | A1 |
20060229896 | Rosen | Oct 2006 | A1 |
20060250636 | Richards | Nov 2006 | A1 |
20070203778 | Lowson | Aug 2007 | A1 |
20080120129 | Seubert | May 2008 | A1 |
20080231868 | Onsen | Sep 2008 | A1 |
20080313000 | Degeratu | Dec 2008 | A1 |
20090021774 | Rai | Jan 2009 | A1 |
20100037285 | Cain | Feb 2010 | A1 |
20100211515 | Woodings | Aug 2010 | A1 |
20130278963 | Hoarau | Oct 2013 | A1 |
20140039956 | Cicio, Jr. | Feb 2014 | A1 |
20140156686 | Woodings | Jun 2014 | A1 |
Number | Date | Country | |
---|---|---|---|
20160300250 A1 | Oct 2016 | US |
Number | Date | Country | |
---|---|---|---|
62143916 | Apr 2015 | US |