Complex business or production processes may include systems having multiple tasks, multiple devices and/or a varied job mix. For such processes, decisions are often made regarding to which device or person a job should be allocated, what job inflow rate is appropriate and/or the like. However, the complexity of such processes makes it difficult to characterize a system's performance capabilities or robustness.
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. Nothing in this document is to be construed as an admission that the embodiments described in this document are not entitled to antedate such disclosure by virtue of prior invention. As used herein, the term “comprising” means “including, but not limited to.”
In an embodiment, a method of determining a maximum profit for a print production environment may include receiving, by a computing device, a flow model associated with a print production environment, applying, by the computing device, a modified Jackson Network analysis to the flow model to generate one more characteristic curves that each characterize a relationship between profit of the print production environment and job inflow rate and that each show a maximum profit value for the print production environment, and presenting, by the computing device, one or more of the generated characteristic curves to a user.
In an embodiment, a method of determining a maximum profit for a print production environment may include receiving, by a computing device, a flow model associated with a print production environment, solving a modified Jackson Network analysis associated with the flow model for one or more values of a first decision variable associated with one or more routing devices in the flow model, performing, by the computing device, one or more job processing simulations that are based on the one or more values of the first decision variable and one or more values of a second decision variable to generate one or more characteristic curves that each characterize a relationship between the second decision variable and a gross profit rate associated with the print production environment, and presenting, by the computing device, one or more of the generated characteristic curves to a user.
In an embodiment, a system of determining a maximum profit for a print production environment may include a computing device and a computer-readable storage medium in communication with the computing device. The computer-readable storage medium may include one or more programming instructions that, when executed, cause the computing device to receive a flow model associated with a print production environment, solve a modified Jackson Network analysis associated with the flow model for one or more values of a first decision variable associated with one or more routing devices in the flow model, perform one or more job processing simulations that are based on the one or more values of the first decision variable and one or more values of a second decision variable to generate one or more characteristic curves that each characterize a relationship between the second decision variable and a gross profit rate associated with the print production environment, and present one or more of the generated characteristic curves to a user.
The following terms shall have, for purposes of this application, the respective meanings set forth below:
A “computing device” refers to a device that includes a processor and tangible, 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. Examples of computing devices include 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 “job” refers to a logical unit of work that is to be completed for a customer. For example, in a print production environment, a job may include one or more print jobs from one or more clients. For example, a job in a vehicle production environment may include manufacturing a vehicle or a portion thereof. As another example, a job in a chemical production environment may include producing or processing a chemical product or a portion thereof. Similarly, a job in a computing device production environment may be to manufacture a computing device or a portion thereof such as, for example, a printer, a scanner or a copier.
A “print job” refers to a job processed in a print shop. For example, a print job may include producing credit card statements corresponding to a certain credit card company, producing bank statements corresponding to a certain bank, printing a document, or the like. Although the disclosed embodiments pertain to print jobs, the disclosed methods and systems can be applied to jobs in general in other production environments, such as automotive manufacturing, semiconductor production and the like.
A “production environment” refers to machine and/or human labor used to complete one or more jobs. A production environment may include one or more devices or other equipment that may be used to complete one or more jobs. Example production environments may include, without limitation, a print production environment, a chemical production environment, a vehicle production environment, a computing device manufacturing production environment, and/or other manufacturing production environments.
In an embodiment, the various paths a job may take through a production environment may be represented as a flow model.
In an embodiment each process or stage of a flow model may include one or more production devices that may perform the associated operation. In an embodiment, a flow model may include one or more routing devices. A routing device may be a production device that routes at least a portion of one or more jobs to one or more other production devices. One or more operating policies may be used to determine a suitable job inflow rate and/or routing policy for one or more stages. For example, a probabilistic routing policy may be used. In an embodiment, a probabilistic routing policy may assign a job as it arrives to a stage to a production device in accordance with a pre-determined standard routing approach. A probabilistic routing policy may consider processing speeds of one or more devices.
For example, referring to
A profit function per unit time may be expressed as follows:
where p is the profit rate,
In an embodiment, the job inflow rate and routing probabilities at each stage may be controlled and the following assumptions may be made:
In an embodiment, at steady state, the throughput may equal the inflow rate, and the WIP level of stage i may be expressed as follows:
Where λ is the job inflow rate of each production device,
To maximize profit, a nonlinear programming problem (NLP) may be represented as follows:
Where pi represents the respective portion of each job in the entire job flow,
In an embodiment, one or more characteristic curves that characterize the relationship between profit and input may be generated 304 by solving the above NLP. In an embodiment, one or more characteristic curves may be generated 304 by solving the above NLP for different values of one or more decision variables. A decision variable may be an independent parameter whose value may affect the value of an objective function value. An objective function value may be a function involving one or more decision variables that is to be minimized or maximized. For example, using the NLP illustrated above, λ and θi may be considered decision variables, and J may be considered an objective function value. In an embodiment, the value of λ may be fixed, and the NLP may be solved for the corresponding optimal routing probability, θi.
In an embodiment, the decision variables and objective function value may be determined based on a control policy associated with a production environment. A control policy may indicate processing and/or routing instructions associated with a production environment. In an embodiment, the expression of an objective function may differ depending on the associated control policy because different control policies may involve different decision variables. Example control policies may include, without limitation, a constant work-in-process (CONWIP) policy, a kanban policy and/or the like.
In an embodiment, a theoretical characteristic curve may be generated 304.
In an embodiment, one or more simulated characteristic curves may be generated 304. A simulated characteristic curve may be generated based on one or more optimal routing probabilities determined by solving the above NLP. In an embodiment, one or more optimal routing probabilities for each device in the flow network that routes work may be determined using the above NLP. Simulated profit values may be determined by performing one or more simulations on different inflow rate values and corresponding determined optimal routing probabilities. These values may produce a simulated characteristic curve of inflow rate vs. objective value according to an embodiment.
For example,
In an embodiment, at least a portion of the generated characteristic curves may be presented 306 to a user. At least a portion of the generated characteristic curves may be presented 306 to a user via a display device, email and/or the like. For example, a simulated characteristic curve may be displayed to a user. The user may be able to use the presented information to compare current profitability of a production environment to the simulated maximum achievable profitability to determine how well the production environment is operating. In an embodiment, a user may use the presented information to make informed decisions about inflow rates and/or routing probability to improve profitability of the production environment.
In an embodiment, a control policy associated with a production environment may be determined 604. In an embodiment, one or more characteristic curves that characterize the relationship between profit and WIP may be generated 606 by solving the above NLP in view of the determined control policy.
In an embodiment, at least a portion of the generated characteristic curves may be presented 608 to a user. At least a portion of the generated characteristic curves may be presented 608 to a user via a display device, email and/or the like. For example, a characteristic curve may be displayed to a user. The user may be able to use the presented information to compare current WIP levels against a WIP level that achieves maximum profit for a production environment. A user may use this information to determine how well a production environment is operating and to more optimally control the production environment to use the best WIP level.
A controller 820 interfaces with one or more optional non-transitory computer-readable storage media 825 to the system bus 800. These storage media 825 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 810 and/or the RAM 815. 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, such as a Blu-ray™ disc, and/or other recording medium.
An optional display interface 830 may permit information from the bus 800 to be displayed on the display 835 in audio, visual, graphic or alphanumeric format. Communication with external devices, such as a printing device, may occur using various communication ports 840. A communication port 840 may be attached to a communications network, such as the Internet or an intranet.
The hardware may also include an interface 845 which allows for receipt of data from input devices such as a keyboard 850 or other input device 855 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 various of the 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.