Brought to you by EarthWeb
IT Library Logo

Click Here!
Click Here!

Search the site:
 
EXPERT SEARCH -----
Programming Languages
Databases
Security
Web Services
Network Services
Middleware
Components
Operating Systems
User Interfaces
Groupware & Collaboration
Content Management
Productivity Applications
Hardware
Fun & Games

EarthWeb Direct EarthWeb Direct Fatbrain Auctions Support Source Answers

EarthWeb sites
Crossnodes
Datamation
Developer.com
DICE
EarthWeb.com
EarthWeb Direct
ERP Hub
Gamelan
GoCertify.com
HTMLGoodies
Intranet Journal
IT Knowledge
IT Library
JavaGoodies
JARS
JavaScripts.com
open source IT
RoadCoders
Y2K Info

Previous Table of Contents Next


Table 1 illustrates the multifunction part problem. In this table, each part has a cost, consumes a certain amount of power, and implements one or more functions. Suppose that parts must be selected to implement the functions CPU, Timer, Address-decoder, and Interrupt-controller, and that the designer wants to minimize cost and power consumption. In this case, the part 80186 is preferred since it implements all the desired functions, costs less ($20), and consumes less power (3.0 W) than any other selection of parts that implement the desired functions. For example, the set {8086, 8259A, PAL18P8L, 8254A5}, which costs $20.95 and consumes 3.975 W.

This example also illustrates the support-function problem. The part 8086 that implements the CPU function cannot be selected by itself since it requires the support function Timer, among others, to operate correctly. Thus, when the 8086 is selected a number of other parts must be selected, as well, which tends to increase the cost and power consumed by the final design.

The availability of computer networks has resulted in a number of systems for solving design problems in a distributed or collaborative way. We divide these systems into two categories:

  • Shared-memory systems use a shared, global representation of the design. Access to the design is strictly controlled, with design agents using their knowledge to modify the design when given access.
  • Non-shared memory systems do not use a shared, global representation of the design, but sequentially pass portions of the design from agent to agent, with each agent modifying it and passing it to the next agent.

Shared-memory systems offer varying levels of automation, often depending on whether human agents (i.e., users) participate in the design. They also differ in the degree of support for notifying other agents of design conflicts such as constraint violations, and in the amount of support provided for resolving such conflicts. Those shared-memory systems that are the least automated and provide the least computational support tend to give designers access to design information through electronic notebooks that contain records of previous and current designs.

By far, the most common shared-memory system is based on the blackboard paradigm in which the evolving design is stored in a shared, global blackboard. Access to the blackboard is controlled by an agenda that allows agents to opportunistically modify, extend, or critique a design, as their particular knowledge is relevant to the evolving design.

Figure 1 shows an example shared-memory/blackboard system. In this example, there are three partial designs (P-D1, P-D2, P-D3) and four agents (A1, A2, A3, A4). Each agent can act on any of the partial designs at a given time by evaluating the design, adding to it, extending it, or creating a new design. If a design is generated that all agents find acceptable, then that design is stored as a complete design. After a certain amount of time, the design process stops and one of the complete designs is selected as the final product.


FIGURE 1 Shared-memory system.

Inasmuch as constraints often drive unfolding designs, work has focused on developing constraint-based languages that facilitate access to a shared design by allowing designers to define their perspectives in terms of design constraints and design attributes. Galileo is such a constraint-based language (Bowen and Bahler, 1992). Constraint-based perspectives define communication links among design-team members who are interested in the same set of attributes. Thus, when one design-team member changes the value of an attribute, all team members who expressed an interest in that that attribute are notified of the change. If a conflict results, the interested team members are notified so that they can resolve the conflict.

Nonshared memory systems have no shared memory that agents access. Rather, complete designs or portions of a complete design are passed from agent to agent, using some agreed-upon communication protocol. One example of this class of system is the ParMan parametric-design assistant (Kuokka and Livezey, 1994), in which users define constraints over shared attributes and the system manages the notification and resolution of conflicts among members of the design team. ParMan also includes facilities for registering and identifying agents with specific capabilities using a shared communication language. That is, unlike the Galileo systems that have a shared language for the actual design, ParMan uses a shared language only for communication.

Figure 2 shows an example nonshared memory system with one partial or complete design (P-D) and four agents (A1, A2, A3, A4). In this example, A1 receives the design, evaluates it, extends it, or adds to it, then passes it to A2. A2 does the same and passes it to A3, and so on, until all agents find the design acceptable.


FIGURE 2 Nonshared memory system.

3. TECHNIQUES I: PROBLEM DEFINITION

Broadly speaking, the configuration-design problem is defined as that of selecting parts to obtain some specified functionality subject to: (1) constraints that restrict the allowable combinations and topologies of the parts, and (2) optimality criteria. A solution is a set of parts that exhibit the required functions, meet the constraints, and is optimal in some sense, even though that might not necessarily be globally optimal. In this section, we define the building blocks of configuration design, including what we mean by functions exhibited by parts, design attributes, design constraints, and design specifications.


Previous Table of Contents Next

footer nav
Use of this site is subject certain Terms & Conditions.
Copyright (c) 1996-1999 EarthWeb, Inc.. All rights reserved. Reproduction in whole or in part in any form or medium without express written permission of EarthWeb is prohibited. Please read our privacy policy for details.