Group Technology
We study a technique called Group Technology, including the central idea, its range of applications and advantages, and its practical application. In particular, we shall see how we can apply it to (a) optimize planning of manufacturing processes; and (b) how this is related to the design of manufacturing cells.
Since manufacturing cells are popular in several modern industries, we shall also put some effort into evaluating their performance, in terms of scheduling of operations etc.
The foundation of Group Technology arise out of the following observation:
Most tasks performed in any system can be categorized into a smaller number of sets, where each set has tasks that are very similar to each other.
For each of these sets, if we have the detailed plan for one task, we can use this as a starting point (or template), and make minor modifications to obtain the exact plan for any other task of that set.
This technique is quite general, and has applications in many areas of manufacturing systems:
Group Technology in Design:
We know that generating the CAD model of a part design requires specification of its shape (geometry). So it makes sense to categorize, or classify a set of parts based on their shape.
A Design Family [source: Chang, Wang and Wysk, CAM, pub.: prentice-hall]
PROBLEM:
How can we decide whether two parts/products are similar?
It turns out that there is no good solution to this problem. However, some classification techniques have been successfully utilized in practice. We shall restrict our attention to individual parts. Similar techniques can (and have) been applied to products/assemblies also.
Coding and Classification:
Coding: assignment of a symbol (or a set of symbols) to represent information.
Classification: a protocol that is used to separate a large group of objects into separate sub-groups.
Therefore, we first estimate (or survey) all possible different shapes we may be dealing with. Next, we identify some "features" that define something distinguishing about the shape of a part.
Examples:
This process is largely intuitive (it would be nice to have mathematical representations of such qualifiers).
Then, for a given application where we wish to apply GT, we select a small set of "representative features". Each of these are given one (or a few) code digits.
For any given feature, we can further classify the variations -- and therefore assign different values to the code digit (say 1, 2, 3, ..., 9) depending on the size of the actual feature.
Based upon this idea, several schemes of coding and classification have been developed:
(a) Hierarchical Structures (Monocodes):
Here, each digit (or position) in the code represents a feature/sub-group. The first digit represents an entire group. The next digit represents sub-groups of the feature, and so on.
In this sense, each subsequent digit is qualified by the preceding digits (or, in an object-oriented sense, each subsequent digit inherits the properties of the previous digits).
Example:
Consider all parts to be classified in terms of a feature: rotational symmetry.
1 == Non-rotational (prismatic) parts
2 == Rotational parts.
Within these groups, we can further classify by feature: presence of hole(s).
0 == No holes
1 == Has holes
Advantages of monocodes:
1. With just a few digits, a very large amount of information can be stored
2. The hierarchical structure allows parts of the code to be used for information at different levels of abstraction.
Disadvantages:
1. Impossible to get a good hierarchical structure for most features/groups
2. Different sub-groups may have different levels of sub-sub-groups, thereby leading to blank codes in some positions.
(b) Chain codes (Polycodes):
In this method, the code digit represents one feature. Thus, the value of any given digit (or position) within the code has no relation to the other digits.
Example: A feature to be represented may be the longest linear dimension;
The value of this digit may be represented by an integer that is obtained by rounding off the length (longest dimension) [in inches] of the part being coded.
What if we are dealing with parts longer than 9.5 inches ?
We may need to reserve two (or more) digits for this feature in that case.
Advantages:
1. Easy to formulate
Disadvantages:
1. Less information is stored per digit; therefore to get a meaningful comparison of, say, shape, very long codes will be required. 2. Comparison of coded parts (to check for similarity) requires more work.
(c) Hybrid Structure:
In this case, the code for a part is a mixture of polycodes and monocodes. Such coding methods use monocodes where they can, and use polycodes for the other digits -- in such a way as to obtain a code structure that captures the essential information about a part shape. This is the most commonly used method of coding and classification.
We shall study two popular coding methods to gain better understanding of coding and classification: Opitz and KK3.
Properties:
1. Hybrid codes 2. Useful in shape classification for design and machining applications
Opitz Code:
The original Opitz code was a 5-digit code.
Digit/Position |
Type |
Feature/Group |
1 |
Integer |
part class (rotational/non-rotational) |
2 |
Integer |
external shape |
3 |
Integer |
internal shape |
4 |
Integer |
plane surface features and machining |
5 |
Integer |
auxiliary features (off-axis holes, gear teeth etc.) |
Later, 4 more digits were added to the coding scheme, in order to increase the manufacturing information. These last four digits are also called supplementary digits. All four are integers, and respectively represent:
Dimensions, Material, Original shape of raw stock, and Accuracy.
Example:
Bevel Gear, Length = 1.75", Diameter = 3.5"
Figure 2. Bevel gears
[source: French and Vierck, Engineering drawing & Graphic Technology, pub.: McGraw-Hill]
The KK-3 code:
It was originally developed by the Japan Society for Promotion of Machining Industry. The domain is machining and grinding parts. The code is 21-digits, each of which is an integer.
[source: Chang, Wang, Wysk, CAM, pub.: Prentice-Hall]
[Original source: Japan Society for the Promotion of Machine Industry]
GT Applications: Design:
The common process of design involves a designer making many decisions that are non-critical to the ultimate functionality.
[Example: Gear sizes for idling gears in a gear-box]
The process of product manufacturing involves:
Much time is spent, in this process, in the last two steps. In this sequence of tasks, we introduce another one:
(2a) Perform coding and classification for the part.
Then, by comparing the code of the new part with those already existing, if the designer can discover a part very similar to the one we need, then:
1. He may use the existing part in the design. [What are the benefits ?]
2. He may be able to perform tasks (3) and (4) by minor modifications to the design and process plan of the existing part.
Applications: Machine Selection
This is a big issue in job-shops and small batch size factories.
Characteristics of such factories:
Problems:
1. A large percent of the total in-process time of a part (= average difference between the time when a raw stock enters the shop floor and when the final part leaves the factory) is setup time [ up to 85% of total machining time].
During much of the setup time, the machine tool is idle.
2. Many parts that are assigned to a machine may under-utilize its capabilities.
How does GT help ?
1. By scheduling parts on machine tools based on similarity, the machine capabilities are stressed rather than the usual scheduling heuristics (such as: first come first served (FCFS)).
2. By scheduling parts of the same "family" on the same (or similar) machine tool, much of the setup and fixturing time can be cut.
Applications: Factory layout and work-flow planning
A conventional job-shop has a layout where similar machine tools are stationed together. The advantage of this layout is optimized tooling and fixtures allocation.
Disadvantages:
A part requiring several operations on different machines must be moved between these regions according to its operations sequence.
Usually, in such a layout, there are specialized operators for each machine. In many cases, this leads to non-optimal manpower allocation.
For job-shops that handle a variety of parts which can be classified into a small number of part families, a cellular layout is more efficient in terms of:
In order to understand the basic concept of cellular manufacturing, we begin with an understanding of process plans. What is the information needed for processing the raw stock ?
- machining operations (and their sequence);
- tools needed for the operation;
- machine tool on which operation can be carried out;
- fixtures needed for the operations;
We shall concentrate our attention to the first three of these.
The plan for processing each component is coded into OP codes (operation codes). Each OP code represents a set of machining operations. Thus the complete plan of a part is represented by means of a sequence of OP codes.
Operation plan and OP Code sequence
[source: Chang, Wang, Wysk, CAM, pub.: Prentice-Hall]
Thus, for each part, we can represent the entire process plan in terms of a simple sequence of a few OP codes.
If we have a group of parts which have a very similar OP code sequence, then we can say that all parts in this group belong to the same family. Also, since each of these parts can be machined on the same set of machines, if we locate these machines close together on the shop floor, then we achieve a cellular layout.
problem: how do we decide which parts have "similar OP code sequence" ?
Solution: By a process called clustering.
Clustering Algorithms: We shall study a few popular clustering methods: Rank-Order clustering, Direct Clustering, and Similarity coefficients.
In the frist two methods, clustering is achieved by manipulation of matrices depicting the process plans of all the parts that have been produced in the shop.
Example Data
[source: Chang, Wang, Wysk, CAM, pub.: Prentice-Hall]
Rank-Order Clustering
[King's Algorithm, 1979]
Step 1. Calculate total weight of each column, Step 2. Arrange columns by ascending weight Step 3. Calculate total weight of each row, Step 4. If rows are in ascending order by weight, STOP. else Arrange rows by ascending weight, GOTO Step 1.
The following figures show how this algorithm works:
The Direct Clustering Algorithm
A problem with the rank-order clustering is that computation of weights can become problematic when the number of parts is large. For instance, if a shop has data for 2000 parts, then the weight factor for the rightmost column will be 2**2000, which is too large to compute directly !! Even if we use indirect representations, we need 2000 bits to represent a weight of each row. (WHY ?).
To avoid this problem, King and Nakornchai proposed the direct clustering algorithm, which is given as:
Step 1. Calculate weight of each row, Step 2. Sort rows in descending order Step 3. Calculate weight of each column, Step 4. Sort columns in ascending order Step 5. For i = 1 to n, move all columns j where Mij = 1, to the right while maintaining the order of the previous rows. Step 6. For j = m to 1, move all rows i, where Mij = 1, to the top, maintaining the order of the previous columns. Step 7. If current matrix = previous matrix, STOP; Else go to Step 5.
The figures below show how this algorithm works.
0. Data |
a112 |
a115 |
a120 |
a123 |
a131 |
a212 |
a230 |
a432 |
a451 |
a510 |
Sr |
Saw01 |
1 |
1 |
1 |
1 |
1 |
1 |
6 |
||||
Lathe01 |
1 |
1 |
|||||||||
Lathe02 |
1 |
1 |
1 |
1 |
1 |
5 |
|||||
Drill01 |
1 |
1 |
2 |
||||||||
Mill02 |
1 |
1 |
|||||||||
Mill05 |
1 |
1 |
1 |
3 |
|||||||
Grind05 |
1 |
1 |
|||||||||
Grind06 |
1 |
1 |
|||||||||
Sc |
3 |
2 |
2 |
2 |
2 |
1 |
1 |
2 |
2 |
3 |
1. Sort |
a212 |
a230 |
a115 |
a120 |
a123 |
a131 |
a432 |
a451 |
a112 |
a510 |
Sr |
Saw01 |
1 |
1 |
1 |
1 |
1 |
1 |
6 |
||||
Lathe02 |
1 |
1 |
1 |
1 |
1 |
5 |
|||||
Mill05 |
1 |
1 |
1 |
3 |
|||||||
Drill01 |
1 |
1 |
2 |
||||||||
Lathe01 |
1 |
1 |
|||||||||
Mill02 |
1 |
1 |
|||||||||
Grind05 |
1 |
1 |
|||||||||
Grind06 |
1 |
1 |
|||||||||
Sc |
1 |
1 |
2 |
2 |
2 |
2 |
2 |
2 |
3 |
3 |
2. Saw01 |
a212 |
a230 |
a115 |
a510 |
a120 |
a123 |
a131 |
a432 |
a451 |
a112 |
Saw01 |
1 |
1 |
1 |
1 |
1 |
1 |
||||
Lathe02 |
1 |
1 |
1 |
1 |
1 |
|||||
Mill05 |
1 |
1 |
1 |
|||||||
Drill01 |
1 |
1 |
||||||||
Lathe01 |
1 |
|||||||||
Mill02 |
1 |
|||||||||
Grind05 |
1 |
|||||||||
Grind06 |
1 |
3.All rows |
a115 |
a212 |
a230 |
a510 |
a123 |
a120 |
a131 |
a432 |
a451 |
a112 |
Saw01 |
1 |
1 |
1 |
1 |
1 |
1 |
||||
Lathe02 |
1 |
1 |
1 |
1 |
1 |
|||||
Mill05 |
1 |
1 |
1 |
|||||||
Drill01 |
1 |
1 |
||||||||
Lathe01 |
1 |
|||||||||
Mill02 |
1 |
|||||||||
Grind05 |
1 |
|||||||||
Grind06 |
1 |
4. a112 |
a115 |
a212 |
a230 |
a510 |
a123 |
a120 |
a131 |
a432 |
a451 |
a112 |
Saw01 |
1 |
1 |
1 |
1 |
1 |
1 |
||||
Lathe02 |
1 |
1 |
1 |
1 |
1 |
|||||
Grind05 |
1 |
|||||||||
Mill05 |
1 |
1 |
1 |
|||||||
Drill01 |
1 |
1 |
||||||||
Lathe01 |
1 |
|||||||||
Mill02 |
1 |
|||||||||
Grind06 |
1 |
5. All cols |
a115 |
a212 |
a230 |
a510 |
a123 |
a120 |
a131 |
a432 |
a451 |
a112 |
Saw01 |
1 |
1 |
1 |
1 |
1 |
1 |
||||
Lathe02 |
1 |
1 |
1 |
1 |
1 |
|||||
Grind05 |
1 |
|||||||||
Lathe01 |
1 |
|||||||||
Mill05 |
1 |
1 |
1 |
|||||||
Drill01 |
1 |
1 |
||||||||
Grind06 |
1 |
|||||||||
Mill02 |
1 |
Now we can form the part families in a manner similar to Rank Order Clustering.
Questions
1. What are the families ?
2. What are the cells ?
3. How do we use the part family information for layout planning?
Basically, the machine tools that are associated with a given family are put close to each other in the same physical area on the shop floor. This area then makes up one cell. For each family, there is usually one cell, or area, on the shop floor.
The Method of Similarity Coefficients
Why do we need the concept of similarity ?
Mainly because a quantitative measure of how ‘similar’ two objects (e.g. parts), or actors (e.g. machines) are, allows us to use algorithms to process information about them.
What is similarity ?
It depends on what you are studying. If you want to categorize parts, you want to develop a quantitative measure of how similar two parts are in shape, size, or other physical/chemical properties (such as hardness, surface finish, color etc.)
If you are studying manufacturing systems design, you may be interested to measure how similar two machines are. You could base this measure on type of shapes the machines can produce, size of parts they can handle etc. a good practical measure is to look at what kind of parts are being processed at each machine. This is the concept we shall use.
How do we assign a number value to similarity ?
Several methods can be used. Consider two machines, which process the following jobs:
Machine \ Part |
P1 |
P2 |
P3 |
P4 |
P5 |
P6 |
A |
1 |
1 |
||||
B |
1 |
1 |
One way to define similarity of Machines A and B would be to look at how many parts visit both the machines in relation to the total number of parts that go to either machine. In the case above, the is one part, P3, which visits both machines, out of three parts that visit either (P2, P3, P5).
So our measure will give a similarity = 1/3, or 0.333.
Note:
There are other, arguably equally good, measures of similarity. For example, one could define:
Similarity( A, B) = (no. of parts visiting A and B)/(no. of parts visiting A) = 1/2 = 0.5
Similarity( B, A) = (no. of parts visiting B and A)/(no. of parts visiting B) = 1/2 = 0.5
And then define common-similarity(A,B) = max( Similarity(A,B), Similarity(B,A)).
Or, if we are conservative, common-similarity(A,B) = min( Similarity(A,B), Similarity(B,A)).
How do we use similarity to apply GT ?
One way to use similarity in forming groups is by making a graph, called a dendogram. I will describe the process by using an example:
Machine \ Part |
P1 |
P2 |
P3 |
P4 |
P5 |
P6 |
A |
1 | 1 | ||||
B |
1 | 1 | ||||
C |
1 | 1 | ||||
D |
1 | 1 | 1 | |||
E |
1 | 1 | 1 |
For which we can easily find the similarity matrix:
M/c \ M/c |
A |
B |
C |
D |
E |
A |
1 | 0.33 | 0 | 0.67 | 0 |
B |
0.33 | 1 | 0 | 0.67 | 0 |
C |
0 | 0 | 1 | 0 | 0.67 |
D |
0.67 | 0.67 | 0 | 1 | 0.67 |
E |
0 | 0 | 0.67 | 0 | 1 |
If one is asked now to group machines together such that they are completely similar (i.e., similarity = 1), we can look at the table and see that we would get five groups: each group has a single machine in it !
But if we say that we are allowed some "fuzziness" in our vision, and machines that are 2/3 similar look as if they are same: then machines C and E, e.g., would ‘look’ the same to us.
Thus we may say that for a person with filter strength of 0.67, C and E belong to the same group.
So do Machines A and D (since their similarity = 0.67 also).
And of course, so are machines B and D.
Problem:
Thus, may we say that Since A, D are in the same 0.67-group, and B is in the same group as D, then all A, B, and D belong to the same group?
The answer is: it depends. You (the design engineer) have to decide what to do with such ambiguous data.
If you feel that Machine D is an expensive machine, but is used only for small periods by the parts that need it, you may decide to share this machine between groups.
In that case, you can define Similarity of machine B with Group (A, D) as the maximum of the similarity of B with A or D:
Similarity( B, (A, D)) = max( Similarity( B, A), Similarity( B, D)) = max( 1/3, 2/3) = 2/3.
Under this assumption, we can say that the 0.67-group contains machines A, B, D.
(Of course, C and E form another 0.67-group).
Looking at the similarity table, it is then clear that if we want to further merge the machines into groups, we need to have vision so "fuzzy", that we cannot distinguish machines with similarity of 0 !
This yields the following dendogram:
Of course, we might have decided, if machine D is cheap and heavily used, that it is easy to purchase multiple copies of D. If that is the case, we can afford to be more conservative in our definition of similarity of a machine with a group:
We can say that Similarity( X, Y, Z) = minimum of pair-wise similarities of (X,Y), (Y,Z), and (X,Y).
In this case, at a similarity level of 0.67, we are unable to group A, B, and D. so we make a copy of machine D, and get separate groups: (A,D) and (B,D).
Then, at a similarity level of 0.33, all of A, B and D start to look similar, by our new definition of similarity. This results in a new dendogram as follows:
Note, at "fuzzy" vision which can distinguish higher than 0.67 similarity, this has three groups: AD, BD, and CE. If vision is so fuzzy that that we cannot distinguish machines which are better than 0.33 similar, then we see two groups: ABD and CE. And finally, if our vision is so bad that we cannot distinguish between objects with 0 similarity, then we see only 1 group !
Postscript
If you look-up references on the use of similarity coefficients, you may discover many different formulas to define such coefficients. It is difficult to say which is better. In general, all measures of similarity are mappings from a complex, multi-dimensional domain (e.g. design description) to real numbers.
Once the machine families have been identified, we can isolate them to form cells within the manufacturing system. The advantages of reduced material handling through cells are easy to visualize.
How (and when) do cells help in efficient manpower allocation ?
In a small cell (4-5 machine tools or less), sometimes a single operator can run parts on all the machines. The first part entering the system is loaded on the machine, and while it is being machined, the next part is set up on the fixtures needed. When the first part is completed on the first machine, it is fixtured on the next machine tool, and while it machines, the operator can load and begin running the second part on the first machine. Thus the same operator can be operating more than one machines at the same time, utilizing the machining time (when he would be idle) to process other parts. Due to the physical closeness of the machine tools, very little time/resources are wasted in material handling or moving the part between machines. Also, since each part is sequentially moved along the machines in the cell, the average time in queue (waiting for the machine to become idle) is eliminated for a well planned cell schedule.