DE69327505T2 - Konfigurationsverfahren und -gerät einer Bauelementplazierungsmaschine - Google Patents
Konfigurationsverfahren und -gerät einer BauelementplazierungsmaschineInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 31
- 210000000349 chromosome Anatomy 0.000 claims description 87
- 238000004422 calculation algorithm Methods 0.000 claims description 40
- 230000002068 genetic effect Effects 0.000 claims description 17
- 230000035772 mutation Effects 0.000 claims description 15
- 230000013011 mating Effects 0.000 claims description 14
- 230000004083 survival effect Effects 0.000 claims description 9
- 238000011156 evaluation Methods 0.000 claims description 2
- 230000003213 activating effect Effects 0.000 claims 2
- 230000006798 recombination Effects 0.000 description 14
- 238000005215 recombination Methods 0.000 description 13
- 238000005457 optimization Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000007423 decrease Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000010845 search algorithm Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002028 premature Effects 0.000 description 3
- 108700028369 Alleles Proteins 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 108090000623 proteins and genes Proteins 0.000 description 2
- 238000011179 visual inspection Methods 0.000 description 2
- FPWNLURCHDRMHC-UHFFFAOYSA-N 4-chlorobiphenyl Chemical compound C1=CC(Cl)=CC=C1C1=CC=CC=C1 FPWNLURCHDRMHC-UHFFFAOYSA-N 0.000 description 1
- 101100004287 Caenorhabditis elegans best-6 gene Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004886 head movement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000005476 soldering Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
- G06Q10/043—Optimisation of two dimensional placement, e.g. cutting of clothes or wood
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05K—PRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
- H05K13/00—Apparatus or processes specially adapted for manufacturing or adjusting assemblages of electric components
- H05K13/08—Monitoring manufacture of assemblages
- H05K13/085—Production 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
- Die vorliegende Erfindung bezieht sich auf ein Verfahren und ein Gerät zur Konfigurierung einer Bauelementplazierungsmaschine zur Verbesserung der Leistungsfähigkeit.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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).
- 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.
- 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.
- 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:
- 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.
- 1 FCM machines in line
- 16 total pipette modules in line
- 16 pipette modules used
- 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.
- 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
- pick [0] part_type FREE
- pick [1] part_type 6
- pick [2] part_type 5
- pick [3] part_type 39
- pick [0] part_type 44
- pick [1] part_type 1
- pick [2] part_type 4
- pick [3] part_type 31
- 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.
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)
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)
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 |
-
1992
- 1992-10-23 US US07/965,474 patent/US5390283A/en not_active Expired - Fee Related
-
1993
- 1993-10-15 DE DE69327505T patent/DE69327505T2/de not_active Expired - Fee Related
- 1993-10-15 EP EP93202898A patent/EP0594251B1/de not_active Expired - Lifetime
- 1993-10-25 JP JP26631793A patent/JP3320523B2/ja not_active Expired - Fee Related
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 |