The present invention relates to methods and systems for procedure planning and schedule optimization. In particular, the present invention relates methods and systems for planning and scheduling optimization of procedures and appointments using evolutionary search.
Computer programs for appointment scheduling have been known in the art. Users of such programs have been able to make their own respective schedules. In a group practice such as a medical office or in a clinic with several professionals, procedure appointments are usually scheduled by office personnel, in response to patients' or professionals' requests, for a large number of professionals and resources.
However, complicated procedures such as medical services involve many resources and different levels of each resource. Optimum planning and scheduling of complicated procedures is difficult to do manually. Furthermore, as a working day progresses, circumstances may occur that require modifications to the schedules in real time. For example, patients may call in for emergency appointments or cancellation; unanticipated delays may occur; medical history of a patient may indicate that he or she needs more or less than the allocated standard time slot. Sudden loss of resource may occur. At the present time it is very difficult, if not impossible, to reschedule complicated procedures optimally, at a short notice. Those circumstances can lead to major clinic disruption which inconvenience patients, possibly aggravating some patients' conditions. It is desirable, then, to have a system that can quickly and automatically plan an optimal schedule for procedures. It is also desirable to have a system identify resource bottlenecks and simulate different resource availability scenarios to help managers relieve those resource bottlenecks and better estimate the effects of changing his/her resource deployment before the costly change is made.
Scheduling and planning are traditionally very difficult problems to solve. Even scheduling of simple procedures with simple resource requirements can result in intractable NP-complete problems. For example, some manufacturing procedures may be simple but some medical services typically involve complicated procedures that require many resources and professionals. Those resources and professionals may not necessarily be occupied for the entire duration of a procedure. Take MRI scan appointment for example: much of the time in MRI appointments is spent preparing for the scan. The MRI scanner is not in use for the entire duration of the procedure. Professionals, nurses, technicians, radiologists, other resources, MRI scanner, change room, other equipment are all needed at different times during the procedure. The current state of the art models these kinds of procedures as solid blocks of resource consumption. I.e. for an MRI appointment, the nurse, technician, radiologist, MRI scanner, change room etc. are assumed to be fully occupied throughout the procedure. This does not allow overlapping of procedures and therefore forego opportunities for resource utilization optimization.
Ideally, a scheduling or planning system should model procedures with fine detail. An accurate scheduling planning model should not only capture what resources are needed but where in the procedure they are needed as well. Unfortunately, models of such fine detail are far more difficult to solve than simple scheduling problems.
Evolutionary search algorithms are particularly well suited to solving non-linear problems such as scheduling and planning that do not have any easily discernable patterns and steps to finding a good solution. U.S. Pat. No. 4,935,877 describes the general application of evolutionary algorithm to problem solving. U.S. Pat. No. 5,319,781 describes an application of evolutionary algorithm for schedule building.
The present invention provides an automatic procedure planning tool for office appointments management. The present invention comprises of two modules: a scheduling module and a planning module.
The scheduling module models procedures that have complex resource and professional requirements. That is, resources or professionals may not necessarily be occupied for the entire duration of a procedure. Such procedures are each modelled as a series of tasks to be scheduled consecutively. The scheduling module also models precedence, pre-requisite, and mutual exclusion relationships between tasks. Solutions to the scheduling module comprises of queues of procedures to schedule. The solution that optimizes user specified objectives is found using an evolutionary search algorithm. The scheduling module converts solutions (i.e. procedures queues) into feasible schedules by automatically arranging procedures to avoid resource conflicts while maintaining precedence, pre-requisite, and mutual exclusion relationships between procedures. The scheduling module then outputs the generated procedures schedule to the user, along with automatically generated schedules of all resources and professionals associated with the scheduled procedures.
The planning module iterates the scheduling module to simulate different resource and professional availability scenarios. Results of such scenario simulation are analyzed. Those results and the associated analysis are outputted to the user. Based on those results and analysis, the planning module makes recommendations to the user on how to deploy resources to meet the user defined goal or objective.
The present invention also includes an apparatus and computer program that implements the scheduling, optimization, and planning methods previously described.
A computer implemented method for scheduling procedures involving professional services using evolutionary search, the said method comprising:
The method described above, wherein a procedure has complex resource requirements.
The method described above, wherein a procedure has complex professional requirements.
The method described above, wherein a procedure has opportunities during its execution to be delayed to wait for required resources or professionals to become available.
The method described above, wherein a possible solution to the scheduling problem is a queue of procedures to schedule.
The method described above, wherein an initial population of solutions can be generated randomly or generated using fast, rule-based heuristics.
The method described above, wherein generating feasible schedules from possible solutions is done by delaying procedures, in the order encoded in a possible solution, until those procedures fit into time slots that are free from resource conflicts.
The method described above, wherein a queue repair function automatically arranges procedures in such an order that maintains precedence and pre-requisite relationships between tasks.
An apparatus for scheduling procedures involving professional services using evolutionary search.
The apparatus described above containing a single or multiple computer processors.
The apparatus described above containing memory for storing procedure information.
The apparatus described above containing memory for storing instructions or statements for use in executing the method of scheduling professional service procedures using evolutionary search.
The apparatus described above containing memory for temporarily storing populations of solutions to facilitate the evolutionary search.
The apparatus described above containing an evolutionary search algorithm that encodes potential solutions in a population and evolves that population to converge to and produce a near optimal solution.
The apparatus described above containing a schedule building system for generating feasible schedules from queues of procedures.
The apparatus described above containing a schedule building system for building schedules for all associated resources and professionals.
The apparatus described above containing one or more outputs to communicate all schedules to the user.
The apparatus described above, wherein a procedure has complex resource requirements.
The apparatus described above, wherein a procedure has complex professional requirements.
The apparatus described above, wherein a procedure has opportunities during its execution to be delayed to wait for required resources or professionals to become available.
A computer readable storage medium storing instructions or statements for use in the execution in a computer of a method of scheduling procedures involving professional services using evolutionary search, the method comprising:
The medium described above, wherein a procedure has complex resource requirements.
The medium described above, wherein a procedure has complex professional requirements.
The medium described above, wherein a procedure has opportunities during its execution to be delayed to wait for required resources or professionals to become available.
The medium described above, wherein a possible solution to the scheduling problem is a queue of procedures to schedule.
The medium described above, wherein an initial population of solutions can be generated randomly or generated using fast, rule-based heuristics.
The medium described above, wherein generating feasible schedules from possible solutions is done by delaying procedures, in the order encoded in a possible solution, until those procedures fit into time slots that are free from resource conflicts.
The medium described above, wherein a queue repair function automatically arranges procedures in such an order that maintains precedence and pre-requisite relationships between tasks.
A computer program product comprising a memory having microcontroller-readable code embedded therein, when executed in a computer processor, causes the computer processor to perform a method of scheduling professional service procedures using evolutionary search, the method comprising:
A computer implemented method for automatically optimizing future planning of procedures involving professional services using artificial intelligence, the said method comprising the steps of:
An apparatus for optimizing future planning of professional service procedures using artificial intelligence.
The apparatus described above containing a single computer processor or multiple computer processors.
The apparatus described above containing memory for storing procedure information.
The apparatus described above containing memory for storing instructions or statements for use in execution in a computer of an intelligent method of scheduling professional service procedures such as the method outlined in claim 1.
The apparatus described above containing an intelligent system for scheduling procedures such as the method outlined in claim 1.
The apparatus described above containing outputs to communicate simulation results, analysis, and recommendations to the user.
A computer readable storage medium storing instructions or statements for use in the execution in a computer of a method for optimizing future planning of professional service procedures using artificial intelligence, the method comprising:
A computer program product comprising a memory having microcontroller-readable code embedded therein, when executed in a computer processor, causes the computer processor to perform a method for optimizing future planning of professional service procedures using artificial intelligence, the method comprising:
This summary of the invention does not necessarily describe all features of the invention.
The following description is a preferred embodiment.
This preferred embodiment deals with procedures that have complex resource and professional requirements.
Complex procedures can lead to complex resource conflicts.
The strategy for modeling complex procedures is to discretize or break them down into simpler activities.
Discretized activities are linked together with precedent and pre-requisite relationships. A precedent relationship between two activities means that one activity must immediately be scheduled at the completion of the other activity. All activities belonging to the same procedure are linked together with precedent relationships. For example, activity 111 in
Procedures may have precedent, pre-requisite, and mutual exclusion relationships. Precedent and pre-requisite relationships between procedures are automatically covered by precedent and pre-requisite relationships between activities of those procedures. Therefore, separate relationship connection between procedures is not required. The mutual exclusion relationship, however, applies only to procedures and specifies that one or the other procedure can be scheduled but not both. This mutual exclusion relationship is used to enable the resource assignment optimization feature of this present invention. More details in a later section of this detailed description of the preferred embodiment.
In addition to the discretization of complex procedures into simple activities, the scheduling period must be discretized into identically sized timeslots. The time slots should ideally be sized to the maximum length that is a common denominator of duration lengths of all activities in the current model. Activities must fit completely in timeslots or multiples of timeslots. Assume, in the
The discretization of complex procedures into simple activities and discretization of the scheduling period into timeslots allows a simple encoding scheme to represent and store the model in a computer. Each activity has associated with it the following properties: resource requirements, duration, due time, user defined objective coefficients as well as index properties to track which procedure an activity belongs to and which customer that activity serves.
Properties arrays comprise of simple integers. They may be stored in a computer in many ways ranging from plain text files to relational databases. Any person of ordinary skill in the art can design a storage solution suitable to his or her needs.
Activity 111 shown in
The resolution of resource conflicts is achieved by adjusting the delays (i.e. changing durations of gap activities) of all procedures involved. Recall the resource conflict between procedures 110 and 120 depicted in
Procedures are added to a schedule on a first come first serve basis. In the
The tool for solving the scheduling problem is evolutionary algorithm (EA). EA encodes strings of solutions in chromosomes.
Scheduling queues encoded in chromosomes are converted into schedules by a schedule builder. The schedule builder first passes a chromosome through a repair function. The repair function rearranges alleles (priority) values to manipulate the scheduling order to enforce precedent, pre-requisite, and mutual exclusion relationships. For example, a procedure has a higher priority value than (therefore is trying to be scheduled ahead of) its pre-requisite procedure, the repair function will swap the priority values of those two procedures. Similar repair is carried out for precedent relationship violations. Mutual exclusion relationships are enforced thusly: the repair function checks all procedures involved in a mutual exclusion relationship, identifies the procedure with the highest priority value, and then set priority values of remaining procedures to −1 to signal the schedule builder to ignore those procedures. This description of the repair function is merely the preferred embodiment. This does not limit more advanced repair methods or algorithms. Next, the schedule builder assembles a schedule by slotting activities of each procedure into the earliest possible time that does not cause resource conflicts. This slotting is accomplished by delaying procedures like the example shown in
A schedule of highest possible quality is the optimal solution to this scheduling problem. The search for that optimal solution is accomplished using a evolutionary algorithm (EA). The EA begins with an initial population of chromosomes encoding potential solutions. The initial population should be generated randomly. The initial population can also be seeded with high quality chromosomes created using some rule-based heuristic scheduling algorithms. Such heuristic scheduling algorithms may follow simple rules such as scheduling shorter duration procedures earlier; scheduling procedures with most complex resource requirements earlier; or any problem specific rules that the user may specify. In the simplest embodiment of this invention, the initial chromosome population is generated randomly.
As its name suggests, EA searches for the optimal solution by evolving the population. EA applies chromosome operations such as cross over, recombination and mutation to chromosomes at each successive generation. The population is updated at each generation. Fitter chromosomes resulting from chromosome operations replace weak chromosomes in the population. This survival of the fittest evolution continues until certain termination criteria are met. Example termination criteria are: maximum number of generations, population convergence, or minimum fitness level achieved. The maximum number of generations criterion simply stops the evolutionary process when that generations limit is reached. The population convergence criterion stops the evolutionary process if average population fitness remains constant for a number of generations indicating that the population is no longer evolving. The minimum fitness level criterion stops the evolutionary process as soon as a solution is found that meets or exceeds the minimum fitness level specified by the user. The preferred embodiment uses the population convergence termination criterion.
The schedule builder translates the optimal solution found by the EA into a schedule of procedures. From that schedule is extracted the demand for all resources. Schedules of each individual resource can be built from resource demand information extracted from the procedures schedule.
The planning module of the preferred embodiment intelligently iterates the scheduling module to optimize user defined objectives. Example objectives are identifying bottlenecks, maximizing resource utilization and optimizing procedure throughput.
Resource bottlenecks are easy to identify from resource demand schedules extracted from the main procedures schedule. To illustrate this planning module, consider the problem of scheduling 10 identical example procedures as shown in
The planning module automates this illustrated method of bottleneck identification and optimization and presents the results to the user. The preferred embodiment presents all steps of the simulation and results to the user. In this example, the planning module presents first the step of adding additional resource R2 and the result. Next the planning module presents the step of increasing both resource R2 and R5 and the result. The user is then left with the choice of which step or recommendation to implement. In this example, adding more resource R2 did not improve procedure throughput while adding more of both resources R2 and R5 doubled procedure throughput so the choice of which recommendation to implement is clear. However, the optimization of more complicated procedures over longer scheduling periods may yield many simulation steps and recommendations. The user may then subject those recommendations to his/her own judgment, preferences, or other intangible criteria that are impossible to formalize mathematically or logically.
The embodiment of the present invention can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations thereof. Apparatus of the invention can be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor; and method actions can be performed by a programmable processor executing a program of instructions to perform functions of the invention by operating on input data and generating output. The invention can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Each computer program can be implemented in a high-level procedural or object oriented programming language, or in assembly or machine language if desired; and in any case, the language can be a compiled or interpreted language. Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, a processor receives instructions and data from a read-only memory and/or a random access memory. Generally, a computer includes one or more mass storage devices for storing data files. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits). Further, a computer data signal representing the software code which may be embedded in a carrier wave may be transmitted via a communication network. Such a computer readable memory and a computer data signal are also within the scope of the present invention, as well as the hardware, software and the combination thereof.
The present invention has been described with regard to one or more embodiments. However, it should be apparent to persons skilled in the art that a number of variations and modifications can be made without departing from the scope of the invention as defined in the claims.