What is meant by work? Here we mean by work everything that has to be done in order to achieve a happy life for everyone. This definition leads to some interesting questions. Building a luxury yacht for a millionaire is not considered a job because it does not contribute to the overall welfare of all. It is a lot of work to the benefit of only one person, not for everybody. You can build such a ship in your leisure time, but not as part of your work. What work is most useful: being a nurse in a hospital or being a professional soccer player? The question is: In the event of a labour shortage, what activities must be canceled? Or: What is nice to have and what is required? For the moment I want to postpone this subject. Let's assume that we all agree that a certain set of tasks must be performed. We'll come back to this point when discussing in the second goal.
What does it mean to distribute work fairly? Young children do not have to work, neither do the elderly. Disabled persons are not obliged to work, nor are sick persons. However, certain handicaps do not prevent you from working and many diseases are not so disturbing you can't work anymore. So healthy adult persons not younger than a certain age and not older than another age have to to some work. But who is healthy enough to work? There is no sharp distinction between those who work and those who do not have to work. There will always be some discussion about who is capable of working and who is not. Let's assume that these decisions are already taken. Put differently, Let's ignore this problem for the moment. Let's first describe the system before we assign values to the parameters. So let's first describe the algorithm for the scheduling process (that's the system), and later on choose number of hours to work for everyone (the parameters). Suppose we decide (1) who must work full time, (2) who must work at most a certain number of hours and (3) who is not required to work.
And what is fairly? I have chosen to consider equal working hours to be equitable. I can imagine for some people this not fair. Backbreaking work might require long breaks. Some diseases can limit the number of hours an individual can work. We intend to build these exceptions into the algorithm.
In order to explain the scheduling algorithm, we will design a model. First we will describe the data.
We are going to summarize all the 'things' that are needed to perform a certain task in a long list. Rather than talk about a long list, let me use the word dictionary. With this, I connect better with the use of the word in the Python computer language. With 'things' we mean really everything, like persons, animals, plants, tools, fabric, or even abstract things like lessons or meetings. We call an item in this dictionary a resource, and the dictionary itself is called Resources.
We use a timeline. On that timeline are moments. Moments are numbered ... -3, -2, -1, 0, 1, 2, 3, ... The moment 0 is considered to represent now. Negative moments are moments in the past, positive moments are moments in the future. We do not make any assumption on the unit. It could be nanoseconds, but also minutes, hours or years.
The venues where the work is done, or things are stored, or people live, are called locations. The dictionary that contains all locations is called Locations.
People tend to work in organizations. An organization is generally composed of people with complementary abilities and skills. Most often there is a common language. The scheduling algorithm will first try to assign workers from the same organization to a certain task. If that is not possible, the scheduling algorithm will try to assign the least number of workers from other organizations to the task. The dictionary listing all organizations is called Organizations. Organizations tend to set one or more objectives. These objectives are often called missions. Following those missions, the organizations will produce a whole range of products. As soon as these productes are finished, they are added tot the dictionary Resources.
Products are resources that can be made. If there exists a description how to make the resource, the resource can be considered to be a product.
We have a standard method for describing how to manufacture a product. This method uses directed graphs consisting of vertices and arrows. The vertices correspond to activities. The arrows indicate the order of the activities. An arrow from one activity to another means that the second activity cannot start until the first activity is completed. Some vertices correspond to decisions-making moments. Such an activity ends with verifying one or several conditions and then deciding how to proceed.
Each activity will take some time. If you repeat an activity, it will not always take the same amount of time to complete. Let's say for every activity, there is a minimum duration, an average duration, a duration within 96 percent of the activities are completed, and a maximum duration. if the maximum time has been exceeded, we have to take take measures. We have to check what went wrong.
To perform an activity you need raw materials, tools, and workers with certain skills. It's not always clear what tool you need exactly. You can use a simple saw, but also a complex sawing machine. The scheduling program will therefore use the properties of raw materials and tools to identify which materials and tools are available to use in the activity. The skills of the workers can be regarded as property of the workers. All resources have properties for determining whether they can be utilized in processes.
Some locations are apt for certain activities, and others are not. So locations have properties that determine whether those locations are appropriate for what activities.
An order is defined as a request from one or several people to receive a product within a certain period of time in a certain location. The scheduling program assumes that requested products are allowed to be manufactured and shipped to the person(s).
When a activity is scheduled, we have to identify what resources are needed. For instance, if the activity requires a carpenter, we are looking for a carpenter who is not yet engaged in another activity. Now you have to do a kind of translation. The skill carpenter that is associated with the activity, is a property of the activity. This property is to be found in the properties of the resources.' If you find a resource with the property carpenter, you need to make sure this resource is not already linked to another activity. We must therfore record the resources allocated to the activities. We record these allocations in a dictionary called Resources_allocated_to_activities.
We have to define a notion of possession. Something like "This product can be used by John' or 'Mary is the owner of the house. Jim rents the house' or 'Pete is allowed to attend this lesson'. We recognize that there are different types of ownership: 'can be used by', 'is the owner of', 'is the tenant of', 'is allowed to attend'. When you say 'Ian is the landlord of the house', you are facing a relationship between two resources. When you say 'Charles is allowed to attend this lesson', you have a relationship between a resource and an activity. You could consider a lesson to be an activity, but you can also consider it to be a 'thing', i.e. a resource. For the moment we consider a possesion to be a relationship between to objects.
When a resource is assigned to a certain activity, he/she cannot be selected to be assigned to another activity. So the scheduling process cannot assign a person to an activity if that is already assigned to an activity.
When we look at the situation at a certain moment, we see a lot of resources, a lot of orders and a lot of work in progress. We are not taking into account orders that have not yet been approved. The approved orders are not scheduled yet; scheduled but not started; or scheduled and started. We assume that no activity was initiated without planning. Therefore, where there is work in progress, there is an established schedule.
We can now give a sketch of the scheduling process. Persons place orders. We verify whether all requested products are in stock. We also examine whether the requested products are already allocated to other activities. When not all of the requested products are available, production processes must be launched to manufacture the missing products. We look for organizations that can produce these products. Among the numerous organizations and production processes, we select one or more production processes through which the desired products will be manufactured. We examine what raw materials, tools and skills are necessary to carry out all stages of the production processes. In the description of the processes we find the properties of the raw materials and tools we need to carry out the process. If these materials and tools are available, we select the quantity we need. If materials or tools are not available, we schedule production processes to make those raw materials or tools. In the description of the production processes we also find the skills the workers must have to be useful in the production process. If such workers are not available, we choose another production process or we schedule an educational course. The conclusion could be that the order cannot be complied with, when there are insufficient workers, tools or raw materials. In case we find individuals with the required skills, we select the individuals we need to deploy in the production processes. We arrive at a schedule. We call such a schedule a scenario. We repeat the steps above while making different selections every time. In this way we arrive at numerous schedules. We call such a schedule a scenario. We go through all scenarios. From all these scenarios we choose the one in which all workers work approximately about the same amount of time.We recognize that the scheduling process is a repetitive process. If raw material or tools or skilled workers are not available, we schedule other processes to obtain those materials, tools or workers. We also recognize that there are situations where the goal of the scheduling process can not be reached because we can't come up with a scenario where all available workers can be assigned work.
The sentence 'We verify whether all requested products are in stock' does not cope with the order 'John needs a yoganastic therapy'. A therapy session is not something that you find in stock. As long as there is a therapist, and some tools needed for the therapy, the therapy session can be scheduled. So a therapy session must be present as a resource, because you can order such a thing. The properties of a therapy session are the presence of a therapist, some tools and the conditions of a location where a therapy can take place. Undergoing a therapy session is an activity that is not present in any location. So the scheduling system is checking all the properties of the available resources. If the properties of the activity match the properties of a resource, it can select the resource as needed for this activity and record a reservation. As almost every activity needs a venue, the scheduling system als checks which locations are apt for the activity. To do that, it uses the properties of the locations.
Let's look at the sentence 'We also examine whether the requested products are already allocated to other activities'. In this sentence 'other activities'are mentioned. Here we have come across the schedule established previously. We assume that a resource cannot be used twice, being assigned to two different activities that are performed simultaneously. However: there is a difference between tools and raw materials. Raw materials are absorbed by the activity. After the activity the raw materials do no exist anymore. They have been transformed into something else. Tools do not disappear during the activity. You can reuse them. So raw materials cannot be used in any subsequent activity, while tools can be reused.
When not all of the requested products are available, production processes must be launched to manufacture the missing products. The starting point is the current schedule to which new activities must be added. It is a repetitive process. Each time a bundle of orders is approved, new activities are added to the schedule. To what extent is adaptation of the existing planning desirable and acceptable? Rescheduling in the distant future is generally not a concern. But rescheduling in the near future may be uncomfortable. Urgently needed change is more acceptable. Sometimes change is inevitable. For instance, if weather conditions do not permit, you must modify the schedule.
You can wonder if the sentence 'We look for organizations that can produce these products' is necessary. A task can be carried out by people working in different organizations. This often happens, when external parties are hired. Here, I presume that the production process descriptions are more or less linked to organizations. People within an organization speak the same language. Members of an organization are used to working together. Somehow, it's natural that you start having a product made by people from the same organization.
The next sentence 'Among the numerous organizations and production processes, we select one or more production processes' talks about a selection. If you choose at random, there is no guarantee for a decent performance of the scheduling process. This has to do with a sentence later on in the sketch, saying 'We repeat the steps above while making different selections every time. In this way we arrive at numerous schedules'. By comparing many schedules we hope to find a schedule that meets the established requirements. We will talk about the selection process later. We also talk about the selection of processes in stead of the selection of a process. Here, we take into account that one organization may not be able to make all requested products, and we must move forward to have production take place by multiple organizations or in multiple locations.
The sentence 'We examine what raw materials, tools and skills are necessary to carry out all stages of the production processes' refers properties of the activities. We are going to compare these properties with the properties of the resources in stock. We go through all the production processes that have to be carried out. The properties in stock can be reserved for use in other activities. We may not be able to allocate all the resources to the production process we are examining. Maybe resources cannot be found in the near distance, and have to be transported from far away. If we are not able to transport these resources in time, we cannot use them. This could be an hindrance in starting the production process. Scheduling the production process can be done if we can find resources that are available and have the necessary properties for the production process.
U N D E R C O N S T R U C T I O N