[ Up: AI in Design ]
Critique: Understanding and Automating Algorithm Design
Kant * This article, focusing on a difficult human activity and exploring the different facets of it in a way that would lend itself well to machine automation, was a refreshing change from system descriptions. The difficultly of describing how people design algorithms is apparent in the way Kant presents some of the designers' attempts to solve the convex hull problem. The steps the two main subjects took are interleaved to facilitate making correlations between them. While this is more a more compact way to draw correlations, it makes the whole process each designer followed difficult to see. It seems describing what each did in whole and then referring back to make correlations would have been much more clear, even if longer to read. When describing control issues of the human designers working on the convex hull problem Kant states that "control is not a special source of intelligence. It comes out of responding to the data and out of the problems and opportunities arising during execution." I find this a very curious statement. Elsewhere she mentions how a person goes about algorithm design seems correlated to their experience and knowledge of both algorithms and the domain. Many other systems treat control knowledge as a primary source of knowledge. Even Kant's description of responding to data and current situations sounds like forward chaining rules. It was interesting to see recognition addressed directly in this context. It touched upon many of the issues we've seen in systems that rely on case-based reasoning and forward chaining. One example of this can be found in a sample rule given. The rule contains domain specific knowledge even though it is in a set of rules focused on general algorithm operator selection. There usually seems to be an effort to draw a line between domain specific knowledge, its use (intelligence) and that used for the general problem solving. While the approaches we've seen take both general (weak) and specific (strong) approaches, this issue is always hot. It seems as though there is no one answer but rather a choice based upon what needs to be accomplished and with what resources. I found Kant's observation that designers typically were less successful when they tried to mix parts of different approaches together than when they reused knowledge they had learned during an earlier design attempt very interesting. Many systems try to and succeed at reusing parts of various designs, even flawed designs. Was this due to the systematic approach taken by each system to solve each problem, the representation of the domain, the base of cases, parts to build with, etc.? Are these things the human designers lacked? The idea that there is valuable knowledge to be learned from failure is not new but in the context of design systems, it seems it hasn't been taken advantage of nearly enough.
*
Elaine Kant,
Understanding and Automating Algorithm Design.
IEEE Transactions on Software Engineering,
Vol. SE-11, No. 11, November 1985, pp. 1361-1374.
|
|||||
|