CHAPTER 4
BLACKBOARD APPROACH FOR PROBLEM SOLVING

4.1 Distributive Cooperative problem solving

To solve a complex design problem, there is a need for a large number of tasks to be performed. If all the necessary tasks were successfully incorporated within a single code, the code will be of such immense size that it will be impossible to maintain it. It will be very difficult to read the code for any modifications or additions. Hence, it is necessary to break down the large problem into small and manageable sizes so that procedures can be written to perform each individual task. These small tasks are easy to manage and can be controlled through a central controller. The controller is responsible for distributing the tasks and organizing them based on their relative importance. This concept is called the distributive cooperative problem solving method. To implement the above idea a blackboard approach is adopted.

4.2 Blackboard approach

4.2.1 Basic concepts

The blackboard approach [10] is a powerful means of flexibly combining individually developed software systems and modules into a single integrated application. The GBB software development environment is based on the blackboard approach. The GBB is an object-oriented environment for developing high-performance software applications in which software modules interact in much the same way as human experts collaborate to solve complex problems.

Figure 4.1 The basic concept of blackboard approach for problem solving

A GBB application consists of three major components as shown in Figure 4.1.

  1. The software specialist modules, which are called knowledge sources (KSs). Like the human experts in the blackboard metaphor, each knowledge source provides specific expertise needed by the application.
  2. The blackboard, a shared repository of problems, partial solutions, suggestions, and contributed information. The blackboard can be thought of as a dynamic "library" of contributions to the current problem that have been recently "published" by other knowledge sources.
  3. The control shell, which controls the flow of problem-solving activity in the system.

The major advantage of the blackboard approach is that the blackboard can be used to organize knowledge in a modular way and the knowledge sources can be across different computers. In addition to this, the object oriented approach can be used for efficient data handling.

4.3 Implementation of blackboard approach

The basic algorithm of INFINTE (INtegration of FINIte element method and Taguchi design of Experiments) software developed for this project is based on the blackboard approach of distributed cooperative problem solving. The development strategy for structuring the blackboard database involves careful consideration of various knowledge sources that are going to be built, the existing expert tools that are to be integrated, and the various objects that are defined. This has been explained in the Figure 4.2.

Figure 4.2 Implementation of blackboard approach for INFINITE software

The following sections explain the details of the data structure created using the blackboard approach, the control shell and the knowledge sources.

4.3.1 Blackboard

The blackboard for INFINITE software consists of different blackboard panes with the spaces defined in each of them. The spaces are characterized by the units that will be stored in them. Under each unit space, various classes are defined. The unit classes contain the structure of data type, various slots to store the information pertaining to the unit class, and the links between slots of one unit class and another.

The following are the three different blackboard panes meant for manipulating the information.

This blackboard pan contains the orthogonal array unit space. Under this unit space, the basic structure for storing each orthogonal array is defined by means of orthogonal array unit class as shown in Table 4.1. All the information pertaining to orthogonal array such as the number of levels, maximum number of design variables, the total number of experiment to be conducted and level combinations of design variables are stored by means of slot variables. Once the unit space is instantiated, the instances of each orthogonal array will be generated. Later on, any particular orthogonal array can be retrieved to conduct the design of experiments.


BlackboardUnit Space Unit ClassSlot-Variables
1.DOEOrthogonal-arrays Orthogonal-array1.OA-name

2.Levels

3.Max-factors

4.Total-number-of-dv

2.Defined modelElement types
Type-name
1.Element-name
3.Variable1. Parameters 1. Defined parameter1. Variable-name

2. Relation-list

3. Initial-level-value

4. Description

2.Defined material 1. Material-no

2. Material-name

3. Property -value

3. Design parameter 1. Variable-name

2. Level-value

3. Description

4. Design material 1. Material-name

2. Material-no

3. Material-as-level

4. Property-name

5. Level-value

2. ObjectiveFunction 1. Variable-name

2. Type

3. Description


Table 4.1 The object unit classes and slot variables

The defined model blackboard contains element types unit space. This unit space is meant for storing the type of element used in the finite element analysis. As explained later, the selection of objective function variable is in most of the cases based on the element type being used. The instances of typename is created once the ANSYS input file is read.

The variable blackboard contains parameters and objective unit spaces. The parameter unit space has 4 different unit classes viz. defined parameter, defined material, design parameter and design material. The defined parameter and defined material unit spaces are meant for storing the information pertaining to all the parameters and materials defined in the ANSYS parametric input file. The design parameter and design material unit class stores the information related to the independent design variables. The instances of the design parameter and material is created during the selection process of independent variables. The objective unit space is meant for storing the data pertaining to objective function.

4.3.2 Control Shell

The control shell executes the knowledge source in the logical order. In a more complicated environment, where each knowledge source will be executed based on the available information on the database, the control shell plays an important role.

4.3.3 Knowledge Sources

The knowledge sources can be developed using object oriented common-lisp programming, C program or external software which runs outside the common-lisp environment such as finite element analysis software, etc., The various numerical and logical values which are generated during the process of running the knowledge sources are posted in the blackboard database.

Some of the tasks of knowledge sources developed for this project includes the initiating the database, reading the ANSYS file, retrieving the assigned variables and materials, creating the orthogonal array table, creating the graphical user interface windows and command buttons, selecting the design variables, number of levels and objective function, automatic selection of an orthogonal array, conducting the finite element experiments, reading the process parameter variables, calculating the main effect, and the percent contribution etc., The complete listing of all the knowledge sources and their task is given in Appendix A.