DE19532371A1 - Verwendung eines genetischen Algorithmus zur Optimierung von Speicherplatz - Google Patents
Verwendung eines genetischen Algorithmus zur Optimierung von SpeicherplatzInfo
- Publication number
- DE19532371A1 DE19532371A1 DE19532371A DE19532371A DE19532371A1 DE 19532371 A1 DE19532371 A1 DE 19532371A1 DE 19532371 A DE19532371 A DE 19532371A DE 19532371 A DE19532371 A DE 19532371A DE 19532371 A1 DE19532371 A1 DE 19532371A1
- Authority
- DE
- Germany
- Prior art keywords
- tree
- individuals
- individual
- selecting
- sub
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 46
- 230000002068 genetic effect Effects 0.000 title description 52
- 238000004422 calculation algorithm Methods 0.000 title description 43
- 230000005055 memory storage Effects 0.000 title description 2
- 230000013011 mating Effects 0.000 claims description 21
- 238000003491 array Methods 0.000 claims description 19
- 230000006870 function Effects 0.000 claims description 13
- 230000035772 mutation Effects 0.000 claims description 13
- 230000009467 reduction Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 description 17
- 108090000623 proteins and genes Proteins 0.000 description 14
- 230000036961 partial effect Effects 0.000 description 13
- 210000000349 chromosome Anatomy 0.000 description 12
- 102000053602 DNA Human genes 0.000 description 10
- 108020004414 DNA Proteins 0.000 description 10
- 230000006835 compression Effects 0.000 description 9
- 238000007906 compression Methods 0.000 description 9
- 238000013459 approach Methods 0.000 description 8
- 238000012217 deletion Methods 0.000 description 7
- 230000037430 deletion Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 230000006798 recombination Effects 0.000 description 5
- 238000005215 recombination Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000033458 reproduction Effects 0.000 description 3
- 108700028369 Alleles Proteins 0.000 description 2
- 241000282414 Homo sapiens Species 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 210000001217 buttock Anatomy 0.000 description 2
- OPTASPLRGRRNAP-UHFFFAOYSA-N cytosine Chemical compound NC=1C=CNC(=O)N=1 OPTASPLRGRRNAP-UHFFFAOYSA-N 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- UYTPUPDQBNUYGX-UHFFFAOYSA-N guanine Chemical compound O=C1NC(N)=NC2=C1N=CN2 UYTPUPDQBNUYGX-UHFFFAOYSA-N 0.000 description 2
- 102000004169 proteins and genes Human genes 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000002922 simulated annealing Methods 0.000 description 2
- 241000894007 species Species 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- RWQNBRDOKXIBIV-UHFFFAOYSA-N thymine Chemical compound CC1=CNC(=O)NC1=O RWQNBRDOKXIBIV-UHFFFAOYSA-N 0.000 description 2
- GFFGJBXGBJISGV-UHFFFAOYSA-N Adenine Chemical compound NC1=NC=NC2=C1N=CN2 GFFGJBXGBJISGV-UHFFFAOYSA-N 0.000 description 1
- 229930024421 Adenine Natural products 0.000 description 1
- 241000894006 Bacteria Species 0.000 description 1
- 241000222120 Candida <Saccharomycetales> Species 0.000 description 1
- 241001432959 Chernes Species 0.000 description 1
- 241000196324 Embryophyta Species 0.000 description 1
- 241000233866 Fungi Species 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 206010073261 Ovarian theca cell tumour Diseases 0.000 description 1
- 229960000643 adenine Drugs 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 229940104302 cytosine Drugs 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 210000003917 human chromosome Anatomy 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
- 230000014639 sexual reproduction Effects 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 229940113082 thymine Drugs 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
Description
Die vorliegende Erfindung bezieht sich im allgemeinen auf
einen genetischen Algorithmus und insbesondere auf die Ver
wendung eines genetischen Algorithmus, um den Computerspei
cherplatz, der spärliche und redundante Daten enthält, zu
optimieren, während ein Hochgeschwindigkeitszugriff auf die
optimierte Datenstruktur beibehalten wird.
Der natürliche Auswahlprozeß schafft ein mächtiges Werkzeug
zur Problemlösung. Dies wird durch die Natur und ihre ver
schiedenen Beispiele der biologischen Arten gezeigt, die in
verschiedenen Umgebungen überleben und sich weiter ent
wickeln. In der Natur geben komplexe Kombinationen von Ei
genschaften bestimmten biologischen Populationen die Fähig
keit sich anzupassen, zu überleben und sich in ihren Umge
bungen fortzupflanzen. Ähnlich beeindruckend ist die kom
plexe, relativ schnelle und robuste Anpassung und das rela
tiv gute Zwischenverhalten, das bei der Population von In
dividuen in der Natur als Reaktion auf Änderungen der Um
gebung auftritt. Die Verfahren der Natur zum Anpassen bio
logischer Populationen an ihre Umgebung und die Verfahren
der Natur zum Anpassen dieser Populationen an nachfolgende
Änderungen in ihren Umgebungen (einschließlich des Überle
bens und der Reproduktion der Geeignetsten) schafft ein
nützliches Modell. Dieses Modell kann verwendet werden, um
Verfahren zu entwickeln, um eine große Anzahl von komplexen
Problemen zu lösen, von denen im allgemeinen ausgegangen
wird, daß sie zur Lösung "Intelligenz" erfordern.
In der Natur ist ein Gen die grundsätzliche Funktionalein
heit, durch die die Erbinformationen von den Eltern an den
Nachwuchs weitergegeben werden. Gene erscheinen an bestimm
ten Orten (genannt Genorte) entlang der Moleküle der DNA
(Deoxyribonucleinsäure). Die DNA ist ein langes, gewindear
tiges biologisches Molekül, das die Fähigkeit hat, Erbinfor
mationen zu tragen, und das die Fähigkeit hat, als ein Mo
dell zur Erzeugung von Kopien von sich selbst zu dienen. Al
le bekannten Lebensformen auf diesem Planeten, einschließ
lich der Bakterien, Pilze, Pflanzen, Tiere und Menschen, ba
sieren auf dem DNA-Molekül.
Die genetische Codierung des DNA-Moleküls besteht aus langen
Bändern (Sequenzen) von vier möglichen Genwerten, die an den
verschiedenen Genorten entlang des DNA-Moleküls auftreten
können. Für die DNA beziehen sich die vier möglichen Genwer
te auf vier Basen, die Adenin, Guanin, Cytosin und Thymin
heißen (normalerweise durch A, G, C bzw. T abgekürzt). Folg
lich besteht der genetische Code in der DNA aus langen Bän
dern, wie zum Beispiel CTCGACGGTCTC.
Ein Chromosom besteht aus zahlreichen Genorten mit einem be
stimmten Wert (als "Allel" bezeichnet) an jeden Genort. Der
Chromosomensatz für einen Menschen besteht aus 23 Chromoso
menpaaren. Die Chromosomen zusammen schaffen die Informa
tionen und Befehle, die notwendig sind, um einen einzelnen
Menschen aufzubauen und zu beschreiben und enthalten etwa
3,000,000,000 Gene. Diese 3 Milliarden Gene bilden das so
genannte "Geonom" für einen bestimmten Menschen. Vollstän
dige Geonome der etwa 5 Milliarden lebenden Menschen bilden
zusammen den Pool der genetischen Informationen für die
menschliche Rasse. Es ist bekannt, daß bestimmte Genwerte,
die an bestimmten Orten in bestimmten Chromosomen auftreten,
bestimmte Eigenschaften des Einzelnen steuern, die Eigen
schaften wie zum Beispiel die Augenfarbe, die Anfälligkeit
gegenüber bestimmten Krankheiten, etc. einschließen.
Organismen, die aus den DNA-Informationen erzeugt wurden,
verbringen ihr Leben mit dem Versuch, mit ihrer Umgebung zu
rechtzukommen. Einige Organismen tun sich im Ringen mit oder
gegen ihre Umgebung leichter als andere. Genauer gesagt
überleben einige Organismen bis zum Alter der Reproduktion
und geben daher ihre genetische Zusammenstellung an ihren
Nachwuchs weiter. In der Natur bewirkt der Prozeß der dar
winistischen natürlichen Auswahl, daß Organismen mit Eigen
schaften, die das Überleben bis zum Alter der Reproduktion
ermöglichen, alle oder ein Teil ihrer genetischen Zusammen
setzung an den Nachwuchs weitergeben. Über eine Zeitdauer
und viele Generationen entwickelt sich die Population als
Ganzes weiter, so daß die Chromosomenbänder der Einzelnen in
der überlebenden Population Eigenschaften bewahren, die zum
Überleben des Organismus in seiner Umgebung beitragen.
Ein genetischer Algorithmus ist ein Modell einer Maschine,
die lernt, die ihr Verhalten aus einer Metapher des im vor
hergehenden beschriebenen Prozesses der Evolution ableitet.
Dies wird durch die Erzeugung einer Population aus Indivi
duen, innerhalb einer Maschine, durchgeführt, die durch
Chromosomen dargestellt sind, im wesentlichen durch einen
Satz von Zeichenbändern, die analog zu der Basis der vier
Chromosomen des DNA-Moleküls sind. Die Individuen in der Po
pulation durchlaufen dann einen Prozeß, der als Evolution
bekannt ist.
Es sollte darauf hingewiesen werden, daß die Evolution (in
der Natur oder irgendwo anders) kein Zweck oder gerichteter
Prozeß ist. Das heißt, daß kein Beweis existiert, um die An
nahme zu stützen, daß das Ziel der Evolution darin besteht,
die Menschheit zu erzeugen. Tatsächlich scheint sich der
Prozeß der Natur auf unterschiedliche Individuen zu redu
zieren, die in der Umgebung um Ressourcen in Konkurrenz ste
hen. Einige sind besser als andere; diejenigen, die besser
sind, werden am wahrscheinlichsten überleben und ihr geneti
sches Material weitergeben.
In der Natur wird die Codierung der genetischen Information
(Genom) auf eine Art durchgeführt, die eine asexuelle Repro
duktion (wie zum Beispiel Sprossung) zuläßt, was zu einem
Nachwuchs führt, der genetisch identisch mit den Eltern ist.
Die sexuelle Reproduktion ermöglicht die Erzeugung von ge
netisch unterschiedlichem Nachwuchs, der immer noch von der
selben Spezies ist. Genetische Informationen können durch
einen Prozeß, der als Rekombination bekannt ist, ebenfalls
neu angeordnet werden. In seiner einfachsten Form kann die
Rekombination durch zwei Chromosome beschrieben werden, die
Teile der genetischen Information miteinander austauschen.
Eine Rekombinationsoperation kann ebenfalls als eine Über
kreuzung bzw. Cross-Over bezeichnet werden, aufgrund der
Art, auf die das genetische Material von einem Chromosom auf
das andere übergeht.
Die Auswahl, wer sich paaren darf, ist eine Funktion der Ei
gnung des Einzelnen beim Kampf um die Ressourcen in seiner
Umgebung. Einige genetische Algorithmen verwenden eine ein
fache Funktion der Eignungsmessung (probabilistisch), um In
dividuen für weitere Operationen, wie zum Beispiel eine
Überkreuzung, auszuwählen. Andere Ausführungen verwenden ein
Modell, bei dem bestimmte, zufällig ausgewählte Individuen
in einer Teilgruppe konkurrieren und das Geeignetste wird
ausgewählt. Dies wird als Turnierauswahl bzw. Tournament
Selection bezeichnet und ist die Form der Auswahl, die in
der Natur verwendet wird. Die zwei Prozesse, die am meisten
zur Evolution beitragen, sind die Überkreuzung und die auf
der Eignung basierende Auswahl.
Eine Mutation spielt in diesem Prozeß ebenfalls eine Rolle,
obwohl sie nicht die dominante Rolle ist. Eine Mutation
tritt auf, wenn genetisches Material zufällig verändert
wird.
Genetische Algorithmen werden für eine Anzahl von unter
schiedlichen Anwendungsbereichen verwendet. Ein Beispiel
hierfür schließt multidimensionale, mehr-modale Optimie
rungsprobleme ein, bei denen das Zeichenband des Chromosom
verwendet werden kann, um die Werte von bestimmten Parame
tern, die optimiert werden, zu codieren. Dies ist bei der
vorliegenden Erfindung der Fall.
In der Praxis wird ein genetisches Modell einer Berechnung
durch Vorsehen von Arrays aus Bits oder Zeichen ausgeführt,
um die Chromosomen darzustellen. Einfache Bitmanipulations
operationen ermöglichen die Ausführung einer Überkreuzung,
Mutation und von anderen Operationen. Obwohl ein erheblicher
Forschungsaufwand bezüglich Bändern mit variabler Länge und
anderen Strukturen aufgewendet wurde, ist der Hauptteil der
Arbeit mit genetischen Algorithmen auf Zeichenbänder mit
fester Länge fokussiert.
Wenn der genetische Algorithmus ausgeführt wird, wird dies
normalerweise auf eine Art getan, die den folgenden Zyklus
einschließt: Beurteile die Eignung aller Individuen in der
Population; Erzeuge eine neue Population durch Durchführen
von Operationen, wie zum Beispiel eignungsproportionale Aus
wahl, Überkreuzung und Mutation von Individuen, deren Eig
nung gerade gemessen wurde; Entfernen der alten Population;
und Durchführen einer Iteration mit der neuen Population.
Eine Iteration dieser Schleife wird als Generation bezeich
net. Es existiert kein theoretischer Grund dafür, daß dies
ein Ausführungsmodell ist. Tatsächlich ist dieses betonte
Verhalten bei Populationen in der Natur als Ganzes nicht zu
sehen, aber es ist ein geeignetes Ausführungsmodell.
Die erste Generation dieses Prozesses ist bezüglich einer
Population von zufällig erzeugten Individuen wirksam. Von
dort ab ist die genetische Operation zusammen mit der Eig
nungsmessung wirksam, um die Population zu verbessern.
Genetische Algorithmen sind sehr parallele Algorithmen, die
Populationen aus einzelnen mathematischen Objekten (typi
scherweise binäre Zeichenbänder mit fester Länge) in neue
Populationen übertragen, unter Verwendung von Operationen,
die gemäß 1) einer natürlichen genetischen Operation, wie
zum Beispiel der sexuellen Rekombination oder Überkreuzung
und 2) der Eignungsproportionsauswahl (darwinistisches Über
leben des Geeignetsten) strukturiert sind. Genetische Algo
rithmen beginnen mit einer anfänglichen Population von Indi
viduen, wie es oben beschrieben ist, und beurteilen dann
iterativ die Individuen in der Population bezüglich ihrer
Eignung bezüglich der Problemumgebung und führen genetische
Operationen bezüglich mehrerer Individuen in der Population
durch, um eine neue Population zu erzeugen. John Holland von
der Universität von Michigan stellte die Pionierformel des
genetischen Algorithmus oder der binären Zeichenbänder mit
fester Länge in "Adaptation in Artificial and Natural Sy
stems", von Professor John H. Holland, 1975 vor. Holland
stellte neben anderen Dingen fest, daß der genetische Algo
rithmus ein mathematisch nahezu optimaler Ansatz zur An
passung dahingehend ist, daß er das erwartete Gesamtergebnis
maximiert, wenn der adaptive Prozeß als ein Programm für
einen mehrarmigen Münzautomaten betrachtet wird, der eine
optimale Zuordnung seiner zukünftigen Versuche auf der
Grundlage der derzeitig verfügbaren Informationen erfordert.
Neue Arbeiten bezüglich genetischer Algorithmen und geneti
scher Klassifizierersysteme finden sich in "Preceding of an
International Conference on Genetic Algorithms and Their
Applications", John J. Grefenstette (1985), "Genetic Algo
rithms and Their Applications: Proceedings of the Second
International Conference on Genetic Algorithms", John J.
Grefenstette (1987), "Genetic Algorithms in Search, Optimi
zation, and Machine Learning", David E. Goldber (1989),
"Genetic Algorithms and Simulated Annealing", Lawrence Davis
(1987) und "Proceedings of the Third International Con
ference of Genetic Algorithms", J.D. Schaffer (1989).
In "Adaptation in Artificial and Natural Systems" faßt
Holland seine Forschung über genetische Algorithmen zusammen
und präsentiert eine mathematische Gesamttheorie der Anpas
sung sowohl für natürliche als auch künstliche Systeme. Ein
Schlüsselteil dieses Buches beschreibt einen genetischen Al
gorithmus, der nach dem Verfahren der biologischen Anpassung
der Natur strukturiert ist. Zusätzliche Informationen finden
sich im US-Patent Nr. 4,697,242 von Holland und im US-Patent
Nr. 4,881,178 von Holland, deren Offenbarungsgehalt hiermit
durch Bezugnahme aufgenommen ist.
Empirische Studien durch verschiedene Forscher haben die
Fähigkeiten solcher genetischen Algorithmen in vielen diver
sen Bereichen gezeigt, einschließlich der Funktionsoptimie
rung, des Betriebs von Gaspipelines und verschiedenen ande
ren, die von Goldberg besprochen werden.
In dem Kapitel mit dem Titel "Ein Überblick", das in der
Sammlung "Genetic Algorithms and Simulated Annealing" von
1987 enthalten sind, führen Lawrence Davis und Martha
Steenstrup aus, daß "in allen Arbeiten von Holland und in
der Arbeit von vielen seiner Studenten Chromosomenbitströme
Listen aus Nullen und Einsen sind". Zusätzlich führen sie
fort, "einige Forscher haben die Verwendung von anderen Dar
stellungen, die oft in Verbindung mit industriellen Algor
ithmen sind, erforscht. Beispiele für andere Darstellungen
schließen eine geordnete Liste (für die Tonnenverpackung),
eingebettete Listen (für Zeitplanprobleme in einer Fabrik),
verschiedene Elementlisten (für ein Halbleiterlayout) und
die Darstellungen, die von Glover und Grefenstette in diesem
Band verwendet werden, ein".
Einige Forscher haben versucht, Such- und Optimierungspro
bleme unter Verwendung von Schematas zu lösen, die gemäß der
Evolution strukturiert sind, die Mutation-plus-erhalte-den-
Besten-Strategien verwenden. Die wenigen Ergebnisse, die
durch diese Bemühungen erhalten werden, sind bezüglich be
stimmter Anwendungsgebiete sehr spezifisch und reflektieren
größtenteils die Klugheit der Ausführung, und nicht die
Nützlichkeit einer allgemeinen Technik zum Erreichen von An
passungsverbesserungen bezüglich der Eignung in der Popula
tion. Es ist wichtig darauf hinzuweisen, daß die Mutation
nicht die primäre Einrichtung ist, durch die biologische Po
pulationen in der Natur ihre Eignung verbessern, und daß
diese nicht die primäre Einrichtung ist, die in der vorlie
genden Erfindung verwendet wird.
Seit dem Buch von Holland im Jahr 1975 haben Holland und
verschiedene Kollegen eine Anwendung von herkömmlichen gene
tischen Algorithmen, die als das genetische Klassifizierer
system bezeichnet sind, entwickelt. Das Klassifizierersystem
ist eine Gruppe von Regeln. Jede Regel besteht aus einem be
dingten Teil und einem Aktionsteil (zum Beispiel die IF THEN
Regel). Sowohl der bedingte Teil als auch der Aktionsteil
jeder Regel sind den Individuen in dem herkömmlichen Algo
rithmus dahingehend ähnlich, daß sie Bänder aus Nullen und
Einsen mit fester Länge sind. In einem Klassifizierersystem
werden Meldungen von der Umgebung empfangen und rufen die
jenigen Regeln auf, deren bedingter Teil mit der ankommenden
Meldung übereinstimmt. Diese Anzeige löst den Aktionsteil
der Regel aus. Der Aktionsteil der Regel sendet eine neue
Meldung aus.
Klassifizierersysteme sind in dem Artikel "Cognitive Systems
Based On Adaptive Algorithms", 1978 beschrieben. (John
Holland und Judith S. Reitman). Bei Klassifizierersystemen
wird ein Kredit Ketten von Individuen zugeordnet, die unter
Verwendung eines Kreditzuordnungsschemas, das als "Eimer
kette" bekannt ist, aufgerufen werden. Der Holland-Prozeß
ist eine Kombination eines Klassifizierersystems und eines
"Eimerketten"-Algorithmus.
Im US-Patent Nr. 5,343,554 von John R. Koza werden geneti
sche Algorithmen, wie sie im vorhergehenden beschrieben wur
den, dahingehend erweitert, was nun als genetische Program
mierung bekannt ist. Eine der primären Aufgaben der geneti
schen Programmierungen besteht darin, die Begrenzung der
Verwendung von binären Bändern mit fester Länge, um die Po
pulation darzustellen, zu entfernen. Da die genetische Pro
grammierung nicht innerhalb des Umfangs der vorliegenden Er
findung liegt, ist eine kurze Beschreibung ausreichend.
Bei einem Ausführungsbeispiel gemäß der US-A-5,343,554 er
zeugt die Vorrichtung und der Prozeß anfänglich eine Popula
tion von Entitäten, die entwickelt sind, um automatisch
einen Satz von Datenwerten in eine Prozedur oder eine Funk
tion zu codieren, die fähig ist, diese Datenwerte anzu
nähern. Folglich können durch Verwendung dieses Ausführungs
beispiels Daten, wie zum Beispiel Videodaten, Audiodaten
oder Bilddaten, in eine Funktion umgewandelt werden, deren
Darstellung günstiger zu speichern und zu übertragen ist,
als die Daten selbst.
Die Funktion, die unter Verwendung der Erfindung gemäß der
US-A-5,343,554 erzeugt wird, ist eine Annäherung der ur
sprünglichen Daten. Für die oben aufgezählten Datentypen
kann diese Annäherung ausreichend sein. Bei exakteren Daten
jedoch, wie zum Beispiel Computerprogrammen, Computerdaten
banken und ähnlichem, wird eine Annäherung an die ursprüng
lichen Daten nicht ausreichend sein. Es sollte darauf hinge
wiesen werden, daß unter einigen Umständen das Ausführungs
beispiel gemäß der US-A-5,343,554 tatsächlich die ursprüng
lichen Daten reproduzieren kann, dies ist jedoch nicht
garantiert. Einfach gesagt bietet der Ansatz gemäß der
US-A-5,343,554 keine Reziprozitätseigenschaft und ist daher
ein "verrauschter" Ansatz, wie es bei der Informationstheo
rie bezeichnet wird.
Ein globales Computersystem erfordert mehrsprachige Anwen
dungen und Plattformen mit einem Minimum an Codekomplexität
und Speicheranforderungen. Mehrsprachige Anforderungen ent
sprechen jedoch fast immer einer zusätzlichen Codekomplexi
tät. Mit zunehmender Codekomplexität folgen die Entwick
lungs- und Wartungskosten. Dieser nahezu exponentielle Ko
stenanstieg kann einige internationale Projekte unmöglich
machen. Zusätzlich zu den Kosten haben komplexe Anwendungen
im allgemeinen einen höheren Speicherverbrauch. Folglich
wird das Ausführen bestimmter Anwendungen auf billigeren
Plattformen unmöglich.
Ein Aspekt des Codekomplexitätsproblems wurde durch das Uni
code Konsortium mit der Entwicklung eines Zwei-Byte-Zeichen
codierstandards angesprochen, der Zeichen aus allen Schrif
ten der Welt sowie der technischen Symbole, die allgemein
verwendet werden, einschließt. Diese Zeichen schließen
Schriften aus Ländern, wie zum Beispiel Japan, China, Korea,
Rußland, Saudi Arabien, Frankreich, etc. ein. Da er eine Co
dierung mit fester Breite verwendet, kann eine Unicode-Com
pliant-Anwendung für unterschiedliche Länder leicht lokali
siert werden.
Das Problem der großen Speicheranforderungen bleibt jedoch,
insbesondere wenn man betrachtet, daß der Unicode-Standard
einen Coderaum für 65 536 Zeichen hat. Um die Rückwärtskom
patibilität sicherzustellen, müssen Abbildungen zwischen
dem Unicode und den anderen Standards der Welt bereitge
stellt werden. Es sind diese Abbildungen, die zu den aus
uferndsten Speicheranforderungen führen.
Eine solche Abbildung bezieht sich auf Shift-Jis, den her
kömmlichsten Zeichensatzstandard, der in Japan verwendet
wird. Aufgrund der Popularität des Shift-Jis ist es zwin
gend, daß Unicode-Compliant-Plattformen eine Abbildung von
Shift-Jis auf Unicode für die Rückwärtskompatibilität schaf
fen. Nachdem der Shift-Jis jedoch 7037 Zeichen (von denen
6942 zwei Byte lang sind) definiert, die über den Bereich
von 32 bis 60 068 ausgebreitet sind, und der Unicode derzei
tig über 28 000 Zeichen (von denen alle zwei Byte lang sind)
über den Bereich von 0 bis 65 534 definiert, könnte eine
solche Abbildung eine erhebliche Speichermenge erfordern.
Das Problem besteht dann darin, den Speicher, der für eine
Abbildung des Shift-Jis auf den Unicode erforderlich ist,
ohne Verlust der Zugriffszeit zu minimieren.
Ein Verfahren zum Bereitstellen einer Abbildung von Shift-
Jis auf den Unicode besteht in der Verwendung eines einfa
chen Arrays, bei dem der Index auf das Array der Shift-Jis-
Code für ein bestimmtes Zeichen ist und der Wert an dieser
Position der Unicode-Code für dieses Zeichen ist. Dieses
Verfahren würde folgende Anforderungen haben:
60 038 Codes × 2 Byte = 120 072 Bytes.
Dies ist offensichtlich keine optimale Lösung, macht aber
das Problem deutlich. Um das Problem weiter zu erforschen,
sei eine einfache Nachschlagtabelle angenommen, bei der die
erste Spalte der Tabelle den Shift-Jis-Code für ein be
stimmtes Zeichen enthält, und bei dem die zweite Spalte den
Unicode-Code für das Zeichen enthält. Dieses Verfahren würde
erfordern:
7037 Zeichen × 2 Byte × 2 Spalten = 28 148 Bytes.
Zusätzlich erfordert dieses Verfahren eine Suchoperation, um
die erforderlichen Daten zu finden. Unter Verwendung eines
binären Suchverfahrens würde das Nachschlagen im schlimmsten
Fall log₂ (7,037) ≅ 12 Vergleiche erfordern.
Ein verbreitetes Verfahren zum Reduzieren der Größe eines
Datenblocks ist die binäre Kompression. Verschiedene Algo
rithmen existieren, aber jeder leidet an drei signifikanten
Problemen:
- 1) Wenn eine große Datenmenge dekomprimiert wird, muß sie irgendwo gespeichert werden. Daher muß Speicherbereich zum Empfangen der unkomprimierten Blöcke beiseite ge bracht werden;
- 2) der Algorithmus kann schwierig zu programmieren sein, und der erforderliche Codeplatz kann die Einsparungen durch das Komprimieren der Daten aufbrauchen; und
- 3) nachdem die Daten dekomprimiert werden müssen, sind die Zugriffszeiten lang.
Sogar ohne diese Probleme erreicht die binäre Kompression
selten mehr als eine 50%ige Kompression. Angenommen man hat
mit dem Nachschlagtabellenansatz begonnen, so würde man im
mer noch über 14 kB Platz benötigen, um die komprimierten
Daten zu speichern.
Es ist die Aufgabe der vorliegenden Erfindung, ein Verfahren
und eine Vorrichtung zum Speichern ursprünglicher Daten in
einer minimalen Größe eines Computerspeichers zu schaffen.
Diese Aufgabe wird durch ein Verfahren nach Anspruch 1 und
5, und durch ein Computersystem nach Anspruch 8 gelöst.
Die vorliegende Erfindung beschreibt ein Verfahren zum Spei
chern ursprünglicher Daten in einer minimalen Größe eines
Computersystems. Die vorliegende Erfindung wird dadurch aus
geführt, daß zuerst eine Mehrzahl von Individuen initiali
siert werden. Für jedes Individuum wird ein Baum bzw. Trie
aufgebaut (eine Definition des Begriffs "Trie" findet sich
in "Algorithms", R. Sedgewick, 1983, Kapitel 17, Seiten
216-217), wobei der Baum die ursprünglichen Daten darstellt.
Der Baum umfaßt einen Wurzelknoten, eine Mehrzahl von Teil
knoten und Teilarrays in einer hierarchischen Anordnung. Das
Individuum zeigt die Anzahl der Teilknoten, Teilarrays und
die Anzahl der Einträge in jedem Teilarray an. Innerhalb
eines Baums wird jedes Teilarray gelöscht, das redundante
Daten enthält, und jeder der Teilknoten, der redundante Da
ten enthält, wird entfernt. Eine Überlappungsreduzierungs
funktion wird auf den Baum angewendet. Mit dem aufgebauten
Baum wird die Größe des Baums bestimmt, und die Größe wird
dem Individuum zugeordnet.
Als nächstes wird eine Paarungspopulation auf der Grundlage
der Baumgröße ausgewählt. Individuen mit relativ kleinen
Baumgrößen empfangen mehrere Kopien in der Paarungspopula
tion, während diejenigen Individuen mit relativen großen
Baumgrößen nicht ausgewählt werden. Es wird eine Operation
bzgl. der Paarungspopulation ausgewählt und durchgeführt,
wobei die Operation zumindest eine der Operationen der Über
kreuzung oder Mutation ist. Wenn die ausgewählte Operation
eine Überkreuzung ist, wird zumindest ein neues Individuum
durch die Überkreuzung unter Verwendung von zumindest zwei
Individuen aus der Paarungspopulation erzeugt. Dann wird ein
neues Individuum zu der Mehrzahl der Individuen hinzugefügt.
Wenn die ausgewählte Operation die Mutation ist, wird ein
Individuum durch stochastisches Ändern einer Eigenschaft des
Individuums mutiert, und dann wird das mutierte Individuum
in der Mehrzahl der Individuen angeordnet. Für eine vorbe
stimmte Anzahl von Generationen wird eine Iteration durchge
führt. Abschließend wird im Speicher der Baum mit der klein
sten Größe beibehalten.
Nachfolgend werden unter Bezugnahme auf die beiliegenden
Zeichnungen bevorzugte Ausführungsbeispiel der vorliegenden
Erfindung näher beschrieben. Es zeigen:
Fig. 1 eine graphische Darstellung eines hybriden Mehr
weg-Radixsuchbaums bzw. eines hybriden Mehrweg-Ra
dixsuchtrie;
Fig. 2 einen modifizierten hybriden Mehrweg-Radixsuchbaum
für denselben Suchraum aus Fig. 1;
Fig. 3 einen modifizierten hybriden Mehrweg-Radixsuchbaum
eines Suchraums, der für beispielhafte Zwecke ver
wendet wird;
Fig. 4 den modifizierten hybriden Mehrweg-Radixsuchbaum
aus Fig. 3 nachdem alle leeren Teilarrays gelöscht
sind;
Fig. 5 den modifizierten hybriden Mehrweg-Radixsuchbaum
aus Fig. 4, nachdem leere Teilknoten gelöscht sind;
Fig. 6 das Ergebnis der Anwendung der Überlappung auf den
modifizierten hybriden Mehrweg-Radixsuchbaum aus
Fig. 5;
Fig. 7 einen möglichen Suchschlüssel und Partitionen, die
verwendet werden, um einen modifizierten hybriden
Mehrweg-Radixsuchbaum darzustellen;
Fig. 8 eine mögliche Binärcodierung, die verwendet wird,
um einen modifizierten hybriden Mehrweg-Radixsuch
baum darzustellen;
Fig. 9 Teilergebnisse von Brechstangenberechnungen, um den
optimalen Baum für eine Abbildung eines Shift-Jis
in den Unicode zu finden;
Fig. 10 ein Flußdiagramm auf einer hohen Ebene, das die
Schritte zeigt, die notwendig sind, um einen gene
tischen Algorithmus gemäß der vorliegenden Erfin
dung auszuführen;
Fig. 11 ein Flußdiagramm, das den Schritt zeigt, der ver
wendet wird, um die Eignung der einzelnen Mitglie
der der Population zu beurteilen;
Fig. 12 einen Vergleich der relativen Kompressionsverhält
nisse für verschiedene Datentypen unter Verwendung
der vorliegenden Erfindung und der verbreiteten
Kompressionstechnik; und
Fig. 13 ein Blockdiagramm auf einer hohen Ebene eines Com
putersystems für allgemeine Zwecke, das gemäß der
vorliegenden Erfindung verwendet wird.
Die vorliegende Erfindung ist nicht auf ein bestimmtes Aus
führungsbeispiel beschränkt, das hier beschrieben ist. Das
bevorzugte Ausführungsbeispiel der vorliegenden Erfindung
verwendet einen genetischen Algorithmusansatz, um die Größe
einer Abbildung des Shift-Jis (Japans meistverbreitetster
Zeichensatz) in Unicode zu minimieren. Dieses Verfahren ver
wendet eine Baumstruktur, die einen schnelleren und spei
chereffizienteren Zugriff schafft als andere Kompressions
schemata, und die die reguläre Natur von Zwischenräumen im
Shift-Jis-Standard durch die Verwendung von einfachen Baum
minimierungsoperatoren ausnutzt, nämlich:
- - Löschung eines leeren Teilarrays
- - Löschung eines inneren Teilknotens
- - Überlappung.
Bei einem Radixsuchbaum bzw. einem Radixsuchtrie werden die
Bits der Suchschlüssel verwendet, um den Baum zu durchlau
fen, und nicht deren Werte, so daß ein Vollschlüsselver
gleich die Suche beendet. Mit anderen Worten erfordert die
Suche im schlimmsten Fall O(k) Vergleiche, wobei k gleich
der Anzahl von Bits in dem längsten Suchschlüssel ist.
Ein hybrider Mehrweg-Radixsuchbaum für den Suchraum {A, B,
C, D, E, F, G, H} ist in Fig. 1 gezeigt. Die Tatsache, daß
mehr als ein Bit verwendet werden kann, wenn die Verbindung
zum Durchlaufen bestimmt wird, macht diesen mehrwegig. Da
sich die Knotentypen, die durch die Nummer der Zeiger in
einem Teilknoten klassifiziert sind, von Ebene zu Ebene un
terscheiden können, ist der Baum hybrid. Es wird darauf hin
gewiesen, daß Datenelemente niemals mehr als n Schichten
tief sind, wobei n die Länge des Suchschlüssels in Bits ist.
In dem Baum in Fig. 1 sind alle Schlüssel drei Bit lang. Die
Suche mit dem Schlüssel 010 würde C ergeben. Die ersten zwei
Bits des Schlüssels, 01, bestimmen, welche Verbindung von
der Wurzel auf die zweite Ebene zu nehmen ist; das letzte
Bit, 0, bestimmt, welche Verbindung von der zweiten Ebene
zur dritten zu nehmen ist.
Um die vorliegende Erfindung besser anzupassen, ist eine
kleinere Modifikation des normalen hybriden Mehrweg-Radix
suchbaums durch Kombination der niedrigsten Ebene der Teil
knoten in Teilarrays mit gleicher Größe durchgeführt. Bei
dem Baum in Fig. 2 bestimmen die ersten zwei Bits eines
Schlüssels, welches Teilarray zu verwenden ist, während der
letzte Bit als Teilarrayindex dient. Es wird darauf hinge
wiesen, daß keines der Merkmale des gewöhnlichen hybriden
Mehrweg-Radixsuchbaums verloren wurde. Aus Gründen der Kon
sistenz werden die "modifizierten hybriden Mehrweg-Radix
suchbäume" einfach als Bäume bezeichnet.
Auf den ersten Blick wird ein Fachmann verstehen, daß Bäume
dazu tendieren, sehr groß zu sein, besonders wenn die Anzahl
der Schichten groß ist. Zum Speichern und Wiedergewinnen von
spärlichen oder redundanten Daten kann ein Baum jedoch ein
fach mittels drei einfacher Minimierungsoperatoren minimiert
werden.
Als erstes sei der modifizierte Baum aus Fig. 3 betrachtet.
Dieser Baum bildet die ganzen Zahlen 0-128 auf das Al
phabet A-Z ab, enthält aber spärliche (nicht abgebildete
ganze Zahlen werden auf 0 abgebildet) und redundante Daten.
Es sei angenommen, daß ein Zeiger zwei Bit lang ist und ein
Teilarrayelement ein Bit lang ist, dieser Baum würde Folgen
des erfordern:
28 Zeiger * 2 Byte + 128 Teilarrayelemente = 184 Byte.
Dies ist tatsächlich groß, wenn es mit den 128 Bytes ver
glichen wird, die für den einfachen Teilarrayansatz benötigt
werden. Die nächsten Abschnitte stellen jedoch die Baummi
nimierungsoperatoren dar und analysieren diese.
Der Minimierungsoperator zum Löschen eines leeren Teilarrays
nutzt regelmäßige Zwischenräume in der Abbildung aus. Das
Aufbrechen der Abbildungsdaten in Teilarrays derart, daß
viele leere Teilarrays auftreten, führt zu größeren Einspa
rungen durch Löschen dieser Teilarrays. Das Anwenden dieses
Operators auf den Baum aus Fig. 3 ergibt den Baum aus Fig.
4.
Unter Verwendung derselben Größenanordnungen wie für Fig. 3
würde dieser Baum erfordern:
28 Zeiger * 2 Byte + 80 Teilarrayelemente = 136 Bytes.
Als nächstes, nach dem Löschen aller leeren Teilarrays, kön
nen sogar noch mehr Einsparungen durch Löschen von internen
Teilknoten, deren Zeiger alle 0 sind, erreicht werden. Das
Anwenden dieses Operators auf dem Baum aus Fig. 4 ergibt den
Baum aus Fig. 5. Wiederum unter Verwendung derselben Größen
annahmen erfordert dieser Baum:
22 Zeiger * 2 Byte + 80 Teilarrayelemente = 124 Bytes.
Abschließend wird der Schwanzabschnitt eines Teilarrays mit
dem Kopfabschnitt eines anderen verglichen. Wenn sie über
einstimmen, werden die zwei Teilarrays überlappt, wobei je
der Zeiger eingestellt wird, wie dies notwendig ist. Fig. 6
zeigt das Ergebnis der Anwendung der Überlappung auf den
Baum in Fig. 5.
Das Überlappen kann in zwei Typen klassifiziert werden. Die
Überlappung vom Typ I ist durch die Überlappung von willkür
lichen Teilarrays charakterisiert, ohne bestimmte Kenntnis
der Daten, die verglichen werden. Ein extremer Fall würde
auftreten, wenn sich herausstellt, daß ein nicht-leerer
Teilarray eine exakte Kopie eines weiteren ist. Das erste
und das letzte Paar der Teilarrays in Fig. 5 stellen eine
Überlappung vom Typ I beispielhaft dar. Die Durchführung der
Überlappung vom Typ I ist berechnungsmäßig extrem aufwendig.
Ein nicht-optimaler Algorithmus zum Durchführen der Überlap
pung vom Typ I ist nachfolgend beschrieben:
- 1) Markiere jedes Teilarray in der Datei A = a₁, a₂, . . . an, wobei n die gesamte Anzahl von Teilarrays ist;
- 2) Wähle ein Teilarray ai aus;
- 3) Finde für ai das beste Überlappungs-Teil-Array aj, wo bei gilt 1 j n, i ≠ j und aj ist noch nicht als überlappt markiert;
- 4) Erhöhe die Gesamteinsparung um die Größe der Überlap pung zwischen ai und aj;
- 5) wenn die Einsparung größer als 0 ist, markiere aj als überlappt;
- 6) Erhöhe i; und
- 7) Wiederhole die Schritte 3 bis 6 für alle ai.
Es wird darauf hingewiesen, daß für diesen Algorithmus nicht
garantiert ist, daß er die optimalen Einsparungen einer
Überlappung vom Typ I ergibt, aber er ist einfach auszufüh
ren und weist eine schnellere Ausführungszeit auf als die
optimale Lösung. Die Berechnung mittels diesem Algorithmus
ist immer noch aufwendig. Unter der Annahme, daß jedes Teil
array eine Länge l hat, erfordert die Überlappung vom Typ I
O(n²l²)-Vergleiche im schlimmsten Fall. Das Ersetzen von
(Dateigröße/n) für l ergibt O(Dateigröße ²).
Die Überlappung vom Typ II ist durch die Tatsache gekenn
zeichnet, daß alle übereinstimmenden Teilarraypositionen
exakt denselben Wert enthalten. In den meisten Fällen wird
dieser Wert 0 sein. Ein Beispiel einer Überlappung vom Typ
II ist in dem dritten und vierten Teilarray in Fig. 5 ge
zeigt. Das Verfahren bezüglich optimaler Einsparungen für
diesen Typ der Überlappung lautet wie folgt:
- 1) Bestimmen der Anzahl der überlappbaren Elemente am Schwanz jedes Teilarrays;
- 2) Bestimmen der Anzahl von überlappbaren Elementen am Kopf jedes Teilarrays;
- 3) Sortieren der Schwanzinformationen aus dem Schritt l in abnehmender Reihenfolge;
- 4) Sortieren der Kopfinformationen aus Schritt 2 in abnehmender Reihenfolge; und
- 5) Vergleichen der Köpfe und Schwänze entsprechend, um sicherzustellen, daß ein Teilarray nicht mit sich selbst überlappt wird.
Unter Verwendung derselben Größenannahmen erfordert dieser
Baum:
22 Zeiger * 2 Byte + 62 Teilarrayelemente = 106 Bytes.
Es wird darauf hingewiesen, daß dies eine Einsparung von 22
Byte gegenüber dem Nachschlagtabellenverfahren ist. Dies ist
eine 17%ige Einsparung! Zusätzlich weist der Baum eine Such
zeit auf, die etwa die Hälfte derjenigen einer binären Suche
über denselben Raum im schlimmsten Fall ist.
Dieses künstliche Beispiel wurde dargestellt, um die Baum
minimierungsoperatoren einzuführen. Gute Ergebnisse wurden
durch Aufbrechen des Suchraums in Teilarrays mit Länge 8 und
durch Verwendung von drei Ebenen von Knoten erhalten. Es
existieren jedoch viele andere Wege, um einen Baum über die
sem Suchraum zu definieren. Was wäre bei einem Aufbrechen
des Suchraums in Teilarrays mit einer Länge von 64 und einer
Ebene von Knoten? Ein solcher Baum würde, sogar nach Anwen
den der Baumminimierungsoperatoren, erfordern:
2 Zeiger * 2 Byte + 126 Teilarrayelemente = 130 Byte.
Mit anderen Worten hängt die Größe der Einsparungen, die
durch einen minimierten Baum erhalten werden, von drei Fak
toren ab:
- 1) die Größe der Teilarrays;
- 2) die Anzahl der Schichten; und
- 3) die Art des Teilknotens bei jeder Ebene.
Wenn der Suchraum groß genug ist, oder wenn die Daten eine
Überlappung vom Typ I erfordern, kann es zu schwierig sein,
den optimalen Baum durch empirische Studien oder Brechstan
genverfahren zu finden. Dies ist die Art von Problem, bei
denen genetische Algorithmen am effektivsten sind. Das Ab
bildungsproblem des Shift-Jis in den Unicode hat einen Such
raum von 65 565 Punkten, was diesen zu einem guten Kandida
ten für eine Minimierung unter Verwendung der vorliegenden
Erfindung machen.
Was benötigt wird, ist eine binäre Darstellung aller mögli
chen Bäume, die verwendet werden können, um die Abbildung
des Shift-Jis in den Unicode zu speichern. Mit einem gege
benen Suchschlüssel mit der Länge von l Bits wird darauf
hingewiesen, daß (l-1) Positionen existieren, um den Schlüs
sel zu unterteilen, wodurch die Größe der Teilarrays, die
Anzahl der Schichten der Knoten und die Arten der Knoten in
jeder Schicht bestimmt werden.
Es sei der Baum in Fig. 3 und der Suchschlüssel aus Fig. 7
angenommen. Für diesen Suchraum ist 1 = 7. Zuerst werden die
Bits in dem Suchschlüssel von links nach rechts beginnend
mit 1 numeriert. Für ein Teilarray mit der Größe 8 sind die
letzten drei Bits als der Index wirksam. Mit anderen Worten
erzeugt die Trennung der Schlüssel zwischen den Bitpositio
nen 4 und 5 das erwünschte Teilarray. Als nächstes wird eine
Schicht mit 8 Teilknoten mit zwei Zeigern pro Knoten durch
Teilen der Schlüssel zwischen den Bitpositionen 3 und 4 er
zeugt. In der nächsten Schicht werden 4 Teilknoten mit 2
Zeigern durch Teilen des Schlüssels zwischen der Bitposition
2 und 3 erzeugt. Abschließend verwendet die oberste Schicht
mit einem Wurzelknoten mit 4 Zeigern die beiden übrig ge
bliebenen Bits.
Es ist leicht zu sehen, daß mit einem gegebenen Suchschlüs
sel der Länge l Bits genau 2(l-1) unterschiedliche Bäume
existieren, die den Suchraum speichern können. Daher ist es
möglich, irgendeinen dieser Bäume als ein (l-1)-Bit langes
binäres Band zu codieren, wobei eine 1 an der Bitposition n
bei der Codierung anzeigt, daß der Schlüssel zwischen den
Bitpositionen n und (n+1) getrennt wird. Fig. 8 zeigt den
getrennten Schlüssel und die Baumcodierung für dasselbe Bei
spiel, das in Fig. 7 verwendet wurde.
Da Shift-Jis-Codes als Suchschlüssel verwendet werden und
die Shift-Jis-Codes alle durch zwei Bytes dargestellt werden
können, sind die Schlüssel 16 Bit lang. Daher ist der Baum
zum Codieren des genetischen Algorithmus 15 Bit lang, be
stehend aus 15 1-Bit-Feldern. Eine 1 in einem Feld n der ge
netischen Algorithmuscodierung zeigt an, daß die Schlüssel
zwischen den Bitpositionen n und (n+1) getrennt werden. Es
wird darauf hingewiesen, daß bezüglich keines der Felder
eine spezielle Beschränkung existiert.
Es existieren keine mathematischen Formeln, auf die eine Ei
gnungsfunktion basiert sein kann. Statt dessen wird die Ei
gnungsfunktion aufgebaut, wie dies in Fig. 11 gezeigt ist.
Mit gegebener Baumcodierung:
- 1) Aufbau des Baums (1100);
- 2) Anwenden der Null-Teilarray-Löschung (1101);
- 3) Anwenden der Teilknoten-Löschung (1102);
- 4) Anwenden der Überlappung (1103); und
- 5) Berechnen der Größe des Baums in Bytes, unter der Annahme, daß ein Zeiger 4 Byte lang ist und ein Teilarrayelement (Unicode-Code) 2 Byte lang ist (1104).
Es wird darauf hingewiesen, daß keine Mehraufwandfunktionen
erforderlich sind.
Für diese Anwendung wird die Turnierauswahl mit einer Tur
niergröße von 2 verwendet. Eine Einzelpunktüberkreuzung
wurde verwendet, mit einer Wahrscheinlichkeit der Überkreu
zung von Pc = 0,9. Eine Mutation wurde ebenfalls mit einer
Wahrscheinlichkeit der Mutation von Pm = 1/(Populations
größe) für alle Versuche verwendet. Alle Versuche liefen für
100 Generationen. Jeder Versuch wurde mit einer unterschied
lichen zufälligen Saatnummer begonnen.
Eine Beobachtung dieses Problems muß gemacht werden: die
Abbildung des Shift-Jis in den Unicode enthält keine Typ I
überlappbaren Daten. Nachdem dies der Fall ist, wurde die
Überlappung vom Typ I aus der Ausführung entfernt, um die
Aufgabenfunktion zu beschleunigen. Ein weiterer positiver
Nebeneffekt dieses bestand darin, daß ein Brechstangenver
fahren zum Finden des globalen Optimums möglich war. Es
dauerte mehrere Stunden auf einer HP700 Workstation um die
sen zu beenden, aber er schafft ein Bild von dem, wie der
Suchraum aussieht, und einen wahren Wert für das globale Op
timum, 15 684 Bytes. Fig. 9 zeigt Teilergebnisse der Brech
stangenberechnungen.
In Fig. 10 ist ein vereinfachtes Flußdiagramm eines allge
meinen genetischen Algorithmus gezeigt, der bei dem bevor
zugten Ausführungsbeispiel verwendet wird. Vor dem Beginn
eines genetischen Algorithmus muß eine anfängliche Popula
tionsgröße (P) und die Anzahl der Generationen ausgewählt
werden. Mit zunehmender Populationsgröße (P) tritt die Kon
vergenz des genetischen Algorithmus im allgemeinen bei we
niger Generationen auf. Die erhöhte Populationsgröße hat
jedoch einen nachteilhaften Effekt auf die Ausführungszeit
des genetischen Algorithmus für die einzelne Generation.
Mit einer Populationsgröße von P initialisiert der geneti
sche Algorithmus zuerst die Population auf eine im allge
meinen zufällige Abtastung 1002. Als nächstes wird bei 1003
die Eignung jedes Individuums in der Population (P) beur
teilt. Wenn die Anzahl der ausgeführten Generationen gleich
der maximalen Anzahl von Generationen ist, die ursprünglich
ausgewählt wurden, dann wird in 1005 das geeignetste Indi
viduum ausgewählt. Bei der Alternative wird die nächste Ge
neration erzeugt 1006. Beim Erzeugen der nächsten Generation
wird zuerst eine Teilpopulation ausgewählt 1007, die dann
den im vorhergehenden beschriebenen genetischen Veränderun
gen unterzogen wird. Die Auswahlprozesse, die bei dem be
vorzugten Ausführungsbeispiel verwendet werden, kopieren In
dividuen aus der vorhergehenden Generation, was den geeig
netsten Individuen die meisten Kopien gibt, und den am we
nigsten geeigneten Individuen die wenigsten oder keine Ko
pien gibt. Gene von ausgewählten Eltern werden durch Aus
wählen von Paarungspaaren und Rekombinieren dieser Gene, um
Kinder durch eine einfache Überkreuzungsoperation zu bilden,
rekombiniert 1008. Teile der Population werden mit einer
niedrigen Wahrscheinlichkeit stochastisch mutiert 1009, was
zufällig die Allelen in den Kindern mutiert. Die neue Popu
lation wird dann bezüglich ihrer Eignung jedes Individuums
beurteilt 1003 und der iterative Prozeß des genetischen Al
gorithmus fährt fort. Jede neue Generation durchläuft die
Auswahl-, Rekombination- und Mutationsprozesse, bis die er
wünschte Anzahl von Generationen beurteilt wurde. Nach der
letzten Generation wird das geeignetste Individuum ausge
wählt 1005.
Die Eignungsbeurteilungsfunktion aus 1003 in Fig. 10 ist de
taillierter in Fig. 11 gezeigt. Zuerst wird der Baum auf
gebaut 1100. Als nächstes werden leere Teilarrays 1001 oder
Null-Teilknoten 1102 gelöscht. Als nächstes wird jede Über
lappung entfernt 1103. Abschließend wird die Größe des Baums
bestimmt 1104. Es ist die Gesamtgröße des Baumes, die die
bestimmende Charakteristik der Eignung irgendeines indivi
duellen Mitglieds der Population ist. Es ist das erwünschte
Ziel, die absolute Minimalgröße zu finden, die die erwünsch
te Abbildung erreicht.
Fünf Versuche zum Erhöhen der Populationsgröße wurden aus
probiert. Der erste Versuch mit einer Populationsgröße von 5
führte zu einer Lösung mit einer Größe von 15 740 Bytes. Der
Versuch mit einer Populationsgröße von 10 fand eine Lösung
mit einer Größe von 15 708 Bytes. Der Versuch mit einer
Größe von 20 fand die optimale Lösung mit einer Codierung
000000100100000 und einer Größe von 15 684 Bytes, in 47 Ge
nerationen. Der Versuch mit einer Populationsgröße von 50
fand die optimale Lösung in nur 8 Generationen. Der Versuch
mit einer Populationsgröße von 100 fand die optimale Lösung
in 13 Generationen.
Die optimale Lösung bildet eine 95%ige Reduzierung des
Raums, der für ein einfaches Array erforderlich ist, und
eine 44%ige Reduzierung des Raums, der für eine Nachschlag
tabelle erforderlich ist.
Die vorliegende Erfindung wurde auf andere Datenformen an
gewendet, wie dies in Fig. 12 gezeigt ist. Man muß bezüglich
der verwendeten Beispiele eine Beobachtung machen, nämlich
daß keine optimale Lösung für einen der dort dargestellten
sechs Fälle bekannt ist. Keine dieser Dateien enthielt viel
Leerraum und es war deshalb notwendig, die Überlappung vom
Typ I einzubauen, um sinnvolle Ergebnisse zu erhalten.
Die vorliegende Erfindung reduzierte die Speicheranforderun
gen für unterschiedliche Bilddatentypen erfolgreich. Bei der
Verwendung des bevorzugten Ausführungsbeispiels, das eine
Baumstruktur ist, wurden Kompressionsverhältnisse von 20%
bis 60% für alle bis auf einen der sechs Dateitypen er
reicht.
Wie es im vorangegangenen ausgeführt wurde, schafft die
Baumstruktur einen schnelleren und speichereffizienteren Zu
griff als andere bekannte Kompressionsschemata. Zwei Punkte
sollten hierbei betont werden. Erstens ermöglicht die vor
liegende Erfindung einen schnellen, zufälligen Zugriff auf
die ursprünglichen Daten von dem Baum. Zweitens besteht, da
auf die Daten zufällig zugegriffen werden kann, keine Not
wendigkeit, eine Datei vor dem Zugriff auf die ursprüngli
chen Daten zurück in ihr ursprüngliches Format zu dekompri
mieren. Daher können die tatsächlichen Speichereinsparungen
mit der vorliegenden Erfindung höher sein, da kein Speicher
benötigt wird, um die nicht-komprimierten Daten zu spei
chern.
Da die vorliegende Erfindung für Bilddaten von vielen Typen
gut arbeitet und eine komprimierte Datei ergibt, auf die zu
fällig ohne Dekompression zugegriffen werden kann, arbeitet
sie gut für die Archivierung von Bilddateidatenbanken. Man
muß lediglich den codierten Baum für jede Datei sichern.
Dann wird das Bild durch einfaches Zugreifen auf den Baum
schnell angezeigt. Die vorliegende Erfindung kann sogar ver
wendet werden, um die Rahmen eines Spielfilms zu komprimie
ren.
Durch Ausnutzen von redundanten Daten ist die vorliegende
Erfindung gut geeignet, um relationale Datenbanken zu kom
primieren, da viele Tuples denselben Eintrag für ein be
stimmtes Feld enthalten. Eine Telefondatenbank würde zum
Beispiel denselben Bereichscode haben, der viele tausendmale
wiederholt wird.
Die vorliegende Erfindung ist, obwohl sie nicht für alle Da
teitypen erfolgreich ist, sinnvoll, um viele Typen von Com
puterdaten zu komprimieren. Folglich ist es für einen Fach
mann offensichtlich, daß die vorliegende Erfindung ein nütz
liches allgemeines Kompressionsschema ist, das für Anwendun
gen gut geeignet ist, die einen schnellen, zufälligen Zu
griff auf die ursprünglichen Daten erfordern.
Obwohl das bevorzugte Ausführungsbeispiel der Erfindung dar
gestellt wurde und dieses beschrieben wurde, ist es für
Fachleute ohne weiteres offensichtlich, daß verschiedene Mo
difikationen durchgeführt werden können, ohne sich vom Geist
der Erfindung oder vom Umfang der nachfolgenden Ansprüche zu
entfernen.
Eine solche Modifikation bezieht sich auf die Löschung des
leeren Teilarrays und Teilknotens, wie es in Fig. 4 und 5
gezeigt ist. Während das bevorzugte Ausführungsbeispiel lee
re Teilarrays gelöscht hat, ermöglicht eine einfache Modi
fikation die Löschung der Teilarrays, die redundante Kopien
eines vorbestimmten Zeichens enthalten. Um diese Prozedur
adaptiv zu machen, werden die Daten zuerst abgetastet und
die Zeichen mit dem höchsten Auftretungszählstand werden als
das vorbestimmte Zeichen bezeichnet. Danach werden Teilar
rays, die lediglich das vorbestimmte Zeichen enthalten, ge
löscht. Die Identität des gelöschten Zeichens wird dann nur
einmal in dem gesamten Baum gespeichert.
Der Löschschritt des leeren Teilarrays kann allgemeiner ge
macht werden, als dies gerade beschrieben wurde, durch Zu
lassen der Löschung irgendeines Teilarrays, das mit irgend
einem Zeichen gefüllt ist. Wenn zum Beispiel ein Teilarray
nur "R"s enthält, wird es gelöscht. Eine zusätzliche Struk
tur muß zu dem Teilknoten hinzugefügt werden, um anzuzeigen,
daß das gelöschte Teilarray alle "R"s enthält. Innerhalb
desselben Baums wird ein anderes Teilarray, das alle "P"s
enthält, gelöscht und der Teilknoten wird eingestellt. Die
Speichereinsparungen der Teilarraylöschung werden durch die
hinzugefügte Komplexität der Teilknoten ausgeglichen und
hängen von der Natur der Daten ab.
In Fig. 13 ist ein Computersystem dargestellt, das ursprüng
liche Daten speichert. Das Computersystem umfaßt einen Spei
cher 2002, in dem eine Mehrzahl von Individuen gespeichert
sind, einen Prozessor 2000, der mit dem Speicher 2002 ver
bunden ist, wobei der Prozessor 2000 eine Befehlssequenz
ausführt, eine Einrichtung zum Bestimmen 2000, 2002 einer
Größe eines Baums, der durch jedes Individuum symbolisiert
ist, wobei der Baum die ursprünglichen Daten darstellt, wo
bei die Einrichtung zum Bestimmen mit dem Prozessor 2000
verbunden ist, eine Einrichtung zum Auswählen 2000, 2002
einer Paarungspopulation aus der Mehrzahl der Individuen,
wobei die Wahrscheinlichkeit der Auswahl für ein Individuum
umgekehrt proportional zu der Baumgröße des Individuums ist,
eine Einrichtung zum Auswählen und Durchführen 2000, 2002
einer Operation bezüglich der Paarungspopulation, wobei die
Operation die Operation der Überkreuzung 2000, 2002 ist,
wobei die Einrichtung zum Auswählen und Durchführen 2000,
2002 mit dem Prozessor 2000 verbunden ist, eine Einrichtung
zum Durchführen 2000, 2002 der Operation der Überkreuzung,
die das Erzeugen zumindest eines neuen Individuums durch
eine Überkreuzung unter Verwendung von zumindest zwei Indi
viduen aus der Paarungspopulation und das Hinzufügen des
neuen Individuums zu der Mehrzahl der Individuen umfaßt, und
eine Einrichtung zum Beibehalten 2000, 2002 des Baums mit
der minimalen Größe im Speicher 2002, wobei die Einrichtung
zum Beibehalten mit dem Prozessor 2000 verbunden ist.
Bei dem in Fig. 13 dargestellten Computersystem umfaßt der
Baum einen Wurzelknoten 2002 mit zumindest zwei Zeigern und
zumindest zwei Teilarrays 2002, die mit dem Wurzelknoten
2002 durch die zumindest zwei Zeiger in einer hierarchischen
Anordnung verbunden sind, wobei die zumindest zwei Teil
arrays 2002 jeweils eine Mehrzahl von Einträgen haben, in
denen die ursprünglichen Daten gespeichert sind.
Der Baum umfaßt ferner eine Mehrzahl von Teilknoten 2002 um
faßt, die zwischen dem Wurzelknoten 2002 und den Teilarrays
2002 angeordnet sind, wobei die Wurzel 2002 mit der Mehrzahl
von Teilknoten 2002 und Teilarrays 2002 verbunden ist, um
einen modifizierten hybriden Mehrweg-Radixsuchbaum zu
bilden.
Claims (10)
1. Verfahren zum Speichern ursprünglicher Daten in einem
Computerspeicher (2002), wobei das Verfahren folgende
Schritte umfaßt:
Auswählen (1001) einer Anzahl von Generationen;
Initialisieren (1002) einer Mehrzahl von Individuen;
für jedes Individuum, Bestimmen (1003) einer Größe eines Baums, der durch jedes Individuum symbolisiert ist, wobei der Baum die ursprünglichen Daten darstellt;
Auswählen (1007) einer Paarungspopulation aus der Mehr zahl von Individuen, wobei die Wahrscheinlichkeit der Auswahl für ein Individuum umgekehrt proportional zu der Baumgröße des Individuums ist;
Auswählen und Durchführen zumindest einer Operation für die Paarungspopulation, wobei die Operation die Opera tion der Überkreuzung (1008) ist;
wobei die Operation der Überkreuzung (1008) das Erzeu gen zumindest eines neuen Individuums durch Überkreu zung unter Verwendung von zumindest zwei Individuen aus der Paarungspopulation, und Addieren des neuen Indivi duums zu der Mehrzahl von Individuen umfaßt;
iteratives Durchführen (1004) der Schritte des Bestim mens (1003), des Auswählens (1007) und des Auswählens und Durchführens (1008) entsprechend der Anzahl der Ge nerationen; und
Beibehalten (1005) des Baums mit der minimalen Größe im Speicher (2002).
Auswählen (1001) einer Anzahl von Generationen;
Initialisieren (1002) einer Mehrzahl von Individuen;
für jedes Individuum, Bestimmen (1003) einer Größe eines Baums, der durch jedes Individuum symbolisiert ist, wobei der Baum die ursprünglichen Daten darstellt;
Auswählen (1007) einer Paarungspopulation aus der Mehr zahl von Individuen, wobei die Wahrscheinlichkeit der Auswahl für ein Individuum umgekehrt proportional zu der Baumgröße des Individuums ist;
Auswählen und Durchführen zumindest einer Operation für die Paarungspopulation, wobei die Operation die Opera tion der Überkreuzung (1008) ist;
wobei die Operation der Überkreuzung (1008) das Erzeu gen zumindest eines neuen Individuums durch Überkreu zung unter Verwendung von zumindest zwei Individuen aus der Paarungspopulation, und Addieren des neuen Indivi duums zu der Mehrzahl von Individuen umfaßt;
iteratives Durchführen (1004) der Schritte des Bestim mens (1003), des Auswählens (1007) und des Auswählens und Durchführens (1008) entsprechend der Anzahl der Ge nerationen; und
Beibehalten (1005) des Baums mit der minimalen Größe im Speicher (2002).
2. Verfahren nach Anspruch 1, bei dem der Schritt des Aus
wählens und Durchführens ferner eine Operation der Mu
tation (1009) umfaßt, wenn die ausgewählte Operation
die Mutation (1009) ist, um das Individuum durch sto
chastisches Ändern einer Eigenschaft des Individuums zu
mutieren, wobei das mutierte Individuum in die Mehrzahl
von Individuen angeordnet wird.
3. Verfahren nach Anspruch 1, bei dem der Schritt des Be
stimmens (1003) folgende Schritte umfaßt:
Erzeugen (1100) eines Wurzelknotens, einer Mehrzahl von Teilknoten und einer Mehrzahl von Teilarrays in einer hierarchischen Anordnung, wobei das Individuum die An zahl der Teilknoten und der Teilarrays und eine Anzahl der Einträge in dem Teilarray angibt;
Löschen (1101) jedes Teilarrays aus der Mehrzahl der Teilarrays, das redundante Daten enthält;
Entfernen (1102) jedes Teilknotens aus der Mehrzahl der Teilknoten, der redundante Daten enthält; und
Anwenden (1103) einer Überlappungsreduzierungsfunktion.
Erzeugen (1100) eines Wurzelknotens, einer Mehrzahl von Teilknoten und einer Mehrzahl von Teilarrays in einer hierarchischen Anordnung, wobei das Individuum die An zahl der Teilknoten und der Teilarrays und eine Anzahl der Einträge in dem Teilarray angibt;
Löschen (1101) jedes Teilarrays aus der Mehrzahl der Teilarrays, das redundante Daten enthält;
Entfernen (1102) jedes Teilknotens aus der Mehrzahl der Teilknoten, der redundante Daten enthält; und
Anwenden (1103) einer Überlappungsreduzierungsfunktion.
4. Verfahren nach Anspruch 3, bei dem das Individuum eine
binäre Zahl mit N Bits ist, die auf einen ersten Wert
eingestellt sind, wobei der Schritt des Erzeugens fer
ner den Schritt des Verbindens der Wurzel mit der Mehr
zahl von Teilknoten und Teilarrays umfaßt, um einen mo
difizierten hybriden Mehrweg-Radixsuchbaum zu bilden,
wobei die Wurzel und die Mehrzahl der Teilknoten in N
Ebenen angeordnet sind.
5. Verfahren zum Speichern ursprünglicher Daten in einer
minimalen Größe eines Computerspeichers (2002), wobei
das Verfahren folgende Schritte umfaßt:
Auswählen (1001) einer Anzahl von Generationen;
Initialisieren (1002) einer Mehrzahl von Individuen;
für jedes Individuum:
Aufbauen (1100) eines Baums, wobei der Baum die ur sprünglichen Daten darstellt, wobei der Baum einen Wurzelknoten, eine Mehrzahl von Teilknoten und eine Mehrzahl von Teilarrays in einer hierarchischen An ordnung umfaßt, wobei das Individuum eine Anzahl von Teilknoten und Teilarrays und eine Anzahl von Einträgen in dem Teilarray anzeigt;
Löschen (1101) jedes Teilarrays aus der Mehrzahl der Teilarrays, das redundante Daten enthält;
Entfernen (1102) jedes Teilknotens aus der Mehrzahl von Teilknoten, der redundante Daten enthält;
Anwenden (1103) einer Überlappungsreduzierungfunk tion auf den Baum;
Bestimmen (1104) einer Größe für den Baum;
Zuordnen (1103) der Größe zu dem Individuum;
Auswählen (1007) einer Paarungspopulation aus der Mehr zahl der Individuen, wobei die Wahrscheinlichkeit der Auswahl für ein Individuum umgekehrt proportional zu der Baumgröße des Individuums ist;
Auswählen und Durchführen zumindest einer Operation bezüglich der Paarungspopulation, wobei die Operation die Operation der Überkreuzung (1008) oder der Mutation (1009) ist;
wenn die ausgewählte Operation die Überkreuzung ist (1008), Erzeugen zumindest eines neuen Individuums durch eine Überkreuzung unter Verwendung von zumindest zwei Individuen aus der Paarungspopulation und Hinzu fügen des neuen Individuums zu der Mehrzahl der Indi viduen;
wenn die ausgewählte Operation die Mutation ist (1009), Mutieren eines Individuums in der Paarungspopulation durch stochastisches Ändern einer Eigenschaft des Indi viduums, und Anordnen des mutierten Individuums in der Mehrzahl der Individuen;
iteratives Durchführen der Schritte für die Anzahl der Generationen (1004, 1006); und
Beibehalten (1005) des Baums mit der minimalen Größe in dem Speicher (2002).
Auswählen (1001) einer Anzahl von Generationen;
Initialisieren (1002) einer Mehrzahl von Individuen;
für jedes Individuum:
Aufbauen (1100) eines Baums, wobei der Baum die ur sprünglichen Daten darstellt, wobei der Baum einen Wurzelknoten, eine Mehrzahl von Teilknoten und eine Mehrzahl von Teilarrays in einer hierarchischen An ordnung umfaßt, wobei das Individuum eine Anzahl von Teilknoten und Teilarrays und eine Anzahl von Einträgen in dem Teilarray anzeigt;
Löschen (1101) jedes Teilarrays aus der Mehrzahl der Teilarrays, das redundante Daten enthält;
Entfernen (1102) jedes Teilknotens aus der Mehrzahl von Teilknoten, der redundante Daten enthält;
Anwenden (1103) einer Überlappungsreduzierungfunk tion auf den Baum;
Bestimmen (1104) einer Größe für den Baum;
Zuordnen (1103) der Größe zu dem Individuum;
Auswählen (1007) einer Paarungspopulation aus der Mehr zahl der Individuen, wobei die Wahrscheinlichkeit der Auswahl für ein Individuum umgekehrt proportional zu der Baumgröße des Individuums ist;
Auswählen und Durchführen zumindest einer Operation bezüglich der Paarungspopulation, wobei die Operation die Operation der Überkreuzung (1008) oder der Mutation (1009) ist;
wenn die ausgewählte Operation die Überkreuzung ist (1008), Erzeugen zumindest eines neuen Individuums durch eine Überkreuzung unter Verwendung von zumindest zwei Individuen aus der Paarungspopulation und Hinzu fügen des neuen Individuums zu der Mehrzahl der Indi viduen;
wenn die ausgewählte Operation die Mutation ist (1009), Mutieren eines Individuums in der Paarungspopulation durch stochastisches Ändern einer Eigenschaft des Indi viduums, und Anordnen des mutierten Individuums in der Mehrzahl der Individuen;
iteratives Durchführen der Schritte für die Anzahl der Generationen (1004, 1006); und
Beibehalten (1005) des Baums mit der minimalen Größe in dem Speicher (2002).
6. Verfahren nach Anspruch 5 oder Anspruch 1, bei dem der
Schritt des Auswählens (1007) folgende Schritte umfaßt:
Definieren der Paarungspopulation als eine Mehrzahl von Individuen umfassend, wobei die Anzahl der Individuen in der Paarungspopulation gleich der Anzahl der Indivi duen in der Mehrzahl der Individuen ist;
Kopieren der Individuen aus der Mehrzahl der Individuen in die Paarungspopulation, wobei Individuen mit relativ kleinen Baumgrößen mehrere Male kopiert werden, und In dividuen mit relativen großen Baumgrößen ausgeschlossen werden; und
Löschen aller Individuen in der Mehrzahl der Indivi duen.
Definieren der Paarungspopulation als eine Mehrzahl von Individuen umfassend, wobei die Anzahl der Individuen in der Paarungspopulation gleich der Anzahl der Indivi duen in der Mehrzahl der Individuen ist;
Kopieren der Individuen aus der Mehrzahl der Individuen in die Paarungspopulation, wobei Individuen mit relativ kleinen Baumgrößen mehrere Male kopiert werden, und In dividuen mit relativen großen Baumgrößen ausgeschlossen werden; und
Löschen aller Individuen in der Mehrzahl der Indivi duen.
7. Verfahren nach Anspruch 5 oder Anspruch 3, bei dem je
des Teilarray einen Kopf und einen Schwanz hat, wobei
der Schritt des Anwendens (1103) der Überlappungsredu
zierungsfunktion folgende Schritte umfaßt:
erstens, Finden von überlappbaren Einträgen in dem Schwanz für jeden der Einträge in dem Teilarray;
zweitens, Finden überlappbarer Einträge in dem Kopf für jeden Eintrag in dem Teilarray; und
Vergleichen der überlappbaren Einträge in dem Schwanz mit den überlappbaren Einträgen in dem Kopf.
erstens, Finden von überlappbaren Einträgen in dem Schwanz für jeden der Einträge in dem Teilarray;
zweitens, Finden überlappbarer Einträge in dem Kopf für jeden Eintrag in dem Teilarray; und
Vergleichen der überlappbaren Einträge in dem Schwanz mit den überlappbaren Einträgen in dem Kopf.
8. Computersystem, das ursprüngliche Daten speichert, mit:
einem Speicher (2002), in dem eine Mehrzahl von Indivi duen gespeichert sind;
einem Prozessor (2000), der mit dem Speicher (2002) verbunden ist, wobei der Prozessor (2000) eine Befehls sequenz ausführt;
einer Einrichtung zum Bestimmen (2000, 2002) einer Größe eines Baums, der durch jedes Individuum symbo lisiert ist, wobei der Baum die ursprünglichen Daten darstellt, wobei die Einrichtung zum Bestimmen mit dem Prozessor (2000) verbunden ist;
einer Einrichtung zum Auswählen (2000, 2002) einer Paa rungspopulation aus der Mehrzahl der Individuen, wobei die Wahrscheinlichkeit der Auswahl für ein Individuum umgekehrt proportional zu der Baumgröße des Individuums ist;
einer Einrichtung zum Auswählen und Durchführen (2000, 2002) einer Operation bezüglich der Paarungspopulation, wobei die Operation die Operation der Überkreuzung (2000, 2002) ist, wobei die Einrichtung zum Auswählen und Durchführen (2000, 2002) mit dem Prozessor (2000) verbunden ist;
einer Einrichtung zum Durchführen (2000, 2002) der Ope ration der Überkreuzung, die das Erzeugen zumindest eines neuen Individuums durch eine Überkreuzung unter Verwendung von zumindest zwei Individuen aus der Paa rungspopulation und das Hinzufügen des neuen Indivi duums zu der Mehrzahl der Individuen umfaßt; und
einer Einrichtung zum Beibehalten (2000, 2002) des Baums mit der minimalen Größe im Speicher (2002), wobei die Einrichtung zum Beibehalten mit dem Prozessor (2000) verbunden ist.
einem Speicher (2002), in dem eine Mehrzahl von Indivi duen gespeichert sind;
einem Prozessor (2000), der mit dem Speicher (2002) verbunden ist, wobei der Prozessor (2000) eine Befehls sequenz ausführt;
einer Einrichtung zum Bestimmen (2000, 2002) einer Größe eines Baums, der durch jedes Individuum symbo lisiert ist, wobei der Baum die ursprünglichen Daten darstellt, wobei die Einrichtung zum Bestimmen mit dem Prozessor (2000) verbunden ist;
einer Einrichtung zum Auswählen (2000, 2002) einer Paa rungspopulation aus der Mehrzahl der Individuen, wobei die Wahrscheinlichkeit der Auswahl für ein Individuum umgekehrt proportional zu der Baumgröße des Individuums ist;
einer Einrichtung zum Auswählen und Durchführen (2000, 2002) einer Operation bezüglich der Paarungspopulation, wobei die Operation die Operation der Überkreuzung (2000, 2002) ist, wobei die Einrichtung zum Auswählen und Durchführen (2000, 2002) mit dem Prozessor (2000) verbunden ist;
einer Einrichtung zum Durchführen (2000, 2002) der Ope ration der Überkreuzung, die das Erzeugen zumindest eines neuen Individuums durch eine Überkreuzung unter Verwendung von zumindest zwei Individuen aus der Paa rungspopulation und das Hinzufügen des neuen Indivi duums zu der Mehrzahl der Individuen umfaßt; und
einer Einrichtung zum Beibehalten (2000, 2002) des Baums mit der minimalen Größe im Speicher (2002), wobei die Einrichtung zum Beibehalten mit dem Prozessor (2000) verbunden ist.
9. Computersystem nach Anspruch 8, wobei der Baum Folgen
des umfaßt:
einen Wurzelknoten (2002) mit zumindest zwei Zeigern; und
zumindest zwei Teilarrays (2002), die mit dem Wurzel knoten (2002) durch die zumindest zwei Zeiger in einer hierarchischen Anordnung verbunden sind, wobei die zu mindest zwei Teilarrays (2002) jeweils eine Mehrzahl von Einträgen haben, in denen die ursprünglichen Daten gespeichert sind.
einen Wurzelknoten (2002) mit zumindest zwei Zeigern; und
zumindest zwei Teilarrays (2002), die mit dem Wurzel knoten (2002) durch die zumindest zwei Zeiger in einer hierarchischen Anordnung verbunden sind, wobei die zu mindest zwei Teilarrays (2002) jeweils eine Mehrzahl von Einträgen haben, in denen die ursprünglichen Daten gespeichert sind.
10. Computersystem nach Anspruch 9, bei dem der Baum ferner
eine Mehrzahl von Teilknoten (2002) umfaßt, die zwi
schen dem Wurzelknoten (2002) und den Teilarrays (2002)
angeordnet sind, wobei die Wurzel (2002) mit der Mehr
zahl von Teilknoten (2002) und Teilarrays (2002) ver
bunden ist, um einen modifizierten hybriden Mehrweg-Ra
dixsuchbaum zu bilden.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/378,329 US5651099A (en) | 1995-01-26 | 1995-01-26 | Use of a genetic algorithm to optimize memory space |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19532371A1 true DE19532371A1 (de) | 1996-08-08 |
DE19532371C2 DE19532371C2 (de) | 1997-10-02 |
Family
ID=23492693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19532371A Expired - Fee Related DE19532371C2 (de) | 1995-01-26 | 1995-09-01 | Verwendung eines genetischen Algorithmus zur Optimierung von Speicherplatz |
Country Status (3)
Country | Link |
---|---|
US (1) | US5651099A (de) |
JP (1) | JPH08272659A (de) |
DE (1) | DE19532371C2 (de) |
Families Citing this family (89)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5864633A (en) * | 1996-05-17 | 1999-01-26 | Therma-Wave, Inc. | Method and apparatus for optical data analysis |
US5857196A (en) * | 1996-07-19 | 1999-01-05 | Bay Networks, Inc. | Method for storing a tree of potential keys in a sparse table |
US5873078A (en) * | 1996-07-19 | 1999-02-16 | Bay Networks, Inc. | Radix tree search logic |
US6675173B1 (en) | 1998-01-22 | 2004-01-06 | Ori Software Development Ltd. | Database apparatus |
TR200002119T2 (tr) * | 1998-01-22 | 2000-12-21 | Ori Software Development Ltd. | Veri tabanı cihazı. |
US6539366B1 (en) * | 1998-04-30 | 2003-03-25 | Intel Corporation | Codec with genetic adaptation |
US7117131B2 (en) * | 1998-05-26 | 2006-10-03 | Definiens Ag | Method for characterizing a complex system |
US6215907B1 (en) | 1998-06-26 | 2001-04-10 | Fisher-Rosemont Systems, Inc. | Recursive on-line wavelet data compression technique for use in data storage and communications |
US6223174B1 (en) * | 1998-07-01 | 2001-04-24 | Nortel Networks Limited | Method and apparatus for performing radix lookups using valid bit tables with pointers |
US6233574B1 (en) * | 1998-07-01 | 2001-05-15 | Nortel Networks Limited | Method and apparatus for performing radix lookups using transition tables with pointers |
US6185570B1 (en) * | 1998-07-01 | 2001-02-06 | Nortel Networks Limited | Method and apparatus for performing radix lookups using transition bits and fields in transition tables |
US6247014B1 (en) * | 1998-07-01 | 2001-06-12 | Nortel Networks Limited | Method and apparatus for performing hash lookups using valid bit tables with pointers |
US6298321B1 (en) | 1998-11-23 | 2001-10-02 | Microsoft Corporation | Trie compression using substates and utilizing pointers to replace or merge identical, reordered states |
US6304878B1 (en) * | 1998-11-23 | 2001-10-16 | Microsoft Corporation | Method and system for improved enumeration of tries |
US6260031B1 (en) * | 1998-12-21 | 2001-07-10 | Philips Electronics North America Corp. | Code compaction by evolutionary algorithm |
US6514201B1 (en) | 1999-01-29 | 2003-02-04 | Acuson Corporation | Voice-enhanced diagnostic medical ultrasound system and review station |
US6523016B1 (en) * | 1999-04-12 | 2003-02-18 | George Mason University | Learnable non-darwinian evolution |
DE19927317A1 (de) * | 1999-06-15 | 2000-12-21 | Christoph Bueltemann | Verfahren und Vorrichtung zur automatischen Spracherkennung, Sprecheridentifizierung und Spracherzeugung |
US6424959B1 (en) * | 1999-06-17 | 2002-07-23 | John R. Koza | Method and apparatus for automatic synthesis, placement and routing of complex structures |
US7249149B1 (en) | 1999-08-10 | 2007-07-24 | Washington University | Tree bitmap data structures and their use in performing lookup operations |
US6560610B1 (en) * | 1999-08-10 | 2003-05-06 | Washington University | Data structure using a tree bitmap and method for rapid classification of data in a database |
US6378117B1 (en) * | 1999-08-27 | 2002-04-23 | Hewlett-Packard Company | Cellular encoding using typed development operators |
US7296089B2 (en) * | 1999-08-27 | 2007-11-13 | At&T Corp. | Method for improving web performance by adapting servers based on client cluster characterization |
US7191168B1 (en) * | 1999-08-27 | 2007-03-13 | At&T Corp. | Fast prefix matching of bounded strings |
US6675169B1 (en) | 1999-09-07 | 2004-01-06 | Microsoft Corporation | Method and system for attaching information to words of a trie |
US6810372B1 (en) | 1999-12-07 | 2004-10-26 | Hewlett-Packard Development Company, L.P. | Multimodal optimization technique in test generation |
JP2001307977A (ja) * | 2000-02-18 | 2001-11-02 | Nikon Corp | 荷電粒子線露光装置の設計方法、荷電粒子線露光装置、及び半導体デバイスの製造方法 |
US6532076B1 (en) | 2000-04-04 | 2003-03-11 | Therma-Wave, Inc. | Method and apparatus for multidomain data analysis |
US6725326B1 (en) | 2000-08-15 | 2004-04-20 | Cisco Technology, Inc. | Techniques for efficient memory management for longest prefix match problems |
KR20020040406A (ko) * | 2000-11-24 | 2002-05-30 | 김응수 | 유전자 코드에 의한 정보압축 및 저장 방법 |
US7856543B2 (en) | 2001-02-14 | 2010-12-21 | Rambus Inc. | Data processing architectures for packet handling wherein batches of data packets of unpredictable size are distributed across processing elements arranged in a SIMD array operable to process different respective packet protocols at once while executing a single common instruction stream |
US6804677B2 (en) * | 2001-02-26 | 2004-10-12 | Ori Software Development Ltd. | Encoding semi-structured data for efficient search and browsing |
US6775737B1 (en) | 2001-10-09 | 2004-08-10 | Cisco Technology, Inc. | Method and apparatus for allocating and using range identifiers as input values to content-addressable memories |
KR100468276B1 (ko) * | 2001-12-13 | 2005-01-27 | (주)아이디스 | 멀티미디어 데이터 저장 및 검색 방법 |
US6970971B1 (en) | 2002-01-08 | 2005-11-29 | Cisco Technology, Inc. | Method and apparatus for mapping prefixes and values of a hierarchical space to other representations |
GB0200352D0 (en) * | 2002-01-09 | 2002-02-20 | Ibm | Finite state dictionary and method of production thereof |
US7287033B2 (en) | 2002-03-06 | 2007-10-23 | Ori Software Development, Ltd. | Efficient traversals over hierarchical data and indexing semistructured data |
US7899067B2 (en) * | 2002-05-31 | 2011-03-01 | Cisco Technology, Inc. | Method and apparatus for generating and using enhanced tree bitmap data structures in determining a longest prefix match |
US7299317B1 (en) | 2002-06-08 | 2007-11-20 | Cisco Technology, Inc. | Assigning prefixes to associative memory classes based on a value of a last bit of each prefix and their use including but not limited to locating a prefix and for maintaining a Patricia tree data structure |
US7558775B1 (en) | 2002-06-08 | 2009-07-07 | Cisco Technology, Inc. | Methods and apparatus for maintaining sets of ranges typically using an associative memory and for using these ranges to identify a matching range based on a query point or query range and to maintain sorted elements for use such as in providing priority queue operations |
US7441074B1 (en) | 2002-08-10 | 2008-10-21 | Cisco Technology, Inc. | Methods and apparatus for distributing entries among lookup units and selectively enabling less than all of the lookup units when performing a lookup operation |
US6789233B2 (en) * | 2002-08-28 | 2004-09-07 | Micron Technology, Inc. | Method for determining a matched routing arrangement for semiconductor devices |
KR20040071993A (ko) * | 2003-02-07 | 2004-08-16 | 학교법인대우학원 | Dna 서열 부호화 방법 및 dna 서열 압축 방법 |
CA2426496A1 (en) * | 2003-04-24 | 2004-10-24 | Ibm Canada Limited - Ibm Canada Limitee | Processing fixed-format data in a unicode environment |
US7415472B2 (en) * | 2003-05-13 | 2008-08-19 | Cisco Technology, Inc. | Comparison tree data structures of particular use in performing lookup operations |
US7415463B2 (en) * | 2003-05-13 | 2008-08-19 | Cisco Technology, Inc. | Programming tree data structures and handling collisions while performing lookup operations |
JP2005080523A (ja) * | 2003-09-05 | 2005-03-31 | Sony Corp | 生体遺伝子に導入するdna、遺伝子導入ベクター、細胞、生体遺伝子への情報導入方法、情報処理装置および方法、記録媒体、並びにプログラム |
US7478109B1 (en) | 2004-03-15 | 2009-01-13 | Cisco Technology, Inc. | Identification of a longest matching prefix based on a search of intervals corresponding to the prefixes |
US20050278301A1 (en) * | 2004-05-26 | 2005-12-15 | Castellanos Maria G | System and method for determining an optimized process configuration |
US7971191B2 (en) * | 2004-06-10 | 2011-06-28 | Hewlett-Packard Development Company, L.P. | System and method for analyzing a process |
US7236938B2 (en) * | 2004-08-11 | 2007-06-26 | Hewlett-Packard Development Company, L.P. | System and method for refreshing metric values |
US7921088B1 (en) | 2005-07-22 | 2011-04-05 | X-Engines, Inc. | Logical operations encoded by a function table for compressing index bits in multi-level compressed look-up tables |
US7430560B1 (en) | 2005-07-22 | 2008-09-30 | X-Engines, Inc. | Multi-level compressed lock-up tables formed by logical operations to compress selected index bits |
JP4966305B2 (ja) * | 2005-08-05 | 2012-07-04 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 動的遺伝子分布によるサーチ空間保護 |
US7451121B2 (en) * | 2005-09-27 | 2008-11-11 | Intel Corporation | Genetic algorithm for microcode compression |
US8332188B2 (en) * | 2006-03-03 | 2012-12-11 | Solido Design Automation Inc. | Modeling of systems using canonical form functions and symbolic regression |
US7761493B1 (en) * | 2006-04-11 | 2010-07-20 | Oracle America, Inc. | Population of sparse information model hierarchies |
US7779016B2 (en) * | 2006-09-14 | 2010-08-17 | International Business Machines Corporation | Parallel execution of operations for a partitioned binary radix tree on a parallel computer |
US8656448B2 (en) * | 2006-10-26 | 2014-02-18 | International Business Machines Corporation | Providing policy-based application services to an application running on a computing system |
US8713582B2 (en) * | 2006-10-26 | 2014-04-29 | International Business Machines Corporation | Providing policy-based operating system services in an operating system on a computing system |
US8032899B2 (en) | 2006-10-26 | 2011-10-04 | International Business Machines Corporation | Providing policy-based operating system services in a hypervisor on a computing system |
US7827218B1 (en) | 2006-11-18 | 2010-11-02 | X-Engines, Inc. | Deterministic lookup using hashed key in a multi-stride compressed trie structure |
US7958274B2 (en) * | 2007-06-18 | 2011-06-07 | International Business Machines Corporation | Heuristic status polling |
US8296430B2 (en) | 2007-06-18 | 2012-10-23 | International Business Machines Corporation | Administering an epoch initiated for remote memory access |
US9065839B2 (en) * | 2007-10-02 | 2015-06-23 | International Business Machines Corporation | Minimally buffered data transfers between nodes in a data communications network |
US7984450B2 (en) * | 2007-11-28 | 2011-07-19 | International Business Machines Corporation | Dispatching packets on a global combining network of a parallel computer |
US7895260B2 (en) * | 2008-07-28 | 2011-02-22 | International Business Machines Corporation | Processing data access requests among a plurality of compute nodes |
US8010930B2 (en) * | 2008-12-29 | 2011-08-30 | International Business Machine Corporation | Extracting consistent compact model parameters for related devices |
WO2010089900A1 (en) * | 2009-02-05 | 2010-08-12 | Nec Corporation | Method, system and program for deadline constrained task admission control and scheduling using genetic approach |
US8365186B2 (en) | 2010-04-14 | 2013-01-29 | International Business Machines Corporation | Runtime optimization of an application executing on a parallel computer |
US8504730B2 (en) | 2010-07-30 | 2013-08-06 | International Business Machines Corporation | Administering connection identifiers for collective operations in a parallel computer |
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 |
US8565120B2 (en) | 2011-01-05 | 2013-10-22 | International Business Machines Corporation | Locality mapping in a distributed processing system |
US9317637B2 (en) | 2011-01-14 | 2016-04-19 | International Business Machines Corporation | Distributed hardware device simulation |
US9563844B2 (en) | 2011-06-30 | 2017-02-07 | International Business Machines Corporation | Speculative asynchronous sub-population evolutionary computing utilizing a termination speculation threshold |
US8689228B2 (en) | 2011-07-19 | 2014-04-01 | International Business Machines Corporation | Identifying data communications algorithms of all other tasks in a single collective operation in a distributed processing system |
US9250948B2 (en) | 2011-09-13 | 2016-02-02 | International Business Machines Corporation | Establishing a group of endpoints in a parallel computer |
US8306977B1 (en) * | 2011-10-31 | 2012-11-06 | Google Inc. | Method and system for tagging of content |
US9165247B2 (en) | 2012-01-04 | 2015-10-20 | International Business Machines Corporation | Using global and local catastrophes across sub-populations in parallel evolutionary computing |
CN102892188B (zh) * | 2012-10-09 | 2016-07-06 | 中兴通讯股份有限公司 | 通信网络中基于遗传算法的上行功率控制方法及装置 |
TWI483138B (zh) * | 2012-10-12 | 2015-05-01 | Acer Inc | 遠端動態資料的處理與驗證方法、系統,以及電腦可讀記錄媒體 |
US9311597B2 (en) * | 2013-03-12 | 2016-04-12 | International Business Machines Corporation | Early generation of individuals to accelerate genetic algorithms |
US9305257B2 (en) | 2013-05-20 | 2016-04-05 | International Business Machines Corporation | Adaptive cataclysms in genetic algorithms |
US9041566B2 (en) * | 2013-08-30 | 2015-05-26 | International Business Machines Corporation | Lossless compression of the enumeration space of founder line crosses |
RU2615822C2 (ru) * | 2015-05-19 | 2017-04-11 | Алексей Игоревич Салмин | Хранилище для футляров с информацией, синхронизирующее дополнительное смешанное лазерное освещение с работой зоны интенсивного развития техники, и носовые опоры солнцезащитных очков |
DE112016007098T5 (de) * | 2016-07-26 | 2019-04-18 | Hewlett-Packard Development Company, L.P. | Indexierung von voxeln für das 3d-drucken |
US11055433B2 (en) | 2019-01-03 | 2021-07-06 | Bank Of America Corporation | Centralized advanced security provisioning platform |
CN113630127B (zh) * | 2021-08-06 | 2023-09-29 | 网络通信与安全紫金山实验室 | 一种基于遗传算法的快速极化码构造方法、装置和设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5343554A (en) * | 1988-05-20 | 1994-08-30 | John R. Koza | Non-linear genetic process for data encoding and for solving problems using automatically defined functions |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4697242A (en) * | 1984-06-11 | 1987-09-29 | Holland John H | Adaptive computing system capable of learning and discovery |
US4881178A (en) * | 1987-05-07 | 1989-11-14 | The Regents Of The University Of Michigan | Method of controlling a classifier system |
US5058144A (en) * | 1988-04-29 | 1991-10-15 | Xerox Corporation | Search tree data structure encoding for textual substitution data compression systems |
US4935877A (en) * | 1988-05-20 | 1990-06-19 | Koza John R | Non-linear genetic algorithms for solving problems |
US5148513A (en) * | 1988-05-20 | 1992-09-15 | John R. Koza | Non-linear genetic process for use with plural co-evolving populations |
AU7563191A (en) * | 1990-03-28 | 1991-10-21 | John R. Koza | Non-linear genetic algorithms for solving problems by finding a fit composition of functions |
US5276868A (en) * | 1990-05-23 | 1994-01-04 | Digital Equipment Corp. | Method and apparatus for pointer compression in structured databases |
US5151697A (en) * | 1990-10-15 | 1992-09-29 | Board Of Regents Of The University Of Washington | Data structure management tagging system |
US5151950A (en) * | 1990-10-31 | 1992-09-29 | Go Corporation | Method for recognizing handwritten characters using shape and context analysis |
DE4110400A1 (de) * | 1991-03-28 | 1992-10-01 | Siemens Ag | Verfahren zur kompression von bilddaten |
US5379036A (en) * | 1992-04-01 | 1995-01-03 | Storer; James A. | Method and apparatus for data compression |
US5226082A (en) * | 1992-07-02 | 1993-07-06 | At&T Bell Laboratories | Variable length decoder |
US5406279A (en) * | 1992-09-02 | 1995-04-11 | Cirrus Logic, Inc. | General purpose, hash-based technique for single-pass lossless data compression |
JP2505980B2 (ja) * | 1993-04-16 | 1996-06-12 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 静的辞書作成方法及びコンピュ―タ実行システム |
JPH0744520A (ja) * | 1993-07-30 | 1995-02-14 | Ricoh Co Ltd | 情報処理装置 |
JP2625356B2 (ja) * | 1993-09-09 | 1997-07-02 | 日本電気株式会社 | 画像処理装置 |
US5528701A (en) * | 1994-09-02 | 1996-06-18 | Panasonic Technologies, Inc. | Trie based method for indexing handwritten databases |
-
1995
- 1995-01-26 US US08/378,329 patent/US5651099A/en not_active Expired - Lifetime
- 1995-09-01 DE DE19532371A patent/DE19532371C2/de not_active Expired - Fee Related
- 1995-12-22 JP JP7334560A patent/JPH08272659A/ja not_active Ceased
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5343554A (en) * | 1988-05-20 | 1994-08-30 | John R. Koza | Non-linear genetic process for data encoding and for solving problems using automatically defined functions |
Also Published As
Publication number | Publication date |
---|---|
US5651099A (en) | 1997-07-22 |
JPH08272659A (ja) | 1996-10-18 |
DE19532371C2 (de) | 1997-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19532371C2 (de) | Verwendung eines genetischen Algorithmus zur Optimierung von Speicherplatz | |
DE3916328A1 (de) | Verfahren und computer zur problemloesung nach nicht-linearer genetischer methode | |
DE69631694T2 (de) | Genetisches Programmiersystem und Verfahren unter Verwendung genetischer Programmiertechniken | |
O'Reilly et al. | Program search with a hierarchical variable length representation: Genetic programming, simulated annealing and hill climbing | |
Bruderer et al. | Organizational evolution, learning, and selection: A genetic-algorithm-based model | |
Hifi | A genetic algorithm-based heuristic for solving the weighted maximum independent set and some equivalent problems | |
CN109416758A (zh) | 神经网络及神经网络训练的方法 | |
Jacob | Evolving evolution programs: Genetic programming and L-systems | |
Langdon et al. | Seeding genetic programming populations | |
Deb | Binary and floating-point function optimization using messy genetic algorithms | |
Plotnick et al. | A general model for simulating the effects of landscape heterogeneity and disturbance on community patterns | |
Stejić et al. | Mathematical aggregation operators in image retrieval: effect on retrieval performance and role in relevance feedback | |
DE69629540T2 (de) | Verfahren und Gerät zum Sortieren von Elementen | |
DE69627391T2 (de) | Verfahren und system zum durchführen einer booleschen operation auf bitketten unter benutzung einer maximalen bitscheibe | |
Amirthagadeswaran et al. | Improved solutions for job shop scheduling problems through genetic algorithm with a different method of schedule deduction | |
Wuensche | Discrete dynamics lab: tools for investigating cellular automata and discrete dynamical networks | |
Yan et al. | Fast algorithms of plant computation based on substructure instances | |
EP0577631B1 (de) | Verfahren zur kompression von bilddaten | |
DE60311886T2 (de) | Verfahren und vorrichtung zum sortieren zyklischer daten in lexikographischer reihenfolge | |
Chin et al. | Genetic algorithm methods for solving the best stationary policy of finite Markov decision processes | |
EP1299847B1 (de) | Verfahren zum verarbeiten von mehreren unterschiedlichen datenstrukturen | |
Schonmann et al. | Two-level Fisher-Wright framework with selection and migration: An approach to studying evolution in group structured populations | |
DE4438652A1 (de) | Verfahren und Vorrichtung zum stabilen Sortieren oder Mischen sequentieller Listen in einer raumadaptiven Weise | |
Kasambe et al. | Modified fractal image compression using genetic algorithms | |
Hansson | A computational model of metapopulation dynamics and organism-mediated nutrient flow |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: HEWLETT-PACKARD CO. (N.D.GES.D.STAATES DELAWARE), |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE |
|
8339 | Ceased/non-payment of the annual fee |