.'~nnals of Operations Research 5511995r439 452 439 How to make OR-results available: a proposal for project scheduling Rudolf M tiller* tlumhohtt ~'niversitdt in Berlin, hlstitut /i'ir H'irtschafts mformatik. Berlin, Germany E-mail: rmueller,a wiwi.hu-berlin.de Dirk Solte ~rs~'hungsinstitut liir anwemlungsorientierte l t ' i s s e n s t ' e r a r h e i t u n g ( F.4 H'). D-89081 Uhn, German v E-mail: soltcea faw.uni-uim.de This paper addresses the question of how to make avadable and how to get realistic insight tnto the behavior of hard algorithms for application fields such as scheduhng. A typical situation in this context is the availability of hundreds of algorithms for special subclasses of certain problems where one of the mare difficulties is to handle these algorithms simultaneousl) and make available knowledge about when and how to appl) a particular algorithm, using statistical tnformation on the suitability of certain algorithms under appropriate conditions. Major questions concern "accounting problems" when particular algorithmic tasks are required to apply specml methods but mtght also be useful for other methods, In particular, the question of finding adequate software-engineering strategies and software-development environments for such work is addressed. Also, the paper revtews recent developments at the Research Institute for Applied Knowledge Processing (FAWt in UIm and describes a method base for ~heduling algorithms built within the framework of a cooperative effort between FAW and the Technical University of Berlin 1. Introduction The application of mathematical models to support experts in solving real v~orld problems has generated significant interest in both the research and development communities. Unfortunately, the use of these results is not yet as established as it should be [9]. One of the reasons is that too much muttidisciplinary knowledge about operations research~management science, mathematical programming, computer science and cotnmunications is simultaneously required to implement solvers and integrate them into applications. Moreover, academia still does not put sufficient emphasis on doing research on real world applications. Looking to the fields of "The first author acknowledges support from the Deutsche Forschungsgemeinschaft under grant Mo446 I-3 and Sonderforschungsbereich 373. J C Baltzcr AG. Sclence Publishers 440 R, .~fiilh'r~ D. Solte Proposal tor project scheduling operations re.~earch, mathematical programming and parts of theoretical computer science, many papers have been published whose abstracts contain the words: liar the prohh, m ... we ,eive a ... al.eorithm. How many of these algorithms have been implemented'? And if implemented, how man,,' implementations have been published'? And hov, many of the published implementations are used in practice'? Assuming open competition, good algorithms survive and had algorithms disappear. But what is the measure for the quality of an algorithm'? Possible criteria may be: • • ~, The quality of the underlying theory (generality, complexity, optimality of the solution, etc.). The quality of the implementation (perl\-wmance, openness, etc.), How easy is the theory (easy to understand, easy to implement, easy to use). Normally, there is a trade-off between these criteria. One will rarely find a general algorithm with a good performance rate that is easy to implement, because good perlk~rmance is gained by exploiting the structure of a problem and using advanced data structures. The first point contradicts generality, the second requires a lot of implementation eft\~rt. A reasonable combination for the survival of an algorithm on the software market seems to be generality with an acceptable performancc, as for the simph'x algorithm and the interior point method for linear programminx. Here, a whole industry is concerned with developing efficient codes. Even more, at lot of research is done to map all kinds of optimization problems into this framework, Moth,ling hmguages like SML [7, 8] already free the user to a considerable extent from doing this mapping himself. However, there are many combinatorial optimication prohh'ms arising in applications, which cannot be modeled as linear programs because they require, e.g.. integer solutions, at least for some of the variables. But even for these problems. general ~and ineflicicnt) mixed integer linear programming (MILP) solvers arc the most frequently used. To get better performing algorithms one has to exploit the mathematical structure of the problem class. For example, in branch and cut algorithms for the travelittg suh'smatt prohlem one combines the pure linear programming approach with problem-oriented combinatorial algorithms, which serve to compute heuristic solutions and to separate non-integral solutions by sets of l~wets of the convex hull of integer solutions. This approach requires an extensive research effort: however, it leads to non-general solvers. The only generality lies in the experience one gains, which might be used for similar problems. But almost no company invests money and personal resources to gain such experience, so the major thrust for further improvements comes from mathematical curiosity. The application domain for the concepts described in this paper is a subarea of combinatorial optimization where linear programming is not adequate: to model a sche~hding probh,m as M ILP results in an excessive number of linear constraints. The polyhedral approach seems to be promising only for very special problem R. Mfflh'r. D. Solte Proposal h~r prolect scheduling 441 classes, as, for example, single machine scheduling [25, 27] and job-shop scheduling [I. 3]. For general classes, like scheduling project networks with resource constrahlts and tinw windows [4], pure combinatorial approaches are favored. Such approaches require deep mathematical insight. This may be the reason why commercial solvers l\~r project scheduling restrict themselves to quite simple heuristics, which makes them disappointing to some extent [see, e.g. the elaborate comparison of available commercial packages in [30]). It is obvious that one has to find or build a bridge between real world problem solving on one side and algorithmic mathematical research on the other side. A good bridge should free the application expert from the burden of requiring a deep understanding of the theories and algorithms he should use. instead, the expert should be allowed to formulate his application problem within an appropriate m,,deling language. The mathematical specification, the choice of appropriate algorithms, and their execution should be done by the system. However, even a much less ambitious goal is not yet reached: providing an environment in which a researcher in OR or mathematical programming can integrate new algorithms in a comfortable way. "Comfortable" means that the environment provides a normed system of data structures to which the researcher connects his algorithm by implementing an interface only once. After that he obtains a complete experimental environment for free: menus to invoke his algorithms, graphical editors, connections to data-bases and to other algorithms in the library. Herb Shultz and William Pulleyblank state in their essay Trends m Optimi:ation that this kind of support is one of the three major aims for mathematical optimization l_ st. A project that is ongoing at a research group centered at the FAW ( Research Institute for Applied Knowledge Processing), with partner groups in Berlin and Los Angeles, has as one focus the aim to realize such an environment. Project MIDA, which stands for Model Oriented Integration of Data and Algorithms, brings together researchers from the fields of AI, knowledge based systems, computer .wwm'e, modclhlg languages, decision support systems and combinatorial optimi'.ati, m. In this project each group contributes to the design of the whole software architecture, including new specific research and development aspects. The main blocks of the architecture are a model-base, a library of algorithms and data structures for project scheduling, a high level interface, and an administration system for distributed computational resources. A first discussion of the aims and requirements involved in MIDA was given in [5], and some details on the modeling part are discussed in [I 2]. The technical details of the kernel of the system are illustrated in [11] and [14]. For a mathematical discussion of the problem domain project scheduling a e recommend [23, 24]. In this paper, we discuss mainly our chosen approach to solve the problem of the integration of algorithms and of communication, in section 2 we give a detailed overview of the kind of scheduling problems we want to handle. This section argues t\)r the need to integrate many algorithms in one system. In section 3 we outline the 442 R. Mfiller. D. Solte/ Proposalfor project scheduling whole architecture of the system. Section 4 tells how to integrate software into MIDA. We conclude with an overview of future research topics. 2. The application domain of the prototype A scheduling problem is concerned with how to process a set of tasks, that usually involves temporal aspects and resource aspects, in order to optimize an objective. This definition subsumes project scheduling, sequencing and various kinds of shop schethdmg problems. All of these have been the topic of intensive rcsearch in computer science, mathematical programming and operations research. A project scheduling problem as discussed here deals with a finite set of jobs, which have to be processed non-preemptively. For the processing of the jobs a finite set of reusable resources is available. Each job has a demand for one or more of these resources, and for each resource, there is a certain supply. Demand and supply are given by piecewise constant functions of time. In case of the demand, the value of the function at a time point t is the amount of the resource needed by the job t time-units after its start. In case of the supply, the function value gives the supply t time-units after the start of the project. Each job may have a reh'ase-thne and a deadline. The interpretation of these values is that the job has to be scheduled within the time interval [release-time, deadline]. Furthermore, each job has a positive duration. We may have in advance full information on the duration (deterministic duration) or only stochastic information (stochastic duration), where we know for example a (joint) density of a random variable describing how the durations of jobs are distributed. Further there may exist time constraints on the processing intervals of pairs of jobs. Such a constraint forces a minimal or maximal delay between the start or end of one job and the start or end of the other. Given these resource and time constraints we look for rules to schedule the jobs. Such a planning ruh, produces a feasihh, schedule if all time constraints are satisfied and at each time the total amount of used resources does not exceed the supply. A planning rule may be given by an explicit list of starting times or may contain hints about how scarce resources should be allocated (for example in the form of a priority list). We measure a realization created by such a rule by nondecreasing real-valued functions of the completion times of the jobs. Nondecreasing means that if one schedule leads for each job to a completion time smaller or equal to the completion time given by another schedule, then its objective value is not worse. In other words, to plan as early as possible never worsens the objective. Let us illustrate everything said so far by giving three examples of classes of project scheduling problems: ( 1) Take an acyclic directed graph with a single source node s and target node t. Take each arc as a representative of a job, and a directed (eventually empty) R. Mffller. D. Solte Proposal ]br project scheduling 443 path from the head o f o n e arc to the bottom o f a n o t h e r arc as the constraint that the second job may not start before the first is finished. Further, assume that the length of each arc (processing time of each job) is given by a random variable. This defines a stochastic project network, also known as P E R T network in the literature. If there are no resource constraints, one can give a simple rule how to schedule optimally: start each job as soon as all its predecessors are finished. However, this is not expressible by a list of starting times, because the durations of the jobs are not known in advance. Consequently, one also does not know the value of the objective in advance; instead, it is a random variable. In this case, one wants to have algorithms that compute some information about this random variable, for example, its mean. The algorithmic approach combines decomposition theory of partially ordered sets with transformation techniques on the network structure, and numerical operations on one-dimensional random variables. Especially the possibility to decompose complex network structures into smaller units argues for experiments with combinations of standard algorithms: on small units costly algorithms could do precise computations, whereas large units could be treated by fast, but less precise approximation algorithms. (2) The second example is from the field of machine scheduling problems. The time constraints for machhle scheduling prohlems are given by a partial order on the set of jobs (poser): the resource supply is a set of m identical machines, and the demand of each job is one unit of these machines. The processing of a job on a machine may again not be interrupted and so also not divided among several machines. The research done in ma¢'hine scheduling in recent decades is enormous. The reason for this is mainly a mathematical one: the border between polynomial solvable and NP-hard problems (so far there is one) crosses this domain of combinatorial optimization problems. There is even a no maws land: nobody knows so far the complexity of the 3-machine problem. The result of this exhaustive research are hundreds of exact and approximate polynomial or exponential algorithms for all kinds of combinations of conditions on the problem. The respective combination of conditions is less guided by a practical application, but by the mathematical . [ 11 41514 I ~ ~ 6 1 2 1 3 ~ Figure1. A nearly'seriesparallelproject. "-J 444 R. Mfiller. D. Solte Proposal.lor project scheduling 1,121 , t3 161 5 171 Figure 2 0 p t , m a l schedule ffjob 3 has to precede job 6. I, I 4 1+1 1 I 5 Figure 3. Optimal schedule if lob 4 has not to precede job 5. question, what parts of the structure do make the problem hard to solve. Nevertheless, this work may have big practical relevance if it is integrated in a scheduling problem solving system in an appropriate way. This is true, e.g., because the application of a specialized algorithm to a more general class of problems could serve to generate good approximative solutions, or to compute tight upper and lower hounds for the optimal value of the objective, thus providing a quality control for heuristics. Take the example of figure 1. It shows a set of 7 jobs, each represented by a rectangle. The first number in the rectangle is the i d o f the job, the second represents its duration, and the third the weight of its completion time in the objective, which is the sum of the weighted completion times. Each arc represents the constraint that the job at the target may not start before the job at the source is finished. Our aim is to lind a schedule on a single machine which minimizes the weighted sum +~/ comph'tion times. The instance of figure 1 is not a member of any class for which a polynornial time algorithm is known. So we can only use a general tool such as a branch and bound algorithm to lind an optimal schedule. However, if we add the constraint/oh 6 has to he a successor q/ijoh 3, the situation changes. This constraint makes every schedule which plans job 6 before job 3 infeasible. So it reduces the space of feasible solutions and hence the objective value of an optimal schedule worsens. But on the other hand. it makes the partial order on the set of jobs series paralh'l. Given a series parallel partial order on a set of jobs. we can compute the minimum weighted flowtime schedule on a single machine by a fast algorithm of Lawler [19]. This algorithm computes an objective value of 246 for the example (see figure 2). instead of adding a precedence constraint, we may also drop one, for example the constraint that job 4 has to precede job 5. Again, we obtain a series parallel partial order and kawler's algorithm in this case gives an o p t i m u m of 241, which is a lower bound (see figure 3), More than that, the generated optimal schedule plans job 3 before job 6, so it respects all original constraints and is thus an optimal solution for the problem we started with. (3) A third class of project scheduling problems which we have in mind are socalled time cost trath'-of/prohh, ms+ Here, the only scarce resource is mottel' which can be used to control the duration of each job to some extent. The time costtrade-off relation of a job is given by a decreasing piecewise linear convex function of time. The value of this function at a time point t gives the amount of money, R. Mt~ller. D. Solte Proposal for project schedulinR, 445 which one has to spend for this job in order to finish it within t time units. The precedence constraints are given by an activity-on-arc diagram (as in example ! ). Suppose we want to guarantee a certain project duration. Then the question which arises is, what is the minimal a m o u n t of money which has to be spent for this aim and how should the money be divided among the jobs. The problem can be solved by transforming it to a rain cost/h~w prohh, m or, for variable t, to a sequence of rain cut problems. Consequently. this is an example where one can use a standard comhmatorktl ,ptm~ization algorithm (rain-cut or max-flow) to solve a scheduling problem. A similar situation arises in 2-machine sche~hding o.f partialO' ordered unit tmw johs. This class of problems can be solved by a weighted matching algorithm applied to the incomparahi#ty graph of the partial order. Having the matching algorithm available, one only has to implement a procedure to initialize and interpret its input and output data. To summarize, we argue that an efficient environment to solve project scheduling problems has to support the user at least in: • Handling many of different data structures, ranging from representations of random variables (to represent stochastic durations), over weighted graphs (to represent time constraints) to nondecreasing functions of real vectors (to represent objectives) (examples 1, 2, and 3). • Combining algorithms into new algorithms (example 1). ,, Using algorithms for special cases as heuristics for more general cases (example 2). Integrating standard combinatorial algorithms as subroutines (example 3). • The next section describes how M I D A organizes solver communication and integration. 3. The overall architecture MIDA stands for model-oriented integration of data and algorithms. The following scenario describes the basic environment that M I D A addresses. Suppose one has several different hardware platforms in a network, running under different operating systems. On each platform one has installed a lot of software to solve combinatorial optimization problems or to perform other helpful tasks. Most of the software is not easily portable to the other platforms in the network. Furthermore, there are several data bases installed in the network, each containing a large amount of data in its specific style. In a company this could mean that for specific domains (e.g. personnel, finance, production, etc.) one uses heterogeneous autonomous databases. In a planning process one very often needs data from some of these databases to get an integrated view, which means that the most comfortable 446 R. Mt)lh'r D. Solte Proposal lor project scheduling t User Interface Integration If I 1 Implementation t-lgurc 4 Data structure~, and algorithms. solution would be distributcd access over a network to get the desired data. in a decision process like this it could bc that the current problem is essentially a machine .sc/u'duline prot,h,m. But, maybe, one is not an expert in this ticld. A userfriendly computer-based tool would supervise a user in such a situation, guiding him through a library of nlodcls written m the user's favorite modeling language until one tinds a model applicable to the problem. Then one edits the data with a comlbrtable graphical interface or it will be accessed over the network. Based on the current problem instance the tool would offer a list of applicable solvers available somewhere in the network. One invokes some of them, without worrying about where the solvers arc located, in which programming language they are implemented, or how the data have to bc prcparcd t\~r input to a particular solver. Some seconds later tor hours, if the problem is hard) one is offered the solutions. Hos~ to go a tirst step towards such a comfortable environment? M I D A does this by integrating a number of quite simple concepts. Despite this simplicity, the lirst implementation of the system, which is running now, demonstrates that the concept is quite powerful. Most of the concepts used are not new. They have. c.g., bccn realized in programming languages such as ('LOS {sec [201t or Smalltalk-,~'O {sec [ 10]). The M IDA-system has three levels I tigurc 4): the user interlkwe, the integration, and the iml~h'mentation level. Corresponding to that, the M I D A architecture ........modeling envtronments .. A M BA S ..... ] i, Figure 5. MIDA architecture ............t R. Mfflh,r. D. Solte Proposal for pr~ject sche&ding 447 is divided into three levels: a high level user interface based on modeling hmguages, a kernel, called AM BAS, handling representations of data structures and algorithms in a model-base and connecting them to the modeling environment, and solver libraries with code implemented in various programming languages (figure 5). A M B A S (A&lptive Method Base Shell), developed al the FAW, is the heart of MIDA. It is an interpreter of user requests to manipulate a set of objects of data and method classes stored in the model-base which is implemented using Object Store an object oriented database management system. A data chlss is a C + + class carrying a collection of data in a structured form. A method class is a C + + class carrying algorithms and functions. Every method is supposed to map objects of an input ~hlss )', onto objects of an output class Y,,. Method ch~sses are completely characterized by their input and output classes: each function mapping from Y, to Y,, is a feasible instance of the method class Y, toY,, (a detailed description can be found in [14] or [29]). Based on this simple and deliberately restrictive concept concerning the design of interfaces of data and method classes, it is possible to handle all algorithms (functions), including those algorithms with more than one input parameter and functions which change the values of one of their input parameters, i.e. where input and output are mixed. The specification of AMBAS allows their integration by providing a frame to enclose them: the method class. In this frame the shape of a function is hidden Icf. the concepts of K A R A M B A [13]). Surely this is a strong restriction, but making AMBAS or any other system so general that it can handle all kinds of parameter syntax directly seems currently to be out of range. In heterogeneous environments one also would have hard problems to realize an administration system like AMBAS based on an object-oriented approach instead of a purely functional approach as in MIDA. Object orientation would mean that each function is a memher/imction of a class. It either transforms the current values of Ihe object, or it sends a message to another object. This would mean for AMBAS that it must know all about the internal organization of the integrated data classes (i.e. knowledge about the compiler). And AMBAS would have to know the current states of all objects, because this may determine the feasibility of a method. With a functional approach, however, the feasibility of each function is guaranteed by the type of the input parameter. This can be ensured by the programmer of the function instead of the administrator of AM BAS. The programmer should know what happens inside his code and has to model this by specifying the c~rrect input output behaviour. This means, e.g., thai in cases where the feasibility of a function cannot always be guaranteed by the correct input type but Ihe feasibility test is part of the function, this has to be expressed by the interface specification. For example, a function invert to calculate the inverse of a matrix could test for singularity of the input matrix during its computation. In such cases the singularity has to be an element of the output class Y,,. For example, Y,, may be a frame (see below) 448 R. MOiler, D. Solte/ Proposal Jor project scheduling with attributes matrix and determinant. If the matrix is singular, invert returns "nothing" in matrix and a zero in deternlinant. Another option would be that such a function has not only input and output parameters, but also controlparameters. As part of the input they control the flow of computation, for example the branching strategy of a branch and bound algorithm. As part of the output they review the flow of computation, for example the number of nodes in the branch and bound search tree, the time, and the quality of the first feasible solution, or they are handling error codes. This is a much more serious problem for AMBAS and the integration is not fixed up to now. In the current implementation one has to follow the strict input/output concept. For example take the function invert. Is the attribute deterrninant result output or control output? To keep the implementation of A M B A S as clear as it is now, one has to require that all functions in the same function class have the same control parameter. Then one can equip each function class with data members for control input and output. Everything else has either to be a part of the input or output, or has to be set automatically with defaults or has to be asked from the user in a function-user interaction invoked from the function itself which is strictly forbidden in the AMBAS philosophy. The set of operations by which AMBAS (resp. the user with the help of AMBAS) manipulates the objects of data and method classes is restricted to construction, deletion, assignnlent, hnking and access. Each of these operations corresponds to a public method or operator of the selected class or object. The constructor generates an object of a class and initializes the data sections with defaults. The memory of the new object is allocated in a way that the destructor can clear all the memory. The assignnlent operator initializes one object with the instance of another object. Instance of an object means the set of current values of its data members. By the implementation of the assignment it has to be guaranteed that the two objects do not share c o m m o n memory after the assignment. The assignment is not restricted to pairs of objects of the same class. It is defined whenever the object which is assigned is a special case of the object which gets its instance. AMBAS" concept of data and method classes interprets each class A as a special case of all method classes mapping A to any other class. Assigning an object a of a class A to an object f of a method class AtoB initializes the input object o f f with the value of a. Vice versa, a method class A toB is seen as a special case of the class B. Assignment here means the evaluation o f the function with the current instance o[ A and assign#lg this vah~e to the object o f class B. Contrary to the assignment operator, the l#lking operator associates two names with the same object. If the name that gets a new link has been linked to another object and there is no other name referring to this object, this object is automatically deleted by a call of its destructor. Access is the needed counterpart of assignment and linking, The restriction to such a small set of operations used by AMBAS makes it possible to implement R. Mffller. D. So#e/Proposal for project scheduling 449 AM BAS without any knowledge of the interior structure of the classes. Classes, in this perspective, are nothing more than a container system with a normed interface. To integrate a new algorithm into AMBAS, one has to put it into a method class and A M B A S can invoke it. If an algorithm is already implemented as a function which needs one parameter of type class A and returns an instance of a class B, one simply equips A and B with the missing manipulation methods (see above) and integrates those classes also into AM BAS. To integrate different algorithms of the same functionality (e.g. max flow) implemented by different people, one will probably have different representations of flow networks (as input and output classes) in AMBAS. Every representation needs its own editor. Making the results of the algorithms usable for further computations, one has to understand all these data structures and implement the mapping from them to the data structure needed for the next step (so-called bridge algorithms [6]), Our proposal for the design of data classes handling the input ~ Y,) and output (Y,,) of algorithms is to find a domain-specific general representation (ontology). This is of course a very hard task but it would help greatly in cooperative work. Then one can hide the mapping to the data structure of a specific algorithm inside the method class. Even if the algorithm can only be invoked by a system call and reads its input from a file, one has no problem. This can all be done inside a method class. And if a class for a flow network is comfortable and well documented one can give the burden of the integration to the designer of the algorithm. 4. How to connect to A M B A S The preceding section illustrated how AMBAS handles data and method classes in a distributed environment. The classes are C + +-classes with a normed set of methods. Integration of software into AMBAS, and thus into M I D A requires the implementation of such classes. The AMBAS architecture described in section 3, however requires more than a certain structural organization of data classes. Since methods are described by pairs of input and output classes, only, these classes have to contain a definition which semantic conditions the data has to fulfil. For example, a directed graph may be chosen as a representation for a partially ordered set. The nodes correspond to the elements of the set, and an arc from a node ~, to a node w corresponds to a relation t, < w. Now, only acyclic, transitively closed graphs represent partial orders. So, if we have an algorithm that requires as input a partial order in this representation, acyclicity and transitivity has to be encoded in the definition of the input class. An approach to encode the semantics of data classes is provided by the modeling level of MIDA. The idea is to use object oriented modeling enhanced by several semantic data representation concepts as a high level expert interface in which one expresses the full syntax and semantics of the data structures and algorithms. A compiler transforms this description into internal representations in R. Mfflh,r. D. Solte Proposal for pro[ect sche&ding 450 form of ( ' + +-classes. which are then used to encapsulate algorithms and data structures of arbitrary software libraries. Another approach has been dcvcloped at the Technical University in Berlin [21]. They provide in their library ADLIPS (,41eorithm and Data Library tor Pr~/ect Scheduling) a tool to generate AMBAS compatible C + +-classes. Based on descriptions the tool takes predefined classes and composes them to structured classes. The structured classes may have one of the shapes t~'ame, case, tahh', and graph. A l?ame is, as a struct in C, or a record in PASCAl_,, a simple composition of predcfincd types. A ~a.~c is a composition of alternative frames, coinciding with a union in C. Tahh,s arc tables with arbitrary many indexed rows and a finite number of predcfined columns. Graphs are directed graphs with arbitrary node and edge attributes. Besides the member functions needed by AMBAS, for each class the code for a comfortable graphical editor based on X 1 I Motif is generated. One of the conclusions of section 2 was that a comfortable system has to support a large varictv of data structures. This is certainly guaranteed by this system, since the provided shapes of structures cover all needed composition rules and alloxv recursive definitions of data structures. Another conclusion ~vas the necessity to support the combining of algorithms. This is guaranteed bv a flexible technology to assign objects of different types tO each other. For details, we refer to [21]. The problem of encoding semantics is attacked in the class generation tool by providing tbr each data class a method evaluate. The designer of the class implements in this method his definition of valid instances of the class. Thus the user of the class always has control on the feasibility of an instance. One could imagine that the descriptions that are currently used as input for the generator routines for classes are replaced by models in some modeling language. At least the mapping of the structural organization of a model should cause no problem, since the possible structures of classes generated by the tool cover all structures occuring in currently available modeling languages. For example the current implementation of the structured modeling language [8] creates relational data b a ~ tabh.~ to store the instances. T h e ~ are special cases of tables. ASCEND [26] creates a hierarchical system of atoms and models, These can be easily expressed by frames and tables. NETII'ORKS [15, 16] uses pavameterized graphs for its models. Here appropriate graphs can be used. The transformation of semantic constraints encoded in the models into a C + +-representation, however. is not trivial. 5. Conclusion The prototype described in this paper forms the basis for further develop. ments of a system for a model-oriented integration of data and algorithms R. Mu'ller, D. Solte Proposal for project scheduling 451 IMIDA). The next step of research aims at an integration of several modeling languages such as an extension of SML [7] and the ASCEND-system [26]. Reuse t y models and model integration are two research issues which come into MIDA by this integration [17]. Another problem that has to be addressed is how user preferences could be used to propose algorithms for selection ordered w.r,t, the intention of the user, For that reason the preference elicitation tool [ 18] developed at FAW is presently being integrated into MIDA to evaluate order relations for the methods selected by AMBAS. A detailed discussion about the enhanced architecture is given in [121, References [1] [21 [~] [4] I51 [~1 [7] IX] [,4] [10] I111 !I2] [13] [14] [I 51 116] [171 IlX} [191 D. Applegate and W. Cook. A computatuonal stud) of the job-shop ~heduling problem, ORSA J. C o m p 3 11991t 149 156. C. Bohm and G. Jacopinl. Flow diagrams, Tunng machines and languages with only t~o formation rules, Commun. ACM 11966}. E. Balas. On the facial structure of scheduling polyhedra, Math. Prog Study 24 (1985) 179 218 M. Bartusch. R.H. Mohnng and F.J. Radermacher, Scheduling project networks with resource constraints and time windows, Ann. Oper. Res. 16 (1988). M. Bartusch, R.H. M6hrlng and F.J. Radermacher. Design aspects ofan advanced DSS for scheduling problems m civil engineering. Dec. Support Syst. 5 11989) 312 344. R. Felter, Dect.,ion Support A.s.ststant (Deutscher Universit~its Verlag, Wiesbaden. 1989). A. Geoffrion, An introduction to structured modeling, Manag. Sci. 33 (1987}. A. Geoffnon, The SML language for structured modeling, WMSi Working Paper 378, Anderson Graduate School of Management. UCLA ( 1990}. A. Geoffnon. MS OR: forces, trends, opportunlt,es to flourish. WMSI Working Paper 395, UCLA (19911. A. Goldberg and D. Robson. Smalltalk-?¢O The Language and its Imph, rnentatton 1Addison Wesley,. 1983). M. Holocher. AM BAS. Entwicklung und lmplementierung eines Systems for den problemonentierten Zugriff auf rechnergestfitzte L6sungsverfahren, Dlplomarbeit FAW-B-92003 tl992}~ M. Holocher. R. Michalski. D. Solte and F Vicufia. MIDA: an open systems architecture for model-oriented integration of data and algorithms. Dec. Support Syst., to appear. R. HiJber, V D. Dittrich and P. C. Lockemann, Das KARAMBA-Methodenbanksystem, Tagungshand der 9. GI-Jahrestagung (1979) pp. 322 336. M. Holocher and D. Sohe. AMBAS, an adaptative method base shell, in Enterpri.se lntegratum Modeling, Proc. I.st bit. Conl., ed C. Petrie (MIT Press, 1992). C V Jones, An introduction to graph-ba~d modeling systems. Part 1: Overview, ORSA J. C o m p 2 ( 1990}, C.V. Jones, An introduction to graph-based modeling systems, Part ll: Graph-grammars and their implementation, ORSA J. Comp. 3 (1991). R. Krishnan. P. Piela and A. Westerberg. Reusing mathematical models in ASCEND, Proc. NA TO ASI on Decision Support Sy.stem~ ( 1991 }, to appear. T K.:impke, F.J. Radermacher. and P. Wolf. Supporting preference elicitation. The FAW preference elicitation tool. Dec. Support Syst. 9 11993) 381 392. EL. Lawler, Sequencing jobs to minimize total weighted completion time subject to precedence constraints, A n n Discr. Math. 2 (1978} 75 90 452 R. Mt~ller, D. Solte/ Proposal for project scheduling [201 L.G. DeMlchiel and RP, Gabriel, The Common Lisp object system: an overview. Proc. European ConL on ObJect Oriented Programrmng, Pans (1987), [21] D. MOiler and R. MOiler. A concept for the representation of data and algorithms, in: Computational Support fi,r Discrete Mathematics. DIMACS Workshop. eds. N. Dean and G. Shannon ( 19941, [22] K Mehlhorn and S N/iher. LEDA. a library of efficient data types and algorithms, in: Graph. Theoretic ('oncepts of Computer Science. Lecture Notes in Computer Sciences, Vol. 411 (Springer, 1990) pp. 88 106. [23] R.H, MOhring and F.J. Radermacher, The order theoretic approach to scheduling: the deterministic case, in: Advance.s in Pr~qect Scheduling. eds, R. Slowenski and J. Weglarz (Elsevier Science, Amsterdam, 19891 pp. 26 66. 124 R.H. MOhring and FJ. Radermacher. The order theoretic approach to scheduling: the stochastic case. in: ,4dvames in Proiect Sche&dmg, eds. R. Slowenski and J. Weglarz [Elsevier Science, Amsterdam, 1989) pp. 497 531. 1251 ( i . L Nemhauser and M.WP. Savelsbergh, A cutting plane algorithm for single machine scheduling problems ~'ith release times. Proc. Ist ll'orkshop on COST, Rutgers University, DIMACS Technical Report 91-18 ( 1991 ), 12e,] P Piela, ASCEND. an object oriented computer environment for modeling and analysis, Ph.D di~,sertatlon. Department of Chemical Engineering, Carnegie-Mellon University (1989). 1271 M, Queyranne and Y. Wang, Single-machine scheduling polyhedra with precedence constraints. Math. Oper. Res. 16 11991~ 1 20. [281 H Schultz and W Pulleyblank, Trends in optimization, O R ' M S Today (August, 1991), [29] I ) Solte, Open Sv.~tcm~ Ein h'rnendes l'erwaltung,~svstem liir die rechnerunterstfit=te Methodenkon.~truktitm tm Bereuh ~h'~ Operations Research, VDI-Fortschrittsberichte, Reihe 16, Nr. 38. {Vl)I-Verlag, 1987) [30] J. de Wit and W. Herroelen, An evaluation of microcomputer-based software packages for prolect management. Eur, J. Oper. Res. 49 {1990).
© Copyright 2024