DE69327505T2 - Konfigurationsverfahren und -gerät einer Bauelementplazierungsmaschine - Google Patents

Konfigurationsverfahren und -gerät einer Bauelementplazierungsmaschine

Info

Publication number
DE69327505T2
DE69327505T2 DE69327505T DE69327505T DE69327505T2 DE 69327505 T2 DE69327505 T2 DE 69327505T2 DE 69327505 T DE69327505 T DE 69327505T DE 69327505 T DE69327505 T DE 69327505T DE 69327505 T2 DE69327505 T2 DE 69327505T2
Authority
DE
Germany
Prior art keywords
gripper
components
chromosome
pipette
feeders
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69327505T
Other languages
English (en)
Other versions
DE69327505D1 (de
Inventor
Larry Eshelman
David Schaffer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Assembleon BV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of DE69327505D1 publication Critical patent/DE69327505D1/de
Application granted granted Critical
Publication of DE69327505T2 publication Critical patent/DE69327505T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • G06Q10/043Optimisation of two dimensional placement, e.g. cutting of clothes or wood
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K13/00Apparatus or processes specially adapted for manufacturing or adjusting assemblages of electric components
    • H05K13/08Monitoring manufacture of assemblages
    • H05K13/085Production planning, e.g. of allocation of products to machines, of mounting sequences at machine or facility level

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Operations Research (AREA)
  • General Physics & Mathematics (AREA)
  • Genetics & Genomics (AREA)
  • Manufacturing & Machinery (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physiology (AREA)
  • Development Economics (AREA)
  • Computing Systems (AREA)
  • Game Theory and Decision Science (AREA)
  • Molecular Biology (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Supply And Installment Of Electrical Components (AREA)
  • Automatic Assembly (AREA)

Description

    Konfigurationsverfahren und -gerät einer Bauelementplazierungsmaschine
  • Die vorliegende Erfindung bezieht sich auf ein Verfahren und ein Gerät zur Konfigurierung einer Bauelementplazierungsmaschine zur Verbesserung der Leistungsfähigkeit.
  • HINTERGRUND DER ERFINDUNG
  • Bekannte Maschinen zur Plazierung elektronischer Bauelemente werden typischerweise benutzt, um Bauelemente auf eine Leiterplatte (Printed Circuit Board, PCB) zu plazieren, um sie anschließend weiter zu bearbeiten, zum Beispiel auf die Leiterbahnen zu löten. Die Erfindung ist nicht auf die Leiterplatten-Technologie beschränkt.
  • Die typische Maschine umfaßt eine Plattform zur Unterstützung der Leiterplatte, neben der eine Vielzahl von Bauelement-Feedern vorgesehen ist. Die Bauelemente können auf Gurtrollen, in Stangenmagazinen oder mit Schüttgut-Feedern zugeführt werden. Ein Kopf, der in der X-Y-Ebene parallel zur Leiterplatte und entlang der Z-Achse quer zur Leiterplatte bewegbar ist, besitzt an seiner Unterseite einen oder mehrere Bauteilhalter, die Pipetten enthalten, wobei die Haltekraft durch einen computergesteuerten Unterdruck erzeugt wird. An einer aktiven Pipette ist ein Greifer angebracht. Greifer sind typischerweise nur in der Lage, Bauelemente mit bestimmten Abmessungen aufzunehmen.
  • Der Fertigungsdurchsatz wird verbessert, indem die Zeit zum Beladen oder Bestücken der Leiterplatte verkürzt wird. Bei einem einzigen Kopf mit einer einzigen Pipette reduziert sich das Problem auf die Anordnung der Bauelemente rund um die Plattform, um die Strecke zu minimieren, die der Kopf zurücklegen muß, um ein Bauelement von einem Feeder aufzunehmen und an seinem korrekten Ort abzusetzen. Obwohl immer nur ein Bauelement auf einmal aufgenommen und plaziert wird, kann es schwierig sein, eine optimale oder nahezu optimale Bauelement-Anordnung - auch als Konfigurierung der Maschine bezeichnet - zu schaffen.
  • Neuere marktgängige Maschinen arbeiten mit mehreren Pipetten, so daß bei jeder Bewegung des Bestückungskopfes mehrere Bauelemente aufgenommen und plaziert werden können. Das Problem umfaßt dann die Zuordnung der Bauelemente zu den geeig neten Feedern und die Zuordnung der Greifer zu den Pipetten, sowie ein oder mehrere Kopf-Strecken-Probleme zur Minimierung des erforderlichen Zeit für die Bestückung der Leiterplatte. Wir bezeichnen die Zuordnung von Bauelementen zu Feedern und von Greifern zu Pipetten als ein "Layout" und die Spezifikation eines Steuerungsprogramms für die Maschine als "Chargenkarte". Die kombinatorischen Schwierigkeiten werden besonders offensichtlich, wenn man bedenkt, daß eine moderne Maschine 28 Pipetten, 112 austauschbare Feederbänke (englisch: bins) oder Bauelement-Feeder und eine Vielzahl von Greifern haben kann, die in der Lage sind, Bauelemente mit einer Größe von 8 bis 44 mm zu verarbeiten. Außerdem müssen weitere Einschränkungen berücksichtigt werden, zum Beispiel die Tatsache, daß große Bauelemente einen zusätzlichen Ausrichtungsschritt erfordern können und daß große Bauelemente in einem Feeder die benachbarten Feeder verdecken können, so daß diese dann nicht benutzt werden können, usw.
  • Manuelle Lösungen auf empirisch-praktischer Basis (Versuch und Irrtum) sind zeitaufwendig, und es ist schwierig zu beurteilen, ob die gefundene Konfiguration optimal ist. Für einige Maschinen steht eine begrenzte Computer-Unterstützung zur Verfügung, jedoch wurde noch kein gut geeigneter computergesteuerter Algorithmus entwickelt, der in der Lage ist, eine nahezu optimale Konfiguration für dieses Problem zu liefern.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Erfindung hat zur Aufgabe, ein Verfahren zur Optimierung der Konfiguration einer computer-gesteuerten Bauelement-Greif- und Plaziermaschine zur Plazierung von Bauelementen auf einer Leiterplatte zu schaffen, wie in Anspruch 1 beschrieben.
  • Gemäß einem der Aspekte unserer Erfindung sind sogenannte genetische Algorithmen in der Lage, nahezu optimale Lösungen für das Problem der Maschinenkonfiguration zu liefern.
  • Gemäß einem weiteren Aspekt unserer Erfindung lassen sich zusätzliche Verbesserungen erzielen, indem spezielle Techniken angewendet werden, die normalerweise nicht in Verbindung mit solchen Algorithmen verwendet werden. Insbesondere können genetische Algorithmen Inzestverpaarungen unter elterlichen Chromosomensträngen eliminieren, eine besonders strenge Form von Crossing-over (Genaustausch zwischen Chromosomenpaaren) auf Paare von elterlichen Chromonsomensträngen anwenden, um neue Nachkömmlinge zu schaffen, das Überleben des Tüchtigsten nutzen, wobei sowohl die Chromosomenstränge der Eltern als auch der Kinder einbezogen werden, und Populations mutation nur dann anwenden, wenn die erzeugten Lösungen nach einer begrenzten Anzahl von Iterationen konvergieren.
  • Die Erfindung bezieht sich auch auf ein Gerät zur Optimierung der Konfiguration einer computer-gesteuerten Bauelement-Greif- und Plaziermaschine, wie in Anspruch 7 beschrieben.
  • KURZE BESCHREIBUNG DER FIGUREN
  • Diese und weitere Aspekte der Erfindung werden im folgenden unter Bezugnahme auf die bevorzugten Ausführungsbeispiele beschrieben, die in den beigefügten Zeichnungen dargestellt sind. Es zeigen:
  • Fig. 1A eine perspektivische Ansicht und Fig. 1B eine schematische Ansicht der Oberseite einer Bauelementplazierungsmaschine des Modells MCM;
  • Fig. 2 ein Datenflußdiagramm eines Systems zur Ausführung des erfindungsgemäßen Verfahrens;
  • Fig. 3 eine schematische Darstellung einer Form des Chromosomenstrangs, der für das erfindungsgemäße Verfahren von Nutzen ist;
  • Fig. 4A und Fig. 4B einen vereinfachten und einen detaillierteren Ablaufplan zur Veranschaulichung der Funktionsweise des modifizierten genetischen Algorithmus CHC, der in der Erfindung benutzt wird;
  • Fig. 5 Ablaufpläne, die die Funktionsweise eines standardmäßigen genetischen Algorithmus mit der des modifizierten Algorithmus vergleichen, wie er in der Erfindung benutzt wird;
  • Fig. 6 eine schematische Ansicht der Oberseite einer FCM-Maschine mit sechzehn Pipettenmodulen;
  • Fig. 7 eine perspektivische Ansicht von einem Pipettenmodul einer FCM- Maschine, in dem das erfindungsgemäße Verfahren angewendet werden kann;
  • Fig. 8-10 einige Konzepte, die in den Algorithmen der FCM-Maschine angewendet werden;
  • Fig. 11 ein Blockdiagramm der Eingangs-/Ausgangsdateien, die in dem FCM-Programm verwendet werden.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
  • Die Erfindung läßt sich auf jede Plazierungsmaschine anwenden, die mit einer Vielzahl von bauelement-greifenden Vorrichtungen an einem oder mehreren Köpfen ausgestattet ist, welche in drei Richtungen bewegt werden können und sequentiell - jedoch üblicherweise simultan - Bauelemente aufnehmen, die von einer Vielzahl von Feedern zugeführt werden, und sie unter Computer-Steuerung auf einer oder mehreren Leiterplatten absetzen. Im allgemeinen wird das erfindungsgemäße Verfahren - das sich als schneller oder einer manuellen Lösung überlegen erwiesen hat - bei einer Klasse von Maschinen benötigt, die über mehr als drei bauelement-greifende Vorrichtungen verfügen. Die Erfindung wird für zwei handelsübliche Plazierungsmaschinen beschrieben, jedoch läßt sich die Erfindung allgemein auf jede Maschine der definierten Klasse anwenden, und der Fachkundige wird hierzu in der Lage sein. Die beiden Maschinen, die ausführlich beschrieben werden, sind die modularen Bauelement-Plazierungsmaschinen von Philips mit den Modellbezeichnungen MCM-VII (Modular Component Mounter) und FCM (Fast Component Mounter).
  • Bei der modularen Bauelement-Plazierungsmaschine MCM-VII von Philips handelt es sich um eine Maschine für die Oberflächenmontage von elektronischen Bauelementen. Der MCM-VII hat 28 Pipetten, die auf einem beweglichen Kopf montiert sind und sich alle als eine Einheit bewegen. Sie können gleichzeitig bis zu 28 Bauelemente von einer Reihe von Feedern aufnehmen und die Bauelemente anschließend auf Leiterplatten plazieren. In der Mitte der Maschine befindet sich eine Fördereinrichtung, die die Leiterplatten in die richtige Position bringt. Auf beiden Seiten der Fördereinrichtung sind mehrere Feederpositionen (englisch: slots) oder Feeder angeordnet, in die Bauelementmagazine (Gurte) eingesetzt werden können. Auf jeder Seite können sich maximal 56 austauschbare Feederbänke (28 * 2) befinden. "Maximal", weil die Breite jedes Feeders (für unterschiedlich große Bauelemente) variiert, der Gesamtabstand der Feederpositionen jedoch festliegt. Die maximale Anzahl der austauschbaren Feederbänke kann nur benutzt werden, wenn alle Bauelemente klein sind. Bauelementmagazine werden in einer kleinen Anzahl von Standardbreiten geliefert: 8, 12, 16, 24, 36 und 44 Millimeter. Es gibt eine Vielzahl von verschiedenen Bauelementen, die nach Verpackungstyp-Familien unterteilt sind und nach der Art des passenden Greifers gruppiert werden.
  • Die 28 Pipetten sind in gleichmäßigem Abstand in einer einzigen Reihe entlang der X-Achse des Kopfes angeordnet. Sie können sich nur in Z-Richtung bewegen. Der Kopf kann sowohl in X- als auch in Y-Richtung bewegt werden. Die Plazierung der Bau elemente kann entweder sequentiell oder simultan erfolgen. Bei der simultanen Plazierung, wenn mehrere Greifer in einem einzigen Kopf montiert sind, muß sich mehr als eine Leiterplatte auf dem Leiterplattenträger befinden oder mehr als eine Schaltung auf einer bestimmten Leiterplatte untergebracht sein. Wenn zum Beispiel zwei Leiterplatten vorhanden sind, besteht die Möglichkeit zur paarweisen simultanen Plazierung der Bauelemente.
  • Die Greifer zum Aufnehmen von Bauelementen mit kleineren Abmessungen (8 und 12 mm) richten die Bauelemente gleichzeitig aus. Größere Bauelemente müssen ausgerichtet werden. Auf jeder Seite der Fördereinrichtung befinden sich 14 Richtnester für die Ausrichtung. Diese Nester haben einen solchen Abstand voneinander, daß entweder alle großen Bauelemente, die durch die geradzahligen Pipetten aufgenommen wurden, gleichzeitig ausgerichtet werden können, oder alle großen Bauelemente, die durch die ungeradzahligen Pipetten aufgenommen wurden.
  • Fig. 1A zeigt eine schematische perspektivische Darstellung und Fig. 1B eine schematische Ansicht von der Oberseite der MCM-Maschine 10, die eine Maschinenbasis 11 umfaßt, um die Mitte der Leiterplatten-Fördereinrichtung 12 mit zwei Leiterplatten 9 wie abgebildet zu unterstützen. Der Kopf ist bei 13 dargestellt, mit den Pipetten 14 (der Übersichtlichkeit halber sind nur 12 abgebildet), die von dem Kopf nach unten weisen. Einige der Pipetten 14 sind mit Greifern 15 von unterschiedlicher Größe abgebildet. Die Computer-Steuerung und die Unterdruck-Vorrichtung sind nicht abgebildet. Die austauschbaren Feederbänke 18 sind schematisch dargestellt und an den gegenüberliegenden Seiten der Fördereinrichtung 12 angeordnet (der Übersichtlichkeit halber sind nur 6 dargestellt). An mehreren Orten sind Richtnester 19 zu sehen. Die Richtungen X, Y und Z sind in der Ecke der Figur mit Pfeilen angegeben.
  • Das Konfigurationsproblem für eine Klasse von Maschinen, zu der auch die MCM-Maschine gehört, kann folgendermaßen kurz beschrieben werden:
  • Bei einer oder mehreren Leiterplatten mit einer entsprechenden Bauelementliste (die die Breite, den Greifertyp und die XY-Koordinaten für jedes Bauelement spezifiziert) besteht die Aufgabe darin, die Bauelemente austauschbaren Feederbänken zuzuordnen und die Greifer Pipetten zuzuordnen und zu spezifizieren, welche Bauelemente zusammen aufgenommen und plaziert werden können, damit alle Bauelemente in kürzester Zeit auf den Leiterplatten plaziert werden können. Diese Zeit hängt hauptsächlich von drei Faktoren ab: davon, wie oft der Kopf (gleichzeitig) Bauelemente aufnehmen muß, wie oft der Kopf die Richtnester aussuchen muß, und wie oft sich der Kopf bewegen muß, um die Bauelemente zu plazieren. Wenn eine einzige Leiterplatte vorhanden ist, entspricht der letztgenannte Faktor der Gesamtzahl der Bauelemente; sind jedoch mehrere Leiterplatten vorhanden, kann dieser Faktor durch simultane Bestückung reduziert werden.
  • Eine Lösung für das Konfigurationsproblem ist die sogenannte Chargenkarte (Bestückungsprogramm). Eine Charge ist ein Greif-und-Plazier-Zyklus, bei dem die jeweiligen Bauelemente genannt werden. Eine Chargenkarte ist demzufolge eine Liste der spezifischen Chargen, mit denen die Leiterplatte vollständig bestückt wird. Um eine Chargenkarte zu erstellen, müssen den Pipetten die Greifertypen zugeordnet werden und den austauschbaren Feederbänken Bauelemente, und alle Bauelemente müssen in Chargen gruppiert werden.
  • Es müssen verschiedene Bedingungen erfüllt werden, damit eine Chargenkarte gültig ist. Erstens wird die Zuordnung eines großen Bauelementes zu einer austauschbaren Feederbank verhindern, daß benachbarte austauschbare Feederbänke benutzt werden - dieser Effekt wird als "shadowing" (Abschattung) bezeichnet. Zweitens muß der richtige Greifertyp benutzt werden, um ein Bauelement aufzunehmen - es können also Pipetten benutzt werden, um Bauelemente nur von bestimmten austauschbaren Feederbänken aufzunehmen. Schließlich können nicht alle Pipetten jede mögliche Position auf der Leiterplatte erreichen, so daß die Reichweite berücksichtigt werden muß, wenn festgelegt wird, welche Pipetten für die Plazierung bestimmter Bauelemente benutzt werden.
  • Die Erfindung bezieht sich auf ein Verfahren zur Erstellung von nahezu optimalen Chargenkarten für die Plazierungsmaschine bei einer gegebenen Liste von zu plazierenden Bauelementen. Das Verfahren wird in Computerprogrammen verkörpert. Eine Bauelementliste spezifiziert für jedes zu plazierende Bauelement: a) eine eindeutige Bauelementnummer, b) einen Bauelementtyp, c) einen Greifertyp, und d) seine Position (x- und y-Koordinaten in bezug auf die Maschine) und die Orientierung für die Plazierung.
  • Die Erfindung umfaßt drei wesentliche Punkte: HLG: einen heuristischen Layout-Generator (Chargenkarte); CHC: einen adaptiven Suchalgorithmus zur Suche der Parameter, die den HLG steuern; und einen heuristischen Vorprozessor zur Bestimmung der vom CHC durchsuchten Parameterbereiche. Der CHC erzeugt Versuchslösungen in Form von Parameterwerten, d. h. Versuchsparametersätzen, und der HLG interpretiert oder benutzt diese Versuchslösungen (für einen gegebenen Satz von Bauelementen und Plazierungskoordinaten) zur Erzeugung von Chargenkarten, wobei er dem CHC ein Maß für die Verdienste bzw. die Leistung jeder Chargenkarte zurückgeschickt (eine Angabe der geschätzten Zeitdauer, die die Ausführung der Lösung in Anspruch nehmen würde).
  • Der heuristische Chargenkarten-Generator (HLG) löst Konfigurationsprobleme, deren Verhalten durch die Veränderung einer Reihe von Eingangsparametern geändert werden kann. Der HLG geht auf hierarchische Weise vor, um eine Chargenkarte zu erzeugen. Das Verfahren ordnet zuerst den Pipetten Greifer zu und bestimmt, welche austauschbaren Feederbänke zu welchen Greifern gehören. Dann weist es den austauschbaren Feederbänken Bauelemente zu und bestimmt, die wie Bauelemente in Chargen gruppiert werden.
  • Während der Greifer-Zuordnungsphase wählt der HLG zuerst einen Greifertyp, indem er alle Greifertypen durchläuft und jedem Greifertyp ein Maß für die Erwünschtheit zuweist, wobei der Greifer mit der größten Erwünschtheit gewählt wird. Mit "Erwünschtheit" wird eine Zahl gemeint, die die Vorteile des Greifers in Bezug auf die ins Auge gefaßten Feederpositionen darstellt. Anschließend werden die Pipetten durchlaufen, wobei jeder Pipette eine Erwünschtheit für den gewählten Greifertyp zugeordnet wird und der Greifertyp der Pipette mit der höchsten Erwünschtheit zugeordnet wird. Danach werden der Pipette eine oder mehrere der vier entsprechenden austauschbaren Feederbänke zugewiesen.
  • Während der Bauelement-Zuordnungsphase bestimmt HLG zuerst für jeden Greifertyp die Anzahl der Gurte (Bauelementmagazine) für jeden seiner Bauelementtypen, so daß die größte Anzahl von Bauelementen in einem Gurt auf ein Minimum beschränkt bleibt. Anschließend werden die Gurte den austauschbaren Feederbänken zugeordnet, wobei sichergestellt wird, daß die Bauelementkoordinaten erreichbar sind und mit dem Ziel, die Anzahl der Chargen zu minimieren und die Anzahl der Mehrfachplazierung von Bauelementen zu maximieren.
  • Der Parameter-Suchalgorithmus darf sich nicht leicht durch lokale Minima gefangennehmen lassen und muß außerdem in der Lage sein, die Suche auf Regionen des Suchraums zu begrenzen, die wahrscheinlich plausible Lösungen enthalten. Genetische Algorithmen (GAs) (nachstehend erläutert) weisen beide Eigenschaften auf. In dem erfindungsgemäßen Konfigurationsalgorithmus wird eine Variante des GA, nämlich der CHC, als Parameter-Suchalgorithmus benutzt.
  • Der heuristische Vorprozessor untersucht die Bauelementliste und bestimmt sinnvolle Bereiche für einige der Parameter.
  • Die erfindungsgemäße Vorgehensweise bei einem Problem besteht aus den folgenden Schritten:
  • 1. Erstellen einer maschinenlesbaren Datei mit der Bauelementliste.
  • 2. Ausführen des Vorprozessor-Programms, welches eine maschinenlesbare Datei erstellt, die das Format des HLG-Eingangsparametersatzes bestimmt.
  • 3. Ausführen des Problemlösers, der CHC und HLG umfaßt, um Chargenkarten mit kurzen Ausführungszeiten zu finden. Der CHC behandelt in einer Simulation der evolutionären Suche nach Hochleistungssätzen die Parametersätze als Chromosomen. Der HLG bewertet die "Eignung" (fitness) jedes Satzes.
  • Die Funktionsweise von des CHC wird ausführlich in einer Abhandlung von einem der Erfinder (Eshelman) in Foundations of Genetic Algorithms, herausgegeben durch Gregory Rawlins und veröffentlicht durch Morgan Kaufmann, San Mateo, CA (1991), beschrieben. Die Abhandlung hat den Titel "The CHC Adaptive Search Algorithm: How to Have Safe Search When Engaging in Nontraditional Genetic Recombination".
  • Ein genetischer Algorithmus (GA) ist ein universelles Suchverfahren auf der Basis von Mechanismen, die von der Populationsgenetik abgeleitet wurden. Der GA enthält eine Reihe von Versuchslösungen, die als Population bezeichnet werden. Er arbeitet in Zyklen, sogenannten Generationen, die aufeinanderfolgende Populationen durch Selektion nach dem Prinzip "Überleben des Tüchtigsten" gefolgt von genetischer Rekombination hervorbringen. Versuchslösungen werden als Strings dargestellt, die als Chromosomen bezeichnet werden und üblicherweise mit einem binären Zeichensatz codiert sind. Die dem GA zugrundeliegende Theorie garantiert nicht das Erreichen eines globalen Optimums, sondern nur, daß die während der Suche gewonnenen Informationen nahezu optimal genutzt werden.
  • Obwohl der GA als Klasse auf das Konfigurationsproblem angewendet werden kann, läßt sich seine Fähigkeit zum Herbeiführen einer hochwertigen Lösung durch Hinzufügen bestimmter Variationen wesentlich verbessern. Dies läßt sich anhand der nachfolgenden ausführlicheren Beschreibung besser nachvollziehen.
  • Ein traditioneller GA ist nachstehend in Pseudocode dargestellt:
  • Prozedur GA
  • begin
  • t = 0;
  • initialisiere P(t);
  • evaluiere Strukturen in P(t);
  • while Beendigungsbedingung nicht erfüllt, do
  • begin
  • t = t+l;
  • wähle_m C(t) aus P(t-1);
  • rekombiniere Strukturen in C(t), um C'(t) zu bilden;
  • evaluiere Strukturen in C'(t);
  • wähle_r P(t) aus C'(t) und P(t-1);
  • end
  • end.
  • Unter einem "traditionellen GA" ist ein GA zu verstehen, für den folgendes angenommen werden kann: (1) Die Initialisierung der Population P(0) (von fester Größe M) erfolgt zufällig. (2) Die Selektion zur Verpaarung (wähle_m) wird auf die Auswahl der Strukturen mit höherer Leistungsfähigkeit gelenkt. (3) Die Selektion für den Ersatz (wähle_r) ist gleichförmig (ungelenkt), wobei typischerweise die gesamte alte Population P(t-1) durch die von P(t-1) hervorgebrachten Kinder C(t) ersetzt wird. (4) Der Rekombinations- Operator ist entweder 1- oder 2-Punkt-Crossing-over. (5) Eine geringe Mutationsrate wird in der Rekombinationsphase benutzt, um die Populationsvielfalt zu erhalten.
  • Der CHC unterscheidet sich von einem traditionellen GA in den Punkten (2) bis (5). (2) Er wird eher durch Ersatz-Selektion als durch Paarungs-Selektion vorangetrieben: Die Bevorzugung von leistungsfähigeren Strukturen tritt eher bei der Ersatz-Selektion als bei der Paarungs-Selektions auf. (3) Während der Paarungs-Selektion wird eine neue Lenkung gegen das Rekombinieren von Individuen eingeführt, die ähnlich sind. (4) Der durch CHC benutzte Rekombinations-Operator ist im Gegensatz zum 1- oder 2-Punkt- Crossing-over eine hochgradig disruptive Form des Crossing-over. (5) Die Mutation wird nicht in der Rekombinationsphase durchgeführt. Statt dessen wird die Vielfalt durch partielle Populations-Zufallsstreuung erneut eingeführt, sobald eine Konvergenz erkannt wird.
  • (2) In Hinblick auf die Elite-Selektion ersetzt der CHC die "Reproduktion mit Hervorhebung" (reproduction with emphasis) durch "Überleben des Tüchtigsten". Genauer gesagt, wird während der Selektion für die Reproduktion anstelle der Lenkung der Selektion von Kandidaten C(t) für die Reproduktion in Richtung der leistungsfähigeren Mitglieder der Elternpopulation P(t-1) jedes Mitglied von P(t-1) auf C(t) kopiert und zufallsmäßig zur Reproduktion verpaart. Mit anderen Worten: C(t) ist identisch mit P(t-1) bis auf die Tatsache, daß die Reihenfolge der Strukturen verändert wurde. Während der Überlebens-Selektion müssen anstelle des Ersetzens der alten Elternpopulation P(t-1) durch die Kinderpopulation C(t) zur Bildung von P(t) die neu geschaffenen Kinder mit den Mitglie dern der Elternpopulation P(t-1) um das Überleben wetteifern - d. h. der Konkurrenzkampf erfolgt generationsübergreifend. Insbesondere werden die Mitglieder von P(t-1) und C'(t) vereinigt und nach Tüchtigkeit geordnet, und P(t) wird erzeugt, indem die besten M Mitglieder der vereinten Population selektiert werden, wobei M die Populationsgröße ist. In Fällen, wo ein Mitglied von P(t-1) und ein Mitglied von C'(t) über die gleiche Tüchtigkeit verfügen, hat das Mitglied von P(t-1) den höheren Rang. Wir bezeichnen diese Prozedur des Beibehaltens der höchstrangigen Mitglieder der vereinten Eltern- und Kindernpopulationen als Populations-Elite-Selektion, da sie garantiert, daß die bisher besten M Individuen immer überleben werden.
  • (3) In Hinblick auf die Vermeidung von Inzest ist die exponentielle Zunahme von Beispielen guter Schemata von wenig Wert, wenn sie zu einer frühzeitigen Konvergenz führt. Daher wird ein Crossing-over der Hälfte der abweichenden Bits zwischen den Eltern vorgezogen, um so die Gefahr einer vorzeitigen Konvergenz zu verringern. Selbst wenn sich bei jeder Generation der jüngsten Abkömmling mit einem seiner ursprünglichen Vorfahren verpaart (jedes Mal mit dem gleichen), wird das Konvergieren (bis auf ein Bit) zum ursprünglichen Vorfahren log&sub2;h Generationen dauern, wobei h der Hamming-Abstand zwischen den ursprünglichen Eltern ist. Im Fall eines Zwei-Punkt-Crossingover wird andererseits jedes der beiden Kinder von seinem nächsten (gemessen nach Hamming-Abstand) Elternteil um einen Betrag abweichen, der von einem Bit bis zu nicht mehr als der Hälfte des Strings L reicht. Die längste Zeit, die die Konvergenz zu seinem Vorgänger bis auf ein Bit dauern kann, beträgt also log&sub2;h Generationen, und die kürzeste Dauer eine Generation. Natürlich ist es unwahrscheinlich, daß ein Kind wiederholt mit einem seiner entfernten Vorfahren verpaart wird, aber da bessere Individuen mehr Abkömmlinge haben, ist es recht wahrscheinlich, daß ein Individuum mit einem seiner nahen Verwandten verpaart wird. Insofern dies zu einem Crossing-over der Individuen führt, die eine Menge Allele gemeinsam haben, degeneriert die Erforschung über Rekombination schnell. Obwohl die Anwendung eines Crossing-over, bei dem die Hälfte der abweichenden Bits (HUX, wie weiter unten definiert) zufallsmäßig ausgetauscht wird, diesen Prozeß verlangsamt, werden manchmal Individuen gepaart, die wenige Unterschiede aufweisen. Wenn eines der Kinder oder beide Kinder diese Verpaarung überleben, ist es sogar noch wahrscheinlicher, daß ein derartiges Ereignis in der nächsten Generation auftreten wird.
  • Der CHC besitzt einen zusätzlichen Mechanismus zur Verlangsamung der Geschwindigkeit einer Konvergenz - einen Mechanismus, der dabei hilft, Inzest zu vermei den. Während des Reproduktionsschritts wird jedes Mitglied der Elternpopulation zufällig ohne Ersatz gewählt und zur Verpaarung gepaart. Vor der Verpaarung wird jedoch der Hamming-Abstand zwischen potentiellen Eltern berechnet, und wenn die Hälfte dieses Abstands (der Hamming-Abstand der erwarteten Kinder von ihren Eltern) einen Differenz- Schwellwert nicht überschreitet, werden sie nicht verpaart und aus der Kinderpopulation entfernt. (Der Differenz-Schwellwert wird zu Beginn der Ausführung auf L/4 eingestellt - die Hälfte des erwarteten Hamming-Abstands zwischen zwei zufällig erzeugten Strings). Dadurch wird typischerweise nur ein Bruchteil der Population zur Zeugung neuer Nachkommen in einer Generation verpaart. Wenn keine Kinder in der Elternpopulation akzeptiert werden (entweder, weil keine potentiellen Partner verpaart wurden oder weil keines der Kinder besser war als das schlechteste Mitglieder der Elternpopulation), wird der Differenz-Schwellwert herabgesetzt. Auf diese Weise werden nur die unterschiedlicheren potentiellen Eltern verpaart, jedoch nimmt die durch den Differenz-Schwellwert geförderte Vielfalt automatisch ab, wenn die Population auf natürliche Weise konvergiert. Die Anzahl der Überlebenden jeder Generation bleibt während der gesamten Suche bemerkenswert konstant, weil der Differenz-Schwellwert schneller abfällt als der durchschnittliche Hamming- Abstand, wenn der CHC Schwierigkeiten mit dem Fortschritt hat, so daß mehr Individuen bewertet werden. Wenn hingegen der CHC auf einfache Weise Kinder erzeugen kann, die überleben, fällt der Differenz-Schwellwert langsamer ab und die Anzahl der Verpaarungen sinkt.
  • (4) In Hinblick auf das gleichförmige Crossing-over ist der GA ein Operator, der produktive Rekombinationen liefert und nicht einfach eine Erhaltung der Schemata. Zwischen der wirksamen Rekombination und Erhaltung gibt es einen Kompromiß. Ein Rekombinations-Operator, der immer ein einziges abweichendes Bit per Crossing-over ausgetauscht hat, würde zum Beispiel neue Individuen erzeugen und dabei minimal disruptiv sein, aber dies wäre nicht sehr nützlich. Dieser Kompromiß läßt sich an der Formel für die minimale Anzahl von Schemata erkennen, die über Crossing-over erhalten bleiben (d. h. wenn die Eltern an allen Orten komplementär sind):
  • 2x + 2(L-x) (1)
  • wobei L die String-Länge ist und x die Anzahl der per Crossing-over ausgetauschten Bits. Es ist zu beachten, daß die Anzahl der garantiert bewahrten Schemata am größten ist, wenn der Operator keine Rekombination durchführt, d. h. wenn x = 0 oder L. Auf der anderen Seite ist die Anzahl der garantiert bewahrten Schemata am geringsten, wenn x = L/2. Wenn wir also hauptsächlich an einer Erhaltung interessiert sind, würden wir einen kleinen Wert für x bevorzugen.
  • Die intuitive Idee hinter der Rekombination besteht hingegen darin, daß wir durch Kombinieren der Merkmale von zwei guten Eltern noch bessere Kinder produzieren können. Wir möchten hochwertige Schemata von beiden Eltern kopieren und sie gleichzeitig in dem gleichen Kind realisieren. Je mehr Bits wir von dem ersten Elternteil kopieren, desto mehr Schemata kopieren wir und desto wahrscheinlicher kopieren wir - ohne Disruption - hochwertige Schemata. Je mehr Bits wir jedoch von dem ersten Elternteil kopieren, desto weniger können wir von dem zweiten Elternteil kopieren, so daß die Wahrscheinlichkeit einer Unterbrechung der hochwertigen Schemata des zweiten Elternteils zunimmt. Daher wird ein Crossing-over-Operator, der die Hälfte der Bits (oder noch besser die Hälfte der abweichenden Bits) austauscht, mit höchster Wahrscheinlichkeit wertvolle Schemata kombinieren, weil die maximale Anzahl der Schemata von jedem Elternteil kombiniert wird.
  • Ein gleichförmiges Crossing-over, UX, tauscht keine Segmente aus, sondern Bits. Der tatsächlich vom CHC benutzte Rekombinations-Operator ist HUX, eine Variante des gleichförmigen Crossing-over; HUX tauscht per Crossing-over genau die Hälfte der nicht-übereinstimmenden Allele aus, wo die auszutauschenden Bits zufallsmäßig ohne Ersatz gewählt werden. HUX garantiert, daß die Kinder immer den maximalen Hamming- Abstand von ihren beiden Eltern haben. Die andere Seite der Disruptivität von HUX besteht darin, daß es die Wahrscheinlichkeit der Kombination von zwei guten Schemata, einem von jedem Elternteil, in einem Kind maximiert, weil die Hälfte des Materials von jedem Elternteil gewählt wird. Außerdem besteht für alle Schemata mit der gleichen Reihenfolge die gleiche Wahrscheinlichkeit einer Disruption (Unterbrechung) oder Erhaltung.
  • (5) In Hinblick auf die Neustarts ermöglicht die Anwendung von HUX und Inzest-Vermeidung in Verbindung mit einer Populationsgröße, die ausreicht, um eine Anzahl von diversen Strukturen (z. B. 50) zu bewahren, dem CHC, die vorzeitige Konvergenz zu verzögern und also recht gut ohne jegliche Mutation zu funktionieren. Aber diese verschiedenen Mechanismen garantieren nicht, daß ein Ort nicht vorzeitig konvergiert. Irgendeine Art von Mutation ist erforderlich.
  • Die Mutation ist jedoch im CHC weniger effizient als im herkömmlichen GA. Da der CHC die Vielfalt bereits gut erhalten kann, trägt die Mutation gleich zu Beginn der Suche sehr wenig bei. Später in der Suche, wenn die Population nahezu konvergiert ist, ist die Mutation, kombiniert mit Elite-Selektion, andererseits nicht sehr wirkungsvoll bei der Neueinführung der Vielfalt. Eine derartige Mutation wird dann kaum ein Individuum hervorbringen, das besser ist als das schlechteste Individuum in der Population, und daher werden sehr wenige Individuen in der Population akzeptiert. Im Gegensatz zum CHC stellt ein traditioneller GA durch Ersetzen der Elternpopulation in jeder Generation sicher, daß ständig neue Variationen eingeführt werden.
  • Der Ausweg des CHC aus dieser Sackgasse besteht darin, nur dann eine Mutation einzuführen, wenn die Population konvergiert hat oder die Suche stagniert (d. h. der Differenz-Schwellwert ist auf Null gefallen und es gab mehrere Generationen ohne Überlebende). Genauer gesagt, wenn ein Reproduktions-Rekombinations-Zyklus seine Beendigungsbedingung erreicht, wird die Population neu initialisiert und der Zyklus wird wiederholt. Die Neu-Initialisierung erfolgt jedoch nur partiell. Die Population wird neu initialisiert, indem das bisher beste Individuum als Vorlage für die Schaffung einer neuen Population benutzt wird. Jedes neue Individuum wird erzeugt, indem ein fester Anteil (z. B. 35%) der zufallsmäßig ohne Ersatz gewählten Bits der Vorlage invertiert wird. Ein Beispiel des besten Individuums wird unverändert zu der neuen Population hinzugefügt. Dadurch wird sichergestellt, daß die nächste Suche nicht zu einer schlechteren Lösung konvergieren kann als die vorhergehende Suche. Diese äußere Schleife, die aus einer Neu-Initialisierung oder kataklysmischen Mutation gefolgt von genetischer Suche besteht, wird wiederholt, bis ihre Beendigungsbedingung erfüllt ist (entweder Erreichen einer festen Anzahl von Neu- Initialisierungen oder wiederholtes Nicht-Finden von besseren Strukturen als der beibehaltenen Struktur).
  • Einige der obigen Konzepte können unter Bezugnahme auf schematische Abbildungen weiter erläutert werden. Fig. 2 zeigt einen Datenablaufplan, der das erfindungsgemäße Verfahren veranschaulicht. Der Block 30 mit der Bezeichnung CHC stellt das Programm mit dem erfindungsgemäßen genetischen Algorithmus dar, und der Block 31 mit der Bezeichnung HLG stellt das Programm mit dem heuristischen Layout-Generator dar; beide werden durch einen Computer 32 gesteuert. Das Problem 29 wird in den HLG 31 in Form einer Bauelementliste eingegeben, die die Koordinaten jedes Bauelementes auf der Leiterplatte spezifiziert, ebenso wie den erforderlichen Greifertyp und den Feedertyp für jedes Bauelement. Der nicht separat dargestellte Vorprozessor-Teil des HLG-Programms wird einmal zu Beginn des Prozesses ausgeführt und erstellt - in maschinenlesbarer Form - ein Chromosomenprofil, das die zulässigen Parameterbereiche darstellt. Der CHC erzeugt einen anfänglichen Satz (Population) von Chromosomen, die jeweils Parameter darstellen, welche der HLG benutzt, um eine komplette Maschinenkonfiguration zu bestimmen. Obwohl das Chromosom eine beliebige Form haben kann, liegt es der Einfachheit halber normalerweise in Form eines Bitstrings von Einsen und Nullen vor, der in Fig. 3 bei 35 schematisch abgebildet ist. Der Bitstring 35 wird lang genug vorgesehen, so daß sequentielle Gruppen von Bits eindeutig vom HLG verwendet werden können, um eine bestimmte Maschinenkonfiguration zu erzeugen. Für die MCM-Maschine hatte ein Bitstring für eine bestimmte Leiterplatte eine Länge von 140 Bits. Der CHC leitet ein Chromosom an den HLG-Evaluierungsteil des ausgeführten Programms weiter, wobei ein spezifisches Layout ausgehend von dem Chromosom und einer Wertungszahl ('figure of merit'), in diesem Fall der Plazierungs- oder Zykluszeit, für das Chromosom erzeugt wird. Die Wertungszahl wird dann an das CHC-Programm zurückgeleitet, welches diese Informationen benutzt, um neue Chromosomen zu erzeugen. Wenn ein Layout erzeugt wird, welches das bisher beste ist, wird es an eine Datei ausgegeben. Dieser Prozeß, bei dem der CHC neue Chromosomen ausgehend von den alten erzeugt und sie an den HLG weiterleitet, welcher ein Layout erzeugt und eine Wertungszahl an den CHC zurückgibt, wird wiederholt, bis entweder eine feste Anzahl von Chromosomen erzeugt und evaluiert wurde oder bis die Population der Chromosomen konvergiert ist und eine bestimmte Anzahl von Malen divergiert ist (wobei Konvergenz bedeutet, daß die schlechteste Lösung in der Population so gut ist wie die beste Lösung).
  • Der genetische Aspekt des Überlebens des Tüchtigsten kann in dem Ablaufplan aus den Fig. 4A und 4B veranschaulicht werden, wobei Fig. 4A eine vereinfachte Ansicht von Fig. 4B ist. Die anfängliche Population von Chromosomen ist bei 40 oben dargestellt, wobei jede der vier mißbilligend/finster blickenden Gesichter ein Chromosom darstellt und die einzelnen Merkmale den verschiedenen Bitwerten an verschiedenen Orten im Chromosom entsprechen. In Fig. 4B stellt jede der sechs Reihen von benachbarten schwarzen und weißen Rechtecken ein Chromosom dar, wobei die schwarzen Rechtecke für Einsen stehen und die weißen Rechtecke für Nullen. Obwohl Fig. 4A eine Populationsgröße von vier zeigt und Fig. 4B eine Populationsgröße von sechs, ist die typische Populationsgröße fünfzig.
  • Die Punktzahl oder die Wertungszahl des Chromosoms ist unter jedem der Gesichter in Fig. 4A und am Ende jedes Chromosoms in Fig. 4B dargestellt. In Fig. 4A stellt die höchste Punktzahl die beste Leistung dar, so daß die Aufgabe des Algorithmus darin besteht, diese Punktzahlen zu maximieren. In Fig. 4B ist die niedrigste Punktzahl optimal, so daß die Aufgabe darin besteht, diese Punktzahlen zu minimieren.
  • Sowohl in Fig. 4A als auch in Fig. 4B stellt die linke Seite den Satz von Eltern dar und die rechte Seite die aus diesen Eltern hervorgegangenen Kinder. Jedes bezeichnete Kästchen stellt einen folgenden Zeitschritt dar. In Schritt 40 ist die anfängliche Population der Eltern-Chromosome dargestellt. In dem nächsten Schritt, 41, werden die Eltern auf der linken Seite (Gesichter in Fig. 4A und Reihen in Fig. 4B) unverändert, jedoch in zufälliger Reihenfolge, in den leeren rechten Bereich kopiert, um zufallsmäßig verpaarte Partner zu bilden. In dem nächsten Schritt, 42A, der in Fig. 4B dargestellt ist, jedoch nicht in Fig. 4A, wird verhindert, daß Paare von Individuen, die sich zu sehr ähneln, verpaart werden. Wie in Schritt 42A dargestellt, wird das letzte Verpaarungspaar eliminiert (Inzest-Vorbeugung). In dem nächsten Schritt, 42, werden Merkmale des Paare von Individuen rekombiniert (über einen Operator namens Crossover ausgetauscht), um neue Kinder zu bilden, und jedes neue Kind-Chromosom wird an den HLG geleitet und erhält eine Wertungszahl, die unter den Smiley-Gesichtern und rechts von den Kästchenreihen angegeben ist. In dem nächsten Schritt, 43, werden die Eltern- und Kind-Populationen vereint und die schlechtesten Individuen eliminiert, so daß die Anzahl der verbleibenden Individuen der Größe der Eltern-Population entspricht. Fig. 4A zeigt die Auswahl der besten 4 von den 8 Gesichtern. Fig. 4B zeigt die Auswahl der besten 6 von den 8 Reihen, d. h. zwei Reihen auf der Elternseite werden ausgesondert und durch die beiden besten Reihen auf der Kinderseite ersetzt. Ein Test bei 44 ermittelt, ob eine Konvergenz aufgetreten ist, indem die Punktzahlen der schlechtesten und der besten Mitglieder der aktualisierten Eltern- Population miteinander verglichen werden.
  • Wenn keine Konvergenz aufgetreten ist, wird der Prozeß mit einer weiteren Iteration fortgesetzt, wobei die beste gewählte Population von 4 oder 6 Chromosomen als neue Eltern dient. Wenn eine Konvergenz vorliegt, erfolgt eine partielle Zufallsstreuung (Mutation) aller Chromosomen bis auf einen in der Population, und der Prozeß wird fortgesetzt. Wenn entweder eine feste Anzahl von Chromosomen erzeugt und evaluiert wurde oder eine feste Anzahl von Konvergenzen stattgefunden hat, wird der Prozeß angehalten.
  • Wie bereits erwähnt, weicht der CHC-Algorithmus in vier wesentlichen Aspekten von einem herkömmlichen GA ab, da er eine stärker disruptive Form des Crossing-over nutzt als ein traditioneller GA, die Selektion auf dem Prinzip des Überlebens des Tüchtigsten statt auf einer Reproduktion mit Hervorhebung beruht, Inzestverpaarungen verhindert werden und das Verfahren des Crossing-over strenger ist, und Mutation nur dann angewendet wird, um den Prozeß neu zu starten, wenn die Population konvergiert hat. Der erste Unterschied ist in Fig. 5 dargestellt, in der eine Standard-GA-Lösung auf der linken Seite mit der eines CHC auf der rechten Seite verglichen wird.
  • Bei 50 und 50A beginnen beide Algorithmen mit der gleichen Population von anfänglichen Eltern-Chromosomen, die durch die 4 Gesichter auf der linken Seite dargestellt sind. Bei dem herkömmlichen GA werden im nächsten Schritt mehr Kopien von den besseren Eltern angefertigt und weniger Kopien von den schlechteren Eltern, wie in 51 veranschaulicht, wo zwei Kopien von dem dritten, aber keine Kopie von dem zweiten, finster blickenden Gesicht angefertigt wird. Beim CHC hingegen wird eine Kopie von jedem Elternteil erstellt, wie in 51A dargestellt. In dem GA ersetzen alle Nachkommen auf der rechten Seite alle Eltern auf der linken Seite, wie in 53 veranschaulicht, während beim CHC die besseren Nachkommen die schlechteren Eltern ersetzen, wie in 53A dargestellt.
  • Die durch Bits oder Bitsätze des Chromosomen-String dargestellten Parameter, die vorgeben oder steuern, wie ein Layout und eine Chargenkarte zur Steuerung der Maschinenfunktion erzeugt werden, und die im allgemeinen maschinenabhängig sind, stellen einen wichtigen Aspekt der Erfindung dar. Bei einer Maschine des MCM-Typs wurden die folgenden Regeln gewählt, um die durch die Chromosomenbits darzustellenden Parameter und ihre Erwünschtheit zu bestimmen und zu einem optimalen oder nahezu optimalen Maschinenlayout zu kommen. Diese Regeln sind die folgenden:
  • (ai) Parameter zum Steuern der Priorität bei der Zuordnung von Greifertypen und der Anzahl von Feedern, die idealerweise zu jedem Greifertyp gehören;
  • (aii) Parameter zum Steuern der Zuordnung von Pipettenpositionen zu Greifertypen, indem den folgenden Kriterien Priorität zugewiesen wird: Erreichbarkeitseinschränkungen, Passungsdichte, Möglichkeiten zur Mehrfachplazierung;
  • (aiii) Parameter zum Steuern, wie Feeder den Greifern zugeordnet werden, indem die anfängliche Anzahl von Feedern pro Pipettenposition, die pro Greifertyp zugeordnet werden, spezifiziert wird, und zum Steuern, in welcher Reihenfolge die Feeder zugewiesen werden (aufsteigende oder absteigende Reihenfolge);
  • (aiv) Parameter zum Steuern, wie Bauelemente auf die Feederpositionen verteilt werden, indem gesteuert wird, wie eng die Bauelemente gepackt werden;
  • (av) Parameter zum Steuern, welche Bauelemente welchen Feedern zugeordnet werden, indem die Reihenfolge gesteuert wird, in der die Bauelementtypen zugeordnet werden (aufsteigende oder absteigende Reihenfolge).
  • Der Chargenkarten-Generator HLG führt ein Programm mit einem Algorithmus aus, der die folgenden Schritte und Parameter benutzt, um eine Chargenkarte zu erstellen. Hier werden die Ausdrücke "Chargenkarten-Generator" und "heuristischer Layout-Generator" benutzt, um auf den Algorithmus HLG zu verweisen, weil dieser Algorithmus sowohl ein Layout als auch eine Chargenkarte erzeugt.
  • (bi) Bis alle Feederpositionen zugeordnet wurden:
  • Wähle einen Greifertyp gt (auf der Basis von ai)
  • Wähle eine Pipettenposition pp für gt (auf der Basis von aii)
  • Wenn Pipettenposition pp verfügbar:
  • Ordne Feeder zu, die durch pp erreicht werden können (basierend auf aiii)
  • Sonst
  • Ordne unbenutzte Feeder für eine Pipette zu, der bereits gt zugewiesen wurde
  • (bii) Für jeden zugeordneten Greifertyp:
  • Bestimme, wie viele Feeder jedem Bauelementtyp zugewiesen werden (basierend auf aiv)
  • Ordne Bauelemente bestimmten Feedern zu (basierend auf av)
  • Die durch den CHC-Algorithmus erzeugten Chromosomen werden getestet oder evaluiert, indem sie nacheinander dem HLG zugeführt werden. Neue Chromosomen- Strings werden in einer Reihe von Iterationen erzeugt und getestet, bis entweder eine bestimmte Anzahl von Chromosomen erzeugt und getestet wurde, was wahrscheinlich eine hochwertige Konfiguration zur Folge hätte - eine typische Anzahl ist der Bereich von ca. 10.000 bis 100.000 Chromosomen - oder bis die Population dazu gebracht wurde, eine bestimmte Anzahl von Malen zu konvergieren, mit einem erwarteten ähnlichen Ergebnis - eine typische Anzahl liegt hier zwischen ca. 5 und 10.
  • Die Verwendung eines modifizierten GA zur Lösung des Konfigurationsproblems für Plazierungsmaschinen des beschriebenen Typs ist nicht auf die Maschine des MCM-Typs beschränkt. Für andere Maschinen sind einige Modifikationen in den Algorithmen erforderlich, vor allem bei den beherrschenden Parametern, die maschinenabhängig sind, jedoch bleibt das Prinzip das gleiche. Dies läßt sich an dem ausführlichen Beispiel erkennen, das im folgenden in Bezug auf die Bauelement-Plazierungsmaschine des Typs FCM von Philips beschrieben wird.
  • Fig. 6 zeigt eine schematische Draufsicht der FCM-Maschine und Fig. 7 eine perspektivische Ansicht. Die Maschine besteht im wesentlichen aus einem Transportsystem 60, welches eine Folge von Leiterplatten (PCBs) 61 unter einer Reihe von (bis zu) 16 unabhängigen Greif-und-Plazier-Modulen (PMs) 62 hindurchführt. Das Transportsystem 60 bewegt sich in Schritten (Indexschritten) vorwärts, zwischen denen die Leiterplatten für einen Augenblick stationär bleiben, während die PMs einige Bauelemente plazieren. Jedes Greif- und Plazier-Modul PM hat eine Feederbank 63 (englisch: feeder bar) (vor der Maschine, wie in Fig. 6 dargestellt), an der verschiedene Bauelement-Feedertypen 64 (Gurte oder Stangen von unterschiedlicher Breite, oder Schüttgut-Feeder) angebracht werden können. Jedes PM 62 ist 120 mm breit, wobei 80 mm davon die erreichbare Zone darstellen. Zwischen den PMs sind Absperrungen vorgesehen, damit sich die PMs nicht gegenseitig stören können. Die Feeder müssen innerhalb der erreichbaren Zone auf der Feederbank 63 angeordnet werden, und zu diesem Zweck wurden 6 Löcher in einem Abstand von jeweils 16 mm gebohrt, an denen die Feeder befestigt werden. Diese Lochpositionen werden als Feederpositionen (englisch: feeder slots) bezeichnet und sind von 0 bis 5 nummeriert (von links nach rechts in Fig. 6). Die neuen Leiterplatten werden auf der linken Seite in den FCM eingeführt, und die fertiggestellten Leiterplatten verlassen den FCM auf der rechten Seite. Jedes PM 62 verfügt über einen einzigen beweglichen Kopf 66 mit unabhängiger Servosteuerung in x- (links/rechts), y- (vorwärts/rückwärts), z- (aufwärts/abwärts) und phi- Richtung (Rotation um z). Diese Servosteuerungen haben verschiedene Beschleunigungen und Höchstgeschwindigkeiten, so daß die Verfahrdauer von einer Greif- zu einer Plazier- Position dem Maximum der x-, y- und phi-Zeiten entspricht. Die Bewegung in z-Richtung wird als feste Verzögerung für Greifen und für Plazieren berücksichtigt. Jeder Kopf kann mit einer speziellen Vakuumdüse zum Aufnehmen von Bauelementen und mit einem Spannfutter (englisch: chuck) für die genaue mechanische Ausrichtung ausgerüstet sein. Eine Düsen/Spannfutter-Kombination wird als Greifer bezeichnet, und jedem zu plazierenden Bauelement kann ein bestimmter Greifertyp gehören.
  • Die Optimierungsaufgabe lautet: Bei einer gegebenen Bauelementliste die Positionen x, y und phi für jedes zu plazierende Bauelement zusammen mit seinem Greifer- und Feedertyp spezifizieren, und bei einer gegebenen Spezifikation der Linie aus FCM- Maschinen (Anzahl der Maschinen, Anzahl der PMs auf jeder Maschine) ein Layout und eine Chargenkarte erzeugen, durch die der Zeitaufwand für die Bestückung der Leiterplatten mit allen Bauelementen (Zykluszeit) minimiert wird. Weiterhin soll mit der Optimierung erreicht werden, daß FCM-Benutzer in der Lage sind, die Lösungen zu begrenzen, indem sie eine Obergrenze für die Anzahl der benutzten Greifer eines bestimmten Typs vorgeben und/oder für die Anzahl der Feeder, die einen bestimmten Bauelementtyp zuführen. Die Benutzer sollten möglichst auch vorgeben können, daß bestimmte Greifer bestimmten PMs zugeordnet werden und daß von bestimmten Feederpositionen bestimmte Bauelementtypen zugeführt werden. Für einige PMs und einige Feederpositionen kann auch vorgegeben werden, daß sie nicht benutzt werden. Die beschriebene Optimierungsaufgabe wird als Einzelleiterplatten-Problem bezeichnet. Darüber hinaus sollte die Optimierung auch das Leiterplattenfamilien-Problem behandeln. Eine Leiterplattenfamilie umfaßt mehrere eng verwandte Leiterplatten (Familienmitglieder), die über die gleichen Abmessungen verfügen und weitgehend mit den gleichen Bauelementen bestückt werden. Einige Bauelemente werden für eines oder mehrere der Familienmitglieder einzigartig sein. Mit der Optimierung bei einem Leiterplattenfamilien-Problem soll die Zykluszeit für eine bestimmte Zusammenstellung von Familienmitgliedern minimiert werden, wobei die Lösungen für alle Familienmitglieder das gleiche Layout aufweisen (d. h. die Fertigungslinie kann von einem Familienmitglied zu einem anderen umgeschaltet werden, ohne daß irgendwelche Zuweisungen von Greifern zu Pipetten oder Bauelementen zu Feedern geändert werden müssen).
  • Die Bewegung des Transportsystems zwischen den Indexschritten ist vorgegeben, wie in Tabelle 1 dargestellt. Es ist erforderlich, daß die Summe der Indexschrittbewegungen dem Pitch-Abstand entspricht. Der Pitch-Abstand einer Leiterplatte ist der Zwischenraum zwischen aufeinanderfolgenden Leiterplatten auf dem Förderband; zur Vereinfachung für das Transportsystem wurde allen Leiterplatten ein Pitch-Abstand aus der in Tabelle 1 aufgeführten Alternative zugeordnet. Das Transportsystem nimmt eine neue Leiterplatte auf, bewegt sich um die in der Tabelle angegebene Anzahl von Indexschritten vorwärts und kehrt dann zur linken Seite zurück, wo es eine weitere Leiterplatte aufnimmt. Alle Leiterplatten im Prozeß werden dann im Einklang in Zyklen von Indexschritten aufge nommen und weitergeführt, bis sie den FCM auf der rechten Seite verlassen. So werden zum Beispiel alle 80-Pitch-Leiterplatten bei jedem Schritt um 120 mm, den Abstand zwischen den PMs, weiterbewegt. Da kleine Leiterplatten komplett in die erreichbare Zone eines einzigen PMs passen, wird bei jedem 1-Schritt-Zyklus eine neue Leiterplatte aufgenommen. Bei 480-Pitch-Leiterplatten hingegen sind sechs Indexschritte erforderlich, damit jede Leiterplatte unter einem PM entlanggeführt wird. Tabelle 1, die Indexschritte
  • E bedeutet, daß eine visuelle Überprüfung (EVA) bei diesem Schritt erfolgt;
  • F bedeutet, daß die ersten Bauelemente bei diesem Schritt plaziert werden.
  • Die zur Zeit bekannten Feedertypen sind in Tabelle 2 aufgeführt. Für jeden Feedertyp (T = Gurt, S = Stangenmagazin, B = Schüttgut) sind in der Tabelle die Abmessungen (links und rechts von der Mittellinie, die mit der Feederposition in der Feederbank fluchtet), die Anzahl der Positionen, an denen ein einziger Bauelementtyp aufgenommen werden kann, und die x- und y-Koordinaten der Aufnahmepositionen (in Bezug auf die Feederposition in der Feederbank, an der sich der Feeder befindet) angegeben. Die Abmessungen sind in Mikrometern angegeben. Tabelle 2, die Feedertypen
  • Bei dem allgemeinen Ansatz, den wir zur Lösung des Problems wählen und bei dem wir die in Wechselwirkung stehenden GA und HLG benutzen, besitzt der HLG viele eingebettete Parameter, die sein Verhalten ändern können. Der HLG könnte eher als eine Familie von Algorithmen als einzelner Algorithmus betrachtet werden. Der genetische Algorithmus (GA) hat die Aufgabe, mit Hilfe seiner evolutionären Vorgehensweise eine passende Gruppe dieser Abstimmungsparameter zu lokalisieren. Jedes Chromosom spezifiziert eine komplette Gruppe der HLG-Parameter. Mit jedem Aufruf des HLG wird versucht, die gegebene FCM-Optimierungsaufgabe zu lösen. Die aus diesem Versuch resultierende Zykluszeit wird als "Tüchtigkeit" des Chromosoms behandelt. Beginnend mit einer Zufallspopulation von Chromosomen durchläuft der GA Generationen von neuen Chromosomen, die jeweils aus der vorhergehenden Generation hervorgegangen sind, indem vorzugsweise das Überleben der tüchtigsten Mitglieder und das Erzeugen von Nachkommen (neuen zu testenden Chromosomen) von diesen durch einen Prozeß des Crossing-over ihrer Gene (der HLG-Parameter) erlaubt wurde, um neue Gen-Kombinationen hervorzubringen.
  • Nähere Einzelheiten zur der Funktion von GAs im allgemeinen sind der Goldberg-Abhandlung "Genetic Algorithms in Search, Optimization, and Machine Learning", Addison Wesley, Reading, MA, 1989, und der genannten Eshelman-Abhandlung über den CHC, den modifizierten GA, zu entnehmen.
  • Die Aufgabe des HLG besteht darin, eine komplette, realisierbare Lösung für ein FCM-Layout-Problem zu schaffen, wenn dies möglich ist. Bei Erfolg gibt er dem GA die Zykluszeit für die gefundene Lösung an. Bei Mißerfolg gibt er einen numerischen Wert an, der heuristisch ermittelt wurde und widerspiegeln sollte, wie nahe er an eine realisierbare Lösung herangekommen ist. Dieser heuristische Wert wird so gewählt, daß alle realisierbaren Lösungen eine niedrigere Zahl (besser) erreichen als alle nicht realisierbaren Lösungen, und daß unter den realisierbaren Lösungen die Punktzahl um so besser ist, je näher man an die Realisierbarkeit herangekommen ist.
  • Ein nützliches Konzept, das durch den HLG verwendet wird, ist das eines Behälters (englisch: bucket). Für jedes PM wird bei jedem Indexschritt ein Behälter definiert. Diese Behälter dienen als Gefäße, die durch den ausgleichenden Algorithmus benutzt werden, in die Bauelemente gelegt werden und für die ein Gleichgewicht aufrechterhalten werden muß. In Fig. 8 ist diese Vorstellung veranschaulicht. Alle Behälter in dem gleichen Indexschritt (Spalte in Fig. 8) haben die gleiche Taktzeit (englisch: heartbeat time): die Ausführungszeit des langsamsten PM. Die Zykluszeit der gesamten Maschine/Linie wird durch die Summe der Taktzeiten aller Indexschritte approximiert. Die echte Zykluszeit muß die Bewegung des Transportsystems und die Bewegung der Köpfe zwischen den Aufnahmepositionen berücksichtigen, jedoch können die Zeiten für die Kopf-Bewegungen abgezogen werden, die gleichzeitig mit der Bewegung des Transportsystems erfolgen. Der HLG besteht aus fünf Schritten:
  • Schritt 1 Zuweisen von Greifern zu PMs
  • Schritt 2 Zuweisen von Feedertypen zu PM-Feederpositionen
  • Schritt 3 Zuweisen von Bauelementen zu Behältern
  • Schritt 4 Permutieren der Bauelementtypen unter Feedern bei jedem PM
  • Schritt 5 Sortieren der Bauelemente, die in jeden Behälter gelegt wurden.
  • Bei jedem Schritt werden unwiderrufbare Entscheidungen getroffen, gegebenenfalls geführt durch Parameter in dem Chromosom (Schritte 1-3), wobei Heuristik- und Proxy-Performance-Maße verwendet werden. In den Schritten 1 und 2 wird ein heuristisches Maß der "Erwünschtheit" jeder alternativen Plazierung verwendet und das Beste in jedem Zyklus ausgewählt. In Schritt 3 wird bei der Zuweisung zu den Behältern die Greif- und-Plazierzeit (Pick-and-Place time, pp_time) für jedes Bauelement verwendet, wobei versucht wird, eine gute Zeitbalance aufrechtzuerhalten. Da die Greifpositionen der Bauelemente und ihre Greifsequenz erst in den nachfolgenden Schritten bestimmt werden, muß die Greif- und Plazierzeit (pp_time) geschätzt werden. Der HLG unterhält zwei Schätzwerte für jedes Bauelement: pp_time_lower und pp_time_actual. Pp_time_lower ist die Umlaufzeit von der Feederbank (y = 0) zur Plazierungsposition (y = part_y) und zurück, einschließlich einer Greif- und einer Plazierverzögerung. Dieser Wert entspricht der maximalen Zeit, die von der y- oder der phi-Servosteuerung benötigt wird. Der Verfahrweg der x-Servosteuerung kann erst ermittelt werden, wenn die Greifposition gewählt wurde. Wenn die Greifpositionen einmal bestimmt sind (Schritt 4), entspricht pp_time_actual der maximalen Umlaufzeit für die x-Servosteuerung und pp_time_lower.
  • Die durch den HLG an den GA als Tüchtigkeit bzw. Eignung jedes Chromosoms zurückgemeldete Zykluszeit ist eine echte Zykluszeitberechnung einschließlich den Bewegungszeiten für das Transportsystem, den aufeinanderfolgenden Greifvorgängen in ihrer endgültigen Reihenfolge, und der Parallelität, die die FCM-Maschine bei sich bewegenden PMs und sich bewegenden Leiterplatten erreichen kann.
  • In den folgenden Abschnitten wird die Funktionsweise jedes Schritts kurz beschrieben.
  • Schritt 1 Zuweisen von Greifern zu PMs
  • Der Pseudocode für diesen Schritt ist nachfolgend dargestellt (H1 und H2 beziehen sich auf die im folgenden erläuterte Heuristik):
  • Weise Pipetten_zu ()
  • If (Anzahl der Greifer = 1)
  • Weise diesen Greifer allen PMs zu
  • Berechne die Anzahl der PMs ohne zuvor zugewiesene Greifer
  • While (es sind noch PMs für die Zuweisung übrig)
  • Berechne die Erwünschtheit jedes Greifers (H1).
  • Berechne für den am meisten erwünschten Greifer die Erwünschtheit jedes noch nicht zugewiesenen PMs (H2).
  • Weise den am meisten erwünschten Greifer dem am meisten erwünschten PM zu.
  • Die Heuristik H1 benutzt zwei Parameter von dem Chromosom für jeden Greifertyp (eine Gewichtung und ein Greifer-Vorzugsbit) und zwei vorberechnete Konstanten, die von dem zu lösenden Problem und von der spezifizierten Linie abhängen (die maximale und die minimale Anzahl der PMs). Die Mindestanzahl der PMs (minimum_PM) wird geschätzt, indem die Anzahl der Feederpositionen betrachtet wird, die durch jeden für die Bauelemente benötigten Feedertyp abgedeckt wird, wobei jeder Greifer benutzt wird. Diese Berechnung ist etwas konservativ, so daß die echte Mindestzahl höher sein kann (d. h. es gibt keine Garantie, daß sich eine realisierbare Lösung ergibt, wenn minimum_PM zugewiesen wird). Ein target_PM wird berechnet, indem der Anteil der gesamten von jedem Greifertyp benötigten pp_time geschätzt wird. Die maximale Anzahl der PMs (maximum_PM) ist entweder ein vom Benutzer vorgegebener Grenzwert oder die Gesamtzahl der verfügbaren PMs minus der Mindestzahlen, die von allen anderen Greifern benötigt werden. Mit diesen Konstanten und der Variablen PMs_assigned (zugewiesene PMs) wird die Erwünschtheit jedes Greifers (H&sub1;) folgendermaßen berechnet:
  • diff(g) = target_PMs(g) - PMs_assigned(g)
  • Durch Manipulation der Gewichtungen und der Greifer-Vorzugsbits (benutzt, um die Verbindungen in der Erwünschtheit aufzubrechen) in dem Chromosom ist der CHC in der Lage, eine Vielzahl von Zuordnungen von Greifern zu PMs zu schaffen.
  • Die Heuristik H2 betrifft eine vorberechnete Erwünschtheit für jeden Greifer an jedem PM und ein Vorzugsbit (preference_bit) im Chromosom für jeden Greifer. Die Erwünschtheiten werden berechnet, sobald die Bauelemente bekannt sind und die FCM- Linie definiert ist, einschließlich aller Vorab-Zuweisungen. Die Greifer-PM-Erwünschtheit stellt die Möglichkeiten dar, die ein Greifer hat, um seine Bauelemente mit diesem PM zu plazieren. Hierbei handelt es sich um eine Zahl, die für jedes Bauelement, welches eventuell bei jeder Feederposition bei jedem Indexschritt plaziert werden kann, inkrementiert wird. Um eventuell plazierbar zu sein, muß zuvor ein geeigneter Feedertyp zugewiesen sein oder es muß eine Feederposition frei sein. Darüber hinaus muß die x-Position des Bauelementes in dem Indexstreifen zugänglich sein. Diese Erwünschtheit reflektiert die Unterschiede, die manchmal zwischen PMs hinsichtlich der x-Positionen auftreten, die in zwei aufeinanderfolgenden Indexschritten freiliegen, wenn eine 40-mm-Leiterplatten-Bewegung stattfindet.
  • Das Vorzugsbit (preference_bit) löst die Verbindungen zugunsten des ersten oder letzten PMs in der Linie mit der gleichen Erwünschtheit. Auf diese Weise kann das Chromosom diktieren, daß ein bestimmter Greifer mit großer Wahrscheinlichkeit vom Anfang oder vom Ende der Linie plaziert wird.
  • Schritt 2 Zuweisen von Feedertypen zu PM-Feederpositionen
  • Der Pseudocode für diesen Schritt ist nachstehend dargestellt. Da die Greifer an dieser Stelle des Algorithmus bereits auf PMs plaziert worden sind, spezifiziert jeder Greifer eine unabhängige Gruppe von PMs mit unabhängigen Feeder-Zuweisungs- Auswahlen.
  • Weise Feedertypen zu ()
  • für(jeden Greifer)
  • while (eine Feedertyp hat eine positive Erwünschtheit und einige Feederpositionen sind noch verfügbar)
  • Berechne die Erwünschtheit für jeden Feedertyp
  • (H3)
  • Berechne für den am meisten erwünschten Feedertyp die Erwünschtheit jeder verfügbaren Feederposition
  • (H4)
  • Plaziere den am meisten erwünschten Feedertyp in die am meisten erwünschte Feederposition
  • Berechne den Fehlbetrag = Summe der erforderlichen Aufnahmepositionen, die nicht erreicht werden konnten
  • Melde (Fehlbetrag)
  • Die Heuristik H3 benutzt einen Parameter von dem Chromosom für jeden Feedertyp, der für jeden Greifertyp erforderlich ist (eine Gewichtung, wt(g,f)). Die Berechnung der Erwünschtheit erfolgt in Form von Aufnahmepositionen. Die meisten Feedertypen haben eine einzige Aufnahmeposition pro Feeder; eine Ausnahme bilden die Schüttgut-Feeder, die vier Aufnahmepositionen haben. Für jeden Feedertyp (f), der für jeden Greifertyp (g) benötigt wird, werden zwei Konstanten berechnet: min_picks(g,f) = Anzahl der Bauelement-Typen (g,f) und max_picks(g,f) = Anzahl der Bauelemente (g,f): Für jeden Bauelementtyp wird ein separater Feeder benötigt, damit eine realisierbare Lösung möglich ist, und es gibt keinen Grund, um mehr Feeder zuzuweisen als es Bauelemente von jedem Typ gibt. Mit diesen Konstanten und der Variablen picks_assigned (g,f) wird die Erwünschtheit jedes Feedertyps wie folgt berechnet:
  • Durch Manipulieren der Gewichtungen im Chromosom kann der CHC in Verbindung mit dem HLG eine Vielzahl von Zuweisungen von Feedertypen zu Feederpositionen schaffen.
  • Die Heuristik 4 berechnet ein Maß der Passungsdichte ("thightness-of-fit") für jeden Feedertyp unter Berücksichtigung der anderen bereits plazierten Feedertypen und der Absperrungen jedes PM. Space_left(f,p,s) ist der Freiraum zwischen dem linken Rand des Feedertyps f und dem rechten Rand seines nächsten Nachbarn (entweder linke Wand oder der nächste Feeder zu seiner linken), wenn er in die Feederposition s an PM p eingesetzt würde. Space_right(f,p,s) ist analog definiert. Die Erwünschtheit wird wie folgt berechnet:
  • Erwünschtheit (f,p,s) = max {space_left(f,p,s), space_right (f,p,s)} (4)
  • Diese Heuristik bewirkt, daß die Feeder in einem PM enger nebeneinander angeordnet werden, während gleichzeitig die Tendenz besteht, sie auf die PMs zu verteilen, um auf diese Weise die Möglichkeit zu einem späteren Ausgleichen des Greif- und Plazieraufwandes über die PMs zu maximieren. Es ist zu beachten, daß es keine Garantie gibt, daß alle zugewiesenen Feeder tatsächlich benutzt werden, wenn in Schritt 3 die tatsächlichen Bauelemente zugewiesen werden.
  • Schritt 3 Zuweisung der Bauelemente zu Behältern
  • Dieser Algorithmus kann als Kernstück des HLG betrachtet werden. Er verteilt den Greif-und-Plazieraufwand auf die Behälter, um auf diese Weise die Leerlaufzeit aller PMs während aller Indexschritte zu minimieren. Er funktioniert im Rahmen der in den beiden vorhergehenden Schritten erfolgen Zuweisungen und arbeitet mit einer sortierten Liste von Bauelementen (oder Bauelementgruppen). Die Software bietet die Möglichkeit zur Plazierung der Bauelemente in Gruppen oder einzeln. Eine Gruppe besteht aus allen Bauelementen des gleichen Typs, deren Leiterplattenpositionen innerhalb des gleichen Streifens liegen. Ein Streifen ist ein vertikaler 40-mm-Abschnitt der Leiterplatte, wie in Fig. 9 dargestellt. Der Algorithmus bezieht sich immer auf Bauelementgruppen. Wenn der Benutzer die Option zur individuellen Plazierung der Bauelemente wählt, bildet er einfach 1-Bauelement-Gruppen. Das Sortieren der Bauelemente (Gruppen) für die Behälter- Zuweisung wird durch 8 Bits im Chromosom gesteuert. Die ersten 4 Bits werden als ein Index auf eine Tabelle der Sortierreihenfolgen interpretiert, die in Tabelle 3 dargestellt sind. Die verbleibenden 4 Bits markieren die Sortierreihenfolge als ansteigend (1) oder absteigend (0) für jedes Sortierfeld in der Reihenfolge: ppt, st, pt, gt. Tabelle 3, Bauelement-Sortiersteuerung
  • ppt = pp_time
  • st = Streifen
  • pt = part type (Bauelement-Typ)
  • gt = gripper type (Greifertyp)
  • Der Pseudocode für diesen Schritt ist nachstehend angegeben:
  • Level()
  • While (es gibt eine andere Bauelementgruppe, die aus der sortierten Liste plaziert werden soll)
  • Finde alle möglichen Behälter (C1)
  • Wenn keine auswählbaren Behälter existieren
  • Melde (weiterhin zu plazierende Bauelementgruppen)
  • Wähle einen Behälter (H5)
  • Plaziere die Bauelementgruppe in den gewählten Behälter
  • Melde (null)
  • Die Bedingungen (C1), damit ein Behälter "möglich" ist, sind:
  • - der zugewiesene Greifertyp muß passen
  • - einer der beiden Streifen unter dem PM muß passen
  • - es muß ein geeigneter Feedertyp verfügbar sein
  • (entweder frei oder bereits dem richtigen Bauelement-Typ zugewiesen).
  • Die Auswahl des besten Behälters erfolgt durch einen einfachen "greedy" Algorithmus mit einem Steuerbit im Chromosom. Die übliche "greedy" Heuristik besteht darin, den Behälter mit der meisten Schwachlastzeit zu wählen, wobei die Schwachlastzeit der pp_time-Differenz zwischen der aktuellen Taktzeit (d. h. der gesamten Zeit pp_time für das langsamste PM) für den Indexschritt des Behälters und der gesamten Zeit pp_time für alle bereits in diesem Behälter befindlichen Bauelemente entspricht. Pp time_lower wird hier benutzt, weil die Entscheidung über die zu benutzende Aufnahmeposition in einem nachfolgenden Schritt des Algorithmus getroffen wird. Das Behälterauswahl-Bit (bukket_choice_bit) aus dem Chromosom (eines für jede Bauelementgruppe) ermöglicht ein Umgehen des üblichen Kriteriums zugunsten der Wahl eines Behälters mit einem Feeder, der bereits dem geeigneten Feedertyp zugewiesen ist. Dadurch kann sich der "greedy" Leveler als komplexe Mischung der Best-fit- und Fit-to-conserve-Feeder-Strategien für jede der 208 möglichen Sortierreihenfolgen verhalten. Es ist zu beachten, daß bei einigen Problemen die Sortierreihenfolgen redundant sein können (z. B. wenn es nur einen einzigen Greifertyp gibt).
  • Schritt 4 Permutieren der Bauelementtypen unter den PMs
  • Dieser Algorithmus liegt fest, da es keine Steuerung in dem Chromosom zur Veränderung seines Verhaltens gibt. Er untersucht einfach nacheinander jedes PM und versucht, die Bauelementtypen unter kompatiblen Feedern zu permutieren. Mit dieser Permutation soll versucht werden, eventuelle Kompromisse bei der angenommenen Zeit pp_time_lower zu minimieren, die sich ergeben, wenn die Zeit pp_time eines Bauelementes aufgrund seiner Aufnahmeposition durch die x-Servosteuerung begrenzt wird. Der Mehraufwand der x-Servosteuerung (die Zeitdauer, um die pp_time_lower zunehmen würde) für den Fall, daß das Bauelement an jeder der kompatiblen zur Verfügung stehenden Aufnahmepositionen plaziert würde, wird für jedes Bauelement in der "Gefahrenzone" berechnet (siehe nachstehend). Der Mehraufwand der x-Servosteuerung wird für alle Indexschritte summiert, und die Summe wird um eventuell verfügbare Schwachlastzeiten verringert.
  • Wenn der sich ergebende Mehraufwand gleich null ist, erfolgt keine Permutation. Ist dies nicht der Fall, werden systematisch Permutationsversuche unternommen, bis entweder eine Nullkosten-Permutation gefunden ist oder ein vorgegebener Grenzwert für die Anzahl der Permutationen erreicht ist. Zur Zeit ist dieser Grenzwert auf 720 (6! = 720) eingestellt. Dieser Wert garantiert, daß eine optimale Permutation für alle Feedertypen mit Ausnahme der Schüttgut-Feeder gefunden wird, die 11 Aufnahmepositionen an einem einzigen PM darbieten können (11! = 39916800). Die bisher gemachten Erfahrungen legen nahe, daß dieser Algorithmus normalerweise eine Nullkosten-Lösung mit sich bringt und gleichzeitig nur einen geringen Bruchteil der zulässigen 720 Permutationen ausprobiert.
  • Die Gefahrenzone ist der Bereich der Leiterplatte in der Nähe der Feederbank, an dem es möglich ist, daß die Verfahrdauer der x-Servosteuerung länger ist als die der y-Servosteuerung oder der phi-Servosteuerung. Dieser Bereich ist in Fig. 10 dargestellt. Die horizontale Linie bei y = 65 mm stellt die Grenze dar, über der der schlimmste Fall für die x-Servosteuerung (Verfahrweg von 80 mm) nicht schlimmer ist als der schlimmste Fall für die phi-Servosteuerung. Die beiden schräg verlaufenden Linien stellen den Ort der Punkte dar, bei denen der Verfahrweg der y-Servosteuerung dem Verfahrweg der x-Servosteuerung im schlimmsten Fall entspricht (von den Aufnahmepositionen 0 bzw. 5). Bauelemente, deren Position auf der Leiterplatte über diesen Bereichen liegt, werden nicht durch die x-Servosteuerung bestimmt, unabhängig davon, von welcher Aufnahmeposition sie aufgenommen werden. Nur Bauelemente in diesem Bereich müssen durch den Permutations-Algorithmus betrachtet werden.
  • Schritt 5 Sortieren der Bauelemente, die in jeden Behälter gelegt wurden
  • Dieser Algorithmus liegt ebenfalls fest, weil es keine Steuerung im Chromosom gibt, um sein Verhalten zu ändern. Er untersucht nacheinander alle Behälter und sortiert die zu plazierenden Bauelemente in der Reihenfolge ihrer Aufnahmeposition: von links nach rechts bei ungeradzahligen Indexschritten und von rechts nach links bei geradzahligen Schritten. Ein PM, das Bauelemente bei jedem Schritt plaziert, wird daher abwechselnd über die Feederbank fahren, zuerst nach links und dann nach rechts.
  • Fig. 11 ähnelt Fig. 2, jedoch ist die interne Kommunikation zwischen dem GA und dem HLG nicht abgebildet, sondern die externen Dateien sind dargestellt.
  • Wenn die Eingangsdateien einmal zur Verfügung stehen, wird das Programm (chc.fcm) ausgeführt.
  • Ausgangsdateien
  • Die Datei fcm.best wird während einer Suche überschrieben, sobald eine neue Lösung gefunden wurde, die besser ist als die vorherige beste Lösung. Sie besteht aus einer Reihe von "Absätzen", die jeweils einen anderen Aspekt der Lösung beschreiben. Im ersten Absatz werden die Leiterplatten-Informationen in der Datei parts.list zusammengefaßt. Nachstehend ein Beispiel:
  • TITEL: PCB-3
  • pitch = 360000
  • n_parts = 910
  • n_part_types = 45
  • n_gripper_types = 4
  • gripper type 1 has 26 part types requiring 3
  • pipette modules (minimum)
  • gripper type 2 has 7 part types requiring 2
  • pipette modules (minimum)
  • gripper type 3 has 7 part types requiring 1
  • pipette modules (minimum)
  • gripper type 4 has 5 part types requiring 1
  • pipette modules (minimum)
  • feeder type B32 has 33 part types
  • feeder type T8 has 12 part types
  • Der zweite Absatz spiegelt die Informationen in der Datei fcm.params wider, wie nachstehend dargestellt.
  • LINIE:
  • 1 FCM machines in line
  • 16 total pipette modules in line
  • 16 pipette modules used
  • MACHINE: FCM[0] with 16 pipette modules
  • PM[0] gripper FREE has 6 slots
  • PM[1] gripper FREE has 6 slots
  • PM[2] gripper FREE has 6 slots
  • PM[3] gripper FREE has 6 slots
  • PM[4] gripper FREE has 6 slots
  • PM[5] gripper FREE has 6 slots
  • PM[6] gripper FREE has 6 slots
  • PM[7] gripper FREE has 6 slots
  • PM[8] gripper FREE has 6 slots
  • PM[9] gripper FREE has 6 slots
  • PM[10] gripper FREE has 6 slots
  • PM[11] gripper FREE has 6 slots
  • PM[12] gripper FREE has 6 slots
  • PM[13] gripper FREE has 6 slots
  • PM[14] gripper FREE has 6 slots
  • PM[15] gripper FRFR has 6 slots
  • strategy: place parts individually
  • In dem Absatz FEEDER SUMMARY werden die Zuweisungen der Greifer zu PMs, der Feedertypen zu Feederpositionen, und der Bauelementtypen zu Aufnahmepositionen beschrieben. Ein Teil eines derartigen Absatzes ist nachstehend dargestellt. Es ist zu beachten, daß ein Feedertyp zugeordnet sein kann und dann tatsächlich nicht benutzt wird (siehe PM[0] Slot [5]). Es sei auch angemerkt, daß eine Feederposition (Slot) nur dann "blockiert" ist, wenn ein Feeder in einem benachbarten Feederposition tatsächlich über die Lage der Feederposition hinausragt. Eine Feederposition kann als FREE (frei) bezeichnet sein, aber dennoch "tatsächlich blockiert" sein, wenn ein benachbarter Feeder so nahe kommt, daß kein anderer Feeder problemlos eingesetzt werden könnte.
  • FEEDER SUMMARY FCM[0] PM[0] gripper:4
  • slot[0] feeder type:T8 part_tsype 12
  • slot[1] feeder type:T8 part_type 22
  • slot[2] feeder type:T8 part_type 20
  • slot[3] feeder type:T8 part_type 13
  • slot[4] feeder type:T8 part_type 21
  • slot[5] feeder type:T8 part_type FREE
  • FCM[0] PM[1] gripper: 1 slot[0] feeder type: B32
  • pick [0] part_type FREE
  • pick [1] part_type 6
  • pick [2] part_type 5
  • pick [3] part_type 39
  • slot[1] blocked slot[2] feeder type:B32
  • pick [0] part_type 44
  • pick [1] part_type 1
  • pick [2] part_type 4
  • pick [3] part_type 31
  • slot[3] blocked slot[4] feeder type: B32
  • pick [0] part_type 38
  • pick [1] part_type 43
  • pick [2] part_type 32
  • pick [3] part_type 7
  • slot[5] blocked
  • Im folgenden Absatz sind die Bauelemente aufgeführt, die tatsächlich während jedes Indexschritts der Lösung plaziert werden. Nachstehend ist der Anfang eines solchen Absatzes dargestellt. Zunächst werden die Indexschritte beschrieben, wobei ein "E" den Schritt bezeichnet, an dem EVA erfolgt (eine visuelle Prüfung), und "F" den Schritt bezeichnet, an dem PM[0] erstmalig Bauelemente auf eine neue Leiterplatte plaziert. Danach ist jeder Behälter aufgeführt mit Angabe der Leiterplattenstreifen, die er "sieht", mit der Taktzeit (pp_time Schätzwerte ohne Berücksichtigung der Bewegung des Transportsystems), mit der Summe der geschätzten Zeiten pp_times für alle in den Behälter gelegten Bauelemente und mit der Schwachlastzeit slack_time (heartbeat - pp_time). Alle Zeiten sind in Millisekunden angegeben. Anschließend werden die Bauelementnummern der plazierten Bauelemente in der Reihenfolge ihrer Plazierung aufgeführt. Hinter jeder Bauelementnummer stehen drei Zeichen in eckigen Klammern [abc], wobei a die Feederposition ist, b die Aufnahmeposition, von der das Bauelement genommen wird, und c "x", "y" oder "p" ist, je nachdem, ob pp_time durch x-, y- oder phi-Servosteuerung bestimmt wird. Es ist zu beachten, daß die Feederpositionen in abwechselnden Indexschritten alternativ links- nach-rechts und rechts nach links angeordnet sind, wodurch die einfache Heuristik für Schritt 5 des HLG widergespiegelt wird (siehe § 4).
  • Der letzte Absatz, der im folgenden dargestellt ist, gibt zwei untere Schätzwerte für das Problem vor sowie die echte Zykluszeit (einschließlich der Bewegung des Transportsystems). Der erste (uneingeschränkte) untere Wert ULB (unconstrained lower bound) besteht einfach aus der Summe von pp_time_lower für jedes Bauelement geteilt durch die Anzahl der benutzten PMs. Es würde sich ein wahrer unterer Wert ergeben (bei dem die Transportbewegung nicht berücksichtigt wird), wenn alle Bauelemente von der y- oder phi-Servosteuerung bestimmt wären und bei keinem PM eine Schwachlastzeit (slack_time) auftritt. Der zweite (eingeschränkte) untere Wert CLB (constrained lower bound) ist eventuell kein wahrer unterer Wert, weil er in der vorgeschlagenen Lösung von der Zuweisung der Greifer zu PMs abhängig ist. Er entspricht dem Maximum (unter den Greifertypen) der Summe der pp_time_lower für alle Bauelement für jeden Greifertyp geteilt durch die Anzahl der zugewiesenen PMs. Um die Qualität dieses unteren Wertes zu beurteilen, werden einige zusammenfassenden statistischen Daten für jeden Greifertyp angegeben: die Mindestzahl der benötigten PMs (min PM) (ein Schätzwert), die Anzahl der tatsächlich zugewiesenen PMs und die optimale Anzahl der PMs. Die letztgenannte Zahl ist ein unrealistischer Idealwert und normalerweise noch nicht einmal eine Ganzzahl. Es handelt sich um die Anzahl der PMs, die zu einer gleichmäßigen Arbeitsauslastung (pp_time Summen) für jeden Greifertyp führen würden. Wenn die zugewiesenen PMs nahe an diese Zahlen herankommen, ist der CLB wahrscheinlich gut. Die wahre Zykluszeit wird mit dem Betrag (in Prozent) angegeben, um den sie den CLB überschreitet. Diese Zahl wird manchmal als Optimierungslücke bezeichnet. Schließlich zeichnet der GA das Experiment und die Erprobung auf, bei der diese Lösung gefunden wurde.
  • LOWER BOUND PICK & PLACE TIME (ignoring gripper type allocations & transport): 51200 milliseconds
  • LOWER BOUND PICK & PLACE TIME (considering gripper type allocations, but ignoring transport): 55745 milliseconds
  • GT: 1 min_PMs 3 assigned_PMs 10 opt_PMs 10.5
  • GT: 2 min_PMs 2 assigned_PMs 2 opt_PMs 2.2
  • GT: 3 min_PMs 1 assigned_PMs 3 opt_PMs 2.5
  • GT: 4 min_PMs 1 assigned_PMs 1 opt_PMs 0.8
  • TOTAL PICK & PLACE TIME (including transport): 57607 milliseconds
  • percent above lower bound = 3.340210
  • kost = 57607 found at experiment 0 trial 46128
  • Zusammenfassend: Für die FCM-Maschine enthält die Mehrzahl der Parameter im Chromonomen-String zur Steuerung des HLG folgendes:
  • eine Gewichtung für jeden Greifertyp, die die Reihenfolge beeinflußt, in der Greifer-zu-Pipetten-Entscheidungen getroffen werden; ein Pipetten-Vorzugsbit für jeden Greifertyp (das Verbindungen zwischen gleichermaßen erwünschten Greifer-zu-Pipetten- Entscheidungen aufbricht); eine Gewichtung für jeden Feedertyp für jeden Greifertyp, die die Reihenfolge der Entscheidungen bezüglich Feedertypen zu Feederpositionen beeinflußt; Sortierparameter, die die Reihenfolge beeinflussen, in der Leiterplatten- Bauelemente berücksichtigt werden, wenn sie Behältern zugewiesen werden; und ein Vorzugsbit für jedes Bauelement, das die Wahl des Behälters beeinflußt.
  • Die grundlegenden Ähnlichkeiten mit den Parametern der MCM-Maschine sind offensichtlich und können für beide Maschinen folgendermaßen zusammengefaßt werden:
  • 1. Zuweisung einer Gewichtung für jeden Greifertyp
  • 2. Zuweisung von Prioritäten für das Zuweisen der Anzahl von Pipetten, die jedem Greifertyp zugewiesen werden
  • 3. Zuweisung von Prioritäten für jeden Feedertyp für jeden Greifertyp,
  • 4. Bestimmen einer Reihenfolge, um zu steuern, wie Bauelementtypen jedem Feedertyp zugewiesen werden.
  • Im allgemeinen müssen Parameter von der gleichen Art verwendet werden, wenn geeignete Chromosomen konstruiert werden, um die Konfiguration der Bestückungsmaschinen dieses allgemeinen Typs mit mehreren Köpfen, mehreren Pipetten, mehreren Greifern und mehreren Feedern darzustellen.
  • Um die Beschreibung abzuschließen, folgen nachstehend einige weitere Beispiele von Pseudocode für die erfindungsgemäßen Programme.
  • Obwohl die Erfindung in Verbindung mit bevorzugten Ausführungsformen beschrieben wurde, werden dem Fachkundigen Modifikationen hiervon im Rahmen der oben beschriebenen Prinzipien offensichtlich sein, und die Erfindung ist daher nicht auf die bevorzugten Ausführungsformen beschränkt, sondern umfaßt auch solche Modifikationen.

Claims (10)

1. Verfahren zur Optimierung der Konfiguration einer computer-gesteuerten Greif- und Plaziermaschine zur Bestückung einer Leiterplatte, wobei die genannte Maschine folgendes umfaßt: eine Halterung für die Leiterplatte, eine Vielzahl von Greifvorrichtungen, eine Vielzahl von nummerierten Feedern zum vorrätig Halten der für die Bestückung der Leiterplatte benötigten Bauelemente, und Mittel zum Aktivieren der Greifvorrichtungen, um die ausgewählten Bauelemente von ausgewählten Feedern aufzunehmen und sie an den gewählten Positionen in Übereinstimmung mit einer von mehreren Chargen auf der Leiterplatte abzusetzen, wobei jede Charge eine bestimmte Reihe von Bauelementen darstellt, die als Gruppe aufgenommen und plaziert werden und wobei jede Gruppenbewegung eine Charge bildet, und wobei eine Liste der Chargen, die für die Plazierung der Bauelemente auf der Leiterplatte erforderlich sind, eine Chargenkarte darstellt, welche in der Lage ist, die Funktion der Maschine zu steuern; wobei das Verfahren die folgenden Schritte umfaßt:
(a) Schaffen einer anfänglichen Population von Chromosomen-Strings, die jeweils eine Gruppe von Parametern darstellen, welche steuern, wie eine Chargenkarte erzeugt wird, um die Funktion der Maschine zu steuern, damit eine bestimmte Leiterplatte mit einer bestimmten Gruppe von Bauelementen und Bauelement-Positionen bestückt wird,
(b) Schaffen eines Chargenkarten-Generators, der auf einen bestimmten Chromosomen-String reagiert, um die Konfiguration zu erstellen und die Plazierungszeit zur Bestückung einer bestimmten Leiterplatte mit der Maschine in dieser Konfiguration zu berechnen,
(c) Verwenden eines genetischen Algorithmus, um von den Chromosomen- Strings neue Chromosomen-Strings zu erzeugen,
(d) Evaluieren der in Schritt (c) erzeugten neuen Chromosomen-Strings, indem diese dem Chargenkarten-Generator zugeführt werden,
(e) Wiederholen der Schritte (c) und (d), wobei anstelle der Chromosomen- Strings diese neuen Chromosomen-Strings verwendet werden, wenn sie zu ei ner kürzeren Plazierungszeit führen als die Chromosomen-Strings, bis eine bestimmte Anzahl von Chromosomen-Strings erzeugt und evaluiert wurde oder die Chromosomen-Population zum Konvergieren gebracht wurde,
(f) Ausgeben eines durch die Iteration gefundenen besten Chromosomen-Strings als eine gewünschte Konfiguration darstellend,
(g) Konfigurieren der Maschine in Übereinstimmung mit dem in Schritt (f) ausgegebenen besten Chromosomen-String, und
(h) Betreiben der Maschine, um die gegebenen Gruppen von Bauelementen in Übereinstimmung mit der in Schritt (b) nach dem letzten Iterationsschritt erzeugten Chargenkarte auf Leiterplatten zu plazieren.
2. Verfahren nach Anspruch 1, wobei in Schritt (a) mindestens die folgenden Parameter benutzt werden, die in dem Chromosomen-String dargestellt sind:
(ai) Parameter zum Steuern der Priorität bei der Zuordnung von Greifertypen und der Anzahl von Feedern, die idealerweise zu jedem Greifertyp gehören;
(aii) Parameter zum Steuern der Zuordnung von Pipettenpositionen zu Greifertypen, indem den folgenden Kriterien Priorität zugewiesen wird: Erreichbarkeitseinschränkungen, Passungsdichte, Möglichkeiten zur Mehrfachplazierung;
(aiii) Parameter zum Steuern, wie Feeder den Greifern zugeordnet werden, indem die anfängliche Anzahl von Feedern pro Pipettenposition, die pro Greifertyp zugeordnet werden, spezifiziert wird, und zum Steuern, in welcher Reihenfolge die Feeder zugewiesen werden;
(aiv) Parameter zum Steuern, wie Bauelemente auf die Feederpositionen verteilt werden, indem gesteuert wird, wie eng die Bauelemente gepackt werden oder wie die Verteilung zulässig ist;
(av) Parameter zum Steuern, welche Bauelemente welchen Feedern zugeordnet werden, indem die Reihenfolge gesteuert wird, in der die Bauelementtypen zugeordnet werden.
3. Verfahren nach Anspruch 2, wobei jede Greifvorrichtung eine Pipette und einen an der Pipette angebrachten Greifer umfaßt und der Chargen-Generator aus Schritt (b) nach den folgenden Schritten vorgeht, um eine Chargenkarte zu erzeugen:
(i) Bis alle Feederpositionen zugeordnet wurden:
- Wähle einen Greifertyp gt auf der Basis von ai
- Wähle eine Pipettenposition pp für gt auf der Basis von au
- Wenn Pipettenposition pp verfügbar:
Ordne Feeder zu, die durch pp erreicht werden können, auf der Basis von aiii
Sonst
Ordne unbenutzte Feeder für eine Pipette zu, der bereits gt zugewiesen wurde
(ii) Für jeden zugeordneten Greifertyp:
Bestimme, wie viele Feeder jedem Bauelementtyp zugewiesen werden, auf der Basis von aiv
Ordne Bauelemente bestimmten Feedern zu, auf der Basis von av.
4. Verfahren nach Anspruch 1, wobei es sich bei dem genetischen Algorithmus aus Schritt (c) um einen genetischen Algorithmus handelt, der Inzestverpaarungen unter elterlichen Chromosomen-Strings eliminiert; der Crossing-over auf Paare von elterlichen Strings anwendet, um neue Nachkömmlinge zu schaffen; der das Überleben des Tüchtigsten nutzen, wobei sowohl die Chromosomenstränge der Eltern als auch der Kinder einbezogen werden; und der Populationsmutation nur dann anwendet, wenn die erzeugten Lösungen nach einer begrenzten Anzahl von Iterationen konvergieren.
5. Verfahren nach Anspruch 1, wobei jede Greifvorrichtung eine Pipette und einen an der Pipette angebrachten Greifer umfaßt und das Chromosom mindestens die folgenden Parameter darstellt:
eine erste Gewichtung für jeden Greifertyp, die die Reihenfolge beeinflußt, in der Greifer-zu-Pipetten-Entscheidungen getroffen werden;
ein Pipetten-Vorzugsbit für jeden Greifertyp, die die Greifer-zu-Pipetten- Entscheidungen beeinflußt, wenn mehrere Pipetten gleichermaßen erwünscht sind;
eine zweite Gewichtung für jedes Feedertyp / Greifertyp-Paar, die die Reihenfolge der Entscheidungen bezüglich Feedertypen zu Feederpositionen beeinflußt;
Sortierparameter, die die Reihenfolge beeinflussen, in der Leiterplatten- Bauelemente berücksichtigt werden, wenn sie Feederpositionen und Indexschritten zugewiesen werden; und
ein Vorzugsbit für jedes Bauelement, das die Wahl der Feederposition und des Indexschritts beeinflußt.
6. Gerät zur Optimierung der Konfiguration einer computer-gesteuerten Greif- und Plaziermaschine zur Bestückung einer Leiterplatte, wobei die genannte Maschine folgendes umfaßt: eine Halterung für die Leiterplatte, eine Vielzahl von Greifvorrichtungen, eine Vielzahl von nummerierten Feedern zum vorrätig Halten der für die Bestückung der Leiterplatte benötigten Bauelemente, und Mittel zum Aktivieren der Greifvorrichtungen, um die ausgewählten Bauelemente von ausgewählten Feedern aufzunehmen und sie an den gewählten Positionen in Übereinstimmung mit einer von mehreren Chargen auf der Leiterplatte abzusetzen, wobei jede Charge eine bestimmte Reihe von Bauelementen darstellt, die als Gruppe aufgenommen und plaziert werden und wobei jede Gruppenbewegung eine Charge bildet, und wobei eine Liste der Chargen, die für die Plazierung der Bauelemente auf der Leiterplatte erforderlich sind, eine Chargenkarte darstellt, welche in der Lage ist, die Funktion der Maschine zu steuern; wobei das Gerät folgendes umfaßt:
(a) Schaffen von Mitteln zum Schaffen einer anfänglichen Population von Chromosomen-Strings, die jeweils eine Gruppe von Parametern darstellen, welche steuern, wie eine Chargenkarte erzeugt wird, um die Funktion der Maschine zu steuern, damit eine bestimmte Leiterplatte mit einer bestimmten Gruppe von Bauelementen und Bauelement- Positionen bestückt wird,
(b) Schaffen von Mitteln zum Schaffen eines Chargenkarten-Generators, der auf einen bestimmten Chromosomen-String reagiert, um die Konfiguration zu erstellen und eine Plazierungszeit zur Bestückung der gegebenen Leiterplatte mit der genannten Maschine in der genannten gegebenen Konfiguration zu berechnen,
(c) Erstellen von Mitteln zum Verwenden eines genetischen Algorithmus, um von den aktuellen Chromosomen-Strings neue Chromosomen-Strings zu erzeugen,
(d) Evaluierungsmittel zum Evaluieren der in Schritt (c) erzeugten neuen Chromosomen-Strings, indem diese dem Chargenkarten-Generator zugeführt werden,
(e) Iterationsmittel zum Wiederholen der Schritte (c) und (d), wobei anstelle der aktuellen Chromosomen-Strings diese neuen Chromosomen-Strings verwendet werden, wenn die neuen Chromosomen-Strings zu einer kürzeren Plazierungszeit führen als die aktuellen Chromosomen-Strings, bis eine bestimmte Anzahl von Chromosomen-Strings er zeugt und evaluiert wurde oder die Chromosomen-Population zum Konvergieren gebracht wurde,
(f) Ausgabemittel zum Ausgeben eines durch die Iteration gefundenen besten Chromosomen-Strings als eine gewünschte Konfiguration darstellend,
(g) Konfigurierungsmittel, die von den genannten Ausgabemitteln versorgt werden, um die Maschine in Übereinstimmung mit dem besten Chromosomen-String zu konfigurieren, und
(h) Betreibungsmittel zum Betreiben der Maschine, um die gegebenen Gruppen von Bauelementen in Übereinstimmung mit der Chargenkarte auf Leiterplatten zu plazieren, die nach dem letzten Iterationsschritt durch die genannten Iterationsmittel erzeugt wurde.
7. Gerät nach Anspruch 6, wobei die Schaffungsmittel mindestens die folgenden Parameter benutzt werden, die in dem Chromosomen-String dargestellt sind:
(ai) Parameter zum Steuern der Priorität bei der Zuordnung von Greifertypen und der Anzahl von Feedern, die idealerweise zu jedem Greifertyp gehören;
(aii) Parameter zum Steuern der Zuordnung von Pipettenpositionen zu Greifertypen, indem den folgenden Kriterien Priorität zugewiesen wird: Erreichbarkeitseinschränkungen, Passungsdichte, Möglichkeiten zur Mehrfachplazierung;
(aiii) Parameter zum Steuern, wie Feeder den Greifern zugeordnet werden, indem die anfängliche Anzahl von Feedern pro Pipettenposition, die pro Greifertyp zugeordnet werden, spezifiziert wird, und zum Steuern, in welcher Reihenfolge die Feeder zugewiesen werden;
(aiv) Parameter zum Steuern, wie Bauelemente auf die Feederpositionen verteilt werden, indem gesteuert wird, wie eng die Bauelemente gepackt werden oder wie die Zuweisungsverteilung zulässig ist;
(av) Parameter zum Steuern, welche Bauelemente welchen Feedern zugeordnet werden, indem die Reihenfolge gesteuert wird, in der die Bauelementtypen zugeordnet werden.
8. Gerät nach Anspruch 7, wobei jede Greifvorrichtung eine Pipette und einen an der Pipette angebrachten Greifer umfaßt und der Chargen-Generator der Schaffungs mittel aus Schritt (b) nach den folgenden Schritten vorgeht, um eine Chargenkarte zu erzeugen:
(i) Bis alle Feederpositionen zugeordnet wurden:
- Wähle einen Greifertyp gt auf der Basis von ai
- Wähle eine Pipettenposition pp für gt auf der Basis von au
- Wenn Pipettenposition pp verfügbar:
Ordne Feeder zu, die durch pp erreicht werden können, auf der Basis von aiii
Sonst
Ordne unbenutzte Feeder für eine Pipette zu, der bereits gt zugewiesen wurde
(ii) Für jeden zugeordneten Greifertyp:
Bestimme, wie viele Feeder jedem Bauelementtyp zugewiesen werden, auf der Basis von aiv
Ordne Bauelemente bestimmten Feedern zu, auf der Basis von av.
9. Gerät nach Anspruch 6, wobei die Schaffungsmittel aus Teil (c) einen genetischen Algorithmus verwenden, der Inzestverpaarungen unter elterlichen Chromosomen- Strings eliminiert; der Crossing-over auf Paare von elterlichen Strings anwendet, um neue Nachkömmlinge zu schaffen; der das Überleben des Tüchtigsten nutzen, wobei sowohl die Chromosomenstränge der Eltern als auch der Kinder einbezogen werden; und der Populationsmutation nur dann anwendet, wenn die erzeugten Lösungen nach einer begrenzten Anzahl von Iterationen konvergieren.
10. Gerät nach Anspruch 6, wobei jede Greifvorrichtung eine Pipette und einen an der Pipette angebrachten Greifer umfaßt und das Chromosom mindestens die folgenden Parameter darstellt:
eine erste Gewichtung für jeden Greifertyp, die die Reihenfolge beeinflußt, in der Greifer-zu-Pipetten-Entscheidungen getroffen werden;
ein Pipetten-Vorzugsbit für jeden Greifertyp, die die Greifer-zu-Pipetten- Entscheidungen beeinflußt, wenn mehrere Pipetten gleichermaßen erwünscht sind;
eine zweite Gewichtung für jedes Feedertyp / Greifertyp-Paar, die die Reihenfolge der Entscheidungen bezüglich Feedertypen zu Feederpositionen beeinflußt;
Sortierparameter, die die Reihenfolge beeinflussen, in der Leiterplatten- Bauelemente berücksichtigt werden, wenn sie Feederpositionen und Indexschritten zugewiesen werden; und
ein Vorzugsbit für jedes Bauelement, das die Wahl der Feederposition und des Indexschritts beeinflußt.
DE69327505T 1992-10-23 1993-10-15 Konfigurationsverfahren und -gerät einer Bauelementplazierungsmaschine Expired - Fee Related DE69327505T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/965,474 US5390283A (en) 1992-10-23 1992-10-23 Method for optimizing the configuration of a pick and place machine

Publications (2)

Publication Number Publication Date
DE69327505D1 DE69327505D1 (de) 2000-02-10
DE69327505T2 true DE69327505T2 (de) 2000-08-24

Family

ID=25510017

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69327505T Expired - Fee Related DE69327505T2 (de) 1992-10-23 1993-10-15 Konfigurationsverfahren und -gerät einer Bauelementplazierungsmaschine

Country Status (4)

Country Link
US (1) US5390283A (de)
EP (1) EP0594251B1 (de)
JP (1) JP3320523B2 (de)
DE (1) DE69327505T2 (de)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6973197B2 (en) * 1999-11-05 2005-12-06 Digimarc Corporation Watermarking with separate application of the grid and payload signals
US5581657A (en) * 1994-07-29 1996-12-03 Zerox Corporation System for integrating multiple genetic algorithm applications
JP3524585B2 (ja) * 1994-08-02 2004-05-10 本田技研工業株式会社 プログラム作成装置
WO1996015481A2 (en) 1994-11-09 1996-05-23 Amada Company, Limited Intelligent system for generating and executing a sheet metal bending plan
US5969973A (en) * 1994-11-09 1999-10-19 Amada Company, Ltd. Intelligent system for generating and executing a sheet metal bending plan
US5659477A (en) * 1994-12-28 1997-08-19 Collins; Charles Michael Self reproducing fundamental fabricating machines (F-Units)
JP3504394B2 (ja) * 1995-09-08 2004-03-08 松下電器産業株式会社 部品配列のデータ作成方法
CA2159269C (en) * 1995-09-27 2000-11-21 Chaitanya K. Baru Method and apparatus for achieving uniform data distribution in a parallel database system
US5778317A (en) * 1996-05-13 1998-07-07 Harris Corporation Method for allocating channels in a radio network using a genetic algorithm
US5841947A (en) * 1996-07-12 1998-11-24 Nordin; Peter Computer implemented machine learning method and system
US6128607A (en) * 1996-07-12 2000-10-03 Nordin; Peter Computer implemented machine learning method and system
US5946673A (en) * 1996-07-12 1999-08-31 Francone; Frank D. Computer implemented machine learning and control system
JP3254393B2 (ja) * 1996-11-19 2002-02-04 三菱電機株式会社 遺伝的アルゴリズムマシン及び遺伝的アルゴリズムマシンの製造方法及び遺伝的アルゴリズムの実行方法
JP3354060B2 (ja) * 1996-11-27 2002-12-09 山形カシオ株式会社 部品搭載プログラム作成装置及び媒体
US5909674A (en) * 1996-12-23 1999-06-01 Philips Electronics North America Corp. Method for optimizing the layout and charge maps of a flowline of pick and place machines
US5864833A (en) * 1996-12-23 1999-01-26 Philips Electronics North American Corp. Apparatus for optimizing the layout and charge maps of a flowline of pick and place machines
FR2767396B1 (fr) * 1997-08-14 2001-10-19 Aerospatiale Procede d'imbrication de pieces elementaires dans un ou plusieurs panneaux a usiner
DE69809577T2 (de) * 1997-09-15 2003-07-17 Tellabs Denmark A/S, Ballerup Verfahren zum regeln von testfühlern in einem testgerät für elektronische, gedruckte schaltungen und testgerät zur durchführung des verfahrens
US6260178B1 (en) * 1999-03-26 2001-07-10 Philips Electronics North America Corporation Component placement machine step size determination for improved throughput via an evolutionary algorithm
US6487544B1 (en) * 1999-04-05 2002-11-26 Koninlijke Philips Electronics N.V. Method for optimizing a line of pick and place machines
US6886003B2 (en) * 2000-06-28 2005-04-26 Yamaha Hatsudoki Kabushiki Kaisha Method for controlling machine with control module optimized by improved evolutionary computing
US6594531B2 (en) 2000-12-22 2003-07-15 Koninklijke Philips Electronics N.V. Modular optimizer with foreign module learning feature for optimization of component placement machines
US6650953B2 (en) * 2001-01-12 2003-11-18 Koninklijke Philips Electronics N.V. Modular optimizer with precedence constraint-handling feature for optimization of component placement machines
US7010159B2 (en) * 2001-04-25 2006-03-07 Koninklijke Philips Electronics N.V. Apparatus and method for combining random set of video features in a non-linear scheme to best describe perceptual quality of video sequences using heuristic search methodology
US7340076B2 (en) * 2001-05-10 2008-03-04 Digimarc Corporation Digital watermarks for unmanned vehicle navigation
US20020169962A1 (en) * 2001-05-10 2002-11-14 Brundage Trent J. Digital watermarks used in automation equipment
JP4108298B2 (ja) * 2001-07-06 2008-06-25 松下電器産業株式会社 電子部品実装装置における生産シミュレーション装置および生産シミュレーション方法
US7337455B2 (en) * 2001-12-31 2008-02-26 Koninklijke Philips Electronics N.V. Method, apparatus, and program for evolving algorithms for detecting content in information streams
US20040010480A1 (en) * 2002-07-09 2004-01-15 Lalitha Agnihotri Method, apparatus, and program for evolving neural network architectures to detect content in media information
US7076313B2 (en) * 2003-06-06 2006-07-11 Visteon Global Technologies, Inc. Method for optimizing configuration of pick-and-place machine
US20050060391A1 (en) * 2003-09-16 2005-03-17 International Business Machines Corporation Autonomic cluster-based optimization
WO2006089243A2 (en) 2005-02-16 2006-08-24 University Of Virginia Patent Foundation Blood flow bypass catheters and methods for the delivery of medium to the vasculature and body ducts
KR100722622B1 (ko) 2005-09-28 2007-05-28 삼성전기주식회사 지능형 기판 회로형성 장치 및 그 방법
US7295888B2 (en) * 2005-09-30 2007-11-13 Caterpillar Inc. System for evaluating a parts carrier
US7519476B1 (en) 2006-07-28 2009-04-14 Seisnetics, Llc Method of seismic interpretation
JP4650536B2 (ja) * 2008-07-28 2011-03-16 ソニー株式会社 電界結合器、通信装置、通信システム及び電界結合器の製造方法。
BRPI0924598A2 (pt) * 2009-05-06 2016-08-23 Ulma Packaging Technological Ct S Coop método para carregar recipientes
CN102648442B (zh) * 2009-09-11 2015-03-11 Abb技术有限公司 改进的拾取和放置
US8250007B2 (en) 2009-10-07 2012-08-21 King Fahd University Of Petroleum & Minerals Method of generating precedence-preserving crossover and mutation operations in genetic algorithms
US8515882B2 (en) 2010-11-18 2013-08-20 International Business Machines Corporation Efficient storage of individuals for optimization simulation
US8489526B2 (en) 2010-11-24 2013-07-16 International Business Machines Corporation Controlling quarantining and biasing in cataclysms for optimization simulations
US9563844B2 (en) 2011-06-30 2017-02-07 International Business Machines Corporation Speculative asynchronous sub-population evolutionary computing utilizing a termination speculation threshold
US9165247B2 (en) 2012-01-04 2015-10-20 International Business Machines Corporation Using global and local catastrophes across sub-populations in parallel evolutionary computing
EP2839727B1 (de) * 2012-07-06 2019-07-10 Siemens Aktiengesellschaft Zuordnung von leiterplatten auf bestückungslinien
US9305257B2 (en) 2013-05-20 2016-04-05 International Business Machines Corporation Adaptive cataclysms in genetic algorithms
CN103717007B (zh) * 2014-01-22 2017-02-08 哈尔滨工业大学 基于聚类分析与遗传算法的多吸嘴贴片机贴装工艺优化方法
DE102014222936A1 (de) * 2014-11-11 2016-05-12 Siemens Aktiengesellschaft Bestücken von Leiterplatten
WO2016084122A1 (ja) * 2014-11-25 2016-06-02 富士機械製造株式会社 受注処理装置、識別情報プレート及び受注処理方法
WO2018210404A1 (en) 2017-05-16 2018-11-22 Abb Schweiz Ag Method and control system for controlling movement sequences of a robot
CN117682151A (zh) * 2022-08-30 2024-03-12 英业达科技有限公司 装箱方法以及电子装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8329888D0 (en) * 1983-11-09 1983-12-14 Philips Electronic Associated Generating component interconection lists
US4630219A (en) * 1983-11-23 1986-12-16 International Business Machines Corporation Element placement method
US4697242A (en) * 1984-06-11 1987-09-29 Holland John H Adaptive computing system capable of learning and discovery
US5255345A (en) * 1988-02-17 1993-10-19 The Rowland Institute For Science, Inc. Genetic algorithm
US4935877A (en) * 1988-05-20 1990-06-19 Koza John R Non-linear genetic algorithms for solving problems

Also Published As

Publication number Publication date
EP0594251B1 (de) 2000-01-05
US5390283A (en) 1995-02-14
EP0594251A2 (de) 1994-04-27
DE69327505D1 (de) 2000-02-10
EP0594251A3 (de) 1994-11-09
JPH06215087A (ja) 1994-08-05
JP3320523B2 (ja) 2002-09-03

Similar Documents

Publication Publication Date Title
DE69327505T2 (de) Konfigurationsverfahren und -gerät einer Bauelementplazierungsmaschine
DE69028612T2 (de) Aufstelloptimierung von flexiblen Herstellungssystemen
DE102018008744B4 (de) Einrichtung zum Berechnen eines Beladungsmusters und Robotersteuereinrichter
DE4422683C2 (de) Verfahren und Vorrichtung zum automatischen Ordnen von Losen für eine Fertigungsstraße
EP3180969B1 (de) Bestücken von leiterplatten
DE112008000767T5 (de) Verfahren zum Bestücken von Bauelementen
DE69815819T2 (de) Adaptives verteiltes informationsnetzwerk
EP1240975A1 (de) Verkettetes Fertigungssystem zur Durchführung von Bearbeitungsoperationen an Teilen
DE69618433T2 (de) Verfahren und Gerät zur Werskstückzufuhr zum Gerät zur Serienverarbeitung von Halbleiterplatten
EP2829166B1 (de) Bildung von rüstfamilien auf bestückungslinien
DE112020005671T5 (de) Platzierungsunterstützungsverfahren, Verfahren zur Erzeugung eines erlernten Modells, Programm, Platzierungsunterstützungssystem, und Arbeitssystem
DE112007002637T5 (de) Verfahren zum Montieren von Bauteilen
DE112007001476T5 (de) Verfahren zum Bestimmen der Montagebedingungen für Bauelemente
DE112006001406T5 (de) Verfahren zum Bestimmen der Anordnung von Produktionseinrichtungen
DE112005001095T5 (de) Anordnung und Verfahren für die relative Steuerung von Lastbewegungsaktuatoren
EP1213057A2 (de) Verfahren zum automatisierten Sortieren von Objekten und Zusammenstellen von Sortimenten
DE69737345T2 (de) Parametergenerator für ein Montageprogramm von Bauelementen und ein Speichermedium
EP3474650B1 (de) Verfahren zur erstellung eines rüstsatzes für eine bestückungsmaschine
DE69617189T2 (de) Verfahren und system zur verschachtelung von echtzeitdateien
DE102013203647A1 (de) Verkabelungsverfahren
EP1567921B1 (de) Verfahren zum ermitteln einer verteilung von physikalischen objekten auf anlagen eines anlagensystems
DE4438652A1 (de) Verfahren und Vorrichtung zum stabilen Sortieren oder Mischen sequentieller Listen in einer raumadaptiven Weise
EP4228385B1 (de) Computerimplementiertes verfahren zur bestimmung einer optimalen zuordnung von baugruppentypen zu einer hinsichtlich seiner bestückungsleistung ausgewählten bestückungslinie
EP3941858B1 (de) Vorrichtung und verfahren zur verbesserung der kommunikation von modularen fördersystemen
EP4350903A1 (de) Maschinenverbund und verfahren zum anordnen von kabeln gemäss einer vorgegebenen kabelsequenz

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: ASSEMBLEON N.V., EINDHOVEN, NL

8328 Change in the person/name/address of the agent

Free format text: VOLMER, G., DIPL.-ING., PAT.-ANW., 52064 AACHEN

8339 Ceased/non-payment of the annual fee