Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!elroy.jpl.nasa.gov!lll-winken!taco!news From: thomae@eos.ncsu.edu (DOUGLAS ALAN THOMAE) Newsgroups: comp.arch Subject: Re: Can we build computers that build Computers? Message-ID: <1991Jun18.144225.21906@ncsu.edu> Date: 18 Jun 91 14:42:25 GMT References: <1991Jun16.214929.26509@newserve.cc.binghamton.edu> <22157@brahms.udel.edu> <2705@m1.cs.man.ac.uk> Sender: news@ncsu.edu (USENET News System) Reply-To: thomae@csl.csl.ncsu.edu Organization: North Carolina State University Lines: 64 In article <2705@m1.cs.man.ac.uk>, mshute@cs.man.ac.uk (Malcolm Shute) writes: |>In article <22157@brahms.udel.edu> gdtltr@brahms.udel.edu (gdtltr@limbo.org (The Befuddled One)) writes: |>> It seems to me that the main problem along these lines is describing |>>the problem and the desired goal. |>This is the sort of problem which G.A. (genetic algorithms) are supposed |>to tackle. So, like you, I'd agree that computers do more and more to Not just genetic algorithms. GAs are an optimization technique that could be used for CAD tasks, including placement, partitioning, and logic synthesis. Other approaches can be used as well, both iterative improvement methods (like GAs) and constructive methods. Iterative improvement methods include simulated annealing, variations on the Kernighan and Lin algorithm and force directed methods. Examples of constructive methods include liner and nonlinear programming approachs, seeding and clustering. Constructive methods may be used by themselves or to generate initial solutions for iterative improvement methods, for example generating an initial population for GAs. Using constructive algorithms in this way can improve performance over randomly generated starting solutions in iterative improvement methods. |> |>Are these really 'designing' off their own bat, though? |>Of course not! What good would a machine be to mankind if it refused to |>do what the human operators commanded it to do... a machine, afterall, |>is built by humans to do the tiresome work *for* the humans. |>We will always want the machine (the computer which designs computers in |>this case) to act under the direction of human guidance. |> This is a pretty slippery point. I would agree that anything that CAD systems do today or are likely to do in the near future can't really be considered design in the same sense that a human does design, but I'm not sure that basing the decision on whether or not the computer does the design on its own initiative or not is a good criterion. After all, when the typical human designer works is the primary reason because he wants the product of his efforts for himself or is it because his boss asks him to do it for some reason? I would say that the difference between what CAD systems do today and what human designers do lies in the level of the specification. Humans can deal with fairly loose specifications, while even 'high level' synthesis systems have to be told about the design in relatively low level nuts and bolts terms. |>Returning to the thread at the top of this posting, though: |>If GA is to be used, the potential, new computer designs need to evolve |>in some sort of environment in which natural selection is allowed to work. |>This is already provided, of course... we all know that 'the market place' |>represents the ideal jungle in which to test out the survival of the fittest. |>The GA program therefore needs to be connected to a good behavioural simulator, |>and a good economics simulator, and left to run. (The problems with this, |>are how to connect the behavioural simulator to the economics one (what makes |>a good, marketable processor?); and the slow operation of GA). |> Building good models of the thing that you want to optimize, and coming up with appropriate cost functions is one of the problems that stands between the current state of the art and being able to build machines that can do design in the same sense that humans can (assuming that this is possible). Problems with the large number of CPU cycles that would be required might be attacked by trying to find simpler models that still contain the essential elements of the system you're trying to model. For example, it should be possible to model the economic factors that influence the success or failure of an architecture without modeling the whole economy (taking the most extreme interpretation of the statement above).