27.03.2013 Aufrufe

Algorithmen f ur das Crossdating in der Dendrochronologie

Algorithmen f ur das Crossdating in der Dendrochronologie

Algorithmen f ur das Crossdating in der Dendrochronologie

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Freie Universitat Berl<strong>in</strong><br />

Fachbereich Mathematik und Informatik<br />

Institut f<strong>ur</strong> Informatik<br />

Diplomarbeit<br />

<strong>Algorithmen</strong> f<strong>ur</strong> <strong>das</strong> <strong>Crossdat<strong>in</strong>g</strong> <strong>in</strong> <strong>der</strong><br />

<strong>Dendrochronologie</strong><br />

von<br />

Carola Wenk<br />

Wissenschaftliche Leitung und Betreuung:<br />

Prof. Dr. H. Alt<br />

Dezember 1997


Zusammenfassung<br />

In <strong>der</strong> <strong>Dendrochronologie</strong> werden Holzproben anhand ihrer Jahresr<strong>in</strong>ge datiert. Die<br />

f<strong>ur</strong> e<strong>in</strong> spezielles Jahrr<strong>in</strong>gcharakteristikum, wie die Jahrr<strong>in</strong>gbreite, aufgestellte Holzprobenjahrr<strong>in</strong>gfolge<br />

wird <strong>in</strong> e<strong>in</strong>er datierten Referenzfolge d<strong>ur</strong>ch e<strong>in</strong>e e<strong>in</strong>dimensionale Mustererkennung<br />

(<strong>Crossdat<strong>in</strong>g</strong>) lokalisiert und auf diese Weise datiert.<br />

In dieser Arbeit wird <strong>das</strong> <strong>Crossdat<strong>in</strong>g</strong> von algorithmentheoretischer Sicht untersucht.<br />

Dazu werden zunachst bisher verwendete <strong>Crossdat<strong>in</strong>g</strong>verfahren vorgestellt, e zientere <strong>Algorithmen</strong><br />

f<strong>ur</strong> diese angegeben sowie e<strong>in</strong> neuer <strong>Crossdat<strong>in</strong>g</strong>algorithmus entwickelt.<br />

Bisherige <strong>Crossdat<strong>in</strong>g</strong>verfahren suchen <strong>in</strong> <strong>der</strong> Regel sukkzessive e<strong>in</strong>e <strong>der</strong> Musterfolge<br />

moglichst ahnliche Folge an allen Positionen <strong>in</strong> <strong>der</strong> Referenzfolge. Diese sukkzessive Herangehensweise<br />

kann d<strong>ur</strong>ch die Verwendung <strong>der</strong> schnellen Fo<strong>ur</strong>ier Transformation (FFT)<br />

ersetzt und <strong>das</strong> <strong>Crossdat<strong>in</strong>g</strong> dad<strong>ur</strong>ch e zienter gestaltet werden. Die dabei verwendeten<br />

Abstandsbegri e gehen jedoch davon aus, da die Zeitskalen von Muster- und Referenzfolge<br />

ubere<strong>in</strong>stimmen. Ungleichma igkeiten wie fehlende und doppelte R<strong>in</strong>ge werden nicht<br />

berucksichtigt und stellen e<strong>in</strong>e Fehlerquelle f<strong>ur</strong> e<strong>in</strong>e korrekte Datierung dar. Deshalb wird<br />

<strong>in</strong> dieser Arbeit e<strong>in</strong> Transformationsabstand vorgestellt, <strong>der</strong> Ungleichma igkeiten <strong>in</strong> <strong>der</strong><br />

Musterfolge d<strong>ur</strong>cheventuell auftretende fehlende o<strong>der</strong> doppelte Jahresr<strong>in</strong>ge berucksichtigt.<br />

Weiterh<strong>in</strong> wird e<strong>in</strong> auf diesem Abtandsbegri basieren<strong>der</strong> neuer <strong>Crossdat<strong>in</strong>g</strong>algorithmus<br />

entwickelt, dessen Implementation e<strong>in</strong> Teil dieser Arbeit ist.


F<strong>ur</strong> die Unterstutzung bei dieser Arbeit bedanke ich mich bei:<br />

Deutsches Archaologisches Institut Dr. U. Heu ner<br />

(E<strong>ur</strong>asien-Abteilung)<br />

Freie Universitat Berl<strong>in</strong> Prof. Dr. Helmut Alt<br />

Christof Schultz<br />

Technische Universitat Berl<strong>in</strong> Dipl.-Ing. Konstant<strong>in</strong> Lenz<br />

Robert Pohl


Inhaltsverzeichnis<br />

1 E<strong>in</strong>leitung 4<br />

1.1 <strong>Dendrochronologie</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />

1.2 Ziel und Aufbau dieser Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />

2 Grundlagen <strong>der</strong> <strong>Dendrochronologie</strong> 7<br />

2.1 Jahrr<strong>in</strong>gwachstum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

2.2 <strong>Crossdat<strong>in</strong>g</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />

2.3 Jahrr<strong>in</strong>gchronologien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />

2.4 Standardisierung <strong>der</strong> Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

2.4.1 Notwendigkeit von Standardisierungen . . . . . . . . . . . . . . . . . 14<br />

2.4.2 Log-Standardisierung . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

2.4.3 Standardisierung d<strong>ur</strong>ch Glattungsk<strong>ur</strong>ven . . . . . . . . . . . . . . . 15<br />

2.4.4 Weitere Standardisierungen . . . . . . . . . . . . . . . . . . . . . . . 16<br />

3 Gebrauchliche <strong>Crossdat<strong>in</strong>g</strong>verfahren 17<br />

3.1 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

3.2 Grundlegen<strong>der</strong> sukkzessiver Algorithmus . . . . . . . . . . . . . . . . . . . . 18<br />

3.3 Vergleich anhand l<strong>in</strong>earer Korrelation . . . . . . . . . . . . . . . . . . . . . 20<br />

3.3.1 Der Korrelationskoe zient . . . . . . . . . . . . . . . . . . . . . . . 20<br />

3.3.2 Interpretation l<strong>in</strong>earer Korrelation <strong>in</strong> <strong>der</strong> <strong>Dendrochronologie</strong> . . . . 21<br />

3.3.3 Der t-Wert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

3.3.4 Korrelationsalgorithmus . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

3.4 Vergleich anhand des Richtungss<strong>in</strong>ns . . . . . . . . . . . . . . . . . . . . . . 24<br />

3.4.1 Der Gleichlau gkeitskoe zient . . . . . . . . . . . . . . . . . . . . . 24<br />

3.4.2 Gleichlau gkeitsalgorithmus . . . . . . . . . . . . . . . . . . . . . . . 25<br />

1


3.4.3 Der Datierungs<strong>in</strong>dex . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />

3.4.4 Weiserjahre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />

4 Vorhandene Verfahren z<strong>ur</strong> Identi kation von fehlenden und mehrfachen<br />

R<strong>in</strong>gen 27<br />

4.1 Verfahren z<strong>ur</strong> Qualitatskontrolle . . . . . . . . . . . . . . . . . . . . . . . . 27<br />

4.2 <strong>Crossdat<strong>in</strong>g</strong>verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />

5 Anwendungen <strong>der</strong> schnellen Fo<strong>ur</strong>ier-Transformation auf <strong>das</strong> <strong>Crossdat<strong>in</strong>g</strong><br />

29<br />

5.1 Die schnelle Fo<strong>ur</strong>ier-Transformation (FFT) . . . . . . . . . . . . . . . . . . 29<br />

5.1.1 Die diskrete Fo<strong>ur</strong>ier-Transformation (DFT) . . . . . . . . . . . . . . 29<br />

5.1.2 <strong>Algorithmen</strong> <strong>der</strong> schnellen Fo<strong>ur</strong>ier-Transformation (FFT) . . . . . . 30<br />

5.2 Beziehungen zwischen <strong>der</strong> DFT und <strong>der</strong> zyklischen Korrelation . . . . . . . 35<br />

5.3 Anwendung <strong>der</strong> FFT auf die Berechnung von Korrelationskoe zienten . . 37<br />

5.3.1 Sukkzessive Berechnung . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />

5.3.2 E ziente Berechnung <strong>der</strong> Korrelation . . . . . . . . . . . . . . . . 37<br />

5.3.3 E ziente Berechnung <strong>der</strong> Korrelationskoe zienten . . . . . . . . . . 39<br />

5.4 Anwendung <strong>der</strong> FFT auf die Berechnung von Gleichlau gkeitskoe zienten 40<br />

5.4.1 Sukkzessive Berechnung . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

5.4.2 E ziente Berechnung des Vektors . . . . . . . . . . . . . . . . . . 41<br />

5.4.3 E ziente Berechnung <strong>der</strong> Gleichlau gkeitskoe zienten . . . . . . . . 41<br />

6 Zwei Transformationsabstande f<strong>ur</strong> Jahrr<strong>in</strong>gfolgen verschiedener Lange 42<br />

6.1 Doppelte und fehlende Jahrr<strong>in</strong>ge . . . . . . . . . . . . . . . . . . . . . . . . 43<br />

6.2 E<strong>in</strong> Transformationsabstand . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />

6.2.1 De nition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />

6.2.2 Rek<strong>ur</strong>sionsformel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46<br />

6.2.3 Berechnung des Abstandes mit Hilfe <strong>der</strong> dynamischen Programmierung<br />

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />

6.2.4 Berechnungsgraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51<br />

6.2.5 Berechnung e<strong>in</strong>er optimalen Transformation anhand <strong>der</strong> Berechnungsmatrix<br />

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51<br />

6.2.6 Notwendigkeit <strong>der</strong> E<strong>in</strong>schrankung <strong>der</strong> Transformationsmenge . . . . 53<br />

6.3 E<strong>in</strong> von <strong>der</strong> Anzahl <strong>der</strong> Editieroperationen abhangiger Transformationsabstand<br />

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />

2


6.3.1 De nition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54<br />

6.3.2 Rek<strong>ur</strong>sionsformel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />

6.3.3 Berechnung des Abstandes mit Hilfe <strong>der</strong> dynamischen Programmierung<br />

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57<br />

7 E<strong>in</strong> <strong>Crossdat<strong>in</strong>g</strong>algorithmus basierend auf k-Abstanden 67<br />

7.1 Grundlegende Idee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67<br />

7.2 Berechnung aller Folge-Pra x- und Pra x-Folge-Abstande <strong>in</strong> e<strong>in</strong>em Berechnungsqua<strong>der</strong><br />

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68<br />

7.3 Sukkzessive Berechnung aller Ergebnisabstande <strong>in</strong>klusive je e<strong>in</strong>er optimalen<br />

Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />

7.4 <strong>Crossdat<strong>in</strong>g</strong>algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />

7.5 Das <strong>Crossdat<strong>in</strong>g</strong>programm dpcross . . . . . . . . . . . . . . . . . . . . . . . 73<br />

8 Ausblick 78<br />

A Programmkon g<strong>ur</strong>ation 79<br />

B Programmdokumentation 82<br />

B.1 Die Datei misc.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82<br />

B.2 Die Klasse box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83<br />

B.3 Die Klasse resultArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83<br />

B.4 Die Klasse array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84<br />

B.5 Die ma<strong>in</strong>-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />

C Programmcode 87<br />

C.1 ma<strong>in</strong>.cc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87<br />

C.2 box.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94<br />

C.3 box.cc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95<br />

C.4 resultArray.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99<br />

C.5 resultArray.cc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100<br />

C.6 misc.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105<br />

C.7 array.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107<br />

C.8 array.cc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108<br />

3


Kapitel 1<br />

E<strong>in</strong>leitung<br />

1.1 <strong>Dendrochronologie</strong><br />

Schon vor mehr als vierhun<strong>der</strong>t Jahren erkannte Leonardo da V<strong>in</strong>ci (1452 - 1519), da<br />

Wachstumsr<strong>in</strong>ge von Baumen e<strong>in</strong>en jahrlichen Charakter aufweisen. Seit <strong>der</strong> Antike wu te<br />

man zwar, da Baume wachsen, <strong>in</strong>dem sie Schichten von frischem Holz unter <strong>der</strong> R<strong>in</strong>de<br />

ausbilden, aber <strong>der</strong> jahrliche Zusammenhang war noch unbekannt. E<strong>in</strong>e weiterfuhrende<br />

Entdeckung Leonardo da V<strong>in</strong>cis war, da die Breite e<strong>in</strong>es solchen Jahresr<strong>in</strong>ges mit <strong>der</strong> <strong>in</strong><br />

diesem Jahr vorhandenen Feuchtigkeit zusammenh<strong>in</strong>g. So konnte er Aussagen uber <strong>das</strong><br />

Wetter vergangener Jahre, speziell uber trockene und nie<strong>der</strong>schlagsreiche Klimaperioden,<br />

machen.<br />

Heutzutage werden Jahresr<strong>in</strong>ge z<strong>ur</strong> Erforschung verschiedenster nat<strong>ur</strong>historischer Begebenheiten<br />

herangezogen, da sie abhangig von den jahrlichen Umweltbed<strong>in</strong>gungen gewachsen<br />

s<strong>in</strong>d und deshalb e<strong>in</strong>e Art Archiv <strong>der</strong> Umweltbed<strong>in</strong>gungen <strong>der</strong> entsprechenden<br />

Jahre darstellen. Der Forschungszweig, <strong>der</strong> sich mit <strong>der</strong> Datierung von Jahresr<strong>in</strong>gen z<strong>ur</strong><br />

Beantwortung nat<strong>ur</strong>historischer Fragen beschaftigt, ist die <strong>Dendrochronologie</strong>. Als ihr<br />

Begrun<strong>der</strong> gilt <strong>der</strong> amerikanische Astronom A.E. Douglass. Er stellte am Anfang dieses<br />

Jahrhun<strong>der</strong>ts die e<strong>in</strong>fachen dendrochronologischen Grundsatze <strong>in</strong> Beziehung zu an<strong>der</strong>en<br />

Wissenschaften, wie <strong>der</strong> Geschichtsforschung, <strong>der</strong> Klimatologie und <strong>der</strong> Astronomie. Auf<br />

dieser Basis entwickelte er die <strong>Dendrochronologie</strong> zu e<strong>in</strong>er Wissenschaft, <strong>der</strong>en Namen er<br />

aus den griechischen Wortern dendron (Holz), chronos (Zeit) und logos (die Wissenschaft<br />

von) zusammensetzte.<br />

E<strong>in</strong>e wichtige Anwendung <strong>der</strong> <strong>Dendrochronologie</strong> liegt <strong>in</strong> <strong>der</strong> Erforschung des Klimas<br />

<strong>in</strong> <strong>der</strong> Vergangenheit. Da es <strong>in</strong>strumentelle Wetterbeobachtungen hochstens f<strong>ur</strong> die letzten<br />

dreihun<strong>der</strong>t Jahre gibt, s<strong>in</strong>d Jahrr<strong>in</strong>ge zusammen mit an<strong>der</strong>en nat<strong>ur</strong>lichen Umweltarchiven<br />

wie Seesedimenten o<strong>der</strong> Gletscherablagerungen e<strong>in</strong> willkommenes Mittel, um Aussagen<br />

uber die jahrliche Entwicklung des Klimas <strong>in</strong> <strong>der</strong> Vergangenheit zu machen. Daraus lassen<br />

4


sich dann auch Prognosen uber <strong>das</strong> zukunftige Klima herleiten.<br />

In <strong>der</strong> Archaologie werden dendrochronologische Methoden z<strong>ur</strong> Datierung von historischem<br />

Holz verwendet. Anhand <strong>der</strong> <strong>in</strong> dem Holz auftretenden Jahresr<strong>in</strong>ge konnen<br />

Entstehungsdaten von kunsthistorischen Objekten wie Mobeln, Musik<strong>in</strong>strumenten o<strong>der</strong><br />

Gemaldetafeln aber auch von historischen Gebauden bis auf e<strong>in</strong>ige Jahre genau angegeben<br />

werden. Die vorhandenen Jahresr<strong>in</strong>ge werden dabei genau datiert, jedoch geht <strong>das</strong><br />

Enstehungsdatum des entsprechenden kunsthistorischen Objekts bzw. des historischen<br />

Gebaudes nicht ganz genau daraus hervor, da bei vielen Holzbearbeitungsverfahren die<br />

R<strong>in</strong>de sowie die au eren Holzschichten abgeschlagen werden o<strong>der</strong> <strong>das</strong> Holz e<strong>in</strong>ige Jahre<br />

getrocknet wird. Deshalb gibt <strong>der</strong> letzte auf dem Holzstuck vorhandene Jahrr<strong>in</strong>g n<strong>ur</strong> bis<br />

auf e<strong>in</strong>ige Jahre genau <strong>das</strong> gesuchte Datum an.<br />

Die Genauigkeit <strong>der</strong> Jahrr<strong>in</strong>gdatierungen fuhrte zu e<strong>in</strong>er Eichung <strong>der</strong> <strong>in</strong> den historischen<br />

Wissenschaften verbreiteten Methode <strong>der</strong> Radiokarbondatierung. Bei dieser Methode<br />

werden die Anteile des radioaktiven Kohlensto sotops C 14 <strong>in</strong> <strong>der</strong> zu datierenden<br />

Probe gemessen und anhand <strong>der</strong> Halbwertzeit des Isotops <strong>das</strong> Alter <strong>der</strong> Probe bestimmt.<br />

Dabei wird aber davon ausgegangen, da <strong>der</strong> Anteil des C 14 -Isotops <strong>in</strong> <strong>der</strong> Luft <strong>in</strong> allen<br />

z<strong>ur</strong> Untersuchung kommenden Jahrhun<strong>der</strong>ten und Jahrtausenden weltweit konstant war.<br />

Die <strong>Dendrochronologie</strong> wi<strong>der</strong>legte diese Annahme und lieferte e<strong>in</strong>e Eichung <strong>der</strong> bisherigen<br />

Radiokarbonzeitachse [49].<br />

Die <strong>Dendrochronologie</strong> liefert <strong>in</strong> vielen an<strong>der</strong>en Bereichen Aussagen uber die Umwelt<br />

<strong>in</strong> <strong>der</strong> Vergangenheit, wie etwa uber die Ausdehnung und Bewegung von Gletschern, die<br />

Entstehung und Dynamik von Landmassen o<strong>der</strong> die Veran<strong>der</strong>ungen von Flu verlaufen und<br />

Wasserspiegeln. E<strong>in</strong>en guten Uberblick bietet Schwe<strong>in</strong>gruber <strong>in</strong> [45] und [46].<br />

Die Vorgehensweise <strong>der</strong> <strong>Dendrochronologie</strong> besteht dar<strong>in</strong>, f<strong>ur</strong> jede zu untersuchende<br />

Holzprobe e<strong>in</strong>e Jahrr<strong>in</strong>gfolge bezuglich e<strong>in</strong>es bestimmten Jahrr<strong>in</strong>gcharakteristikums, wie<br />

etwa Breite o<strong>der</strong> Holzdichte, aufzustellen. Folgen solcher Art, <strong>der</strong>en Folgenglie<strong>der</strong> aufe<strong>in</strong>an<strong>der</strong>folgenden<br />

Zeitpunkten entsprechen, werden auch als Zeitreihen bezeichnet.<br />

Da Baume bei gleichartigen Umweltbed<strong>in</strong>gungen e<strong>in</strong> sehr ahnliches Wachstumsverhalten<br />

aufweisen, konnen solche Jahrr<strong>in</strong>gfolgen untere<strong>in</strong>an<strong>der</strong> verglichen und e<strong>in</strong>an<strong>der</strong><br />

entsprechende Jahrr<strong>in</strong>gmuster identi ziert werden. E<strong>in</strong> solcher Vergleich zweier Jahrr<strong>in</strong>gfolgen<br />

wird als <strong>Crossdat<strong>in</strong>g</strong> bezeichnet und stellt den Kern <strong>der</strong> <strong>Dendrochronologie</strong> dar. Ist<br />

e<strong>in</strong>e Jahrr<strong>in</strong>gfolge bereits datiert, d.h. es ist f<strong>ur</strong> jeden Jahrr<strong>in</strong>g se<strong>in</strong> Entstehungsjahr bekannt,<br />

e<strong>in</strong>e an<strong>der</strong>e Folge ist jedoch undatiert, so kann mit Hilfe des <strong>Crossdat<strong>in</strong>g</strong>s <strong>in</strong> beiden<br />

Folgen <strong>der</strong> geme<strong>in</strong>same Lebensabschnitt <strong>der</strong> zugrundeliegenden Baume identi ziert und<br />

die zweite Folge aufgrund dessen datiert werden. F<strong>ur</strong> e<strong>in</strong>e e<strong>in</strong>gehen<strong>der</strong>e Erlauterung <strong>der</strong><br />

Verfahrensweisen <strong>in</strong> <strong>der</strong> <strong>Dendrochronologie</strong> wird auf Kapitel 2 verwiesen.<br />

5


1.2 Ziel und Aufbau dieser Arbeit<br />

Beim <strong>Crossdat<strong>in</strong>g</strong> handelt es sich um e<strong>in</strong>e approximative e<strong>in</strong>dimensionale Mustererkennung.<br />

In dieser Diplomarbeit wird untersucht, <strong>in</strong>wiefern sich bisher verwendete <strong>Crossdat<strong>in</strong>g</strong>verfahren<br />

d<strong>ur</strong>ch Ergebnisse aus <strong>der</strong> Informatik verbessern lassen, und ob es bisher nicht<br />

genutzte Verfahren <strong>der</strong> approximativen Mustererkennung gibt, die sichf<strong>ur</strong> <strong>das</strong> <strong>Crossdat<strong>in</strong>g</strong><br />

eignen.<br />

Dazu werden die Grundlagen und Methoden <strong>der</strong> <strong>Dendrochronologie</strong>, speziell des<br />

<strong>Crossdat<strong>in</strong>g</strong>s, <strong>in</strong> Kapitel 2 erlautert. In Kapitel 3 werden <strong>in</strong> <strong>der</strong> <strong>Dendrochronologie</strong> hau g<br />

verwendete <strong>Crossdat<strong>in</strong>g</strong>verfahren vorgestellt. Da die gebrauchlichen <strong>Crossdat<strong>in</strong>g</strong>verfahren<br />

e<strong>in</strong> eventuelles Auftreten von fehlenden o<strong>der</strong> doppelten R<strong>in</strong>gen nicht berucksichtigen,<br />

wird <strong>in</strong> Kapitel 4 k<strong>ur</strong>z auf spezielle Verfahren z<strong>ur</strong> Lokalisierung solcher Unregelma igkeiten<br />

e<strong>in</strong>gegangen.<br />

Kapitel 5 beschaftigt sich mit <strong>Algorithmen</strong> f<strong>ur</strong> die schnelle Fo<strong>ur</strong>ier Transformation<br />

(FFT) und beschreibt <strong>der</strong>en Anwendung auf die <strong>Crossdat<strong>in</strong>g</strong>verfahren mittels<br />

Korrelations- und Gleichlau gkeitskoe zienten z<strong>ur</strong> Verr<strong>in</strong>gerung <strong>der</strong> Laufzeiten.<br />

In Kapitel 6 wird e<strong>in</strong> Abstandsbegri f<strong>ur</strong> Jahrr<strong>in</strong>gfolgen vorgestellt, <strong>der</strong> dem <strong>der</strong> Edit<br />

Distance f<strong>ur</strong> Zeichenketten o<strong>der</strong> dem Dynamic Time Warp<strong>in</strong>g <strong>in</strong> <strong>der</strong> Spracherkennung<br />

sehr ahnlich ist. F<strong>ur</strong> diesen von Van Deusen [11] vorgeschlagenen Abstand wird d<strong>ur</strong>ch<br />

e<strong>in</strong>e an<strong>der</strong>e Art <strong>der</strong> E<strong>in</strong>schrankung <strong>der</strong> Transformationsmenge e<strong>in</strong> von <strong>der</strong> Anzahl <strong>der</strong><br />

Editieroperationen abhangiger Abstand de niert, <strong>der</strong> sich f<strong>ur</strong> die Anwendung <strong>in</strong> <strong>der</strong> <strong>Dendrochronologie</strong><br />

besser eignet. Aufbauend auf diesem neuen Abstandsbegri f<strong>ur</strong> Jahrr<strong>in</strong>gfolgen<br />

wird <strong>in</strong> Kapitel 7 e<strong>in</strong> <strong>Crossdat<strong>in</strong>g</strong>verfahren vorgestellt, <strong>das</strong> Ungleichma igkeiten <strong>in</strong><br />

<strong>der</strong> Musterjahrr<strong>in</strong>gfolge, wie fehlende und doppelte R<strong>in</strong>ge, berucksichtigt. E<strong>in</strong>e Implementierung<br />

dieses <strong>Crossdat<strong>in</strong>g</strong>verfahrens <strong>in</strong> e<strong>in</strong>em C++ - Programm ist auf Diskette beigefugt<br />

sowie <strong>in</strong> Anhang C abgedruckt.<br />

6


Kapitel 2<br />

Grundlagen <strong>der</strong><br />

<strong>Dendrochronologie</strong><br />

2.1 Jahrr<strong>in</strong>gwachstum<br />

Die bei e<strong>in</strong>em Querschnitt e<strong>in</strong>es Baumstammes erkennbaren R<strong>in</strong>ge s<strong>in</strong>d Wachstumsschichten<br />

des Baumes. Diese werden <strong>in</strong> dem teilungsfahigen Gewebe unterhalb <strong>der</strong> R<strong>in</strong>de, dem<br />

Kambium, wahrend <strong>der</strong> Vegetationszeit gebildet. In Gebieten mit jahrlicher Vegetationsund<br />

W<strong>in</strong>terperiode werden solche Wachstumsschichten <strong>in</strong> <strong>der</strong> Regel jahrlich angelegt und<br />

deshalb als Jahres- bzw. Jahrr<strong>in</strong>ge bezeichnet. Abbildung 2.1 zeigt e<strong>in</strong>e schematische<br />

Darstellung e<strong>in</strong>es Baumstammstuckes mit e<strong>in</strong>igen ublichen Bezeichnungen.<br />

Am Anfang <strong>der</strong> Vegetationsperiode legen Baume z<strong>ur</strong> Nahrsto versorgung <strong>der</strong> Triebe<br />

gro e, dunnwandige Zellen an, wahrend gegen Ende <strong>der</strong> Vegetationsperiode kle<strong>in</strong>e, dickwandige<br />

Zellen z<strong>ur</strong> Festigung des Stammes gebildet werden. Die zuerst genannte Art<br />

von Zellen, die man anhand ihrer hellen Farbung erkennen kann, wird als Fruhholz, die<br />

letztere, <strong>der</strong>en Farbung dunkler ist, als Spatholz bezeichnet. Die Wachstumsschicht e<strong>in</strong>es<br />

Jahres, also e<strong>in</strong> Jahrr<strong>in</strong>g, besteht demnach aus Fruhholz und Spatholz, wobei je nach<br />

Baumart Fruh- und Spatholz verschieden stark ausgepragt se<strong>in</strong> konnen, und <strong>der</strong> Ubergang<br />

mehr o<strong>der</strong> weniger ie end se<strong>in</strong> kann. Aufgrund des Helligkeitsunterschieds zwischen dem<br />

Spatholz e<strong>in</strong>es Jahrr<strong>in</strong>gs und dem Fruhholz se<strong>in</strong>es Folgejahrr<strong>in</strong>gs konnen e<strong>in</strong>zelne Jahrr<strong>in</strong>ge<br />

vone<strong>in</strong>an<strong>der</strong> abgegrenzt werden, was <strong>in</strong> Abbildung 2.2 an e<strong>in</strong>em Beispiel deutlich<br />

wird.<br />

Das jahrliche Wachstum e<strong>in</strong>es Baumes ist abhangig von vielerlei Umwelte<strong>in</strong> ussen, die<br />

sowohl von globaler als auch von <strong>in</strong>dividueller sowie von k<strong>ur</strong>z- und von langerfristiger<br />

Art se<strong>in</strong> konnen. Die aus dem Wachstum hervorgehenden Jahresr<strong>in</strong>ge variieren, entsprechend<br />

<strong>der</strong> jahrlich wechselnden Umweltbed<strong>in</strong>gungen, <strong>in</strong> ihren verschiedenen Merkmalen<br />

wie Breite o<strong>der</strong> Holzdichte. Im wesentlichen hangt <strong>das</strong> Wachstum von <strong>der</strong> <strong>in</strong> dem betref-<br />

7


Abbildung 2.1: Makroskopische Merkmale e<strong>in</strong>es Baumstammstuckes (aus [45])<br />

8


Abbildung 2.2: Verschiedene Merkmale e<strong>in</strong>es Jahrr<strong>in</strong>gs (aus [45])<br />

fenden Jahr herrschenden Witterung ab, <strong>in</strong>sbeson<strong>der</strong>e von Nie<strong>der</strong>schlag und Temperat<strong>ur</strong>.<br />

Aber auch <strong>das</strong> Klima <strong>der</strong> vorhergehenden Jahre hat d<strong>ur</strong>ch langer wirksame Faktoren wie<br />

Knospenanlagen, Reservesto bildung und W<strong>ur</strong>zelwachstum E<strong>in</strong> u auf <strong>das</strong> Wachstum.<br />

Abgesehen von <strong>der</strong> Witterung wirken sich viele weitere k<strong>ur</strong>z- und langerfristige Umweltfaktoren<br />

aus. E<strong>in</strong>ige dieser Faktoren s<strong>in</strong>d forstliche Ma nahmen wie Dungen o<strong>der</strong> Holze<strong>in</strong>schlag,<br />

aber auch nat<strong>ur</strong>liche wie Schadl<strong>in</strong>gsbefall, Luft- und Wasserverunre<strong>in</strong>igungen o<strong>der</strong><br />

Unterdruckung des Baumes d<strong>ur</strong>ch an<strong>der</strong>e Baume. Weitere Erlauterungen dazu gibt zum<br />

Beispiel Schwe<strong>in</strong>gruber [46].<br />

Bei Baumarten, die emp ndlich auf Umwelte<strong>in</strong> usse reagieren, kann es vorkommen,<br />

da <strong>in</strong> e<strong>in</strong>em Jahr mit sehr schlechten Wachstumsbed<strong>in</strong>gungen die Wachstumsschicht nicht<br />

um den gesamten Stammumfang bzw. uberhaupt ke<strong>in</strong>e Wachstumsschicht ausgebildet<br />

wird. E<strong>in</strong>e solche Extremreaktion auf schlechte Wachstumsbed<strong>in</strong>gungen tritt <strong>in</strong>nerhalb<br />

e<strong>in</strong>es depressiven Zeitraumes von e<strong>in</strong>igen Jahren auf, wo die Wachstumsbed<strong>in</strong>gungen im<br />

ganzen Zeitraum schlecht und deshalb die Jahresr<strong>in</strong>ge schmal ausgebildet s<strong>in</strong>d.<br />

Im Gegensatz zu e<strong>in</strong>em solchen fehlenden Jahrr<strong>in</strong>g kann e<strong>in</strong> Baum unter gewissen<br />

Bed<strong>in</strong>gungen zwei o<strong>der</strong> mehr Wachstumsschichten <strong>in</strong> e<strong>in</strong>em Jahr ausbilden. Wenn zum<br />

Beispiel e<strong>in</strong> recht kalter Sommer von e<strong>in</strong>em warmen Herbst gefolgt ist, kann es passieren,<br />

da <strong>der</strong> Baum im Fruhjahr Fruhholz, im Sommer Spatholz und <strong>in</strong> dem zu warmen Herbst<br />

wie<strong>der</strong>um Fruhholz gefolgt von Spatholz ausbildet. Die zwei so zustandegekommenen<br />

Wachstumsschichten s<strong>in</strong>d teilweise nicht von zwei " echten\ Jahrr<strong>in</strong>gen zu unterscheiden.<br />

E<strong>in</strong>e solche Konstellation wird als doppelter Jahrr<strong>in</strong>g bezeichnet.<br />

9


Jahrr<strong>in</strong>gbreite <strong>in</strong> 1/100 mm<br />

400<br />

200<br />

0<br />

1920 1932 1940 1960<br />

Jahr<br />

1980 2000<br />

Abbildung 2.3: Jahrr<strong>in</strong>gbreitenk<strong>ur</strong>ven zweier nahe beie<strong>in</strong>an<strong>der</strong> leben<strong>der</strong> Kiefern aus dem Berl<strong>in</strong>er<br />

Umland. Daten aus dem Deutschen Archaologischen Institut, E<strong>ur</strong>asien-Abteilung.<br />

Insgesamt bildet <strong>der</strong> <strong>in</strong> den Jahresr<strong>in</strong>gen e<strong>in</strong>es jeden Baumes gespeicherte Wachstumsverlauf<br />

e<strong>in</strong> " biologisches Archiv\ fruherer Umweltbed<strong>in</strong>gungen. Die Auswertung dieser<br />

Archive z<strong>ur</strong> Beantwortung nat<strong>ur</strong>historischer Fragen ist <strong>der</strong> Inhalt <strong>der</strong> <strong>Dendrochronologie</strong>.<br />

2.2 <strong>Crossdat<strong>in</strong>g</strong><br />

Um den Wachstumsverlauf von Baumen geeignet auswerten und vergleichen zu konnen,<br />

werden verschiedene Jahrr<strong>in</strong>gmerkmale betrachtet. Das augensche<strong>in</strong>lichste Merkmal, die<br />

Jahrr<strong>in</strong>gbreite, ist mit wenig Aufwand me bar und wird hau g verwendet. An<strong>der</strong>e Charakteristika<br />

s<strong>in</strong>d zum Beispiel die Breite des Fruh- o<strong>der</strong> Spatholzes o<strong>der</strong> die Holzdichte. In<br />

Abbildung 2.2 s<strong>in</strong>d e<strong>in</strong>ige Merkmale aufgefuhrt. Welches Charakteristikum z<strong>ur</strong> Untersuchung<br />

herangezogen wird, hangt von <strong>der</strong> jeweiligen Anwendung ab. In dieser Arbeit wird<br />

als Jahrr<strong>in</strong>gcharakteristikum die Jahrr<strong>in</strong>gbreite verwendet. Die Untersuchungen <strong>in</strong> dieser<br />

Arbeit lassen sich mit leichten Modi kationen auch auf e<strong>in</strong>ige an<strong>der</strong>e Charakteristika<br />

ubertragen; diese mussen daf<strong>ur</strong> jedoch jahrr<strong>in</strong>gweise vorliegen.<br />

Baume reagieren <strong>in</strong> ihrem Wachstum auf gleichartige Umweltbed<strong>in</strong>gungen sehr ahnlich.<br />

Die Wachstumsverlaufe zweier Baume <strong>der</strong>selben Spezies, die z<strong>ur</strong> selben Zeit <strong>in</strong>nerhalb e<strong>in</strong>es<br />

gewissen Umkreises und deshalb unter ahnlichen klimatischen Bed<strong>in</strong>gungen gewachsen<br />

s<strong>in</strong>d, ahneln sich deshalb <strong>in</strong> gewisser Weise. Geubte Dendrochronologen konnen solche<br />

Geme<strong>in</strong>samkeiten teilweise direkt anhand <strong>der</strong> Jahresr<strong>in</strong>ge erkennen. In <strong>der</strong> Regel wird<br />

aber f<strong>ur</strong> jeden Baum bzw. Holzprobe e<strong>in</strong>e Folge <strong>der</strong> Breiten se<strong>in</strong>er Jahresr<strong>in</strong>ge aufgestellt.<br />

Veranschaulicht wird e<strong>in</strong>e solche Folge wie <strong>in</strong> Abbildung 2.3 als K<strong>ur</strong>ve <strong>in</strong> e<strong>in</strong>em Zeit-<br />

Jahrr<strong>in</strong>gbreiten-Koord<strong>in</strong>atensystem, <strong>in</strong>dem die (x; y)-Koord<strong>in</strong>aten aufgetragen und von<br />

Jahr zu Jahr d<strong>ur</strong>ch e<strong>in</strong>e L<strong>in</strong>ie verbunden werden.<br />

10


In Abbildung 2.3 s<strong>in</strong>d die Jahrr<strong>in</strong>gbreiten-Folgen von zwei nahe beie<strong>in</strong>an<strong>der</strong> lebenden<br />

Kiefern aus e<strong>in</strong>em Ort im Berl<strong>in</strong>er Umland abgebildet. Der relative Verlauf von e<strong>in</strong>em Jahr<br />

zum an<strong>der</strong>en (steigend o<strong>der</strong> fallend) sowie die Stellen <strong>der</strong> lokalen M<strong>in</strong>ima und Maxima<br />

stimmen bei beiden K<strong>ur</strong>ven zum gro ten Teil ubere<strong>in</strong> (z.B. 1939, 1946, 1956, 1972, 1993),<br />

ebenso <strong>der</strong> Langzeittrend mit niedrigen Werten um 1940, hoheren Werten um 1960 und<br />

wie<strong>der</strong> niedrigen Werten um 1985.<br />

Die absoluten Werte gleichen sich jedoch nicht vollig und <strong>der</strong> relative Verlauf sowie<br />

die lokalen Extrema stimmen nicht an allen Stellen ubere<strong>in</strong>. Diese Ungleichheiten ruhren<br />

daher, da sich auf jeden Baum zusatzlich zu globalen Umweltbed<strong>in</strong>gungen, wie etwa <strong>der</strong><br />

Witterung, auch viele <strong>in</strong>dividuelle Wachstumsbed<strong>in</strong>gungen, wie z.B. Schadl<strong>in</strong>gsbefall o<strong>der</strong><br />

Konk<strong>ur</strong>renz, auswirken konnen.<br />

E<strong>in</strong>en genauen Ahnlichkeitsbegri solcher K<strong>ur</strong>ven formal zu de nieren ist schwierig, da<br />

viele verschiedene Faktoren auf die Baume e<strong>in</strong>wirken konnen. In <strong>der</strong> Praxis werden meistens<br />

<strong>in</strong> gewisser Form die oben ubere<strong>in</strong>stimmenden Merkmale, also <strong>der</strong> relative Verlauf,<br />

lokale Extrema und k<strong>ur</strong>z- bis langerfristige Trends, als Vergleichskriterien verwendet.<br />

Zum Vergleich ist <strong>in</strong> Abbildung 2.4 die gestrichelte K<strong>ur</strong>ve um e<strong>in</strong> Jahr nach rechts verschoben<br />

aufgetragen worden. Diese beiden K<strong>ur</strong>ven haben o ensichtlich wenig geme<strong>in</strong>sam,<br />

da <strong>der</strong> Verlauf <strong>der</strong> lokalen Extrema nicht ubere<strong>in</strong>stimmt.<br />

Jahrr<strong>in</strong>gbreite <strong>in</strong> 1/100 mm<br />

400<br />

200<br />

0<br />

1920 1933 1940 1960<br />

Jahr<br />

1980 2000<br />

Abbildung 2.4: Jahrr<strong>in</strong>gbreitenk<strong>ur</strong>ven zweier nahe beie<strong>in</strong>an<strong>der</strong> leben<strong>der</strong> Kiefern aus dem Berl<strong>in</strong>er<br />

Umland mit <strong>der</strong> gestrichelten K<strong>ur</strong>ve um e<strong>in</strong> Jahr nach rechts verschoben. Daten aus dem Deutschen<br />

Archaologischen Institut, E<strong>ur</strong>asien-Abteilung.<br />

Der Verlauf <strong>der</strong> Jahrr<strong>in</strong>gbreiten e<strong>in</strong>es Baumes ist <strong>in</strong> gewisser Weise f<strong>ur</strong> e<strong>in</strong>en bestimmten<br />

Zeitabschnitt charakteristisch. Mit Hilfe geeigneter Vorverarbeitung <strong>der</strong> Jahrr<strong>in</strong>gdaten<br />

kann e<strong>in</strong>e undatierte Jahrr<strong>in</strong>gbreiten-Folge <strong>in</strong> e<strong>in</strong>er datierten Folge, sofern Spezies,<br />

Standort und Lebenszeitraum <strong>der</strong> Baume mite<strong>in</strong>an<strong>der</strong> harmonieren, d<strong>ur</strong>ch Vergleich bzw.<br />

11


Match<strong>in</strong>g lokalisiert und somit datiert werden.<br />

Ware die <strong>in</strong> den Abbildungen 2.3 und 2.4 gestrichelt dargestellte Folge undatiert, so<br />

konnte sie anhand <strong>der</strong> an<strong>der</strong>en Folge datiert werden, <strong>in</strong>dem sie nache<strong>in</strong>an<strong>der</strong> an allen<br />

moglichen Anfangsjahren aufgetragen und mit <strong>der</strong> an<strong>der</strong>en Folge verglichen w<strong>ur</strong>de. Mit<br />

dem Anfangsjahr 1932 w<strong>ur</strong>de dann die mit Abstand gro te Ubere<strong>in</strong>stimmung auftreten.<br />

Davon ausgehend, da die Folge n<strong>ur</strong> aus Jahrr<strong>in</strong>gbreiten von aufe<strong>in</strong>an<strong>der</strong>folgenden Jahren<br />

besteht, ware dann jedes Jahr <strong>der</strong> Folge bestimmt und diese somit datiert.<br />

Diese Technik des Datierens e<strong>in</strong>er Jahrr<strong>in</strong>gfolge d<strong>ur</strong>ch den Vergleich mit e<strong>in</strong>er datierten<br />

Jahrr<strong>in</strong>gfolge wird <strong>in</strong> <strong>der</strong> <strong>Dendrochronologie</strong> als <strong>Crossdat<strong>in</strong>g</strong> bezeichnet. Im mathematischen<br />

S<strong>in</strong>ne handelt es sich dabei um e<strong>in</strong>e approximative Mustererkennung mit <strong>der</strong><br />

undatierten Jahrr<strong>in</strong>gfolge als Muster, dessen ungefahres Auftreten <strong>in</strong> <strong>der</strong> datierten Referenzfolge<br />

gesucht ist.<br />

Obwohl zwei Jahrr<strong>in</strong>gk<strong>ur</strong>ven augensche<strong>in</strong>lich dochviele Unterschiede aufweisen, werden<br />

mit Hilfe e<strong>in</strong>iger Vorverarbeitung <strong>der</strong> Daten, die Langzeittrends heraus ltern und<br />

Mittelwerte und Varianzen standardisieren, sehr gute Match<strong>in</strong>g-Ergebnisse erzielt. Es<br />

s<strong>in</strong>d zwar nicht immer alle Jahrr<strong>in</strong>gfolgen datierbar, da manche Folgen f<strong>ur</strong> e<strong>in</strong>e gute Match<strong>in</strong>gaussage<br />

zu k<strong>ur</strong>z o<strong>der</strong> nicht aussagekraftig genug s<strong>in</strong>d, aber dennoch liefern die <strong>in</strong><br />

Kapitel 3 beschriebenen Verfahren <strong>in</strong> den meisten Fallen ausreichend signi kante Match<strong>in</strong>gergebnisse.<br />

E<strong>in</strong> gewisser Nachteil ist jedoch, da ke<strong>in</strong>es <strong>der</strong> Verfahren fehlende o<strong>der</strong><br />

doppelte R<strong>in</strong>ge berucksichtigt, wod<strong>ur</strong>ch e<strong>in</strong>e " Verunre<strong>in</strong>igung\ <strong>der</strong> entsprechenden Chronologie<br />

bzw. schlicht ke<strong>in</strong>e Datierung e<strong>in</strong>er Folge mit solchen Fehlbildungen moglich ist.<br />

2.3 Jahrr<strong>in</strong>gchronologien<br />

Wie bereits <strong>in</strong> Unterkapitel 2.1 erwahnt ist e<strong>in</strong> Baum sowohl <strong>in</strong>dividuellen als auch generellen<br />

Wachstumsfaktoren ausgesetzt. Je mehr <strong>in</strong>dividuelle Faktoren sich auf <strong>das</strong> Wachstum<br />

auswirken, desto schwieriger kann <strong>der</strong> Wachstumsverlauf mit dem an<strong>der</strong>er Baume<br />

verglichen werden, da sich die <strong>in</strong>dividuellen Faktoren wie e<strong>in</strong>e Art Storsignal <strong>in</strong> <strong>der</strong> Jahrr<strong>in</strong>gbreitenfolge<br />

wie<strong>der</strong>spiegeln. Deshalb ist es von Vorteil, pro Standort und Spezies e<strong>in</strong>e<br />

Referenzfolge z<strong>ur</strong> Verfugung zu haben, die zum gro ten Teil den geme<strong>in</strong>samen Wachstumsbed<strong>in</strong>gungen<br />

entspricht, um bestmogliche Vergleiche d<strong>ur</strong>chfuhren zu konnen.<br />

E<strong>in</strong>e solche Referenzfolge wird aus moglichst vielen Jahrr<strong>in</strong>gbreitenfolgen d<strong>ur</strong>ch<br />

jahrliche Mittelwertbildung gebildet und als Jahrr<strong>in</strong>gchronologie bezeichnet. Sie entsteht<br />

<strong>in</strong> <strong>der</strong> Regel d<strong>ur</strong>ch sukkzessive H<strong>in</strong>zunahme weiterer Jahrr<strong>in</strong>gbreitenfolgen, die zuvor mittels<br />

<strong>Crossdat<strong>in</strong>g</strong> an <strong>der</strong> bisherigen Jahrr<strong>in</strong>gchronologie datiert w<strong>ur</strong>den. Hau g werden<br />

die Jahrr<strong>in</strong>gfolgen vor <strong>der</strong> Zusammenfassung zu e<strong>in</strong>er Chronologie gewissen Transformationen,<br />

sogenannten Standardisierungen unterworfen, auf die <strong>in</strong> Unterkapitel 2.4 naher<br />

e<strong>in</strong>gegangen wird.<br />

12


Abbildung 2.5: Schematische Darstellung des Uberbruckungsverfahrens z<strong>ur</strong> Erzeugung e<strong>in</strong>er langen<br />

Jahrr<strong>in</strong>gchronologie (aus [45])<br />

Um die Lange e<strong>in</strong>er Jahrr<strong>in</strong>gchronologie nicht auf <strong>das</strong> Lebensalter <strong>der</strong> verwendeten<br />

Baumarten zu beschranken, son<strong>der</strong>n moglichst weit auszudehnen, wird <strong>das</strong> sogenannte<br />

Uberbruckungsverfahren angewendet. Dazu wird <strong>in</strong> <strong>der</strong> Regel von e<strong>in</strong>em datierten<br />

Holzstuck <strong>der</strong> Gegenwart (z.B. von e<strong>in</strong>em Baum, dessen Falldatum bekannt ist) ausgegangen,<br />

und sukkzessiv altere Holzproben zum Vergleich h<strong>in</strong>zugenommen, <strong>der</strong>en geme<strong>in</strong>samer<br />

Lebenszeitraum m<strong>in</strong>destens e<strong>in</strong>ige Jahrzehnte umfa t. Zwei solche Jahrr<strong>in</strong>gbreitenfolgen<br />

uberlappen sich, weshalb <strong>in</strong>nerhalb dieses Uberlappungs<strong>in</strong>tervalls (Brucke) mittels des<br />

<strong>Crossdat<strong>in</strong>g</strong>s e<strong>in</strong>e Datierung <strong>der</strong> e<strong>in</strong>en Folge anhand <strong>der</strong> an<strong>der</strong>en vorgenommen werden<br />

kann. In Abbildung 2.5 ist <strong>das</strong> Uberbruckungsverfahren anhand e<strong>in</strong>es Beispiels verdeutlicht.<br />

Auf diese Art und Weise konnen Jahrr<strong>in</strong>gchronologien ausgehend von <strong>der</strong> Gegenwart<br />

so weit schrittweise <strong>in</strong> die Vergangenheit verlangert werden, wie geeignetes Holz<br />

z<strong>ur</strong> Verfugung steht. Solche Chronologien konnen dann mehrere tausend Jahre umfassen.<br />

Die dabei auftretenden Brucken sollten moglichst lang se<strong>in</strong>, um Fehldatierungen zu<br />

vermeiden.<br />

Z<strong>ur</strong> Realisierung dieses Uberlappungsverfahrens wird beim <strong>Crossdat<strong>in</strong>g</strong> also nicht n<strong>ur</strong><br />

versucht, die ganze undatierte Jahrr<strong>in</strong>gfolge <strong>in</strong> <strong>der</strong> datierten Referenzfolge zu lokalisieren,<br />

son<strong>der</strong>n am Anfang <strong>der</strong> Referenzfolge auch alle Su xe, die e<strong>in</strong>e gewisse M<strong>in</strong>destlange<br />

uberschreiten, sowie am Ende <strong>der</strong> Referenzfolge auch alle Pra xe, die ebenfalls die M<strong>in</strong>destlange<br />

uberschreiten. Die M<strong>in</strong>destlange richtet sich dabei nach <strong>der</strong> Lange e<strong>in</strong>es s<strong>in</strong>nvollen<br />

Uberlappungs<strong>in</strong>tervalls, was zwischen 20 und 100, aber oft bei etwa 50Folgenglie<strong>der</strong>n /<br />

13


Jahren liegt. Ebenso ist es nicht s<strong>in</strong>nvoll, ganze Jahrr<strong>in</strong>gfolgen mite<strong>in</strong>an<strong>der</strong> zu vergleichen,<br />

<strong>der</strong>en Lange k<strong>ur</strong>zer als die s<strong>in</strong>nvolle M<strong>in</strong>destlange s<strong>in</strong>d.<br />

2.4 Standardisierung <strong>der</strong> Daten<br />

2.4.1 Notwendigkeit von Standardisierungen<br />

Jahrr<strong>in</strong>gfolgen werden vor e<strong>in</strong>er weitergehenden Betrachtung fast immer bestimmten<br />

Transformationen unterworfen. Diese heben Schwankungen bestimmter Art <strong>in</strong> den Folgen<br />

hervor und schwachen an<strong>der</strong>e wie<strong>der</strong>um ab mit dem Ziel, Mittelwerte und Varianzen <strong>der</strong><br />

Folgen zu standardisieren. In <strong>der</strong> Sprache <strong>der</strong> <strong>Dendrochronologie</strong> werden solche Transformationen<br />

als Standardisierungen bzw. Indexierungen und die transformierten Folgen<br />

als Indexfolgen bezeichnet. Transformationen, die k<strong>ur</strong>zfristige Schwankungen hervorheben<br />

und langfristige elim<strong>in</strong>ieren, hei en Hochpa lter, und solche, die k<strong>ur</strong>zfristige Schwankungen<br />

elim<strong>in</strong>ieren und n<strong>ur</strong> die Langzeittrends hervorheben, hei en Tiefpa lter.<br />

Zum e<strong>in</strong>en kann e<strong>in</strong>e Zusammenfassung mehrerer unstandardisierter Folgen zu e<strong>in</strong>er<br />

Chronologie zu Langzeittrends <strong>in</strong>nerhalb <strong>der</strong> Chronologie fuhren, die als solche <strong>in</strong> ke<strong>in</strong>er<br />

<strong>der</strong> E<strong>in</strong>zelfolgen enthalten s<strong>in</strong>d. Solche kunstlich entstandenen Langzeittrends konnen<br />

Vergleiche mit weiteren Jahrr<strong>in</strong>gfolgen verfalschen. D<strong>ur</strong>ch e<strong>in</strong>e vorherige Standardisierung<br />

je<strong>der</strong> E<strong>in</strong>zelfolge werden solche kunstlichen Langzeittrends vermieden. E<strong>in</strong>e an<strong>der</strong>e<br />

Moglichkeit kunstliche Langzeittrends zu vermeiden besteht dar<strong>in</strong>, e<strong>in</strong>e moglichst hohe Anzahl<br />

von E<strong>in</strong>zelfolgen zu e<strong>in</strong>er Chronologie zusammenzufassen, so da sich unerwunschte<br />

Langzeittrends gegenseitig ausgleichen.<br />

Zum an<strong>der</strong>en werden Standardisierungen f<strong>ur</strong> <strong>das</strong> <strong>Crossdat<strong>in</strong>g</strong> zweier Folgen benotigt.<br />

F<strong>ur</strong> <strong>das</strong> <strong>Crossdat<strong>in</strong>g</strong> s<strong>in</strong>d ausschlie lich k<strong>ur</strong>z- bis mittelfristige Schwankungen <strong>der</strong> Jahrr<strong>in</strong>gfolgen<br />

von Interesse, da diese hau g bei vielen Baumen <strong>in</strong> ahnlicher Weise auftreten.<br />

Langfristige Schwankungen, die zum Beispiel vom zunehmenden Alter des Baumes (Alterstrends)<br />

o<strong>der</strong> von Konk<strong>ur</strong>renzbed<strong>in</strong>gungen im Wachstum herruhren konnen, s<strong>in</strong>d f<strong>ur</strong><br />

e<strong>in</strong>en Baum <strong>in</strong>dividuelle Merkmale, die die Vergleiche mit an<strong>der</strong>en Jahrr<strong>in</strong>gfolgen erschweren.<br />

Beispielsweise kann es ohne Elim<strong>in</strong>ierung <strong>der</strong> Alterstrends schwierig se<strong>in</strong>, altere mit<br />

jungeren Baumen zu Vergleichen. Deshalb werden f<strong>ur</strong> <strong>das</strong> <strong>Crossdat<strong>in</strong>g</strong> <strong>in</strong> <strong>der</strong> Regel extreme<br />

Hochpa lter verwendet, die oft n<strong>ur</strong> Jahr-zu-Jahr-Trends ubrig lassen.<br />

2.4.2 Log-Standardisierung<br />

In <strong>der</strong> Regel treten <strong>in</strong> Jahrr<strong>in</strong>gfolgen mehr schmale als breite Jahresr<strong>in</strong>ge auf, jedoch<br />

wirken Unterschiede zwischen breiten Jahresr<strong>in</strong>gen falschlicherweise gravieren<strong>der</strong> als zwischen<br />

schmalen R<strong>in</strong>gen. Deshalb wird bei dem Vergleich zweier Folgen sehr hau g e<strong>in</strong><br />

Logarithmus <strong>der</strong> e<strong>in</strong>zelnen Folgenwerte betrachtet.<br />

14


Jahrr<strong>in</strong>gbreite <strong>in</strong> 1/100 mm<br />

(log Skala)<br />

400<br />

300<br />

200<br />

150<br />

100<br />

50<br />

20<br />

1920 1932 1940 1960<br />

Jahr<br />

1980 2000<br />

Abbildung 2.6: Jahrr<strong>in</strong>gbreitenk<strong>ur</strong>ven zweier Kiefern aus dem Berl<strong>in</strong>er Umland mit logarithmischer<br />

y-Skala. Daten aus dem Deutschen Archaologischen Institut, E<strong>ur</strong>asien-Abteilung.<br />

F<strong>ur</strong> e<strong>in</strong>en optischen Vergleich werden daf<strong>ur</strong> die Folgen <strong>in</strong> e<strong>in</strong>em Diagramm mit halblogarithmischer<br />

Skala aufgetragen. D<strong>ur</strong>ch diese logarithmische Darstellung bzw. Standardisierung<br />

werden Schwankungen <strong>in</strong>nerhalb ger<strong>in</strong>ger Jahrr<strong>in</strong>gbreiten hervorgehoben und<br />

<strong>in</strong>nerhalb breiter Jahrr<strong>in</strong>ge abgeschwacht. In Abbildung 2.6 s<strong>in</strong>d die beiden K<strong>ur</strong>ven aus<br />

Abbildung 2.3 mit e<strong>in</strong>er logarithmischen y-Skala aufgetragen.<br />

2.4.3 Standardisierung d<strong>ur</strong>ch Glattungsk<strong>ur</strong>ven<br />

Viele verwendete Standardisierungsverfahren beruhen auf dem Pr<strong>in</strong>zip, da <strong>der</strong> extreme<br />

Langzeitverlauf e<strong>in</strong>er K<strong>ur</strong>ve mit Hilfe e<strong>in</strong>er Ausgleichs- bzw. Glattungsk<strong>ur</strong>ve ausgedruckt,<br />

und danach je<strong>der</strong> Folgenwert d<strong>ur</strong>ch den Wert <strong>der</strong> Ausgleichsk<strong>ur</strong>ve an dieser Stelle geteilt<br />

wird. 1<br />

F<strong>ur</strong> die Berechnung e<strong>in</strong>er Ausgleichsk<strong>ur</strong>ve gibt es determ<strong>in</strong>istische und stochastische<br />

Verfahren. Bei den determ<strong>in</strong>istischen Verfahren wird e<strong>in</strong>e vorgegebene K<strong>ur</strong>ve, zum Beispiel<br />

e<strong>in</strong>e Gerade o<strong>der</strong> e<strong>in</strong>e negativ exponentielle Funktion, <strong>der</strong> Jahrr<strong>in</strong>gfolge mit <strong>der</strong><br />

Methode <strong>der</strong> kle<strong>in</strong>sten Quadrate angepa t. Bei stochastischen Verfahren werden datenabhangigere<br />

Ausgleichsk<strong>ur</strong>ven, wie gleitende Mittel o<strong>der</strong> Spl<strong>in</strong>es, verwendet. Die verschiedenen<br />

Moglichkeiten <strong>der</strong> Standardisierung mit Ausgleichsk<strong>ur</strong>ven beschreiben Cook und<br />

Bri a [8].<br />

E<strong>in</strong> 1973 von Baillie und Pilcher [5] vorgestelltes Verfahren verwendet als<br />

Glattungsk<strong>ur</strong>ve e<strong>in</strong> ungewichtetes gleitendes arithmetisches Mittel. Dabei wird e<strong>in</strong> Zeit-<br />

1 Bei Dichte-Betrachtungen wird bei Schwe<strong>in</strong>gruber [45] subtrahiert statt dividiert.<br />

15


fenster, dessen Breite d<strong>ur</strong>ch e<strong>in</strong>e feste Anzahl von Jahrr<strong>in</strong>gwerten bestimmt ist, sukkzessiv<br />

uber die Jahrr<strong>in</strong>gfolge geschoben ( " gleitend\ ), wobei die Werte <strong>in</strong>nerhalb des Fensters gemittelt<br />

und dem mittleren Zeitpunkt des Fensters zugeordnet werden.<br />

Ist die Jahrr<strong>in</strong>gfolge mit (xi)i bezeichnet, so errechnet sich die Glattungsk<strong>ur</strong>ve (yi)i<br />

demnach d<strong>ur</strong>ch<br />

yi :=<br />

1<br />

Xi+k<br />

2k +1<br />

j=i,k<br />

xj; (2.1)<br />

wenn l = 2k +1 die Lange des Zeitfensters bezeichnet. Die standardisierte Folge (zi)i<br />

berechnet sich d<strong>ur</strong>ch jahrliche Division d<strong>ur</strong>ch die Werte <strong>der</strong> Glattungsfunktion, also d<strong>ur</strong>ch<br />

zi = xi<br />

yi<br />

: (2.2)<br />

F<strong>ur</strong> die hau g verwendete Intervallange von 5 liegt <strong>das</strong> gleitende Mittel sehr dicht<br />

an <strong>der</strong> Jahrr<strong>in</strong>gk<strong>ur</strong>ve an, weshalb <strong>in</strong> <strong>der</strong> standardisierten K<strong>ur</strong>ve viele Langzeittrends entfernt<br />

s<strong>in</strong>d. Ubrig bleiben fast n<strong>ur</strong> die Jahr-zu-Jahr-Trends. Diese Standardisierungsart<br />

wird als " Prozent des l-jahrigen gleitenden Mittels\ bezeichnet. Hau g wird zusatzlich<br />

h<strong>in</strong>terher noch e<strong>in</strong>e Log-Standardisierung d<strong>ur</strong>chgefuhrt. Dad<strong>ur</strong>ch wird laut Baillie und<br />

Pilcher [5] annahernd e<strong>in</strong>e Normalverteilung <strong>der</strong> Daten erreicht, die zum Beispiel f<strong>ur</strong> den<br />

<strong>Crossdat<strong>in</strong>g</strong>algorithmus <strong>in</strong> Abschnitt 3.3.4 vorausgesetzt wird.<br />

Allgeme<strong>in</strong> kann d<strong>ur</strong>ch e<strong>in</strong>e Multiplikation <strong>der</strong> xj mit Gewichten wj und d<strong>ur</strong>ch e<strong>in</strong>e anschlie<br />

ende Division d<strong>ur</strong>ch die Summe <strong>der</strong> wj statt d<strong>ur</strong>ch 2k+1 e<strong>in</strong> gewichtetes gleitendes<br />

arithmetisches Mittel gewonnen werden. Von Cook und Bri a ([8]) wird <strong>das</strong> ungewichtete<br />

gleitende Mittel nicht empfohlen, obwohl es als e<strong>in</strong> e<strong>in</strong>fach zu programmierendes Standardisierungsverfahren<br />

vielfach zu erfolgreichen Datierungen beigetragen hat.<br />

2.4.4 Weitere Standardisierungen<br />

E<strong>in</strong>e weitere Standardisierungsmoglichkeit ist die Bildung <strong>der</strong> Di erenz <strong>der</strong> Folgenwerte<br />

von e<strong>in</strong>em zum an<strong>der</strong>en Jahr (diskrete erste Ableitung). Diese ist e<strong>in</strong>fach zu berechnen<br />

und stellt e<strong>in</strong>en extremen Hochpa lter dar, <strong>der</strong> als Standardisierung zweier zu vergleichen<strong>der</strong><br />

Folgen verwendet werden kann. Statt <strong>der</strong> eigentlichen Folgenwerte konnen auch<br />

die Logarithmen <strong>der</strong> Folgenwerte z<strong>ur</strong> jahrlichen Di erenzbildung herangezogen werden,<br />

was als Wuchswert-Formel bezeichnet wird.<br />

Soll <strong>der</strong> Wert 0 als Jahrr<strong>in</strong>gbreitenwert zugelassen werden, konnen logarithmische<br />

Standardisierungen nicht verwendet werden. Um dies zu umgehen, kann vor e<strong>in</strong>er Logarithmenbildung<br />

e<strong>in</strong>e kle<strong>in</strong>e Konstante, zum Beispiel 1, zum Folgenwert addiert, o<strong>der</strong><br />

auch die von Van Deusen [11] vorgeschlagene Umkehrfunktion des S<strong>in</strong>us hyperbolicus<br />

ars<strong>in</strong>h x =ln(x+ p x 2 +1)verwendet werden.<br />

16


Kapitel 3<br />

Gebrauchliche<br />

<strong>Crossdat<strong>in</strong>g</strong>verfahren<br />

In diesem Kapitel werden weit verbreitete <strong>Crossdat<strong>in</strong>g</strong>verfahren, die <strong>in</strong> mehreren <strong>Crossdat<strong>in</strong>g</strong>programmen<br />

implementiert s<strong>in</strong>d, beschrieben. Die Ergebnisse werden <strong>in</strong> <strong>der</strong> Regel mit<br />

statistischen Mitteln ausgewertet, auf die hier n<strong>ur</strong> am Rande e<strong>in</strong>gangen wird.<br />

3.1 Problemstellung<br />

Es seien zwei (Jahrr<strong>in</strong>gbreiten-) Folgen a = a0;:::;am,1 und b = b0;:::;bn,1 gegeben. a<br />

sei die Referenzfolge bzw. Chronologie und b die <strong>in</strong> a zu lokalisierende Musterjahrr<strong>in</strong>gfolge.<br />

Die m<strong>in</strong>imale Lange e<strong>in</strong>es Uberlappungs<strong>in</strong>tervalls sei mit m<strong>in</strong>Ovl bezeichnet.<br />

Gesucht s<strong>in</strong>d zu b sehr ahnliche, zusammenhangende Teilfolgen <strong>in</strong> a, unter denen <strong>der</strong><br />

Benutzer d<strong>ur</strong>ch visuelles Nachprufen die e<strong>in</strong>e b tatsachlich entsprechende Folge <strong>in</strong> a identi<br />

zieren und somit b datieren kann. Es handelt sich also um e<strong>in</strong>e approximative Mustererkennung<br />

von b <strong>in</strong> a, f<strong>ur</strong> die mehrere mogliche Match<strong>in</strong>gs von b <strong>in</strong> a zusammen mit e<strong>in</strong>er<br />

Gute des Match<strong>in</strong>gs ausgegeben werden sollen.<br />

Die Art, wie sich e<strong>in</strong>e zu b ahnliche Teilfolge <strong>in</strong> a von b unterscheiden kann, ist <strong>in</strong> diesem<br />

Kapitel ausschlie lich auf Veran<strong>der</strong>ungen <strong>der</strong> e<strong>in</strong>zelnen Folgenwerte beschrankt, d.h., die<br />

Lange von b und e<strong>in</strong>er zu b ahnlichen Folge ist gleich, und die jeweils i-ten Folgenglie<strong>der</strong><br />

entsprechen e<strong>in</strong>an<strong>der</strong>. (Dad<strong>ur</strong>chwerden ke<strong>in</strong>e fehlenden o<strong>der</strong> doppelten R<strong>in</strong>ge betrachtet.)<br />

Welche Folgen als ahnlich betrachtet werden hangt von dem verwendeten Abstands- bzw.<br />

Ahnlichkeitsbegri ab.<br />

Zusatzlichwerden am l<strong>in</strong>ken Rand von a auch Su xe von b und am rechten Rand von a<br />

Pra xe von b f<strong>ur</strong> e<strong>in</strong> Match<strong>in</strong>g betrachtet, wobei die Lange e<strong>in</strong>es Su xes bzw. Pa xes von<br />

17


gleich <strong>der</strong> Lange des zu vergleichenden Pra xes bzw. Su xes <strong>in</strong> a, jedoch m<strong>in</strong>destens<br />

m<strong>in</strong>Ovl se<strong>in</strong> mu . Anschaulich gesehen mussen also an den Ran<strong>der</strong>n von a m<strong>in</strong>destens<br />

m<strong>in</strong>Ovl Folgenglie<strong>der</strong> von b " uberlappen\ und die restlichen n , m<strong>in</strong>Ovl Folgenglie<strong>der</strong><br />

l<strong>in</strong>ks bzw. rechts von a " uberhangen\ , wobei letztere nicht <strong>in</strong> den Vergleich e<strong>in</strong>bezogen<br />

werden.<br />

3.2 Grundlegen<strong>der</strong> sukkzessiver Algorithmus<br />

for (l=m<strong>in</strong>Ovl-n; l


In dem sukkzessiven Algorithmus wird dazu anschaulich gesehen <strong>das</strong> Muster b von<br />

l<strong>in</strong>ks nach rechts uber die Referenzfolge a geschoben, wobei m<strong>in</strong>destens m<strong>in</strong>Ovl Folgenglie<strong>der</strong><br />

uberlappen mussen. An je<strong>der</strong> Stelle wird die Kenngro e zwischen den e<strong>in</strong>an<strong>der</strong><br />

gegenuberstehenden (Teil-) Folgen berechnet und <strong>der</strong> Position / Index <strong>in</strong> r zugeordnet, an<br />

dem die Folge b mit ihrem ersten Folgenglied zum Vergleich angelegt w<strong>ur</strong>de. Da m<strong>in</strong>destens<br />

m<strong>in</strong>Ovl Folgenglie<strong>der</strong> uberlappen mussen, werden den letzten m<strong>in</strong>Ovl , 1 Indizes<br />

ke<strong>in</strong>e Werte zugeordnet. Die teilweisen Uberlappungen am Anfang von a werden d<strong>ur</strong>ch<br />

Zuordnungen an die " kunstlichen\ Indizes m<strong>in</strong>Ovl , n;:::;,1 realisiert.<br />

Der Algorithmus ist <strong>in</strong> Abbildung 3.1 angegeben 1 . Die Folgen a, b sowie die Ergebnisfolge<br />

result s<strong>in</strong>d als Fel<strong>der</strong> realisiert, wobei <strong>das</strong> i-te Element e<strong>in</strong>es Feld f mit f[i] und<br />

<strong>das</strong> Teilfeld vom Index i bis zum Index j, i j, mit f[i::j] bezeichnet wird. Die Funktion<br />

compare berechnet die Kenngro e, die e<strong>in</strong>en Ahnlichkeits- bzw. Abstandsbegri zweier<br />

gleichlanger Folgen angibt.<br />

Der Algorithmus glie<strong>der</strong>t sich <strong>in</strong> drei Schritte, die jeweils aus e<strong>in</strong>er for-Schleife bestehen.<br />

Die zu den e<strong>in</strong>zelnen Schritten abgebildeten Graphiken illustrieren den jeweils ersten und<br />

letzten Fall <strong>der</strong> for-Schleife. Im ersten Schritt werden alle unvollstandigen Uberlappungen<br />

an <strong>der</strong> l<strong>in</strong>ken Seite von a betrachtet. Dabei werden die m<strong>in</strong>destens m<strong>in</strong>Ovl-langen Pra xe<br />

von a mit den Su xen gleicher Lange von b verglichen. Der zweite Schritt vergleicht b <strong>in</strong><br />

voller Lange an allen moglichen Positionen <strong>in</strong> a. Im dritten Schritt werden ahnlich wie im<br />

ersten Schritt alle unvollstandigen Uberlappungen an <strong>der</strong> rechten Seite von a betrachtet.<br />

Dazu werden die Su xe mit M<strong>in</strong>destlange m<strong>in</strong>Ovl von a mit den Pra xen gleicher Lange<br />

von b verglichen.<br />

Da a <strong>in</strong> den meisten Fallen die bereits datierte Referenzfolge ist, entspricht je<strong>der</strong> Index<br />

<strong>in</strong> a e<strong>in</strong>er Jahreszahl. Dann konnen die Zuordnungen <strong>der</strong> statistischen Gro en zu Indizes<br />

<strong>in</strong> a gleichsam als Zuordnungen zu Jahreszahlen aufgefa t werden.<br />

Die den e<strong>in</strong>zelnen Indizes bzw. Jahreszahlen zugeordneten Resultate werden dem<br />

Benutzer geeignet ausgegeben, wobei dieser e<strong>in</strong> Match<strong>in</strong>g <strong>in</strong> <strong>der</strong> Regel visuell an den<br />

Jahrr<strong>in</strong>gfolgen o<strong>der</strong> direkt am Holz uberpruft.<br />

Ausgehend davon, da die Berechnung e<strong>in</strong>es Abstandes l<strong>in</strong>eare Laufzeit <strong>in</strong> <strong>der</strong> Lange<br />

<strong>der</strong> zwei zu vergleichenden Folgen benotigt, ist die Laufzeit des sukkzessiven Algorithmus<br />

(mn , m<strong>in</strong>Ovl(m<strong>in</strong>Ovl , 1)) bzw. f<strong>ur</strong> konstantes m<strong>in</strong>Ovl (mn).<br />

1 Der an dieser Stelle sowie auch im folgenden verwendete Pseudo-Code ist an die Sprache C angelehnt.<br />

19


3.3 Vergleich anhand l<strong>in</strong>earer Korrelation<br />

3.3.1 Der Korrelationskoe zient<br />

Seien x = x0;:::;xN,1 und y = y0;:::;yN,1 mit e<strong>in</strong>em festen N 2fm<strong>in</strong>Ovl;:::;n,1g<br />

die an e<strong>in</strong>er Position <strong>in</strong> dem Algorithmus zu vergleichenden, sich gegenuberstehenden<br />

Folgen gleicher Lange.<br />

Der (empirische) Korrelationskoe zient (Pearson's product-moment correlation coe cent)<br />

wird hau g z<strong>ur</strong> Beschreibung <strong>der</strong> Ahnlichkeit zweier Folgen verwendet und ist de niert<br />

als<br />

P<br />

r =<br />

=<br />

N,1 P<br />

wobei x = 1<br />

N,1<br />

xi und y = N<br />

i=0<br />

1<br />

N,1<br />

N<br />

i=0<br />

(xi , x)(yi , y)<br />

i=0 s<br />

N,1 P<br />

N,1 P<br />

(xi , x) 2<br />

(yi , y)<br />

i=0<br />

i=0<br />

2<br />

N,1 P<br />

N xiyi ,<br />

i=0<br />

N,1 P<br />

xi ,<br />

i=0<br />

N,1 P<br />

yi<br />

i=0<br />

s<br />

N,1 P<br />

(N x<br />

i=0<br />

2 P<br />

i , (N,1 xi)<br />

i=0<br />

2 N,1 P<br />

)(N y<br />

i=0<br />

2 P<br />

i , (N,1<br />

i=0<br />

P<br />

yi die arithmetischen Mittel s<strong>in</strong>d.<br />

yi) 2 )<br />

(3.1)<br />

(3.2)<br />

Der (empirische) Korrelationskoe zient mi t den Grad <strong>der</strong> l<strong>in</strong>earen Abhangigkeit von<br />

x und y. Die beiden Folgen s<strong>in</strong>d l<strong>in</strong>ear abhangig vone<strong>in</strong>an<strong>der</strong>, wenn alle Punkte (xi;yi)<strong>in</strong><br />

e<strong>in</strong>em Koord<strong>in</strong>atensystem mit den moglichen Werten von x als x-Achse und den moglichen<br />

Werten von y als y-Achse auf e<strong>in</strong>er Geraden y = x + liegen. Je weniger x und y l<strong>in</strong>ear<br />

abhangig vone<strong>in</strong>an<strong>der</strong> s<strong>in</strong>d, desto mehr streuen die Punkte <strong>in</strong> e<strong>in</strong>em solchen Koord<strong>in</strong>atensystem,<br />

und desto schwieriger ist, e<strong>in</strong>e Gerade zu bestimmen, <strong>der</strong>en Abstand zu den<br />

Punkten m<strong>in</strong>imal ist.<br />

Der Wertebereich von r liegt zwischen ,1 und +1 (jeweils e<strong>in</strong>schlie lich), wobei jrj =1<br />

ist genau dann, wenn beide Folgen l<strong>in</strong>ear mit Koe zienten und vone<strong>in</strong>an<strong>der</strong> abhangen.<br />

Das Vorzeichen von r entspricht dabei dem Vorzeichen von . Ist positiv, so steigt x<br />

genau dann, wenn y steigt, und fallt x genau dann, wenn y fallt 2 . Bei negativem steigt x<br />

genau dann, wenn y fallt und umgekehrt 3 . Die Folgen werden bei jrj nahe 1 entsprechend<br />

dem Vorzeichen von r als stark positiv (negativ) korreliert bezeichnet. Je mehr die Punkte<br />

2 D.h. f<strong>ur</strong> 1 i N , 1 gilt sign(xi , xi,1) =sign(yi , yi,1):<br />

3 D.h. f<strong>ur</strong> 1 i N , 1 gilt sign(xi , xi,1) =,sign(yi , yi,1):<br />

20


(xi;yi) von e<strong>in</strong>er Geraden abweichen, desto kle<strong>in</strong>er ist jrj, d.h. desto schwacher s<strong>in</strong>d sie<br />

korreliert. Bei jrj = 0 s<strong>in</strong>d die beiden Folgen unkorreliert, d.h. sie hangen nicht l<strong>in</strong>ear<br />

vone<strong>in</strong>an<strong>der</strong> ab.<br />

Beweise f<strong>ur</strong> diese Beobachtungen sowie Herleitungen f<strong>ur</strong> den Korrelationskoe zienten<br />

s<strong>in</strong>d <strong>in</strong> vielen Statistikbuchern, zum Beispiel <strong>in</strong> Yamane [57] und Worth<strong>in</strong>g et al. [56]<br />

zu nden. E<strong>in</strong>e Herleitungsart verwendet die Methode <strong>der</strong> kle<strong>in</strong>sten Quadrate, um e<strong>in</strong>e<br />

bestmogliche Anpassung <strong>der</strong> Stichprobenpaare an zwei sogenannte Regressionsgeraden zu<br />

nden. Diese Herleitungsmethode verdeutlicht den Zusammenhang des Korrelationskoefzienten<br />

mit Geraden <strong>in</strong> <strong>der</strong> (x; y)-Ebene. F<strong>ur</strong> Details zu diesem Ansatz wird auf Yamane<br />

[57] und Worth<strong>in</strong>g et al. [56] verwiesen.<br />

3.3.2 Interpretation l<strong>in</strong>earer Korrelation <strong>in</strong> <strong>der</strong> <strong>Dendrochronologie</strong><br />

In <strong>der</strong> <strong>Dendrochronologie</strong> wird <strong>der</strong> zeitliche Verlauf zweier Folgen betrachtet, um diese zu<br />

vergleichen. Deshalb werden die Folgen wie <strong>in</strong> den vorigen Kapiteln z<strong>ur</strong> Veranschaulichung<br />

<strong>in</strong> e<strong>in</strong>em Zeit-Jahrr<strong>in</strong>gbreiten-Koord<strong>in</strong>atensystem aufgetragen. E<strong>in</strong>e l<strong>in</strong>eare Abhangigkeit<br />

mit r = 1 zwischen zwei Folgen ist <strong>in</strong> e<strong>in</strong>em solchen Koord<strong>in</strong>atensystem daran zu erkennen,<br />

da sich die beiden Folgen n<strong>ur</strong> d<strong>ur</strong>ch e<strong>in</strong>e Skalierung um den Faktor und d<strong>ur</strong>ch e<strong>in</strong>e<br />

Verschiebung <strong>in</strong> <strong>der</strong> Ord<strong>in</strong>ate um unterscheiden. Der Richtungss<strong>in</strong>n, d.h. die Richtung<br />

<strong>der</strong> Steigung von Jahr zu Jahr (positiv, negativ), stimmt dann bei den beiden K<strong>ur</strong>ven an<br />

je<strong>der</strong> Stelle ubere<strong>in</strong>.<br />

Da e<strong>in</strong> Baum d<strong>ur</strong>ch f<strong>ur</strong> ihn <strong>in</strong>dividuell bessere Wachstumsbed<strong>in</strong>gungen d<strong>ur</strong>chaus allgeme<strong>in</strong><br />

breitere (o<strong>der</strong> bei schlechteren Bed<strong>in</strong>gungen schmalere) Jahrr<strong>in</strong>ge haben kann als<br />

e<strong>in</strong> <strong>in</strong> <strong>der</strong> Nahe wachsen<strong>der</strong> Baum, konnen zwei gleichdatierte Jahrr<strong>in</strong>gbreitenfolgen um<br />

E<strong>in</strong>heiten <strong>in</strong> Jahrr<strong>in</strong>gbreiten-Richtung verschoben se<strong>in</strong>. Hohere bzw. schwachere Sensitivitat<br />

auf die Wachstumsbed<strong>in</strong>gungen bei verschiedenen Baumen schlagt sich <strong>in</strong> e<strong>in</strong>em<br />

Skalierungsfaktor > 0 nie<strong>der</strong>. E<strong>in</strong> Skalierungsfaktor kle<strong>in</strong>er 0 ist nicht moglich, da<br />

dies e<strong>in</strong> entgegengesetztes Verhalten des jahrlichen Richtungss<strong>in</strong>ns bedeuten w<strong>ur</strong>de. Je<br />

schwacher die l<strong>in</strong>eare Abhangigkeit zweier Folgen vone<strong>in</strong>an<strong>der</strong> ist, desto weniger stimmen<br />

<strong>der</strong> jahrliche Richtungss<strong>in</strong>n, die Skalierung und die Verschiebung ubere<strong>in</strong>.<br />

Diese Betrachtungen gelten jedoch n<strong>ur</strong>, wenn die Jahrr<strong>in</strong>gfolgen jeweils stationar s<strong>in</strong>d,<br />

d.h. ke<strong>in</strong>e Langzeittrends aufweisen, son<strong>der</strong>n gleichma ig um e<strong>in</strong>en festen Mittelwert<br />

variieren. Da Jahrr<strong>in</strong>gfolgen im allgeme<strong>in</strong>en Langzeittrends aufweisen, werden die Folgen<br />

a und b, bevor sie mite<strong>in</strong>an<strong>der</strong> verglichen werden, speziellen Transformationen unterzogen,<br />

die die Langzeittrends elim<strong>in</strong>ieren. Transformationen dieser Art w<strong>ur</strong>den <strong>in</strong> Abschnitt 2.4<br />

beschrieben.<br />

3.3.3 Der t-Wert<br />

E<strong>in</strong> Nachteil von r besteht dar<strong>in</strong>, da r die Lange <strong>der</strong> Folgen nicht berucksichtigt. Hau g<br />

kann es deshalb bei kle<strong>in</strong>em N passieren, da trotz e<strong>in</strong>es hohen Wertes von r die Folgen<br />

21


x und y nicht gleichdatiert s<strong>in</strong>d. In <strong>der</strong> <strong>Dendrochronologie</strong> wird deshalb statt r <strong>der</strong> von r<br />

und N abhangige t-Wert (Student's t)<br />

t = r<br />

r N , 2<br />

1 , r 2<br />

(3.3)<br />

betrachtet. Dieser bezieht die Lange N <strong>der</strong> Folgen e<strong>in</strong> und druckt die Korrelation <strong>in</strong> e<strong>in</strong>er<br />

Skalierung aus, die hohe Werte von r verstarkt darstellt, wie aus Abbildung 3.2 hervorgeht.<br />

10<br />

9<br />

8<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

r<br />

t(r,3)<br />

t(r,4)<br />

0 0.2 0.4 0.6 0.8 1<br />

r<br />

Abbildung 3.2: Veranschaulichung des Verlaufs des t-Wertes t(r;N) aus Formel (3.3)<br />

Abgesehen davon wird t hau g z<strong>ur</strong> Berechnung <strong>der</strong> statistischen Sicherheit e<strong>in</strong>er Datierung<br />

mit dem beobachteten Wert von r verwendet. t dient dabei als Teststatistik z<strong>ur</strong><br />

Uberprufung <strong>der</strong> Hypothese, da die Ahnlichkeit <strong>der</strong> beiden Folgen, also <strong>das</strong> Auftreten<br />

e<strong>in</strong>es strikt positiven Korrelationskoe zienten, zufallig ist. Dazu wird die Wahrsche<strong>in</strong>lichkeit<br />

betrachtet, da d<strong>ur</strong>ch Zufall, also bei e<strong>in</strong>er beliebigen, nicht ubere<strong>in</strong>stimmenden<br />

Datierung <strong>der</strong> Folgen, e<strong>in</strong> m<strong>in</strong>destens so gro er Korrelationskoe zient wie <strong>der</strong> tatsachlich<br />

berechnete auftritt. Diese Wahrsche<strong>in</strong>lichkeit wird als Signi kanz des Tests bezeichnet,<br />

und stellt die Komplementarwahrsche<strong>in</strong>lichkeit z<strong>ur</strong> statistischen Sicherheit dar.<br />

Unter <strong>der</strong> Annahme, da die Werte (xi;yi) <strong>der</strong> beiden Folgen an jedem Zeitpunkt i<br />

identisch bivariat normalverteilt und uber die Zeit stochastisch unabhangig vone<strong>in</strong>an<strong>der</strong><br />

s<strong>in</strong>d, kann aus t <strong>in</strong> konstanter Zeit die Signi kanz errechnet, bzw. <strong>in</strong> Tabellen nachgeschlagen<br />

werden.<br />

Der Benutzer sollte <strong>in</strong> <strong>der</strong> Regel anhand des Wertes von t und <strong>der</strong> statistischen Sicherheit<br />

e<strong>in</strong>e Entscheidung uber e<strong>in</strong> Match<strong>in</strong>g tre en. E<strong>in</strong>e moglichst hohe statistische<br />

Sicherheit gibt dann die Wahrsche<strong>in</strong>lichkeit an, da e<strong>in</strong> Match<strong>in</strong>g an <strong>der</strong> betrachteten<br />

Stelle, und damit e<strong>in</strong>e Datierung, korrekt ist. Da hohe Werte von t hohen statistischen<br />

Sicherheiten entsprechen, kann e<strong>in</strong>e alle<strong>in</strong>ige Betrachtung des t-Wertes auch zu guten Ergebnissen<br />

fuhren.<br />

Um annahernd die vorausgesetzte bivariate Normalverteilung <strong>der</strong> Daten zu erhalten<br />

werden diese vor <strong>der</strong> Berechnung <strong>der</strong> Korrelationskoe zienten und <strong>der</strong> t-Werte standar-<br />

22


disiert. E<strong>in</strong>ige Standardisierungsverfahren w<strong>ur</strong>den <strong>in</strong> Unterkapitel 2.4 angegeben. Hau g<br />

verwendet wird e<strong>in</strong> von Baillie und Pilcher [5] vorgeschlagenes 5-jahriges gleitendes Mittel<br />

als Glattungsk<strong>ur</strong>ve mit anschlie en<strong>der</strong> Log-Transformation.<br />

Die Annahme <strong>der</strong> zeitlichen Unabhangigkeit <strong>der</strong> Folgen sowie die Berechnung <strong>der</strong><br />

e<strong>in</strong>zelnen statistischen Sicherheiten ohne Berucksichtigung, da <strong>der</strong> statistische Test <strong>in</strong><br />

dem Match<strong>in</strong>galgorithmus wie<strong>der</strong>holt d<strong>ur</strong>chgefuhrt wird, ist statistisch nicht vollig korrekt.<br />

Die Jahrr<strong>in</strong>gfolgen unterliegen e<strong>in</strong>er gewissen Autokorrelation, und die wie<strong>der</strong>holte<br />

D<strong>ur</strong>chfuhrung des statistischen Tests mu te sich <strong>in</strong> <strong>der</strong> Berechnung <strong>der</strong> Wahrsche<strong>in</strong>lichkeiten<br />

auswirken. Anmerkungen und Verbesserungsvorschlage dazu nden sich zum Beispiel<br />

<strong>in</strong> [54] und [33].<br />

Da nichtsdestoweniger dieses statistisch nicht vollig korrekte Verfahren mit Erfolg benutzt<br />

wird, und sich die Verbesserungsvorschlage n<strong>ur</strong> auf die statistische Interpretation<br />

<strong>der</strong> Ergebnisse, also die Transformation <strong>der</strong> Daten sowie die Art <strong>der</strong> Signi kanzberechnung,<br />

nicht aber auf die Berechnung des Korrelationskoe zienten ansich beziehen, wird<br />

<strong>in</strong> dieser Arbeit nicht auf diese Unstimmigkeiten e<strong>in</strong>gegangen.<br />

3.3.4 Korrelationsalgorithmus<br />

Der aus <strong>der</strong> Verwendung des Korrelationskoe zienten als Ahnlichkeitsma <strong>in</strong> dem Basisalgorithmus<br />

aus Unterkapitel 3.2 resultierende Algorithmus lautet wie folgt:<br />

1. Berechnung e<strong>in</strong>er geeigneten Standardisierung von a und b, wie etwa die jahrliche<br />

Di erenz <strong>der</strong> Logarithmen o<strong>der</strong> die Residuen des funfjahrigen gleitenden Mittels.<br />

2. Sukkzessive Berechnung <strong>der</strong> Korrelationskoe zienten an allen moglichen<br />

Uberlappungen d<strong>ur</strong>ch den Basisalgorithmus.<br />

3. Umrechnung <strong>der</strong> Korrelationskoe zienten <strong>in</strong> t-Werte und/o<strong>der</strong> <strong>in</strong> statistische Sicherheiten.<br />

Die Schritte 1 und 3 hangen von <strong>der</strong> jeweiligen statistischen Au assung und <strong>der</strong> daher<br />

verwendeten Standardisierungen und Sigi kanzberechnungen ab. Der Schritt 2 an<strong>der</strong>t sich<br />

dabei jedoch nicht, da die statistischen Untersuchungen n<strong>ur</strong> dazu dienen, die berechneten<br />

Korrelationskoe zienten geeignet auszuwerten.<br />

Viele e<strong>in</strong>fache Standardisierungen, wie etwa die jahrliche Di erenz <strong>der</strong> Logarithmen<br />

o<strong>der</strong> die Residuen des funfjahrigen gleitenden Mittels, konnen <strong>in</strong> Zeit l<strong>in</strong>ear z<strong>ur</strong> Lange <strong>der</strong><br />

zu standardisierenden Folge berechnet werden. Ausgehend von solchen Standardisierungen<br />

benotigt Schritt 1 e<strong>in</strong>e Laufzeit von (n + m).<br />

Die Berechnung e<strong>in</strong>es t-Wertes nach Gleichung (3.3) sowie die Umrechnung dieses<br />

t-Wertes <strong>in</strong> e<strong>in</strong>e Signi kanz ist <strong>in</strong> konstanter Zeit, also f<strong>ur</strong> alle n + m , 2m<strong>in</strong>Ovl +1<br />

Uberlappungspositionen <strong>in</strong> (n+m,2m<strong>in</strong>Ovl) o<strong>der</strong> unabhangig von m<strong>in</strong>Ovl <strong>in</strong> (n+m)<br />

23


moglich. Unter diesen Annahmen benotigen die Schritte 1 und 3 also <strong>in</strong>sgesamt e<strong>in</strong>e<br />

Laufzeit proportional zu m + n.<br />

Da die Berechnung e<strong>in</strong>es Korrelationskoe zienten l<strong>in</strong>ear <strong>in</strong> <strong>der</strong> Uberlappungslange ist,<br />

benotigt Schritt 2 e<strong>in</strong>e zu mn bzw. zu mn , m<strong>in</strong>Ovl(m<strong>in</strong>Ovl , 1) proportionale Laufzeit,<br />

wie <strong>in</strong> Abschnitt 3.2 erlautert w<strong>ur</strong>de. F<strong>ur</strong> konstantes m<strong>in</strong>Ovl ergibt sich damit e<strong>in</strong>e<br />

quadratische Gesamtlaufzeit von (mn).<br />

Die Laufzeit von Schritt 2 kann auf ((m+n)log(m+n)) reduziert werden, wie bereits<br />

1984 von Munro [33] bemerkt w<strong>ur</strong>de, <strong>in</strong>dem alle Terme P xy mit Hilfe <strong>der</strong> schnellen<br />

Fo<strong>ur</strong>ier Transformation (FFT) und die an<strong>der</strong>en Summenterme rek<strong>ur</strong>siv berechnet werden.<br />

Dieser Ansatz wird <strong>in</strong> Kapitel 5 vorgestellt.<br />

3.4 Vergleich anhand des Richtungss<strong>in</strong>ns<br />

E<strong>in</strong>e weitere Moglichkeit, Jahrr<strong>in</strong>gfolgen zu vergleichen besteht dar<strong>in</strong>, statt des Folgenwertes<br />

an e<strong>in</strong>er Indexposition i den entsprechenden Richtungss<strong>in</strong>n <strong>der</strong> Folge an dieser Stelle<br />

zu betrachten. Der Richtungss<strong>in</strong>n sei dabei de niert als <strong>das</strong> Vorzeichen <strong>der</strong> Steigung vom<br />

i-ten zum (i+1)-ten Folgenglied. F<strong>ur</strong> e<strong>in</strong>e Folge x0;:::;xN,1 ergibt sich daraus e<strong>in</strong>e zu<br />

betrachtende Folge x = x0;:::;xN,2 mit xi = sign(jxi+1 , xij) 2f,1;0;1g.<br />

3.4.1 Der Gleichlau gkeitskoe zient<br />

Seien x = x0;:::;xN,1 und y = y0;:::;yN,1 die zwei zu vergleichenden (Teil-)<br />

Folgen gleicher Lange und x und y die dazugehorigen Richtungss<strong>in</strong>n-Folgen. Der<br />

Gleichlau gkeitskoe zient Glk von x und y ist de niert als<br />

wobei (a = b) =<br />

Glk = 1<br />

N<br />

1; wenn a = b<br />

0 ; wenn a 6= b .<br />

N,2 X<br />

i=0<br />

(xi =yi); (3.4)<br />

E<strong>in</strong>e Prozentangabe dieser Art w<strong>ur</strong>de 1943 von Huber [23] vorgeschlagen. Eckste<strong>in</strong><br />

hat den Gleichlau gkeitskoe zienten <strong>in</strong> [14] und [13] e<strong>in</strong>gehend untersucht.<br />

Auch f<strong>ur</strong> den Gleichlau gkeitskoe zienten konnen Teststatistiken entwickelt werden,<br />

aus denen die statistische Sicherheit hervorgeht. Riemer [40] tri t dabei ahnlich wie <strong>in</strong><br />

Abschnitt 3.3.3 Annahmen uber die Verteilungen <strong>der</strong> Folgenwerte, wahrend Eckste<strong>in</strong> [14]<br />

empirisch gewonnene Daten z<strong>ur</strong> Berechnung <strong>der</strong> statistischen Sicherheit verwendet. Die<br />

statistische Sicherheit kann <strong>in</strong> konstanter Zeit aus <strong>der</strong> Uberlappungslange und dem Glk-<br />

Wert berechnet werden.<br />

24


Da <strong>der</strong> Gleichlau gkeitskoe zient n<strong>ur</strong> die Richtung, nicht aber die Hohe <strong>der</strong> jahrlichen<br />

Steigung berucksichtigt, gehen viele Informationen verloren. Er stellt deshalb e<strong>in</strong> recht<br />

grobes Ahnlichkeitsma dar und wird deshalb <strong>in</strong> <strong>der</strong> Praxis hau g nicht als e<strong>in</strong>ziges Match<strong>in</strong>gkritierum<br />

verwendet.<br />

Dennoch hat <strong>der</strong> Gleichlau gkeitskoe zient den Vorteil, da er bei extremen Jahrr<strong>in</strong>gfolgen,<br />

die z.B. stark trendbehaft o<strong>der</strong> autokorreliert s<strong>in</strong>d o<strong>der</strong> Ausrei er enthalten,<br />

zu guten Ergebnissen fuhrt, wo <strong>der</strong> Korrelationskoe zient versagt.<br />

Laut Riemer [40] kommt Hollste<strong>in</strong> [21] zu dem Schlu , da <strong>der</strong> Korrelationskoe -<br />

zient <strong>in</strong> <strong>der</strong> Datierungspraxis dem Gleichlau gkeitskoe zienten grundsatzlich uberlegen<br />

ist. Riemer stellt auch selbst fest, da aus <strong>der</strong> Erfahrung vieler Anwen<strong>der</strong> die Anwendung<br />

des Korrelationskoe zienten mit vorangehen<strong>der</strong> Standardisierung <strong>der</strong> Daten dem<br />

Gleichlau gkeitskoe zienten vorzuziehen ist.<br />

3.4.2 Gleichlau gkeitsalgorithmus<br />

Im Gegensatz zum Korrelationsalgorithmus mussen die Daten nicht notwendigerweise vor<br />

<strong>der</strong> Berechnung <strong>der</strong> Gleichlau gkeitskoe zienten standardisiert werden. Demnach ergibt<br />

sich <strong>der</strong> folgende Algorithmus:<br />

1. Sukkzessive Berechnung <strong>der</strong> Gleichlau gkeitskoe zienten an allen moglichen<br />

Uberlappungen d<strong>ur</strong>ch den Basisalgorithmus.<br />

2. Berechnung <strong>der</strong> statistischen Sicherheiten.<br />

Die e<strong>in</strong>zelnen statistischen Sicherheiten lassen sich aus den<br />

Gleichlau gkeitskoe zienten und den entsprechenden Uberlappungslangen <strong>in</strong> konstanter<br />

Zeit berechnen, weshalb Schritt 2 <strong>in</strong>sgesamt f<strong>ur</strong> alle n + m , 2m<strong>in</strong>Ovl + 1<br />

Uberlappungspositionen <strong>in</strong> (n+m,2m<strong>in</strong>Ovl) o<strong>der</strong> unabhangig von m<strong>in</strong>Ovl <strong>in</strong> (n+m)<br />

Zeit moglich ist.<br />

Die sukkzessive Berechnung aller Gleichlau gkeitskoe zienten anhand des Basisalgorithmus<br />

aus Abbildung 3.2 benotigt e<strong>in</strong>e quadratische Zeit (mn , m<strong>in</strong>Ovl(m<strong>in</strong>Ovl ,<br />

1) bzw. unabhangig von m<strong>in</strong>Ovl e<strong>in</strong>e Zeit von (mn), da die Berechnung e<strong>in</strong>es<br />

Gleichlaufkeitskoe zienten l<strong>in</strong>ear <strong>in</strong> <strong>der</strong> Uberlappungslange ist. Damit ergibt sich e<strong>in</strong>e<br />

quadratische Gesamtlaufzeit von (mn).<br />

D<strong>ur</strong>ch die Anwendung <strong>der</strong> schnellen Fo<strong>ur</strong>ier Transformation (FFT) kann die Laufzeit<br />

von Schritt 2 auf ((m + n)log(m + n) reduziert werden. Dieser Ansatz wird <strong>in</strong> Kapitel 5<br />

vorgestellt.<br />

25


3.4.3 Der Datierungs<strong>in</strong>dex<br />

E<strong>in</strong>e <strong>in</strong> dem Handbuch des Programms TSAP [41] als von B<strong>ur</strong>khard Schmidt aus Koln<br />

vorgeschlagene Vergleichsmoglichkeit zwischen zwei Jahrr<strong>in</strong>gfolgen ist <strong>der</strong> Datierungs<strong>in</strong>dex<br />

D. Dieser setzt sich aus dem t-Wert sowie aus dem Glk-Wert wie folgt zusammen:<br />

D =(Glk , 50) t<br />

mit t = tbp+th . Dabei bezeichnet tbp den t-Wert nach e<strong>in</strong>er Standardisierung mit <strong>der</strong> von<br />

2<br />

Baillie und Pilcher [5] vorgeschlagenen Glattungsk<strong>ur</strong>ve des 5-jahrigen gleitenden arithmetischen<br />

Mittels. th bezeichnet den t-Wert nach e<strong>in</strong>er Standardisierung mit <strong>der</strong> von<br />

Hollste<strong>in</strong> vorgeschlagenen Di erenz <strong>der</strong> Logarithmen zweier aufe<strong>in</strong>an<strong>der</strong>folgen<strong>der</strong> Werte.<br />

Um den Datierungs<strong>in</strong>dex zu berechnen mussen demnach die t-Werte f<strong>ur</strong> zwei verschiedene<br />

Standardisierungen sowie <strong>der</strong> Gleichlau gkeitskoe zient berechnet werden. Da die<br />

Berechnung <strong>der</strong> t-Werte sowie <strong>der</strong> Glk-Werte anhand des Basisalgorithmus e<strong>in</strong>e Laufzeit<br />

von (mn) benotigt, stellt diese ebenfalls die Laufzeit f<strong>ur</strong> die Berechnung aller Datierungs<strong>in</strong>dizes<br />

dar.<br />

Wenn z<strong>ur</strong> Berechnung <strong>der</strong> t-Werte sowie <strong>der</strong> Glk-Werte die die schnelle Fo<strong>ur</strong>ier Transformation<br />

verwendenden <strong>Algorithmen</strong> aus Kapitel 5 benutzt werden, la t sich die Laufzeit<br />

auf ((m + n)log(m + n)) reduzieren.<br />

3.4.4 Weiserjahre<br />

E<strong>in</strong> Weiserjahr (signat<strong>ur</strong>e year, key year) bezieht sich auf e<strong>in</strong>e aus mehreren Jahrr<strong>in</strong>gfolgen<br />

zusammengesetzte Chronologie und soll e<strong>in</strong> f<strong>ur</strong> die Chronologie spezielles charakteristisches<br />

Jahr darstellen, <strong>das</strong> <strong>in</strong> moglichst vielen Jahrr<strong>in</strong>gfolgen auftritt.<br />

In <strong>der</strong> Literat<strong>ur</strong> gibt es unterschiedliche De nitionen f<strong>ur</strong> solche Weiserjahre, wovon e<strong>in</strong>ige<br />

bei Eckste<strong>in</strong> und Bauch [13] aufgefuhrt s<strong>in</strong>d. So kann man e<strong>in</strong> Weiserjahr als e<strong>in</strong> Jahr<br />

de nieren, <strong>in</strong> dem e<strong>in</strong> festgelegter, o<strong>der</strong> von <strong>der</strong> Anzahl <strong>der</strong> <strong>in</strong> <strong>der</strong> Chronologie enthaltenen<br />

Jahrr<strong>in</strong>gfolgen abhangiger, Prozentsatz <strong>der</strong> Jahrr<strong>in</strong>gfolgen <strong>in</strong> e<strong>in</strong>er Chronologie den<br />

gleichen Richtungss<strong>in</strong>n aufweist. Moglich ist es auch, von diesen Jahren n<strong>ur</strong> die lokalen<br />

M<strong>in</strong>ima, Maxima o<strong>der</strong> beide als Weiserjahre anzusehen.<br />

Handelt es sich bei <strong>der</strong> Referenzfolge um e<strong>in</strong>e Chronologie, die aus h<strong>in</strong>reichend<br />

vielen Jahrr<strong>in</strong>gfolgen besteht, kann nun zusatzlich z<strong>ur</strong> Betrachtung <strong>der</strong><br />

Gleichlau gkeitskoe zienten die Anzahl <strong>der</strong> ubere<strong>in</strong>stimmenden Weiserjahre als e<strong>in</strong> weiteres<br />

Match<strong>in</strong>g-Kriterium verwendet werden. Das patentierte <strong>Crossdat<strong>in</strong>g</strong>verfahren von<br />

Heikkenen [20] verwendet diesen Ansatz.<br />

F<strong>ur</strong> Weiserjahre gibt es weitere unterschiedliche De nitionen und Begri sbestimmungen,<br />

welche zum Beispiel bei Schwe<strong>in</strong>gruber [46] zu nden s<strong>in</strong>d. An dieser Stelle w<strong>ur</strong>de<br />

e<strong>in</strong> Weiserjahr wie bei Eckste<strong>in</strong> und Bauch [13] de niert, was <strong>der</strong> De nition e<strong>in</strong>es Weiser<strong>in</strong>tervalls<br />

bei Schwe<strong>in</strong>gruber [46] entspricht.<br />

26


Kapitel 4<br />

Vorhandene Verfahren z<strong>ur</strong><br />

Identi kation von fehlenden und<br />

mehrfachen R<strong>in</strong>gen<br />

4.1 Verfahren z<strong>ur</strong> Qualitatskontrolle<br />

Um <strong>in</strong> <strong>der</strong> Praxis fehlende o<strong>der</strong> mehrfache R<strong>in</strong>ge <strong>in</strong> Folgen zu lokalisieren, werden hau g<br />

Verfahren angewendet, die nach dem <strong>Crossdat<strong>in</strong>g</strong> nach au alligen Stellen <strong>in</strong> den datierten<br />

Folgen suchen. Diese Verfahren beruhen auf <strong>der</strong> Berechnung von Korrelationskoe zienten<br />

auf k<strong>ur</strong>zen Teilstucken <strong>der</strong> Folgen, so da <strong>der</strong> Benutzer aus <strong>der</strong> Abfolge matchen<strong>der</strong><br />

Teilstucke auf Positionen fehlen<strong>der</strong> o<strong>der</strong> mehrfacher R<strong>in</strong>ge schlie en kann. E<strong>in</strong>e solche<br />

Qualitatskontrolle bereits datierter Jahrr<strong>in</strong>gfolgen fuhren <strong>der</strong> von Wendland [53] vorgeschlagene<br />

Algorithmus sowie <strong>das</strong> hau g <strong>in</strong> <strong>der</strong> Praxis verwendete Programm Cofecha von<br />

Holmes [22] aus.<br />

Beide beruhen auf <strong>der</strong> Datierung vieler k<strong>ur</strong>zer Teilfolgen <strong>der</strong> Musterfolge anhand <strong>der</strong><br />

Berechnung von Korrelationskoe zienten. Wendland vergleicht zwei Folgen <strong>der</strong>selben<br />

Lange, <strong>in</strong>dem er alle zusammenhangenden Teilstucke fester Lange <strong>der</strong> Musterfolge betrachtet.<br />

Cofecha h<strong>in</strong>gegen arbeitet auf e<strong>in</strong>er Menge von (untere<strong>in</strong>an<strong>der</strong>) datierten Folgen<br />

und vergleicht jeweils e<strong>in</strong>e Folge mit <strong>der</strong> aus den restlichen Folgen gebildeten Mittelwertfolge.<br />

Dabei werden ebenfalls zusammenhangende Teilstucke fester Lange, jedoch nicht<br />

alle, betrachtet.<br />

Diese Verfahren haben f<strong>ur</strong> den Vergleich zweier Folgen <strong>der</strong> Langen n und m e<strong>in</strong>e<br />

quadratische Laufzeit von (nm).<br />

27


4.2 <strong>Crossdat<strong>in</strong>g</strong>verfahren<br />

In mehreren <strong>Crossdat<strong>in</strong>g</strong>programmen w<strong>ur</strong>de <strong>das</strong> z<strong>ur</strong> Qualitatskontrolle verwendete Pr<strong>in</strong>zip,<br />

viele k<strong>ur</strong>ze Teilfolgen <strong>der</strong> Musterfolge <strong>in</strong> <strong>der</strong> Referenzfolge d<strong>ur</strong>ch die Berechnung von<br />

Korrelationskoe zienten zu lokalisieren, angewendet. Diese Verfahren gehen <strong>in</strong> <strong>der</strong> Regel<br />

davon aus, da die Referenzfolge ke<strong>in</strong>e fehlenden o<strong>der</strong> mehrfachen R<strong>in</strong>ge enthalt, und<br />

werden meist n<strong>ur</strong> auf k<strong>ur</strong>ze Jahrr<strong>in</strong>gfolgen angewendet.<br />

Zwei dieser Verfahren s<strong>in</strong>d bei Mills [32] beschrieben, die dort f<strong>ur</strong> die Datierung k<strong>ur</strong>zer<br />

Jahrr<strong>in</strong>gfolgen verglichen werden. Das Programm cros-twenty berechnet f<strong>ur</strong> alle Datierungen<br />

<strong>der</strong> Musterfolge Korrelationskoe zienten auf Teilstucken (<strong>der</strong> Lange 20) <strong>in</strong> zu dem<br />

Algorithmus von Wendland [53] analoger Weise. Als Ergebnis wird f<strong>ur</strong> jedes Teilstuck<br />

die beste Datierung angegeben. Das Programm resample verwendet zufallige, nicht notwendigerweise<br />

zusammenhangende Teilfolgen <strong>der</strong> Lange 20. Parker [36] berechnet <strong>in</strong> dem<br />

sogenannten Shift<strong>in</strong>g Unit Dat<strong>in</strong>g Program ebenfalls Korrelationskoe zienten auf zusammenhangenden<br />

Teilstucken fester Lange und gibt jeweils die drei besten Datierungen aus.<br />

Die Laufzeit dieser <strong>Crossdat<strong>in</strong>g</strong>verfahren ist (nm).<br />

Der von Van Deusen [11] vorgeschlagene Algorithmus z<strong>ur</strong> Identi kation fehlen<strong>der</strong> und<br />

doppelter R<strong>in</strong>ge basiert auf e<strong>in</strong>er vollig an<strong>der</strong>en Herangehensweise: Er berechnet e<strong>in</strong>en<br />

Transformationsabstand zwischen beiden Folgen, <strong>der</strong> mogliche Positionen von fehlenden<br />

und doppelten R<strong>in</strong>gen liefert. E<strong>in</strong>e sequentielle Berechnung dieses Transformationsabstandes<br />

kann als <strong>Crossdat<strong>in</strong>g</strong>algorithmus verwendet werden. Da <strong>der</strong> <strong>in</strong> Kapitel 6 vorgestellte<br />

Abstandsbegri sowie <strong>der</strong> <strong>Crossdat<strong>in</strong>g</strong>algorithmus <strong>in</strong> Kapitel 7 auf dem Transformationsabstand<br />

von Van Deusen basieren, wird auf diesen <strong>in</strong> Kapitel 6 naher e<strong>in</strong>gegangen.<br />

28


Kapitel 5<br />

Anwendungen <strong>der</strong> schnellen<br />

Fo<strong>ur</strong>ier-Transformation auf <strong>das</strong><br />

<strong>Crossdat<strong>in</strong>g</strong><br />

Mit Hilfe <strong>der</strong> schnellen Fo<strong>ur</strong>ier-Transformation (fast Fo<strong>ur</strong>ier transform, FFT) konnen<br />

sowohl die auf <strong>der</strong> Berechnung von Korrelationskoe zienten als auch die auf <strong>der</strong> Berechnung<br />

von Gleichlau gkeitskoe zienten basierenden <strong>Crossdat<strong>in</strong>g</strong>algorithmen e zienter<br />

gestaltet werden. In diesem Kapitel wird zuerst <strong>in</strong> Unterkapitel 5.1 die diskrete Fo<strong>ur</strong>ier-<br />

Transformation erlautert und e<strong>in</strong> f<strong>ur</strong> die Anwendungen passen<strong>der</strong> Algorithmus z<strong>ur</strong> schnellen<br />

Fo<strong>ur</strong>ier Transformation angegeben. In den Unterkapiteln 5.3 und 5.4 wird die FFT<br />

auf die Berechnung <strong>der</strong> Korrelationskoe zienten sowie <strong>der</strong> Gleichlau gkeitskoe zienten<br />

f<strong>ur</strong> <strong>das</strong> <strong>Crossdat<strong>in</strong>g</strong> angewendet.<br />

5.1 Die schnelle Fo<strong>ur</strong>ier-Transformation (FFT)<br />

5.1.1 Die diskrete Fo<strong>ur</strong>ier-Transformation (DFT)<br />

Im folgenden sei N e<strong>in</strong>e nat<strong>ur</strong>liche Zahl und<br />

2 i<br />

:= e N 2 C e<strong>in</strong>e primitive N-te E<strong>in</strong>heitsw<strong>ur</strong>zel,<br />

wobei C die komplexen Zahlen und i die imag<strong>in</strong>are Zahl bezeichnen.<br />

De nition 5.1 Die Abbildung DF T : C N ! C N , die e<strong>in</strong>en Vektor z = z0;:::;zN,12 C N auf e<strong>in</strong>en Vektor DF T(z) 2 C N unter <strong>der</strong> Vorschrift<br />

N,1 X<br />

zj jk<br />

DF T(z) k :=<br />

j=0<br />

abbildet, hei t diskrete Fo<strong>ur</strong>ier-Transformation (DFT).<br />

29<br />

(5.1)


F<strong>ur</strong> den nachsten Satz benotigen wir <strong>das</strong> folgende Lemma:<br />

Lemma 5.2 Es gilt<br />

N,1 X<br />

k=0<br />

kj = N ; f<strong>ur</strong> j mod N =0<br />

0; sonst<br />

Beweis. F<strong>ur</strong> j mod N = 0 s<strong>in</strong>d alle kj = 1, also die Summe = N.<br />

P<br />

N,1<br />

k=0<br />

(5.2)<br />

Sei nun j mod N 6= 0. Die Summenformel f<strong>ur</strong> die geometrische Summe fuhrt zu<br />

kj = ( N ) j ,1<br />

j ,1 . Wegen j mod N 6= 0 ist j 6= 1 und <strong>der</strong> Nenner damit von Null<br />

verschieden. Da N = e<br />

2 iN<br />

N = 1 ist, folgt ( N ) j ,1<br />

j ,1 =0.<br />

Satz 5.3 Die Abbildung DF T ,1 : C N ! C N , die e<strong>in</strong>en Vektor z = z0;:::;zN,1 2 C N<br />

auf e<strong>in</strong>en Vektor DF T ,1 (z) 2 C N unter <strong>der</strong> Vorschrift<br />

abbildet, ist z<strong>ur</strong> DFT <strong>in</strong>vers.<br />

DF T ,1 (z) l := 1<br />

N<br />

N,1 X<br />

k=0<br />

z k ,kl<br />

(5.3)<br />

Beweis. D<strong>ur</strong>ch E<strong>in</strong>setzen <strong>der</strong> De nition <strong>der</strong> Abbildungen DF T und DF T ,1 <strong>in</strong>e<strong>in</strong>an<strong>der</strong><br />

angewendet auf e<strong>in</strong>en Vektor z 2 C N erhalt man<br />

DF T(DF T ,1 (z)) l = 1<br />

N<br />

und DF T ,1 (DF T(z)) l = 1<br />

N<br />

N,1 X<br />

k=0<br />

N,1 X<br />

j=0<br />

X X<br />

N,1 N,1<br />

k=0<br />

j=0<br />

(z k j(l,k) )<br />

(z k j(k,l) )<br />

Da k und l beide zwischen 0 und N liegen, ist (k , l) modN =0genau dann, wenn<br />

k = l. Mit Lemma 5.2 folgt, da <strong>der</strong> e<strong>in</strong>zige von Null verschiedene Summand <strong>der</strong> jeweils<br />

au eren Summe f<strong>ur</strong> k = l auftritt und somit die jeweils l-te Koord<strong>in</strong>ate gleich z l ist.<br />

5.1.2 <strong>Algorithmen</strong> <strong>der</strong> schnellen Fo<strong>ur</strong>ier-Transformation (FFT)<br />

Die <strong>Algorithmen</strong>, die die DFT schnell berechnen, werden zusammengefa t als schnelle<br />

Fo<strong>ur</strong>ier-Transformations- o<strong>der</strong> k<strong>ur</strong>z als FFT-<strong>Algorithmen</strong> bezeichnet. E<strong>in</strong>e gute Ubersicht<br />

30


FFTrek(N; x):<br />

//Rek<strong>ur</strong>sionsabbruch<br />

if(N == 1) f<br />

ret<strong>ur</strong>n x;<br />

g elsef<br />

x g =(x0;:::;xN,2);<br />

x u =(x1;:::;xN,1);<br />

y =FFTrek( N<br />

2 ;xg );<br />

z =FFTrek( N<br />

2 ;xu );<br />

ret<strong>ur</strong>n DFTcomb<strong>in</strong>e(N; y; z); g<br />

DFTcomb<strong>in</strong>e(N; x; y):<br />

z j+ N<br />

2<br />

2 i<br />

N ;<br />

N = e<br />

=1;<br />

N<br />

for (j =0;j 2 ,1;j++)f<br />

tmp = yj;<br />

zj = xj + tmp;<br />

= xj , tmp;<br />

= N ;<br />

g<br />

ret<strong>ur</strong>n z;<br />

Abbildung 5.1: Rek<strong>ur</strong>siver FFT-Algorithmus (aus Cormen et al. [10])<br />

solcher <strong>Algorithmen</strong> bietet Nussbaumer [35]. An dieser Stelle werden n<strong>ur</strong> e<strong>in</strong>ige FFT-<br />

<strong>Algorithmen</strong> erlautert, <strong>in</strong>sbeson<strong>der</strong>e solche, die f<strong>ur</strong> unsere Anwendung geeignet s<strong>in</strong>d.<br />

Alle FFT-<strong>Algorithmen</strong> basieren darauf, da sich die Lange N des E<strong>in</strong>gabevektors<br />

x = x0;:::;xN,1 <strong>in</strong> moglichst viele Primfaktoren zerlegen la t. Deshalb wird <strong>in</strong> den<br />

bekanntesten FFT-<strong>Algorithmen</strong> davon ausgegangen, da die Lange N des E<strong>in</strong>gabevektors<br />

e<strong>in</strong>e Zweierpotenz ist. An dieser Stelle wird ebenfalls diese Annahme getro en und gegebenenfalls<br />

e<strong>in</strong> E<strong>in</strong>gabevektor mit Nullen auf Zweierpotenzlange aufgefullt. F<strong>ur</strong> weitere<br />

FFT-<strong>Algorithmen</strong> und weitere ahnliche Tansformationsalgorithmen wird auf Nussbaumer<br />

[35], Press et al. [38] und Elliott et al. [15] verwiesen.<br />

Der nachstehende Satz bildet den Kern des klassischen FFT-Algorithmus.<br />

Satz 5.4 F<strong>ur</strong> e<strong>in</strong>en Vektor x = x0;:::;xN,1 2 C n , wobei N e<strong>in</strong>e Zweierpotenz o<strong>der</strong><br />

zum<strong>in</strong>dest e<strong>in</strong> Vielfaches von 2 sei, hat die DFT folgende Eigenschaft:<br />

DF T(x) k = DF T(xg) k + k DF T(xu) k (5.4)<br />

DF T(x) k+ N<br />

2<br />

= DF T(xg) k , k DF T(xu) k (5.5)<br />

f<strong>ur</strong> k =0;:::; N<br />

2 ,1. Dabei bezeichnen xg und xu die Teilfolgen aus a mit geraden bzw.<br />

ungeraden Indizes, also xg := x0;x2;:::;xN,2 und xu = x1;x3;:::;xN,1.<br />

Beweis. Sei k 2 f0;:::; N<br />

2<br />

,1g. Mit = e 2 i<br />

N ist 2 die entsprechende primitive N<br />

2 -te<br />

E<strong>in</strong>heitsw<strong>ur</strong>zel. Die Summe <strong>in</strong> <strong>der</strong> DFT kann nach geraden und ungeraden Indizes <strong>in</strong> x<br />

wie folgt aufgeteilt werden:<br />

DF T(x) k =<br />

X<br />

N<br />

2 ,1<br />

j=0<br />

x2j 2jk + k<br />

X<br />

N<br />

2 ,1<br />

j=0<br />

x2j+1 2jk = DF T(xg) k + k DF T(xu) k:<br />

31


a0 4 a ,<br />

( ) 2 a 6 a , )<br />

( a0)<br />

4 a<br />

a0 1 a 2 a 3 a 4 a 5 a 6 a 7 a<br />

, , , , , , ,<br />

( )<br />

a0a2 4 a 6 a , , ,<br />

( ) 1 a 3 a 5 a 7 a ( , , , )<br />

( 1 a 5 a ,<br />

( ) 3 a 7 a , ( )<br />

( ) 2 a ( ) 6 a ( ) 1 a ( ) 5 a ( ) 3 a ( ) 7 a ( )<br />

Abbildung 5.2: Rek<strong>ur</strong>sionsbaum f<strong>ur</strong> den FFTrek-Algorithmus f<strong>ur</strong> n = 8 (aus Cormen et al. [10]).<br />

In Klammern stehen die E<strong>in</strong>gaben f<strong>ur</strong> den jeweiligen rek<strong>ur</strong>siven Aufruf, wobei e<strong>in</strong> l<strong>in</strong>ker Knoten<br />

dem ersten Rek<strong>ur</strong>sionsaufruf und e<strong>in</strong> rechter Knoten dem zweiten Rek<strong>ur</strong>sionsaufruf entspricht.<br />

Analoges Aufteilen f<strong>ur</strong> Indizes k + N<br />

2<br />

DF T(x) k+ N<br />

2<br />

=<br />

X<br />

N<br />

2 ,1<br />

j=0<br />

fuhrt zu<br />

x2j 2jk+jN +<br />

k+ N<br />

2<br />

X<br />

N<br />

2 ,1<br />

j=0<br />

was unter E<strong>in</strong>beziehung von N<br />

2 = e i = ,1 und N =1zu<br />

fuhrt.<br />

DF T(x) k+ N<br />

2<br />

=<br />

X<br />

N<br />

2 ,1<br />

j=0<br />

x2j 2jk , k<br />

X<br />

N<br />

2 ,1<br />

j=0<br />

x2j+1 2jk+jN ;<br />

x2j+1 2jk = DF T(xg) , k DF T(xu) k<br />

Ausgehend von diesem Satz la t sich die DFT e<strong>in</strong>es Vektors x = x0;:::;xN,1 2<br />

C n , wobei N e<strong>in</strong>e Zweierpotenz sei, anhand des Algorithmus <strong>in</strong> Abbildung 5.1 rek<strong>ur</strong>siv<br />

berechnen. E<strong>in</strong> Beispiel e<strong>in</strong>es Rek<strong>ur</strong>sionsbaumes ist <strong>in</strong> Abbildung 5.2 aufgezeigt, dabei<br />

seien die Ebenen mit 0 beg<strong>in</strong>nend numeriert. In <strong>der</strong> l-ten Ebene des Rek<strong>ur</strong>sionsbaumes<br />

gibt es 2l rek<strong>ur</strong>sive Aufrufe, die jeweils e<strong>in</strong>e E<strong>in</strong>gabe <strong>der</strong> Lange N<br />

2l haben und, bis auf<br />

rek<strong>ur</strong>sive Unteraufrufe, e<strong>in</strong>e Laufzeit proportional zu <strong>der</strong> E<strong>in</strong>gabelange benotigen. Da<br />

die Rek<strong>ur</strong>sionstiefe, also die Hohe des Baumes, log2 N ist, betragt die Laufzeit <strong>in</strong>sgesamt<br />

P<br />

log2 N<br />

(N +<br />

l=1<br />

l N 2 2l )= (Nlog2 N).<br />

Da <strong>in</strong> jedem rek<strong>ur</strong>siven Aufruf die Ruckgabewerte bei<strong>der</strong> rek<strong>ur</strong>siver Aufrufe gespeichert<br />

werden, wird zeitweise doppelt soviel Speicherplatz wie die <strong>ur</strong>sprungliche E<strong>in</strong>gabe, also<br />

(2N) benotigt. Im folgenden wird e<strong>in</strong> iterativer Algorithmus vorgestellt, <strong>der</strong> die DFT im<br />

Platz des E<strong>in</strong>gabefeldes berechnet.<br />

32


FFTit base(N; x 0 ):<br />

for(l =1;l log 2 N; l ++)f<br />

for(k =0;k N,2 l ;k+=2 l )f<br />

g<br />

x 0 [k:::k+2 l ,1] =DFTcomb<strong>in</strong>e(2 l,1 ;x 0 [k:::k+2 l,1 ,1];<br />

x 0 [k +2 l,1 :::k+2 l ,1]);<br />

Abbildung 5.3: Iterativer FFT-Algorithmus z<strong>ur</strong> Berechnung <strong>der</strong> DFT f<strong>ur</strong> e<strong>in</strong>en Vektor x unter <strong>der</strong><br />

Annahme, da <strong>das</strong> E<strong>in</strong>gabefeld x 0 die Permutation <strong>der</strong> Elemente aus x enthalt, die z<strong>ur</strong> Berechnung<br />

<strong>der</strong> DF T (x) benotigt wird. (aus Cormen et al. [10])<br />

Im Gegensatz z<strong>ur</strong> rek<strong>ur</strong>siven Top-Down-Auswertung <strong>der</strong> Rek<strong>ur</strong>sionseigenschaft aus<br />

Satz 5.4 verwendet <strong>der</strong> iterative Algorithmus diese Eigenschaft <strong>in</strong> e<strong>in</strong>em Bottom-Up-<br />

Ansatz. Bei e<strong>in</strong>er Betrachtung des Rek<strong>ur</strong>sionsbaumes (Beispiel <strong>in</strong> Abbildung 5.2) wird<br />

deutlich, da , sofern die Reihenfolge <strong>der</strong> Elemente des E<strong>in</strong>gabefeldes <strong>in</strong> den Blattern des<br />

Baumes bekannt ist, die DFT, d<strong>ur</strong>ch wie<strong>der</strong>holte Anwendung <strong>der</strong> Eigenschaft aus Satz<br />

5.4 auf e<strong>in</strong>en Knoten mit je zwei K<strong>in</strong><strong>der</strong>knoten, von unten nach oben im Baum berechnet<br />

werden kann. Die DFT e<strong>in</strong>es Knotens, dessen zwei K<strong>in</strong><strong>der</strong>knoten jeweils e<strong>in</strong>e E<strong>in</strong>gabe<br />

<strong>der</strong> Lange 2 l,1 haben, hat die Lange 2 l . Da jedes Element des gesamten E<strong>in</strong>gabefeldes<br />

<strong>in</strong> je<strong>der</strong> Ebene des Baumes genau e<strong>in</strong>mal vorkommt, kann bei <strong>der</strong> Berechnung <strong>der</strong> DFT<br />

e<strong>in</strong>es Knotens anhand <strong>der</strong> zwei K<strong>in</strong><strong>der</strong>knoten <strong>das</strong> Ergebnis <strong>in</strong> den Platzen <strong>der</strong> E<strong>in</strong>gaben<br />

gespeichert werden.<br />

Die Permutation <strong>der</strong> Elemente e<strong>in</strong>es Vektors x, die als E<strong>in</strong>gabe f<strong>ur</strong> den Algorithmus<br />

FFTit base <strong>in</strong> Abbildung 5.3 benotigt wird, ist e<strong>in</strong>e Anordnung <strong>der</strong> Elemente anhand <strong>der</strong><br />

bitweisen Umkehrung <strong>der</strong> aufsteigenden Indizes. Das hei t, die aufsteigenden Indizes von<br />

0 bis N , 1 mussen als B<strong>in</strong>arzahlen <strong>der</strong> Lange log 2 N betrachtet, die Bits je<strong>der</strong> Zahl <strong>in</strong><br />

ihrer Reihenfolge umgedreht, und danach wie<strong>der</strong> als Dezimalzahlen betrachtet werden.<br />

Die daraus resultierende Permutation <strong>der</strong> Indizes liefert die gewunschte Reihenfolge. F<strong>ur</strong><br />

N = 8 zum Beispiel s<strong>in</strong>d die aufsteigend sortierten Indizes 0 dez = 000 b<strong>in</strong>, 1 dez = 001 b<strong>in</strong>,<br />

2 dez = 010 b<strong>in</strong>, 3 dez = 011 b<strong>in</strong>, 4 dez = 100 b<strong>in</strong>, 5 dez = 101 b<strong>in</strong>, 6 dez = 110 b<strong>in</strong>, 7 dez = 111 b<strong>in</strong>.<br />

Die bitweise umgekehrte Reihenfolge, wie sie <strong>in</strong> den Blattern des Rek<strong>ur</strong>sionsbaumes <strong>in</strong><br />

Abbildung 5.2 zu sehen ist, ist 0 dez = 000 b<strong>in</strong>, 4 dez = 100 b<strong>in</strong>, 2 dez = 010 b<strong>in</strong>, 6 dez = 110 b<strong>in</strong>,<br />

1 dez = 001 b<strong>in</strong>, 5 dez = 101 b<strong>in</strong>, 3 dez = 011 b<strong>in</strong>, 7 dez = 111 b<strong>in</strong>.<br />

Satz 5.5 Die bitweise umgekehrte Anordnung <strong>der</strong> Elemente e<strong>in</strong>es Vektors x <strong>der</strong> Lange N<br />

ist die korrekte E<strong>in</strong>gabe f<strong>ur</strong> den Algorithmus FFTit base <strong>in</strong> Abbildung 5.3, so da dieser<br />

die DF T(x) berechnet.<br />

Beweis. Die korrekte Anordnung <strong>der</strong> Elemente aus x ist die <strong>der</strong> Blatter im Rek<strong>ur</strong>sionsbaum<br />

f<strong>ur</strong> FFTrek. Es mu also gezeigt werden, <strong>das</strong> die bitweise umgekehrte Reihenfolge<br />

die Reihenfolge <strong>der</strong> Blatter im Rek<strong>ur</strong>sionsbaum ist.<br />

33


Bitrev(N; x):<br />

N<br />

for(j =0;j ,1; j ++)f<br />

2<br />

if(rev(j) 6= j) f<br />

swap(xj;xrev(j)); g<br />

Abbildung 5.4: Algorithmus z<strong>ur</strong> Erstellung <strong>der</strong> bitweise umgekehrten Reihenfolge <strong>der</strong> Elemente<br />

e<strong>in</strong>es Feldes x am Platz. Die Funktion rev(j) liefert die Zahl, die d<strong>ur</strong>ch Umkehrung <strong>der</strong> Bits <strong>in</strong> j<br />

entsteht. (Zum Beispiel rev(4) = 1)<br />

FFTit(N; x):<br />

Bitrev(N; x);<br />

FFTit base(N; x);<br />

Abbildung 5.5: Iterativer FFT-Algorithmus z<strong>ur</strong> Berechnung <strong>der</strong> DFT e<strong>in</strong>es Vektors x am Platz.<br />

Beim ersten Aufruf von FFTrek, also bei <strong>der</strong> W<strong>ur</strong>zel des Baumes, gelangen Elemente<br />

mit geraden Indizes <strong>in</strong> den l<strong>in</strong>ken Teilbaum, <strong>der</strong> dem ersten rek<strong>ur</strong>siven Unteraufruf entspricht,<br />

und Elemente mit ungeraden Indizes <strong>in</strong> den rechten Teilbaum, <strong>der</strong> dem zweiten<br />

rek<strong>ur</strong>siven Unteraufruf entspricht. Da gerade Zahlen <strong>in</strong> b<strong>in</strong>arer Schreibweise als letztes<br />

Bit e<strong>in</strong>e 0 und ungerade Zahlen e<strong>in</strong>e 1 aufweisen, stehen also im l<strong>in</strong>ken Teilbaum alle<br />

Elemente aus x, <strong>der</strong>en Indizes e<strong>in</strong>e 0 und im rechten Teilbaum alle, <strong>der</strong>en Indizes e<strong>in</strong>e 1<br />

als letztes Bit aufweisen. D<strong>ur</strong>ch Wegstreichen des letzten Bits erhalt man die Indexmenge<br />

f0;:::; N ,1g, die <strong>in</strong> den FFTrek-Aufrufen <strong>der</strong> beiden K<strong>in</strong><strong>der</strong>knoten verwendet wird. Ei-<br />

2<br />

ne rek<strong>ur</strong>sive Anwendung <strong>der</strong>selben Uberlegung fuhrt genau zu <strong>der</strong> bitweise umgekehrten<br />

Anordnung.<br />

In Abbildung 5.4 ist e<strong>in</strong> Algorithmus angegeben, <strong>der</strong> die bitweise umgekehrte Anordnung<br />

e<strong>in</strong>es Feldes x am Platz vornimmt. Dieser basiert auf <strong>der</strong> Beobachtung, da n<strong>ur</strong><br />

paarweise Elemente vertauscht werden mussen, da e<strong>in</strong>e zweimalige bitweise Umkehrung e<strong>in</strong>er<br />

Zahl wie<strong>der</strong> die Ausgangszahl ergibt. Den resultierenden iterativen FFT-Algorithmus<br />

zeigt Abbildung 5.5.<br />

Bemerkung. Die FFT-<strong>Algorithmen</strong> konnen <strong>in</strong> leicht modi zierter Weise z<strong>ur</strong> Berechnung<br />

<strong>der</strong> DF T ,1 angewandt werden. Wie leicht e<strong>in</strong>zusehen ist, genugt die DF T ,1 fast <strong>der</strong>selben<br />

Bed<strong>in</strong>gung wie die DF T <strong>in</strong> Satz 5.4, n<strong>ur</strong> ist <strong>das</strong> Vorzeichen des Exponenten von<br />

negativ. Ohne die Division d<strong>ur</strong>ch N kann die DF T ,1 mit e<strong>in</strong>em FFT-Algorithmus<br />

berechnet werden, sofern <strong>in</strong> DFTcomb<strong>in</strong>e mit ,1 statt mit multipliziert wird. E<strong>in</strong>e<br />

anschlie ende Division d<strong>ur</strong>ch N liefert dann die DF T ,1 .<br />

34


5.2 Beziehungen zwischen <strong>der</strong> DFT und <strong>der</strong> zyklischen Korrelation<br />

Die zyklische Faltung zweier Vektoren steht mit <strong>der</strong> zyklischen Korrelation <strong>in</strong> engem Zusammenhang.<br />

Deshalb werden beide im folgenden de niert und f<strong>ur</strong> uns nutzliche Beziehungen<br />

z<strong>ur</strong> DFT vorgestellt.<br />

De nition 5.6 Die zyklische Faltung zweier Vektoren x = x0;:::;xN,1 2 C N und<br />

y0;:::;yN,1 2 C N ist e<strong>in</strong> Vektor Falt(x; y) 2 C N , dessen Elemente d<strong>ur</strong>ch<br />

Falt(x; y)l :=<br />

N,1 X<br />

j=0<br />

xjy (l,j) modN f<strong>ur</strong> l =0;:::;N ,1 (5.6)<br />

de niert s<strong>in</strong>d.<br />

Die zyklische Korrelation ist e<strong>in</strong> Vektor Korr(x; y) 2 C N , dessen Elemente d<strong>ur</strong>ch<br />

de niert s<strong>in</strong>d.<br />

Korr(x; y) l :=<br />

N,1 X<br />

j=0<br />

xjy (l+j) modN f<strong>ur</strong> l =0;:::;N ,1 (5.7)<br />

Das nachstehende Lemma liefert den Zusammenhang zwischen zyklischer Korrelation und<br />

zyklischer Faltung.<br />

Lemma 5.7 F<strong>ur</strong> zwei Vektoren x; y 2 C N gilt<br />

Korr(x; y) =Falt( x;y) ; (5.8)<br />

wobei x den d<strong>ur</strong>ch x l:= x N,l f<strong>ur</strong> l 2f0;:::;N ,1g de nierten Vektor bezeichnet.<br />

Beweis. Sei l 2f0;:::;N,1gbeliebig. Es gilt Falt( x;y)) l = P N,1<br />

j=0 xN,j;y (l,j)modN =<br />

P N,1<br />

j=0 xj;y l+j mod N = Korr(x; y) l.<br />

Die Faltung hat bezuglich <strong>der</strong> DFT e<strong>in</strong>e wichtige Eigenschaft, die <strong>der</strong> folgende Satz zeigen<br />

wird:<br />

Satz 5.8 F<strong>ur</strong> zwei Vektoren x = x0;:::;xN,1 2 C N und y0;:::;yN,1 2 C N und <strong>der</strong>en<br />

zyklische Faltung Falt(x; y) gilt folgende Eigenschaft:<br />

Falt(x; y) =DF T ,1 (DF T(x) DF T(y)); (5.9)<br />

wobei die Multiplikation <strong>der</strong> beiden Transformationsvektoren elementweise de niert sei.<br />

35


Beweis. Sei <strong>der</strong> Vektor auf <strong>der</strong> rechten Seite <strong>der</strong> Gleichung mit d bezeichnet. Das<br />

E<strong>in</strong>setzen <strong>der</strong> De nitionen <strong>der</strong> DFT und ihrer Inversen auf <strong>der</strong> rechten Seite fuhrt, mit<br />

l =0;:::;N ,1zu<br />

dl = 1<br />

=<br />

N<br />

N,1 X<br />

((<br />

N,1 X<br />

x<br />

k=0 =0<br />

N,1 X N,1 X<br />

(x y<br />

=0 =0<br />

1<br />

N,1 X<br />

N<br />

k=0<br />

X<br />

N,1<br />

k<br />

) ( y<br />

=0<br />

k( + ,l) )<br />

k )) ,lk<br />

Mit Lemma 5.2 folgt, da die <strong>in</strong>nere Summe n<strong>ur</strong> f<strong>ur</strong> ( + , l) modN = 0 von Null<br />

verschieden, und zwar = N, ist. Deshalb gilt<br />

d l =<br />

N,1 X<br />

=0<br />

x y (l, )modN =Falt(x; y) l<br />

Korollar 5.9 F<strong>ur</strong> die zyklische Korrelation zweier reeller Vektoren x; y 2 R N gilt<br />

Korr(x; y) =DF T ,1 (DF T(x) DF T(y)): (5.10)<br />

Dabei bezeichnet ' ' die komplexe Konjugation.<br />

Beweis. Mit Lemma 5.7 und Satz 5.8 gilt<br />

Korr(x; y) =Falt( x;y)=DF T ,1 (DF T( x) DF T(y))<br />

Da alle xi reell, e<strong>in</strong>e n-te E<strong>in</strong>heitsw<strong>ur</strong>zel und ,jk = jk s<strong>in</strong>d, gilt<br />

DF T( x) k =<br />

N,1 X<br />

j=0<br />

=<br />

xN,j jk =<br />

N,1 X<br />

j=0<br />

N,1 X<br />

j=0<br />

xj ,jk<br />

xj jk = DF T(x)<br />

Um dieses Lemma auf den nicht-zyklischen Korrelationsbegri , wie er f<strong>ur</strong> <strong>das</strong> <strong>Crossdat<strong>in</strong>g</strong><br />

benotigt wird, anwenden zu konnen, mussen die Vektoren am Ende mit e<strong>in</strong>er Anzahl von<br />

Nullen aufgefullt werden. Darauf wird <strong>in</strong> Abschnitt 5.3.2 naher e<strong>in</strong>gegangen.<br />

36


5.3 Anwendung <strong>der</strong> FFT auf die Berechnung von Korrelationskoe<br />

zienten<br />

5.3.1 Sukkzessive Berechnung<br />

F<strong>ur</strong> e<strong>in</strong>e Referenzjahrr<strong>in</strong>gfolge a =(a0;:::;am,1)2 R m und e<strong>in</strong>e Musterjahrr<strong>in</strong>gfolge b =<br />

(b0;:::;bn,1) 2 R n konnen alle Korrelationskoe zienten an je<strong>der</strong> Uberlappungsposition<br />

anhand des sukkzessiven Basisalgorithmus aus Unterkapitel 3.2 berechnet werden. Diese<br />

werden anhand <strong>der</strong> nachstehenden Formel berechnet und <strong>in</strong> dem Feld result gespeichert,<br />

<strong>das</strong> f<strong>ur</strong> die Indizes m<strong>in</strong>Ovl , n; ::; m , m<strong>in</strong>Ovl de niert ist.<br />

resultl =<br />

vu<br />

u<br />

t (L(l)<br />

mit first(l) =<br />

L(l)<br />

last(l) P<br />

al+jbj ,<br />

last(l) P<br />

al+j ,<br />

last(l) P<br />

bj<br />

j=first(l)<br />

j=first(l) j=first(l)<br />

last(l) P<br />

(al+j) j=first(l)<br />

2 , (<br />

last(l) P<br />

al+j) j=first(l)<br />

2 )(L(l)<br />

last(l) P<br />

j=first(l)<br />

last(l) =<br />

,l ,wenn m<strong>in</strong>Ovl , n l ,1<br />

0 , sonst<br />

(bj) 2 , (<br />

n , 1 ,wenn m<strong>in</strong>Ovl , n l m , n<br />

m , 1 , l , sonst<br />

und L(l) = last(l) , first(l)+1<br />

f<strong>ur</strong> m<strong>in</strong>Ovl , n l m , m<strong>in</strong>Ovl.<br />

5.3.2 E ziente Berechnung <strong>der</strong> Korrelation<br />

last(l) P<br />

j=first(l)<br />

bj) 2 )<br />

Der bei <strong>der</strong> sukkzessiven Berechnung am zeit<strong>in</strong>tensivsten zu berechnende Vektor ist =<br />

(a; b), wobei<br />

l = (a; b) l :=<br />

last(l) X<br />

j=first(l)<br />

a l+jbj<br />

f<strong>ur</strong> m<strong>in</strong>Ovl , n l m , m<strong>in</strong>Ovl. E<strong>in</strong>e sukkzessive Berechnung von benotigt e<strong>in</strong>e<br />

Laufzeit von (mn) f<strong>ur</strong> konstantes m<strong>in</strong>Ovl. D<strong>ur</strong>ch Z<strong>ur</strong>uckfuhrung auf die zyklische<br />

Korrelation mit Hilfe <strong>der</strong> FFT kann wie folgt e zient berechnet werden:<br />

Bei <strong>der</strong> Berechnung von result und damit auch von l mussen m<strong>in</strong>destens m<strong>in</strong>Ovl<br />

Elemente von a und b uberlappen, so da hochstens n,m<strong>in</strong>Ovl Elemente von b l<strong>in</strong>ks o<strong>der</strong><br />

rechts von a und hochstens m,m<strong>in</strong>Ovl Elemente von a l<strong>in</strong>ks o<strong>der</strong> rechts von b uberhangen.<br />

Um auf die zyklische Korrelation z<strong>ur</strong>uckfuhren zu konnen, ohne da uberhangende<br />

Elemente <strong>das</strong> Ergebnis verfalschen, mussen als e<strong>in</strong>e Art Pu erzone an <strong>das</strong> Ende von a<br />

37


m<strong>in</strong>destens n , m<strong>in</strong>Ovl Nullen und an <strong>das</strong> Ende von b m<strong>in</strong>destens m , m<strong>in</strong>Ovl Nullen<br />

angehangt werden. Da f<strong>ur</strong> die Anwendung <strong>der</strong> FFT-<strong>Algorithmen</strong> aus Abschnitt 5.1.2 die<br />

Vektoren- bzw. Folgenlange e<strong>in</strong>e Zweierpotenz se<strong>in</strong> mu , sei n 0 die kle<strong>in</strong>ste Zweierpotenz<br />

n + m , m<strong>in</strong>Ovl; f<strong>ur</strong> diese gilt n 0 2(n + m , m<strong>in</strong>Ovl). Die zu betrachtenden Vektoren<br />

a 0 ;b 0 2 R n0 entstehen aus a bzw. b d<strong>ur</strong>ch <strong>das</strong> Au ullen am Ende mit n 0 , m bzw. n 0 , n<br />

Nullen.<br />

Satz 5.10 F<strong>ur</strong> die aus a und b wie oben beschrieben hervorgehenden Vektoren a 0 ;b 0 2 R n0<br />

gilt:<br />

f<strong>ur</strong> m<strong>in</strong>Ovl , n l m , m<strong>in</strong>Ovl.<br />

Beweis. Sei 0 l m , n. Dann gilt<br />

X<br />

n,1<br />

(a; b) l =<br />

j=0<br />

a j+lbj =<br />

n,1 X<br />

j=0<br />

(a; b)l = Korr(b 0 ;a 0 )lmod n 0<br />

X<br />

a 0 (j+l) modn0b0 n<br />

j+<br />

0 ,1<br />

a 0 (j+l)modn0b0j =Korr(b 0 ;a 0 ) l ;<br />

da a 0 j = aj f<strong>ur</strong> 0 j m , 1, b 0 j = bj f<strong>ur</strong> 0 j n , 1 und b 0 j =0f<strong>ur</strong> n j n0 , 1<br />

gelten.<br />

Sei nun m , n +1 l m,m<strong>in</strong>Ovl. Dann gilt<br />

(a; b) l =<br />

=<br />

m,1,l X<br />

j=0<br />

X<br />

m,1,l<br />

j=0<br />

a j+lbj<br />

= Korr(b 0 ;a 0 ) l ;<br />

X<br />

j=n<br />

a 0 (j+l) modn0b0 n<br />

j+<br />

0 ,l,1<br />

a 0 (j+l)modn0b0j+ j=m,l<br />

n0 X<br />

j=n 0 ,l<br />

a 0 (j+l)modn 0b0 j<br />

da a 0 j = aj f<strong>ur</strong> m , n +1 j m,1, b 0 j = bj f<strong>ur</strong> 0 j n , 1, a 0 j =0f<strong>ur</strong> m j n0 , 1<br />

und b 0 j =0f<strong>ur</strong> n0 , m + m<strong>in</strong>Ovl j n 0 , 1.<br />

F<strong>ur</strong> m<strong>in</strong>Ovl , n l ,1 gilt<br />

(a; b) l =<br />

=<br />

=<br />

n,1 X<br />

j=,l<br />

X<br />

,l,1<br />

j=0<br />

n0 X,1<br />

j=0<br />

a j+lbj<br />

a 0 (j+l) modn 0b0 j +<br />

n,1 X<br />

j=,l<br />

X<br />

a 0 (j+l)modn0b0j +<br />

n0 ,1<br />

j=n<br />

a 0 (j+l)modn 0b0 j<br />

a 0 (j+l+n 0 )modn 0b0 j =Korr(b 0 ;a 0 ) l+n 0 =Korr(b 0 ;a 0 ) lmod n 0 ;<br />

38


da a 0 j = aj f<strong>ur</strong> 0 j n , 2, b 0 j = bj f<strong>ur</strong> 1 j n , 1, a 0 j =0f<strong>ur</strong> n0 + m<strong>in</strong>Ovl , n j<br />

n 0 , 1 und b 0 j =0f<strong>ur</strong> n j n0 , 1.<br />

Aufgrund von Korollar 5.9 kann Korr(b 0 ;a 0 ) mit drei schnellen Fo<strong>ur</strong>ier-<br />

Transformationen, n 0 komplexen Konjugationen und e<strong>in</strong>er Division d<strong>ur</strong>ch n 0 <strong>in</strong> (n 0 log 2 n 0 )<br />

= ((n + m , m<strong>in</strong>Ovl) log 2(n + m , m<strong>in</strong>Ovl)), also f<strong>ur</strong> konstantes m<strong>in</strong>Ovl <strong>in</strong> ((n +<br />

m) log 2(n + m)) Zeit und (n + m) Platz berechnet werden. Wegen Satz 5.10 la t sich<br />

aus Korr(b 0 ;a 0 ) ablesen, wobei daf<strong>ur</strong> n<strong>ur</strong> n + m , 2m<strong>in</strong>Ovl + 1 Elemente von Korr(b 0 ;a 0 )<br />

benotigt werden. la t sich demnach <strong>in</strong> ((n + m) log 2(n + m)) Zeit und (n + m) Platz<br />

berechnen.<br />

Der reell verwendete Speicherplatz kann ger<strong>in</strong>gfugig verbessert werden, <strong>in</strong>dem ausgenutzt<br />

wird, da die Vektoren aus reellen statt komplexen Zahlen bestehen. Da die FFT als<br />

E<strong>in</strong>gabe e<strong>in</strong>en Vektor komplexer Zahlen erwartet, mussen f<strong>ur</strong> e<strong>in</strong>en Vektor reeller Zahlen<br />

die Speicherplatze f<strong>ur</strong> die Imag<strong>in</strong>arteile mit Nullen aufgefullt werden. Wie <strong>in</strong> [35] und [38]<br />

beschrieben ist, kann dies f<strong>ur</strong> die Berechnung zweier gleichlanger DFTs umgangen werden,<br />

<strong>in</strong>dem <strong>der</strong> e<strong>in</strong>e E<strong>in</strong>gabevektor als Imag<strong>in</strong>arteil des an<strong>der</strong>en E<strong>in</strong>gavektors gespeichert wird,<br />

die DFT von diesem zusammengesetzten Vektor berechnet, und anschlie end die DFTs<br />

<strong>der</strong> <strong>ur</strong>sprunglichen Folgen aus diesem Vektor <strong>in</strong> l<strong>in</strong>earer Zeit unter Ausnutzung spezieller<br />

Eigenschaften <strong>der</strong> DFT errechnet werden. Auf diese Art und Weise halbiert sich <strong>der</strong><br />

Platzaufwand f<strong>ur</strong> die Berechnung von DF T(a 0 ) und DF T(b 0 ), was jedoch asymptotisch<br />

ke<strong>in</strong>e Verbesserung darstellt.<br />

Die Laufzeit kann ebenfalls ger<strong>in</strong>gfugig verbessert werden, <strong>in</strong>dem <strong>in</strong> den drei FFT-<br />

Aufrufen die bitweise umgekehrten Anordnung <strong>der</strong> jeweiligen E<strong>in</strong>gabevektoren umgangen<br />

wird. Der Algorithmus FFTit aus Abbildung 5.5 wendet zuerst e<strong>in</strong>e bitweise Umkehrung<br />

und danach den " eigentlichen\ Algorithmus FFTit base an. Es gibt <strong>Algorithmen</strong> die die<br />

FFT als solche zuerst berechnen (siehe [35, 38]), so da jedoch <strong>der</strong> Ergebnisvektor <strong>in</strong><br />

bitweise umgekehrter Weise vorliegt, und anschlie end e<strong>in</strong>e bitweise umgekehrte Anordnung<br />

<strong>der</strong> Vektorelemente erfolgen mu . E<strong>in</strong> Anwendung des letzteren Algorithmus auf die<br />

Berechnung von DF T(a 0 ) und DF T(b 0 ) ohne die bitweise Umkehrung, so da die Ergebniselemente<br />

<strong>in</strong> bitweise umgekehrter Reihenfolge vorliegen, liefert dann, nach <strong>der</strong> komplexen<br />

Konjugation des e<strong>in</strong>en Vektors und <strong>der</strong> elementweisen Multiplikation <strong>der</strong> Vektoren,<br />

e<strong>in</strong>e passende E<strong>in</strong>gabe f<strong>ur</strong> den FFT it base-Algorithmus aus Abbildung 5.3. Dad<strong>ur</strong>ch entsteht<br />

e<strong>in</strong>e Zeitersparnis von O(n 0 ), die sich jedoch nicht auf die asymptotische Laufzeit<br />

auswirkt. E<strong>in</strong> Nachteil dieses Verfahrens ist, da zwei verschiedene FFT-<strong>Algorithmen</strong><br />

implementiert werden mussen.<br />

5.3.3 E ziente Berechnung <strong>der</strong> Korrelationskoe zienten<br />

Neben dem Vektor s<strong>in</strong>d f<strong>ur</strong> die Berechnung des Korrelationskoe zienten noch weitere<br />

Gro en zu berechnen. Die Summen uber alle bj sowie uber alle b 2 j sollten e<strong>in</strong>mal im<br />

voraus berechnet werden. Die Summen uber aj+l bzw. uber a 2<br />

j+l konnen <strong>in</strong> O(n0 ) Zeit<br />

39


erechnet werden, <strong>in</strong>dem jeweils auf die bereits berechnete Summe f<strong>ur</strong> l,1 z<strong>ur</strong>uckgegri en<br />

wird. Dabei mu jedoch beachtet werden, da e<strong>in</strong> solches Verfahren d<strong>ur</strong>ch die vielen<br />

Subtraktionen sehr <strong>in</strong>stabil se<strong>in</strong> kann.<br />

Insgesamt konnen also alle Summen bis auf <strong>in</strong> allen zu berechnenden Korrelationskoe<br />

zienten <strong>in</strong> Zeit und Platz (n + m) berechnet werden. Die Berechnung von benotigt<br />

Zeit ((n + m) log 2(n + m)) und Platz (n + m), und pro Korrelationskoe zient werden<br />

konstant viele weitere arithmetische Operationen ausgefuhrt. Insgesamt benotigt die Berechnung<br />

aller Korrelationskoe zienten demnach e<strong>in</strong>e Laufzeit von ((n+m) log 2(n+m))<br />

im Gegensatz z<strong>ur</strong> sukkzessiven Berechnung mit Zeitaufwand (mn).<br />

5.4 Anwendung <strong>der</strong> FFT auf die Berechnung von<br />

Gleichlau gkeitskoe zienten<br />

In diesem Unterkapitel wird e<strong>in</strong>e Moglichkeit aufgezeigt, den Gleichlau gkeitskoe zienten<br />

auf Korrelationskoe zienten z<strong>ur</strong>uckzufuhren, um so die FFT z<strong>ur</strong> Berechnung <strong>der</strong> Glk-<br />

Werte zu verwenden.<br />

5.4.1 Sukkzessive Berechnung<br />

Werden anhand des sukkzessiven Basisalgorithmus aus Unterkapitel 3.2 die<br />

Gleichlau gkeitskoe zienten berechnet, werden diese <strong>in</strong> dem Feld result gespeichert, <strong>das</strong><br />

f<strong>ur</strong> die Indizes m<strong>in</strong>Ovl , n; ::; m , m<strong>in</strong>Ovl de niert ist.<br />

wobei first(l) =<br />

und last(l) =<br />

result l = 1<br />

last(l) X<br />

n<br />

j=first(l)<br />

(a j+l = bj)<br />

,l ,wenn m<strong>in</strong>Ovl , n l ,1<br />

0 , sonst<br />

n , 2 ,wenn m<strong>in</strong>Ovl , n l m , n<br />

m , l , 2 , sonst<br />

f<strong>ur</strong> m<strong>in</strong>Ovl , n l m , m<strong>in</strong>Ovl. a und b bezeichnen die Richtungss<strong>in</strong>nvektoren, die<br />

d<strong>ur</strong>ch Di erenzenbildung aus a bzw. b entstehen.<br />

40


5.4.2 E ziente Berechnung des Vektors<br />

Der Vektor <strong>der</strong> zu berechnenden Summen, mit<br />

l =<br />

last(l) X<br />

j=first(l)<br />

(aj+l = bj) (5.11)<br />

f<strong>ur</strong> m<strong>in</strong>Ovl , n l m , m<strong>in</strong>Ovl kann auf drei Korrelationsvektoren z<strong>ur</strong>uckgefuhrt<br />

werden. Dazu wird aufgeteilt <strong>in</strong> die drei Vektoren (,1) , (0) und (1) , die de niert s<strong>in</strong>d<br />

d<strong>ur</strong>ch<br />

(k)<br />

l<br />

=<br />

f<strong>ur</strong> k = ,1; 0; 1. O ensichtlich gilt<br />

last(l) X<br />

j=first(l)<br />

(aj+l = bj = k) (5.12)<br />

= (,1) + (0) + (1) : (5.13)<br />

Jedes (k) kann als Korrelation <strong>der</strong> Folgen a (k) 2f0;1g n,1 und b (k) 2f0;1g n,1 mit<br />

a (k)<br />

j = (aj = k) und b (k)<br />

j = (bj = k) f<strong>ur</strong> j =0;:::;n,2 betrachtet werden. Als Formel<br />

gilt<br />

(k)<br />

l<br />

=<br />

last(l) X<br />

j=first(l)<br />

a (k)<br />

j+l b(k)<br />

j = (a(k) ;b (k) ): (5.14)<br />

Wie <strong>in</strong> Unterkapitel 5.3 kann jedes (k) mit Hilfe <strong>der</strong> FFT, <strong>in</strong> ((n + m) log2(n + m))<br />

Zeit berechnet werden, so da sich ganz <strong>in</strong> dieser Zeit berechnen la t. Der zusatzlich<br />

benotigte Speicherplatz f<strong>ur</strong> die Folgen a (k) und b (k) ist (n + m).<br />

5.4.3 E ziente Berechnung <strong>der</strong> Gleichlau gkeitskoe zienten<br />

Da sich die Gleichlau gkeitskoe zienten aus und e<strong>in</strong>er Division berechnen, lassen sich<br />

alle Glk-Werte mit Hilfe <strong>der</strong> FFT <strong>in</strong> Zeit ((n + m) log 2(n + m)) berechnen, im Gegensatz<br />

z<strong>ur</strong> sukkzessiven Berechnung mit Zeitaufwand (mn). Der langsame Algorithmus ist jedoch<br />

sehr e<strong>in</strong>fach und ohne zusatzlichen Speicheraufwand zu implementieren, wahrend <strong>das</strong><br />

((n+m) log 2(n+m))-Verfahren d<strong>ur</strong>ch die Aufteilung <strong>in</strong> drei Vektoren und die Berechnung<br />

dreier FFTs verhaltnisma ig kompliziert wird.<br />

41


Kapitel 6<br />

Zwei Transformationsabstande f<strong>ur</strong><br />

Jahrr<strong>in</strong>gfolgen verschiedener<br />

Lange<br />

Baume bilden zwar meistens pro Jahr genau e<strong>in</strong>en Jahrr<strong>in</strong>g aus, jedoch kann es unter<br />

bestimmten Umstanden passieren, da <strong>in</strong> e<strong>in</strong>em Jahr ke<strong>in</strong> Jahrr<strong>in</strong>g ausgebildet wird o<strong>der</strong><br />

mehrere Jahrr<strong>in</strong>ge ausgebildet werden. E<strong>in</strong>e Folge mit solchen Unregelma igkeiten kann<br />

mit den ublichen Abstandsma en nicht korrekt <strong>in</strong> e<strong>in</strong>er Referenzfolge lokalisiert werden,<br />

da die den Folgen zugrundeliegenden Zeitskalen nicht ubere<strong>in</strong>stimmen.<br />

In Unterkapitel 6.2 wird e<strong>in</strong> Abstandsbegri vorgestellt, <strong>der</strong> mit Hilfe von lokalen<br />

Editierungen <strong>der</strong> Musterfolge mogliche Positionen fehlen<strong>der</strong> und doppelter R<strong>in</strong>ge lokalisiert.<br />

Dieser im folgenden als Transformationsabstand bezeichnete Abstand w<strong>ur</strong>de von<br />

Van Deusen [11] f<strong>ur</strong> Jahrr<strong>in</strong>gfolgen vorgeschlagen und wird ahnlich wie die Edit-Distance<br />

von Zeichenketten ([19], [48]) o<strong>der</strong> <strong>das</strong> Dynamic Time Warp<strong>in</strong>g (DTW) <strong>in</strong> <strong>der</strong> Spracherkennung<br />

([43], [42]), de niert. Die bei Jahrr<strong>in</strong>gfolgen moglichen Editieroperationen s<strong>in</strong>d<br />

die Zusammenfassung zweier Folgenglie<strong>der</strong> o<strong>der</strong> die E<strong>in</strong>fugung e<strong>in</strong>es neuen Folgengliedes.<br />

Um zu viele E<strong>in</strong>fugungen und Zusammenfassungen zu vermeiden, mu die Menge <strong>der</strong><br />

zugelassenen Transformationen <strong>der</strong> Musterfolge e<strong>in</strong>geschrankt werden. Deshalb wird <strong>in</strong><br />

Unterkapitel 6.3 e<strong>in</strong> weiterer Transformationsabstand de niert, <strong>der</strong> abhangig von <strong>der</strong> Anzahl<br />

<strong>der</strong> Editieroperationen berechnet wird. Dieser ist f<strong>ur</strong> die Anwendung <strong>in</strong> <strong>der</strong> <strong>Dendrochronologie</strong><br />

besser geeignet, da <strong>in</strong> e<strong>in</strong>er Jahrr<strong>in</strong>gfolge n<strong>ur</strong> wenig doppelte o<strong>der</strong> fehlende<br />

R<strong>in</strong>ge auftreten.<br />

42


6.1 Doppelte und fehlende Jahrr<strong>in</strong>ge<br />

Die <strong>in</strong> den vorigen Kapiteln betrachteten <strong>Crossdat<strong>in</strong>g</strong>algorithmen gehen davon aus, da<br />

<strong>in</strong> <strong>der</strong> Muster- und <strong>in</strong> <strong>der</strong> Referenzjahrr<strong>in</strong>gfolge die Elemente jeweils aufe<strong>in</strong>an<strong>der</strong>folgenden<br />

Jahren entsprechen. Dabei wird jedoch nicht berucksichtigt, da Baume unter gewissen<br />

Umweltbed<strong>in</strong>gungen <strong>in</strong> e<strong>in</strong>em Jahr ke<strong>in</strong>e Wachstumsschicht (fehlen<strong>der</strong> R<strong>in</strong>g) o<strong>der</strong> zwei<br />

Schichten (doppelter R<strong>in</strong>g) ausbilden konnen. Zwar konnen <strong>in</strong> e<strong>in</strong>em Jahr auch mehr<br />

als zwei R<strong>in</strong>ge gebildet werden, jedoch kommt dies verhaltnisma ig selten vor und wird<br />

deshalb im folgenden au er Acht gelassen. Weiterh<strong>in</strong> wird im folgenden davon ausgegangen,<br />

da doppelte o<strong>der</strong> fehlende R<strong>in</strong>ge n<strong>ur</strong> <strong>in</strong> <strong>der</strong> Muster- und nicht <strong>in</strong> <strong>der</strong> Referenzfolge<br />

auftreten konnen.<br />

Bei e<strong>in</strong>em Vergleich zweier Folgen ist es wichtig zu wissen, welche Indizes <strong>der</strong> beiden<br />

Folgen korrespondieren, <strong>das</strong> hei t, an welchen Stellen <strong>der</strong> beiden Folgen Elemente s<strong>in</strong>nvoll<br />

mite<strong>in</strong>an<strong>der</strong> verglichen werden konnen. E<strong>in</strong> Auftreten doppelter o<strong>der</strong> fehlen<strong>der</strong> R<strong>in</strong>ge <strong>in</strong><br />

<strong>der</strong> Musterfolge x = x0;:::;xN,1 veran<strong>der</strong>t den normalerweise <strong>in</strong> Jahrr<strong>in</strong>gfolgen vorhandenen<br />

zeitlichen Ablauf <strong>in</strong> <strong>der</strong> Art, da zwei aufe<strong>in</strong>an<strong>der</strong>folgende Indizes nicht mehr zwei<br />

aufe<strong>in</strong>an<strong>der</strong>folgenden Jahren entsprechen mussen. Ist xi;xi+1 e<strong>in</strong> doppelter R<strong>in</strong>g, dann<br />

entsprechen i und i+1 demselben Jahr. Fehlt h<strong>in</strong>gegen zwischen xj und xj+1 e<strong>in</strong> R<strong>in</strong>g,<br />

dann entspricht j e<strong>in</strong>em Jahr zwei Jahre vor dem Jahr f<strong>ur</strong> j+1.<br />

Um die Folge x dem zeitlichen Ablauf aufe<strong>in</strong>an<strong>der</strong>folgen<strong>der</strong> Jahre anzugleichen, damit<br />

e<strong>in</strong> s<strong>in</strong>nvoller Vergleich mit e<strong>in</strong>er Teilfolge y = y0;:::;yM,1 <strong>der</strong> Referenzfolge moglich ist,<br />

konnen folgende Editieroperationen auf x angewandt werden:<br />

1. Zusammenfassung: Ist xi;xi+1 e<strong>in</strong> doppelter R<strong>in</strong>g, dann werden die beiden Folgenglie<strong>der</strong><br />

zu xi+xi+1 zusammengefa t.<br />

2. E<strong>in</strong>fugung: Fehlt zwischen xj und xj+1 e<strong>in</strong> R<strong>in</strong>g, dann wird e<strong>in</strong> Folgenglied <strong>der</strong><br />

Gro e xj+xj+1<br />

2<br />

e<strong>in</strong>gefugt.<br />

Der Grund, da bei e<strong>in</strong>em doppelten R<strong>in</strong>g beide Folgenglie<strong>der</strong> d<strong>ur</strong>ch Addition zusammengefa<br />

t werden liegt dar<strong>in</strong>, da die Breite bei<strong>der</strong> Jahresr<strong>in</strong>ge zusammen <strong>in</strong> etwa <strong>der</strong><br />

Breite e<strong>in</strong>es f<strong>ur</strong> dieses Jahr typischen R<strong>in</strong>ges entspricht, da die Vegetationszeit f<strong>ur</strong> beide<br />

R<strong>in</strong>ge <strong>in</strong>sgesamt die gleiche ist wie bei an<strong>der</strong>en Baumen f<strong>ur</strong> e<strong>in</strong>en R<strong>in</strong>g. Bei an<strong>der</strong>en Jahrr<strong>in</strong>gcharakteristika<br />

als <strong>der</strong> Jahrr<strong>in</strong>gbreite mu eventuell an<strong>der</strong>s zusammengefa t werden.<br />

F<strong>ur</strong> e<strong>in</strong>en fehlenden R<strong>in</strong>g wird oft <strong>in</strong> <strong>der</strong> Praxis e<strong>in</strong>e 0 als Breite angegeben. Da dies bei<br />

<strong>der</strong> spateren Abstandsberechnung jedoch zu zu hohen lokalen Abstanden an dieser Stelle<br />

fuhren kann, wird hier <strong>das</strong> von Van Deusen [11] vorgeschlagene arithmetische Mittel <strong>der</strong><br />

umliegenden Jahrr<strong>in</strong>gbreiten als Breite e<strong>in</strong>es e<strong>in</strong>zufugenden R<strong>in</strong>ges verwendet. Auf diese<br />

Art und Weise erhalt die E<strong>in</strong>fugung e<strong>in</strong>es R<strong>in</strong>ges die gleiche Berechtigung wie <strong>das</strong> Unveran<strong>der</strong>tlassen<br />

e<strong>in</strong>es R<strong>in</strong>ges o<strong>der</strong> die Zusammenfassung zweier R<strong>in</strong>ge, da e<strong>in</strong>e E<strong>in</strong>fugung<br />

nicht d<strong>ur</strong>ch e<strong>in</strong>en unnat<strong>ur</strong>lich hohen lokalen Abstand bestraft wird.<br />

43


6.2 E<strong>in</strong> Transformationsabstand<br />

6.2.1 De nition<br />

Die Stellen <strong>der</strong> doppelten und fehlenden R<strong>in</strong>ge <strong>in</strong> x s<strong>in</strong>d im allgeme<strong>in</strong>en nicht bekannt<br />

und stellen deshalb e<strong>in</strong> H<strong>in</strong><strong>der</strong>nis <strong>in</strong> <strong>der</strong> Mustererkennung von x <strong>in</strong> <strong>der</strong> Referenzfolge dar.<br />

Um Stellen <strong>in</strong> x aufzu nden, die doppelten o<strong>der</strong> fehlenden R<strong>in</strong>gen entsprechen konnten<br />

und gleichzeitig e<strong>in</strong>en Abstandsbegri zu erhalten, kann <strong>der</strong> Transformationsabstand verwendet<br />

werden. Dieser wird, ahnlich wie die Edit-Distance bei Str<strong>in</strong>gs ([19], [48]) o<strong>der</strong> <strong>das</strong><br />

Dynamic Time Warp<strong>in</strong>g (DTW) <strong>in</strong> <strong>der</strong> Spracherkennung ([43], [42]), de niert:<br />

De nition 6.1 E<strong>in</strong>e Transformation bildet e<strong>in</strong>e Folge x = x0;:::;xN,1 anhand e<strong>in</strong>er<br />

Transformationsvorschrift <strong>in</strong> die Folge (x) ab. Die Transformationsvorschrift f<strong>ur</strong> , die<br />

ebenfalls mit bezeichnet werden soll, ist e<strong>in</strong>e Zeichenkette uber dem Alphabet fZ; E; Ig<br />

f<strong>ur</strong> die N =2z +id gilt. Dabei bezeichnen z die Anzahl des Buchstabens Z und id die<br />

Anzahl des Buchstabens I <strong>in</strong> ist. Die Buchstaben entsprechen folgenden Elementaroperationen:<br />

Z Die Zusammenfassung zweier aufe<strong>in</strong>an<strong>der</strong>folgen<strong>der</strong> Elemente aus x.<br />

E Die E<strong>in</strong>fugung e<strong>in</strong>es Elementes <strong>in</strong> x.<br />

I Das Ubernehmen e<strong>in</strong>es Elementes aus x (Identitatsoperation).<br />

Die ersten beiden Elementaroperationen werden zusammenfassend als Editieroperationen<br />

bezeichnet.<br />

D<strong>ur</strong>ch wird e<strong>in</strong>e Abbildung von x beschrieben, <strong>in</strong>dem x und gleichzeitig von l<strong>in</strong>ks nach<br />

rechts d<strong>ur</strong>chgegangen werden und x anhand <strong>der</strong> den Buchstaben entsprechenden Elementaroperationen<br />

<strong>in</strong> veran<strong>der</strong>t wird. Jedes Element von x wird dabei wegen N = 2z + id<br />

genau e<strong>in</strong>mal verwendet.<br />

Z Z I E<br />

3 2 1 2 5<br />

E<br />

I<br />

3<br />

So wird zum Beispiel e<strong>in</strong>e Folge 3; 2; 1; 2; 5; 3 anhand von<br />

ZZIEEI wie folgt transformiert: 3 und 2 werden zu 3+2 = 5<br />

zusammengefa t (Z), 1 und 2 werden zu 1 +2 = 3 zu-<br />

sammengefa t (Z), 5 wird ubernommen (I), danach werden<br />

=4e<strong>in</strong>gefugt (EE) und die 3 wird<br />

5 3 5 4 4 3 zwei Elemente = 5+3<br />

2<br />

ubernommen (I), so da <strong>in</strong>sgesamt die Folge 5; 3; 5; 4; 4; 3entsteht.<br />

Insbeson<strong>der</strong>e fassen bei e<strong>in</strong>er Transformation zwei aufe<strong>in</strong>an<strong>der</strong>folgende Zusammenfassungsoperationen<br />

nicht drei Elemente aus x zu e<strong>in</strong>em, son<strong>der</strong>n h<strong>in</strong>tere<strong>in</strong>an<strong>der</strong> jeweils<br />

zwei zu e<strong>in</strong>em zusammen. Steht vor o<strong>der</strong> nach e<strong>in</strong>er E<strong>in</strong>fugung e<strong>in</strong>e weitere Editieroperation,<br />

so berechnet sich <strong>der</strong> e<strong>in</strong>zufugende Zahlenwert dennoch aus den umgebenden<br />

44


Werten <strong>der</strong> Ausgangsfolge. Bei e<strong>in</strong>er E<strong>in</strong>fugung am Anfang bzw. am Ende <strong>der</strong> Folge, sei<br />

als <strong>das</strong> erste bzw. letzte Element <strong>der</strong> Folge de niert. Die Bed<strong>in</strong>gung N = 2z + id<br />

versichert, da alle Elemente von x e<strong>in</strong>er Elementaroperation unterworfen werden.<br />

De nition 6.2 Es seien N; M > 0. Die Menge aller Transformationen, die e<strong>in</strong>e Folge<br />

<strong>der</strong> Lange N <strong>in</strong> e<strong>in</strong>e Folge <strong>der</strong> Lange M transformiert sei mit TN;M bezeichnet. F<strong>ur</strong> e<strong>in</strong>e<br />

Transformation seien z , e und id die Anzahlen <strong>der</strong> Zusammenfassungs-, E<strong>in</strong>fugungsbzw.<br />

Identitatsoperationen.<br />

Lemma 6.3 Es seien N; M > 0. F<strong>ur</strong> 2TN;M gelten<br />

M = z + e + id (6.1)<br />

M = N + e , z (6.2)<br />

Beweis. Sei 2TN;M. Jede Elementaroperation <strong>in</strong> entspricht genau e<strong>in</strong>em Element <strong>in</strong><br />

<strong>der</strong> Zielfolge <strong>der</strong> Lange M. Deshalb gilt M = z + e + id . Zusammen mit N =2z +id<br />

folgt daraus M = N + e , z .<br />

Satz 6.4 Es seien N; M > 0. Es gilt TN;M 6= ; genau dann, wenn N 2M ist .<br />

Beweis. Sei TN;M 6= ; und 2TN;M. Nach Lemma 6.3 gilt M = N + e , z (I). Wegen<br />

c Zusammenfassungen be<strong>in</strong>halten (II). Zusammen<br />

N = 2z + id kann hochstens b N<br />

2<br />

ergeben (I) und (II) N 2M. Seien umgekehrt N und M mit N 2M o<strong>der</strong> aquivalent<br />

dazu d N<br />

2<br />

e M vorgegeben. D<strong>ur</strong>ch d N<br />

2<br />

Identitatsoperationen und M ,b N<br />

2<br />

2z + i erfullende Transformation 2TN;M.<br />

e Zusammenfassungen mit anschlie end N , 2d N<br />

2 e<br />

c E<strong>in</strong>fugungen erhalt man e<strong>in</strong>e die Bed<strong>in</strong>gung N =<br />

De nition 6.5 Es seien N; M 0. Der Transformationsabstand D von x =<br />

x0;:::;xN,1 und y = y0;:::;yM,1 ist de niert als<br />

D(x; y) =<br />

8<br />

><<br />

>:<br />

0 ;wenn N=M=0<br />

P<br />

M,1<br />

m<strong>in</strong><br />

2TN;M<br />

d( (x) ;y ) ;wenn TN;M 6= ;<br />

=0<br />

nicht de niert ; sonst<br />

mit d(c1;c2)=(c1,c2) 2 . F<strong>ur</strong> N =0bzw. M =0ist x bzw. y die leere Folge.<br />

(6.3)<br />

E<strong>in</strong>e Transformation, f<strong>ur</strong> die die Summe <strong>der</strong> Abstande <strong>das</strong> M<strong>in</strong>imum annimmt, hei t<br />

optimale Transformation.<br />

45


Der Transformationsabstand ist e<strong>in</strong>e nat<strong>ur</strong>liche Verallgeme<strong>in</strong>erung <strong>der</strong> Abstandsbegri e<br />

f<strong>ur</strong> zwei Folgen gleicher Lange, die auf <strong>der</strong> Summierung elementweiser Abstande beruhen.<br />

Mit <strong>der</strong> <strong>in</strong> De nition 6.5 angegebenen lokalen Abstandsfunktion d(c1;c2) = (c1 , c2) 2<br />

verallgeme<strong>in</strong>ert <strong>der</strong> Transformationsabstand den quadrierten euklidischen Abstand. F<strong>ur</strong><br />

d kann aber auch e<strong>in</strong> an<strong>der</strong>er Abstandsbegri , wie etwa <strong>der</strong> Betrag <strong>der</strong> Di erenz <strong>der</strong> beiden<br />

Werte, verwendet werden.<br />

Lemma 6.6 Wegen Satz 6.4 ist <strong>der</strong> Transformationsabstand von x0;:::;xN,1 und y =<br />

y0;:::;yM,1 genau dann de niert, wenn 0 N 2M gilt und N; M nicht beide gleich 0<br />

s<strong>in</strong>d.<br />

F<strong>ur</strong> e<strong>in</strong>e Transformation von x nach y gibt es ke<strong>in</strong>e kanonisch <strong>in</strong>verse Transformation von<br />

y nach x, da e<strong>in</strong>e E<strong>in</strong>fugung nicht <strong>in</strong>vers zu e<strong>in</strong>er Zusammenfassung ist. Deshalb ist <strong>der</strong><br />

Transformationsabstand unsymmetrisch, d.h. es gilt im allgeme<strong>in</strong>en D(x; y) 6= D(y; x).<br />

6.2.2 Rek<strong>ur</strong>sionsformel<br />

Da es exponentiell viele Transformationen gibt, die x = x0;:::;xN,1 <strong>in</strong> e<strong>in</strong>e Folge<br />

<strong>der</strong> Lange M transformieren, kann <strong>der</strong> Transformationsabstand zwischen x und y =<br />

y0;:::;yM,1 nicht e zient d<strong>ur</strong>ch die Bildung aller moglichen Transformationen und die<br />

M<strong>in</strong>imierung <strong>der</strong>er Abstande berechnet werden. D<strong>ur</strong>ch <strong>das</strong> Pr<strong>in</strong>zip <strong>der</strong> dynamischen Programmierung<br />

konnen sowohl <strong>der</strong> Transformationsabstand als auch e<strong>in</strong>e den Abstand bestimmende<br />

Transformation mit Zeit- und Platzaufwand O(NM) berechnet werden.<br />

Satz 6.7 F<strong>ur</strong> den Transformationsabstand D zweier Jahrr<strong>in</strong>gfolgen x = x0;:::;xN,1 und<br />

y = y0;:::;yM,1 gilt folgende rek<strong>ur</strong>sive Formel:<br />

D(0; 0) = 0<br />

D(i; j) = m<strong>in</strong> ?<br />

8<br />

<<br />

:<br />

D(i , 2;j,1) + d(xi,2 + xi,1;yj,1);<br />

D(i,1;j,1) + d(xi,1;yj,1);<br />

D(i; j , 1) + d( (i , 1);yj,1)<br />

f<strong>ur</strong> alle 0 i N; 0 j Mmit i 2j<br />

9<br />

=<br />

;<br />

(6.4)<br />

Dabei ist D(i; j) e<strong>in</strong>e abk<strong>ur</strong>zende Schreibweise f<strong>ur</strong> D(x[0::i,1];y[0::j,1]). m<strong>in</strong> ? bezeichnet<br />

die M<strong>in</strong>imumbildung, <strong>in</strong> <strong>der</strong> nicht de nierte Werte au er Acht gelassen werden und (i,1)<br />

sei <strong>der</strong> Wert e<strong>in</strong>es <strong>in</strong> x e<strong>in</strong>zufugenden R<strong>in</strong>ges h<strong>in</strong>ter <strong>der</strong> Position i , 1 (vgl. Unterkapitel<br />

6.1).<br />

Lemma 6.8 F<strong>ur</strong> i; j > 0 nimmt D(i; j) ke<strong>in</strong>en an<strong>der</strong>en Wert als e<strong>in</strong>en <strong>der</strong> drei z<strong>ur</strong><br />

M<strong>in</strong>imumbildung im Satz betrachteten Werte an.<br />

46


Beweis. Seien i; j > 0 mit i 2j und e<strong>in</strong>e optimale Transformation von x[0::i , 1]<br />

<strong>in</strong> e<strong>in</strong>e Folge <strong>der</strong> Lange j. Nach De nition mu <strong>der</strong> letzte Buchstabe <strong>der</strong> Transformation<br />

von e<strong>in</strong>er E<strong>in</strong>fugung, Zusammenfassung o<strong>der</strong> Identitat entsprechen.<br />

Im Falle <strong>der</strong> E<strong>in</strong>fugung wird e<strong>in</strong> Element (i , 1) h<strong>in</strong>ter xi,1 e<strong>in</strong>gefugt, so da (i , 1)<br />

<strong>das</strong> (j , 1)-te Element <strong>der</strong> transformierten Folge (x) ist. Deshalb wird bei <strong>der</strong> Aufsummierung<br />

z<strong>ur</strong> Berechnung des Abstandes f<strong>ur</strong> <strong>das</strong> jeweils letzte Element von (x) und<br />

y <strong>der</strong> Wert d( (i , 1);yj,1) summiert. Die Transformation ohne <strong>das</strong> letzte Element<br />

mu , sofern sie e<strong>in</strong>e gultige Transformation reprasentiert, e<strong>in</strong>e optimale Transformation<br />

f<strong>ur</strong> x[0::i , 1] und y[0; ::; j , 2] se<strong>in</strong>. E<strong>in</strong>e gultige Transformation reprasentiert sie<br />

genau dann, wenn i 2(j , 1) gilt. Angenommen, diese Ungleichung ist erfullt, die<br />

Transformation jedoch nicht optimal, dann w<strong>ur</strong>de e<strong>in</strong>e optimale Transformation mit e<strong>in</strong>er<br />

nachfolgenden E<strong>in</strong>fugeoperation e<strong>in</strong>en kle<strong>in</strong>eren Abstand von x[0::i , 1] zu y[0::j , 1]<br />

liefern. Dies ware jedoch e<strong>in</strong> Wi<strong>der</strong>spruch z<strong>ur</strong> Optimalitat <strong>der</strong> <strong>ur</strong>sprunglich betrachteten<br />

Transformation. Im Falle e<strong>in</strong>er E<strong>in</strong>fugung als letzte Elementaroperation ist also<br />

D(i; j) = D(i; j , 1) + d( (i , 1);yj,1), sofern i 2(j , 1) gilt. Ansonsten ist e<strong>in</strong>e<br />

E<strong>in</strong>fugung als letzte Elementaroperation nicht moglich.<br />

Im Falle e<strong>in</strong>er Zusammenfassung als letzte Elementaroperation <strong>in</strong> <strong>der</strong> betrachteten<br />

optimalen Transformation werden xi,1 und xi,2 zu e<strong>in</strong>em Element zusammengefa t. Dies<br />

tragt d(xi,2 + xi,1;yj,1) z<strong>ur</strong> Abstandssumme bei. Die Transformation ohne <strong>das</strong> letzte<br />

Element mu aufgrund analoger Argumentation wie oben e<strong>in</strong>e optimale Transformation<br />

f<strong>ur</strong> die jeweils restlichen Folgenglie<strong>der</strong> se<strong>in</strong>, sofern i , 2 2(j , 1) gilt. Deshalb ist <strong>in</strong><br />

diesem Fall D(i; j) =D(i,2;j,1)+d(xi,2 +xi,1;yj,1), wenn i,2 2(j ,1). Ansonsten<br />

ist e<strong>in</strong>e Zusammenfassung als letzte Elementaroperation nicht zugelassen.<br />

Ist die letzte Elementaroperation e<strong>in</strong>e Identitatsoperation, wird xi,1 bei <strong>der</strong> Transformation<br />

beibehalten, so da d(xi,1;yj,1) z<strong>ur</strong> Summe beitragt. Sofern i , 1 2(j , 1)<br />

ist, gilt D(i; j) =D(i,1;j,1) + d(xi,1;yj,1), ansonsten ist e<strong>in</strong>e Identitatsoperation als<br />

letzte Elementaroperation nicht zugelassen.<br />

Da <strong>das</strong> letzte Element <strong>der</strong> Transformationsvorschrift e<strong>in</strong>e <strong>der</strong> drei Elementartransformationen<br />

ist, kann D(i; j) ke<strong>in</strong>en an<strong>der</strong>en Wert als D(i , 2;j,1) + d(xi,2 + xi,1;yj,1),<br />

D(i , 1;j,1) + d(xi,1;yj,1) o<strong>der</strong> D(i; j , 1) + d( (i , 1);yj,1) annehmen.<br />

Lemma 6.9 F<strong>ur</strong> alle i; j mit 0


Beweis von Satz 6.7. Nach dem Lemma 6.8 kann D(i; j) n<strong>ur</strong> e<strong>in</strong>en <strong>der</strong> drei betrachteten<br />

Werte annehmen. Da je<strong>der</strong> <strong>der</strong> drei Werte e<strong>in</strong>er Transformation von x[0::i , 1] entspricht,<br />

f<strong>ur</strong> D(i; j) aber e<strong>in</strong>e optimale Transformation gesucht ist, mu D(i; j) <strong>das</strong> M<strong>in</strong>imum m<strong>in</strong> ?<br />

<strong>der</strong> drei Werte se<strong>in</strong>. Da nach Lemma 6.9 m<strong>in</strong>destens e<strong>in</strong>er <strong>der</strong> drei Werte de niert ist, ist<br />

die M<strong>in</strong>imumbildung ebenfalls de niert.<br />

6.2.3 Berechnung des Abstandes mit Hilfe <strong>der</strong> dynamischen Programmierung<br />

Die Rek<strong>ur</strong>sionsgleichung liefert den Ansatz z<strong>ur</strong> Berechnung des Transformationsabstandes<br />

mit Hilfe <strong>der</strong> dynamischen Programmierung. Im Gegensatz zu e<strong>in</strong>er e<strong>in</strong>fachen Top-Down-<br />

Auswertung <strong>der</strong> Rek<strong>ur</strong>sion, die d<strong>ur</strong>ch mehrfache Berechnung <strong>der</strong>selben Teilergebnisse zu<br />

e<strong>in</strong>er exponentiellen Laufzeit fuhrt, verfolgt die dynamische Programmierung e<strong>in</strong>en e zienteren<br />

Bottom-Up-Ansatz.<br />

Alle D(i; j) werden systematisch f<strong>ur</strong> aufsteigende Werte von i und j, beg<strong>in</strong>nend bei<br />

i =0und j =0,berechnet und abgespeichert, so da am Ende <strong>das</strong> erwunschte Resultat<br />

D(N; M) vorliegt. Die Wertebereiche f<strong>ur</strong> i und j, namlich 0 j Mund, abhangig von<br />

j, 0 i m<strong>in</strong>(N;2j), gehen aus den Bed<strong>in</strong>gungen des Satzes 6.7 hervor. D<strong>ur</strong>ch die <strong>in</strong><br />

Satz 6.10 aufgestellte zusatzliche Bed<strong>in</strong>gung werden diese noch verkle<strong>in</strong>ert.<br />

Satz 6.10 Bei <strong>der</strong> Berechnung von D(N; M) anhand <strong>der</strong> Rek<strong>ur</strong>sionsgleichung (6.4) wird<br />

n<strong>ur</strong> auf D(i; j) mit N , i 2(M , j) z<strong>ur</strong>uckgegri en.<br />

Beweis. Sei 2 TN;M e<strong>in</strong>e optimale Transformation f<strong>ur</strong> D(N; M). Z<strong>ur</strong> Berechnung<br />

von D(N; M) mit Hilfe <strong>der</strong> Rek<strong>ur</strong>sionsgleichung werden solche D(i; j) benotigt, f<strong>ur</strong> die<br />

die zugehorige optimale Transformation 1 2 Ti;j e<strong>in</strong> Pra x von se<strong>in</strong> kann. F<strong>ur</strong> den<br />

entsprechenden Su x 2 2TN,i;M,j von liefert die f<strong>ur</strong> e<strong>in</strong>e Transformation notwendige<br />

Bed<strong>in</strong>gung aus Satz 6.4 N , i 2(M , j).<br />

Die zusatzliche Bed<strong>in</strong>gung aus Satz 6.10 ergibt umgeformt i N ,2M +2j, und damit<br />

den von j abhangigen Bereich<br />

m<strong>in</strong>I(j) := max(0;N ,2M +2j) i m<strong>in</strong>(N;2j) :=maxI(j) (6.5)<br />

f<strong>ur</strong> i. Die f<strong>ur</strong> die Berechnung von D(i; j) zu betrachtenden Werte D(i; j) mit (i = i,2; j =<br />

j ,1), (i = i,1; j = j ,1) und (i = i; j = j ,1) s<strong>in</strong>d n<strong>ur</strong> de niert, falls i und j ebenfalls <strong>in</strong><br />

den Wertebereichen f<strong>ur</strong> i und j liegen, d.h. wenn 0 j M und m<strong>in</strong>I(j) i maxI(j)<br />

gelten.<br />

Den Algorithmus z<strong>ur</strong> Berechnung des Transformationsabstandes zeigt Abbildung 6.1.<br />

Die Berechnung erfolgt <strong>in</strong> Teilen e<strong>in</strong>er (N +1) (M+ 1)-Matrix, <strong>der</strong>en Zeilen- und Spaltennumerierung<br />

jeweils den Bereichen <strong>der</strong> Indizes i und j entspricht. Am Anfang wird <strong>das</strong><br />

48


Transformationsabstand(x[0::N , 1], y[0::M , 1]):<br />

// Initialisierung<br />

D[0; 0] = 0;<br />

// Spaltenweises Fullen <strong>der</strong> Matrix mit Hilfe <strong>der</strong> Rek<strong>ur</strong>sionsgleichung<br />

for (j =1;j M;j++)f<br />

for (i =m<strong>in</strong>I(j); i maxI(j); i ++)f<br />

if (m<strong>in</strong>I(j , 1) i , 2 maxI(j , 1)) f<br />

// Zusammenfassung<br />

doubl = D[i , 2;j ,1] + d(x[i , 2] + b[i , 1];y[j ,1]);<br />

g<br />

if ( m<strong>in</strong>I(j , 1) i , 1 maxI(j , 1) ) f<br />

// Identitat<br />

match = D[i , 1;j ,1] + d(x[i , 1];y[i,1]);<br />

g<br />

if (m<strong>in</strong>I(j , 1) i maxI(j , 1)) f<br />

// E<strong>in</strong>fugung<br />

miss = D[i; j , 1] + d( (i , 1);y[i,1]);<br />

g<br />

m<strong>in</strong> = m<strong>in</strong> ? (doubl,match,miss);<br />

g // for j<br />

g // for i<br />

ret<strong>ur</strong>n D;<br />

Abbildung 6.1: DP-Algorithmus z<strong>ur</strong> Berechnung des Transformationsabstandes zweier Jahrr<strong>in</strong>gfolgen<br />

x0;:::;x N,1 und y0;:::;y M,1. Dabei seien m<strong>in</strong>I(j) und maxI(j) wie <strong>in</strong> Formel (6.5) de niert.<br />

49


0<br />

0<br />

1<br />

N<br />

i<br />

1<br />

Abbildung 6.2: Matrix f<strong>ur</strong> die Berechnung des Transformationsabstandes anhand des Algorithmus<br />

aus Abbildung 6.1. Der verwendete Bereich <strong>der</strong> Matrix ist e<strong>in</strong>gerahmt dargestellt, wobei die l<strong>in</strong>ke<br />

gestrichelte Begrenzungsl<strong>in</strong>ie <strong>der</strong> Bed<strong>in</strong>gung i 2j und die rechte gestrichelte Begrenzungsl<strong>in</strong>ie<br />

<strong>der</strong> Bed<strong>in</strong>gung (N , i) 2(M , j) entspricht.<br />

Feld (0; 0) mit <strong>der</strong> Anfangsbed<strong>in</strong>gung D(0; 0) = 0 <strong>in</strong>itialisiert. Danach werden zeilenweise<br />

f<strong>ur</strong> aufsteigende i und j <strong>in</strong>nerhalb <strong>der</strong> Wertebereiche alle D(i; j)-Werte berechnet und <strong>in</strong><br />

die Matrix an <strong>der</strong> entsprechenden Stelle e<strong>in</strong>getragen, so da <strong>das</strong> Resultat am Ende <strong>in</strong> Zelle<br />

(N; M) steht. Abbildung 6.2 zeigt, welche Zellen <strong>der</strong> Matrix verwendet werden.<br />

Die Anzahl <strong>der</strong> verwendeten Zellen <strong>in</strong> <strong>der</strong> Matrix ist<br />

MX<br />

j=0<br />

(m<strong>in</strong>(N;2j) , max(0;N ,2M +2j)) = NM ,d N2<br />

2 e+M+1=O(NM)<br />

Da, bis auf die Initialisierung von D(0; 0), f<strong>ur</strong> jeden D(i; j)-Wert drei Werte betrachtet<br />

und <strong>der</strong>en M<strong>in</strong>imum gebildet werden mu , ist die Laufzeit des Algorithmus proportional<br />

z<strong>ur</strong> Anzahl <strong>der</strong> verwendeten Zellen. Der verwendete Speicherplatz besteht bis auf e<strong>in</strong>e<br />

konstante Anzahl von Hilfsvariablen hauptsachlich aus den verwendeten Zellen <strong>der</strong> Matrix,<br />

sofern n<strong>ur</strong> f<strong>ur</strong> die verwendeten Zellen Speicherplatz reserviert wird. Der Algorithmus<br />

benotigt demnach O(NM) Zeit und Platz.<br />

Die vollstandig ausgefullte Berechnungsmatrix wird f<strong>ur</strong> die Berechnung e<strong>in</strong>er dem Abstand<br />

entsprechenden optimalen Transformation benotigt. Hierauf wird <strong>in</strong> Abschnitt 6.2.5<br />

e<strong>in</strong>gegangen. Wenn n<strong>ur</strong> <strong>der</strong> Abstand, ohne e<strong>in</strong>e zugehorige optimale Transformation, berechnet<br />

werden soll, mu nicht die gesamte Matrix gespeichert werden. Bei e<strong>in</strong>em spaltenweisen<br />

bzw. zeilenweisen Ausfullen <strong>der</strong> Matrix genugt es, immer n<strong>ur</strong> die zwei zuletzt<br />

ausgefullten Spalten bzw. Zeilen im Speicher zu halten. Auf diese Art und Weise reduziert<br />

sich <strong>der</strong> Speicherplatz auf (m<strong>in</strong>(M; N)).<br />

50<br />

M<br />

j


i-2<br />

i-1<br />

i<br />

j-2 j-1<br />

j<br />

entspricht<br />

entspricht<br />

i-2 i-1 , yj-1 )<br />

D(i,j)=D(i-2,j-1)+d(x +x<br />

D(i,j)=D(i-1,j-1)+d(x<br />

i-1 , yj-1 )<br />

entspricht D(i,j)=D(i,j-1)+d( μ (i-1) , yj-1 )<br />

Abbildung 6.3: Mogliche von e<strong>in</strong>em Knoten (i; j) ausgehende Kanten <strong>in</strong> e<strong>in</strong>em Berechnungsgraphen<br />

6.2.4 Berechnungsgraph<br />

Die rek<strong>ur</strong>sive Berechnung des Transformationsabstandes kann anhand e<strong>in</strong>es Berechnungsgraphen<br />

verdeutlicht werden. Die Knoten entsprechen dabei den Zellen <strong>der</strong> Berechnungsmatrix.<br />

Zwischen zwei Knoten k1, k2 gibt es genau dann e<strong>in</strong>e gerichtete Kante k1 ! k2,<br />

wenn sich <strong>in</strong> e<strong>in</strong>em Rek<strong>ur</strong>sionsschritt, also bei <strong>der</strong> M<strong>in</strong>imierung uber die drei moglichen<br />

Werte, D(k1) aus D(k2) berechnet.<br />

F<strong>ur</strong> e<strong>in</strong>en Knoten gibt es demnach drei mogliche ausgehende Kanten, wie <strong>in</strong> Abbildung<br />

6.3 ersichtlich ist, von denen m<strong>in</strong>destens e<strong>in</strong>e vorhanden se<strong>in</strong> mu , aber auch zwei o<strong>der</strong><br />

alle drei vorhanden se<strong>in</strong> konnen.<br />

6.2.5 Berechnung e<strong>in</strong>er optimalen Transformation anhand <strong>der</strong> Berechnungsmatrix<br />

Aus dem Beweis f<strong>ur</strong> Lemma 6.8 geht hervor, da e<strong>in</strong>e optimale Transformation <strong>in</strong> kanonischer<br />

Weise mit <strong>der</strong> Rek<strong>ur</strong>sivitat des Transformationsabstandes zusammenhangt:<br />

Ist D(i; j) =D(i,2;j,1) + d(xi,2 + xi,1;yj,1), dann ist jede optimale Transformation<br />

f<strong>ur</strong> x[0::i , 3] und y[0::j , 2] mit e<strong>in</strong>er anschlie enden Zusammenfassung e<strong>in</strong>e<br />

optimale Transformation f<strong>ur</strong> x[0::i , 1] und y[0::j , 1].<br />

Ist D(i; j) =D(i,1;j,1)+d(xi,1;yj,1), dann ist jede optimale Transformation f<strong>ur</strong><br />

x[0::i , 2] und y[0::j , 2] mit e<strong>in</strong>er anschlie enden Identitatsoperation e<strong>in</strong>e optimale<br />

Transformation f<strong>ur</strong> x[0::i , 1] und y[0::j , 1].<br />

Ist D(i; j) = D(i; j , 1) + d( (i , 1);yj,1), dann ist jede optimale Transformation<br />

f<strong>ur</strong> x[0::i , 1] und y[0::j , 2] mit e<strong>in</strong>er anschlie enden E<strong>in</strong>fugung e<strong>in</strong>e optimale<br />

Transformation f<strong>ur</strong> x[0::i , 1] und y[0::j , 1].<br />

Jede Elementaroperation entspricht demnach genau e<strong>in</strong>er moglichen Kante im Berechnungsgraphen,<br />

so da e<strong>in</strong> Pfad im Berechnungsgraphen von (N; M) nach (0;0) e<strong>in</strong>e Trans-<br />

51


Transformation(D[N + 1][M +1];x[0::N , 1];y[0::M , 1]):<br />

// Ausgabe e<strong>in</strong>er optimalen Transformationsvorschrift<br />

// Initialisierung<br />

i=N;<br />

j=M;<br />

// Z<strong>ur</strong>uckverfolgung e<strong>in</strong>es Berechnungsweges<br />

while ((i 0)&&(j 0))) f<br />

if (D(i; j) ==D(i,1;j,1) + d(x[i , 1];y[j ,1])) f<br />

// Identitat<br />

pr<strong>in</strong>t('I');<br />

i=i-1;<br />

j=j-1;<br />

g else if (D(i; j) ==D(i,2;j ,1) + d(x[i , 2] + x[i , 1];y[j ,1])) f<br />

// Zusammenfassung<br />

pr<strong>in</strong>t('Z');<br />

i=i-2;<br />

j=j-1;<br />

g elsif (D(i; j) ==D(i; j , 1) + d( (i , 1);y[j ,1])) f<br />

// E<strong>in</strong>fugung<br />

pr<strong>in</strong>t('E');<br />

j=j-1;<br />

g<br />

g<br />

Abbildung 6.4: Algorithmus z<strong>ur</strong> Berechnung und Ausgabe e<strong>in</strong>er optimalen Transformation aus<br />

<strong>der</strong> Berechnungsmatrix D des Transformationsabstandes <strong>der</strong> Jahrr<strong>in</strong>gfolgen x0;:::;x N,1 und<br />

y0;:::;y M,1. Zugri e auf nicht de nierte Teile <strong>der</strong> Matrix D <strong>in</strong>nerhalb e<strong>in</strong>er if-Abfrage sollen<br />

so verstanden werden, da die if-Abfrage false liefert.<br />

formationsvorschrift de niert.<br />

E<strong>in</strong>e Transformationsvorschrift wird deshalb d<strong>ur</strong>ch e<strong>in</strong>e Z<strong>ur</strong>uckverfolgung <strong>der</strong> erfolgten<br />

Berechnungsschritte anhand <strong>der</strong> Matrix D berechnet (siehe Abbildung 6.4). Ausgehend<br />

von <strong>der</strong> Zelle (N; M) wird e<strong>in</strong>e vorhandene Kante des Berechnungsgraphen z<strong>ur</strong>uckverfolgt<br />

und als entsprechende Elementaroperation <strong>in</strong>terpretiert.<br />

Die Z<strong>ur</strong>uckverfolgung <strong>der</strong> e<strong>in</strong>zelnen Berechnungsschritte kann erleichtert werden, <strong>in</strong>dem<br />

wahrend des Berechnungsalgorithmus f<strong>ur</strong> jedes betrachtete Feld (i; j) <strong>der</strong> Berechnungsmatrix<br />

abgespeichert wird, welche <strong>der</strong> drei Zellen (i , 1;j ,2), (i , 1;j ,1) und<br />

(i; j , 1) z<strong>ur</strong> M<strong>in</strong>imumbildung beigetragen haben. Dad<strong>ur</strong>ch erhoht sich <strong>der</strong> reelle jedoch<br />

nicht <strong>der</strong> asymptotische Speicheraufwand, da es sich n<strong>ur</strong> um konstanten zusatzlichen Platz<br />

pro Zelle handelt.<br />

52


Die Lange e<strong>in</strong>er Transformation, also die Anzahl aller <strong>in</strong> ihr enthaltenen Elementaroperationen,<br />

ist nach Satz 6.3 gleich M. Der Algorithmus z<strong>ur</strong> Berechnung e<strong>in</strong>er Transformation<br />

benotigt konstante Zeit f<strong>ur</strong> jede auszugebende Elementaroperation, also (M).<br />

6.2.6 Notwendigkeit <strong>der</strong> E<strong>in</strong>schrankung <strong>der</strong> Transformationsmenge<br />

Der <strong>in</strong> diesem Unterkapitel de nierte Transformationsabstand liefert ohne e<strong>in</strong>e E<strong>in</strong>schrankung<br />

<strong>der</strong> zugelassenen Transformationsmenge ke<strong>in</strong>e geeigneten Informationen f<strong>ur</strong><br />

<strong>das</strong> <strong>Crossdat<strong>in</strong>g</strong>. Der Grund daf<strong>ur</strong> liegt dar<strong>in</strong>, da Jahrr<strong>in</strong>gfolgen wenig fehlende und<br />

doppelte R<strong>in</strong>ge ausbilden. Der Transformationsabstand zwischen zwei Folgen wird jedoch<br />

uber alle moglichen Transformationen m<strong>in</strong>imiert, d.h. es konnen moglicherweise viele Zusammenfassungen<br />

und E<strong>in</strong>fugungen <strong>in</strong> e<strong>in</strong>er optimalen Transformation vorhanden se<strong>in</strong>,<br />

was den Abstand zwar m<strong>in</strong>imiert, jedoch vom dendrochronologischen Standpunkt her wenig<br />

s<strong>in</strong>nvoll ist. Wunschenswert ist deshalb die Berechnung von Transformationsabstanden<br />

mit e<strong>in</strong>er e<strong>in</strong>geschrankten Menge zugelassener Transformationen, die wenig Zusammenfassungen<br />

und E<strong>in</strong>fugungen enthalten.<br />

0<br />

1<br />

N<br />

i<br />

0<br />

1<br />

M j<br />

Abbildung 6.5: Berechnungsmatrix f<strong>ur</strong> die Berechnung des Transformationsabstandes unter <strong>der</strong><br />

E<strong>in</strong>schrankung <strong>der</strong> Transformationsmenge auf Transformationen , die f<strong>ur</strong> alle Pra xe 0 die Bed<strong>in</strong>gung<br />

jz 0 , e 0j = 2 erfullen.<br />

Van Deusen de niert <strong>in</strong> [11] e<strong>in</strong>en Transformationsabstand wie <strong>in</strong> Abschnitt 6.2.1<br />

erlautert. Die Menge <strong>der</strong> zugelassenen Transformationen schrankt er jedoch e<strong>in</strong>, <strong>in</strong>dem<br />

er <strong>in</strong> <strong>der</strong> Berechnungsmatrix n<strong>ur</strong> die Zellen berechnet, die auf <strong>der</strong> bei (0; 0) beg<strong>in</strong>nenden<br />

Diagonalen j , i =0sowie auf je Nebendiagonalen liegen. Dad<strong>ur</strong>ch werden n<strong>ur</strong> solche<br />

Transformationen betrachtet, die f<strong>ur</strong> alle Pra xe 0 die Zusatzbed<strong>in</strong>gung jz 0 , e 0j<br />

erfullen. Insbeson<strong>der</strong>e s<strong>in</strong>d hier<strong>in</strong> auch die Transformationen enthalten, die Editieroperationen<br />

enthalten. Abbildung 6.5 zeigt e<strong>in</strong>e solche Berechnungsmatrix, <strong>in</strong> <strong>der</strong> <strong>der</strong> zu<br />

berechnende Bereich f<strong>ur</strong> = 2 e<strong>in</strong>gezeichnet ist. Die gestrichelten L<strong>in</strong>ien verdeutlichen<br />

53


<strong>das</strong> . Die Lange e<strong>in</strong>er unter diesen Bed<strong>in</strong>gungen mit y vergleichbaren Folge ist d<strong>ur</strong>ch<br />

diese Zusatzbed<strong>in</strong>gung auf m<strong>in</strong>destens jxj, und hochstens jxj + begrenzt.<br />

Transformationen, die <strong>der</strong> obigen Zusatzbed<strong>in</strong>gung genugen, konnen aber dennoch<br />

weitaus mehr als Editieroperationen enthalten, solange sich lokal die Anzahl <strong>der</strong> Zusammenfassungen<br />

und E<strong>in</strong>fugungen ausgleicht. E<strong>in</strong> von <strong>der</strong> Anzahl <strong>der</strong> Editieroperationen<br />

abhangiger Transformationsabstand wird <strong>in</strong> Unterkapitel 6.3 entwickelt. E<strong>in</strong> auf diesem<br />

Abstand basieren<strong>der</strong> <strong>Crossdat<strong>in</strong>g</strong>algorithmus, dessen Implementation e<strong>in</strong> Teil dieser Diplomarbeit<br />

ist, wird <strong>in</strong> Kapitel 7 vorgestellt.<br />

6.3 E<strong>in</strong> von <strong>der</strong> Anzahl <strong>der</strong> Editieroperationen abhangiger<br />

Transformationsabstand<br />

F<strong>ur</strong> e<strong>in</strong>e Auswertung <strong>der</strong> Ahnlichkeit zweier Jahrr<strong>in</strong>gfolgen anhand des Transformationsabstandes<br />

ist die Anzahl <strong>der</strong> <strong>in</strong> e<strong>in</strong>er optimalen Transformation enthaltenen Editieroperationen<br />

e<strong>in</strong> wichtiges Kriterium. E<strong>in</strong> ger<strong>in</strong>ger Transformationsabstand, dessen zugehorige<br />

optimale Transformation viele Irregularitaten <strong>in</strong> die Jahrr<strong>in</strong>gfolge x h<strong>in</strong>e<strong>in</strong><strong>in</strong>terpretiert<br />

ist sicherlich nicht so uberzeugend, wie e<strong>in</strong> etwas gro erer Abstand, dessen zugehorige<br />

Transformation sehr wenig Irregularitaten <strong>in</strong> x erkennen la t. Deshalb wird <strong>in</strong> diesem<br />

Unterkapitel <strong>der</strong> Transformationsabstand abhangig von <strong>der</strong> Anzahl <strong>der</strong> <strong>in</strong> <strong>der</strong> optimalen<br />

Transformation enthaltenen Editieroperationen berechnet. E<strong>in</strong> solcher Abstandsbegri<br />

wird bei Kruskal und Sanko [28] f<strong>ur</strong> den Vergleich zweier Zeichenketten vorgeschlagen.<br />

Als <strong>Crossdat<strong>in</strong>g</strong>algorithmus werden dann <strong>in</strong> Kapitel 7 f<strong>ur</strong> e<strong>in</strong>e vorgegebene<br />

Hochstanzahl <strong>der</strong> Editieroperationen zwischen x und allen moglichen zusammenhangenden<br />

Teilfolgen <strong>in</strong> y die Abstande berechnet.<br />

6.3.1 De nition<br />

De nition 6.11 F<strong>ur</strong> den Vergleich zweier Jahrr<strong>in</strong>gfolgen x = x0;:::;xM,1 und y =<br />

y0;:::;yN,1 sei D(i; j; k) <strong>der</strong> Transformationsabstand D(i; j) <strong>der</strong> Pra xe x[0::i , 1] und<br />

y[0::j , 1] unter ausschlie licher Betrachtung solcher Transformationen, die genau k Edi-<br />

tieroperationen enthalten. Es ist<br />

D(i; j; k) =<br />

8<br />

><<br />

>:<br />

0 ;wenn i=j=k=0<br />

j,1 P<br />

m<strong>in</strong><br />

2Ti;j;k d( (x) ;y ) ;wenn Ti;j;k 6= ;<br />

=0<br />

nicht de niert ; sonst<br />

(6.6)<br />

wobei T i;j;k die Menge <strong>der</strong> Transformationen ist, die e<strong>in</strong>e Folge <strong>der</strong> Lange i <strong>in</strong> e<strong>in</strong>e Folge<br />

<strong>der</strong> Lange j mit genau k Editieroperationen transformiert und d(c; d) =(c,d) 2 .<br />

Der Abstand D(N; M; k) wird im folgenden als k-Abstand von x und y bezeichnet.<br />

54


Satz 6.12 Seien i; j; k 0. Es gilt Ti;j;k 6= ; genau dann, wenn die Bed<strong>in</strong>gungen<br />

1. j k und<br />

2. j , i = k , 2 f<strong>ur</strong> e<strong>in</strong> 2f0;:::;kg<br />

erfullt s<strong>in</strong>d.<br />

Beweis. Sei 2 Ti;j;k. F<strong>ur</strong> die dad<strong>ur</strong>ch de nierten i und j gilt nach Satz 6.3 j =<br />

i + e , z . E<strong>in</strong>e Umformung dieser Gleichung unter Berucksichtigung von e = k , z<br />

fuhrt zu j , i = k , 2z . Da z zwischen 0 und k liegt gilt die zweite Bed<strong>in</strong>gung. Die erste<br />

Bed<strong>in</strong>gung folgt ebenfalls aus Satz 6.3 d<strong>ur</strong>ch j = e + z + id = k + id k.<br />

Seien umgekehrt die Parameter i, j und k gegeben, so da sie die zwei Bed<strong>in</strong>gungen<br />

erfullen. F<strong>ur</strong> z := = k,j+i<br />

, e := k , z und id<br />

2<br />

Bed<strong>in</strong>gungen de niert und nicht negativ s<strong>in</strong>d, gilt 2z<br />

= j , k, die aufgrund <strong>der</strong> beiden<br />

+ id = i. z Zusammenfassungen,<br />

e E<strong>in</strong>fugungen und id Identitatsoperationen <strong>in</strong> beliebiger Reihenfolge de nieren deshalb<br />

e<strong>in</strong>e Transformation mit k Editieroperationen, die e<strong>in</strong>e Folge <strong>der</strong> Lange i <strong>in</strong> e<strong>in</strong>e Folge<br />

<strong>der</strong> Lange k + id = j transformiert.<br />

Korollar 6.13 Der k-Abstand D(i; j; k) ist genau dann de niert, wenn<br />

1. i 0,<br />

2. 0 k j und<br />

3. j , i = k , 2 f<strong>ur</strong> e<strong>in</strong> 2f0;:::;kg<br />

gelten.<br />

6.3.2 Rek<strong>ur</strong>sionsformel<br />

F<strong>ur</strong> D(i; j; k) gilt e<strong>in</strong>e ahnliche Rek<strong>ur</strong>sionsformel wie f<strong>ur</strong> D(i; j).<br />

Satz 6.14 F<strong>ur</strong> D(i; j; k) gilt folgende rek<strong>ur</strong>sive Formel:<br />

D(0; 0; 0) = 0<br />

D(i; j; k) = m<strong>in</strong> ?<br />

8<br />

<<br />

:<br />

D(i , 2;j ,1;k,1) + d(xi,2 + xi,1;yj,1);<br />

D(i,1;j ,1;k)+d(xi,1;yj,1);<br />

D(i; j , 1;k,1) + d( (i , 1);yj,1)<br />

f<strong>ur</strong> alle i; j; k 0<br />

mit j k und j , i = k , 2 f<strong>ur</strong> e<strong>in</strong> 2f0;:::;kg:<br />

55<br />

9<br />

=<br />

;<br />

(6.7)


Lemma 6.15 F<strong>ur</strong> alle i; j; k 0, jedoch nicht alle gleich 0, die den Bed<strong>in</strong>gungen aus Satz<br />

6.14 genugen, ist m<strong>in</strong>destens e<strong>in</strong>er <strong>der</strong> z<strong>ur</strong> M<strong>in</strong>imumbildung betrachteten Rek<strong>ur</strong>sionswerte<br />

de niert.<br />

Beweis. Aus den Bed<strong>in</strong>gungen aus Korollar 6.13 ergibt sich, da f<strong>ur</strong> i; j; k mit<br />

(I) i 2, j k 1 und 1<br />

D(i , 2;j,1;k,1) de niert ist. D(i , 1;j ,1;k) ist de niert, falls<br />

(II) i 1 und j k +1 1<br />

gelten. Wenn<br />

(III) i 0, j k 1 und k , 1<br />

s<strong>in</strong>d, existiert D(i; j , 1;k,1).<br />

Es bleibt zu zeigen, da f<strong>ur</strong> jedes Tripel (i; j; k) e<strong>in</strong>er <strong>der</strong> drei Falle (I), (II) o<strong>der</strong> (III)<br />

erfullt und somit m<strong>in</strong>destens e<strong>in</strong>er <strong>der</strong> drei Werte de niert ist. Sei i =0. Aus j ,i = k,2<br />

und j k folgen = 0 und j = k. Wenn k = 0 ist, dann ist (i; j; k) =(0;0;0). F<strong>ur</strong> k>0<br />

gilt (III). Sei nun i =1. Es folgen = 0 und j = k +1, weshalb (II) gilt. Sei i 2. F<strong>ur</strong><br />

j = k folgt i =2 und daraus (I), und f<strong>ur</strong> j>kfolgt direkt (II).<br />

Beweis von Satz 6.14. Der Unterschied z<strong>ur</strong> Rek<strong>ur</strong>sionsformel (6.4) aus Satz 6.7 besteht<br />

<strong>in</strong> dem zusatzlichen Parameter k, <strong>der</strong> Bed<strong>in</strong>gung j k und, statt i 2j, j , i = k , 2<br />

f<strong>ur</strong> e<strong>in</strong> 2f0;:::;kg.<br />

Die Wahl des jeweils dritten Parameters bei den drei z<strong>ur</strong> M<strong>in</strong>imierung betrachteten<br />

Transformationsabstanden geht aus <strong>der</strong> Betrachtung <strong>der</strong> zugehorigen optimalen Transformationen<br />

hervor: Der Beweis geht wie im Beweis von Satz 6.7 auf die Betrachtung e<strong>in</strong>er<br />

optimalen Transformation z<strong>ur</strong>uck. Im ersten Fall ist die letzte Elementaroperation e<strong>in</strong>e<br />

Zusammenfassung, so da die restliche Transformation genau k , 1 Editieroperationen<br />

enthalten mu , um mit <strong>der</strong> letzten Zusammenfassung <strong>in</strong>sgesamt auf k Editieroperationen<br />

zu kommen. Im zweiten Fall ist die letzte Elementaroperation e<strong>in</strong>e Identitatsoperation, so<br />

da die k Editieroperationen <strong>in</strong> <strong>der</strong> restlichen Transformation enthalten se<strong>in</strong> mussen. Im<br />

dritten Fall handelt es sich bei <strong>der</strong> letzten Elementaroperation um e<strong>in</strong>e E<strong>in</strong>fugung, so da<br />

<strong>in</strong> <strong>der</strong> Rek<strong>ur</strong>sion k , 1 als dritter Parameter e<strong>in</strong>geht.<br />

Nach Lemma 6.15 existiert m<strong>in</strong>destens e<strong>in</strong>er <strong>der</strong> drei z<strong>ur</strong> M<strong>in</strong>imierung betrachteten<br />

Werte. Aus Satz 6.12 folgt, da D(i; j; k) genau f<strong>ur</strong> i, j, k mit den Bed<strong>in</strong>gungen aus dem<br />

Satz existiert.<br />

56


6.3.3 Berechnung des Abstandes mit Hilfe <strong>der</strong> dynamischen Programmierung<br />

6.3.3.1 Berechnungsqua<strong>der</strong><br />

Die Berechnung des -Abstandes zweier Folgen x[0::N , 1] und y[0::M , 1] kann anhand<br />

<strong>der</strong> Rek<strong>ur</strong>sionsformel (6.7) mit Hilfe <strong>der</strong> dynamischen Programmierung <strong>in</strong> Teilen e<strong>in</strong>es<br />

(N +1) (M +1) ( +1)-Qua<strong>der</strong>s d<strong>ur</strong>chgefuhrt werden. E<strong>in</strong>e Zelle (i; j; k) des Qua<strong>der</strong>s,<br />

wobei 0 i N, 0 j Mund 0 k s<strong>in</strong>d, enthalt dabei den Wert D(i; j; k). F<strong>ur</strong><br />

die Berechnung e<strong>in</strong>er Zelle (i; j; k), die sich <strong>in</strong> <strong>der</strong> k-ten Ebene des Qua<strong>der</strong>s be ndet, wird<br />

auf die Zelle (i , 1;j,1;k) <strong>in</strong> <strong>der</strong>selben Ebene sowie auf die Zellen (i , 2;j,1;k,1) und<br />

(i; j , 1;k ,1) <strong>in</strong> <strong>der</strong> (k , 1)-ten Ebene z<strong>ur</strong>uckgegri en. Abbildung 6.6 veranschaulicht<br />

dies anhand <strong>der</strong> entsprechenden Kanten im Berechnungsgraphen.<br />

Ebene k<br />

Ebene k-1<br />

i<br />

i-1<br />

i-2<br />

j-2 j-1<br />

j-2 j-1<br />

Abbildung 6.6: Mogliche von (i; j; k) ausgehende Kanten im Berechnungsgraphen. F<strong>ur</strong> die Berechnung<br />

von D(i; j; k) wird auf zwei Zellen <strong>der</strong> (k , 1)-ten und auf e<strong>in</strong>e Zelle <strong>der</strong> k-ten Ebene des<br />

Berechnungsqua<strong>der</strong>s z<strong>ur</strong>uckgegri en.<br />

Die Zellen (i; j; k) des Qua<strong>der</strong>s, f<strong>ur</strong> die die entsprechenden Abstande D(i; j; k)<br />

uberhaupt de niert s<strong>in</strong>d, mussen nach Satz 6.12 den Bed<strong>in</strong>gungen j k und j ,i = k,2<br />

f<strong>ur</strong> e<strong>in</strong> 2f0:::kg genugen.<br />

In Abbildung 6.7 ist e<strong>in</strong> Berechnungsqua<strong>der</strong> f<strong>ur</strong> N =4,M= 7 und = 3 abgebildet,<br />

<strong>in</strong> dem die Zellen mit de nierten Abstanden grau e<strong>in</strong>gezeichnet s<strong>in</strong>d. D<strong>ur</strong>ch die Bed<strong>in</strong>gung<br />

j , i = k , 2 f<strong>ur</strong> e<strong>in</strong> 2f0;:::;kg s<strong>in</strong>d n<strong>ur</strong> die e<strong>in</strong>gezeichneten Diagonalen j , i belegt.<br />

Wegen j k werden n<strong>ur</strong> Kastchen ab <strong>der</strong> j-ten Spalte verwendet.<br />

Satz 6.16 Es seien k 0 und e<strong>in</strong>e Diagonale d = k , 2 f<strong>ur</strong> e<strong>in</strong> 2f0;:::;kg vorgegeben.<br />

F<strong>ur</strong> alle D(i; j; k) mit j , i = d ist die Anzahl <strong>der</strong> Zusammenfassungen z und <strong>der</strong><br />

E<strong>in</strong>fugungen e <strong>der</strong> betrachteten Transformationen gleich und la t sich d<strong>ur</strong>ch<br />

berechnen.<br />

j<br />

i<br />

j<br />

i-1<br />

i-2<br />

z = (6.8)<br />

und e = k , (6.9)<br />

57


0<br />

1<br />

2<br />

3<br />

4<br />

i<br />

0<br />

1<br />

2<br />

3<br />

4<br />

i<br />

Ebene k=0 Ebene k=1<br />

0 1 2 3 4 5 6 7 j<br />

0 1 2 3 4 5 6 7 j<br />

0 1 2 3 4 η 0 1 2 3 4 η<br />

0<br />

1<br />

2<br />

3<br />

4<br />

Ebene k=2<br />

0<br />

0 Z<br />

0 E<br />

0 1 2 3 4 5 6<br />

-2<br />

i<br />

3<br />

2<br />

1<br />

7<br />

0<br />

k<br />

0 2<br />

j-i<br />

0 ν<br />

0<br />

1<br />

2<br />

3<br />

4<br />

0 1 2 3 4 η<br />

j<br />

j-i<br />

2 1 0 ν<br />

2 Z 1 Z 0 Z<br />

0 E 1 E 2 E<br />

0 1 2 3 4 5 6 7 j<br />

i<br />

0<br />

1<br />

2<br />

3<br />

4<br />

i<br />

Ebene k=3<br />

-1<br />

1 Z<br />

0 E<br />

0 1 2 3 4 5 6<br />

-1<br />

2 Z<br />

1 E<br />

1<br />

0 Z<br />

1 E<br />

7<br />

1 Z<br />

2 E<br />

j-i<br />

1 0 ν<br />

0 1 2 3 4 η<br />

1 3<br />

j<br />

0 Z<br />

3 E<br />

j-i<br />

2 1 0 ν<br />

Abbildung 6.7: Berechnungsqua<strong>der</strong> f<strong>ur</strong> die Berechnung des 3-Transformationsabstandes f<strong>ur</strong> zwei<br />

Folgen x <strong>der</strong> Lange 4 und y <strong>der</strong> Lange 7. Alle de nierten Speicherzellen s<strong>in</strong>d grau e<strong>in</strong>gezeichnet.<br />

Die den Diagonalen entsprechenden Anzahlen <strong>der</strong> Zusammenfassungen (Z) und E<strong>in</strong>fugungen (E)<br />

s<strong>in</strong>d f<strong>ur</strong> jede Diagonale angegeben.<br />

58


Beweis. Aus dem Beweis f<strong>ur</strong> Satz 6.12 geht hervor, da f<strong>ur</strong> e<strong>in</strong>e Transformation , die f<strong>ur</strong><br />

die Berechnung e<strong>in</strong>es Kastchens (i; j) <strong>in</strong> <strong>der</strong> k-ten Ebene betrachtet wird, j , i = k , 2z<br />

gilt. F<strong>ur</strong> jedes Kastchen la t sich deshalb aus j , i und k die Anzahl <strong>der</strong> Zusammenfassungen<br />

z und E<strong>in</strong>fugungen e <strong>der</strong> f<strong>ur</strong> D(i; j; k) betrachteten Transformationen d<strong>ur</strong>ch<br />

z = k,(j,i)<br />

und e = k , z berechnen. F<strong>ur</strong> die Kastchen auf <strong>der</strong> Diagonalen d s<strong>in</strong>d alle<br />

2<br />

j , i = d gleich, so da sich z und e d<strong>ur</strong>ch die behaupteten Formeln berechnen lassen.<br />

Die Ebene sowie die Diagonale, auf <strong>der</strong> e<strong>in</strong> Kastchen liegt, bestimmen also die Anzahl<br />

<strong>der</strong> vorhandenen E<strong>in</strong>fugungs- und Zusammenfassungsoperationen <strong>in</strong> den f<strong>ur</strong> dieses<br />

Kastchen betrachteten Transformationen. In dem Beispiel <strong>in</strong> Abbildung 6.7 s<strong>in</strong>d die Anzahlen<br />

<strong>der</strong> E<strong>in</strong>fugungs- und Zusammenfassungsoperationen f<strong>ur</strong> jede Diagonale angegeben.<br />

E<strong>in</strong>e Berechnung des Abstandes D(N; M; ) kann nun d<strong>ur</strong>ch systematisches Fullen<br />

des Berechnungsqua<strong>der</strong>s, also f<strong>ur</strong> aufsteigende i, j und k, d<strong>ur</strong>chgefuhrt werden. In Unterabschnitt<br />

6.3.3.2 wird e<strong>in</strong>e an<strong>der</strong>e Indizierung des Berechnungsqua<strong>der</strong>s vorgestellt, die es<br />

erlaubt, n<strong>ur</strong> die de nierten Kastchen des Qua<strong>der</strong>s abzuspeichern.<br />

6.3.3.2 Indizierung des Berechnungsqua<strong>der</strong>s mit (k; ; )<br />

Um beim Fullen des Berechnungsqua<strong>der</strong>s n<strong>ur</strong> die Kastchen abzuspeichern, f<strong>ur</strong> die die<br />

entsprechenden Abstande uberhaupt de niert s<strong>in</strong>d, ist e<strong>in</strong>e Indizierung <strong>der</strong> Kastchen statt<br />

mit (i; j; k) mit (k; ; ) s<strong>in</strong>nvoll, wobei k wie vorher die Ebene, die d<strong>ur</strong>ch<br />

festgelegte Diagonale und<br />

j , i = k , 2 mit 0 k (6.10)<br />

:= i , 2 (6.11)<br />

die Position <strong>in</strong> <strong>der</strong> Diagonalen bezeichnen. Das folgende Lemma und die zwei folgenden<br />

Satze stellen Beziehungen zwischen diesen beiden Darstellungen her.<br />

Lemma 6.17 F<strong>ur</strong> (i; j; k) und (k; ; ) gelten folgende Beziehungen:<br />

1. i =2 +<br />

2. j = k +<br />

und<br />

3. = i,j+k<br />

2<br />

4. = j , k<br />

Beweis. Alle Gleichungen folgen direkt aus den De nitionen := i,2 und j,i = k,2 .<br />

59


Satz 6.18 Die folgenden Bed<strong>in</strong>gungen charakterisieren genau alle de nierten Zellen <strong>in</strong><br />

e<strong>in</strong>em Berechnungsqua<strong>der</strong> <strong>der</strong> Gro e (N +1) (M +1) ( +1):<br />

1. 0 k<br />

2. 0 m<strong>in</strong>(k; b N<br />

2 c)=:maxNu(k)<br />

3. 0 m<strong>in</strong>(N , 2 ; M , k) =:maxEta(k; )<br />

Beweis. D<strong>ur</strong>ch e<strong>in</strong> E<strong>in</strong>setzen <strong>der</strong> De nitionen f<strong>ur</strong> und wird deutlich, da 0 zu<br />

j k, M , k zu j M, N , 2 zu i N und 0 zu i 0 aquivalent s<strong>in</strong>d.<br />

N<br />

2<br />

folgt aus 0 i N und k j M.<br />

Der folgende Satz gibt Aufschlu daruber, wie die Rek<strong>ur</strong>sionsgleichung f<strong>ur</strong> die Berechnung<br />

des Transformationsabstandes bei e<strong>in</strong>er Indizierung des Berechnungsqua<strong>der</strong>s mit<br />

(k; ; )verwendet wird. Als Vergleich zu Abbildung 6.6 s<strong>in</strong>d <strong>in</strong> Abbildung 6.8 die f<strong>ur</strong> die<br />

Berechnung e<strong>in</strong>er Zelle (k; ; )benotigten Zellen <strong>in</strong> (k; ; )-Indizierung angegeben.<br />

Ebene k<br />

Ebene k-1<br />

ν+1 ν<br />

ν−1<br />

η−2 η−1<br />

η−1 η η+1<br />

η<br />

ν ν−1<br />

Abbildung 6.8: Mogliche von e<strong>in</strong>er Zelle (k; ; ) ausgehende Kanten im Berechnungsgraphen.<br />

Satz 6.19 F<strong>ur</strong> die zwei Darstellungen (i; j; k) und (k; ; ) gelten folgende Entsprechungen:<br />

(i , 2;j ,1;k,1) ! (k , 1; ,1; )<br />

(i,1;j ,1;k) ! (k; ; , 1)<br />

(i; j , 1;k,1) ! (k , 1; ; )<br />

Beweis. Um e<strong>in</strong>e Entsprechung (i; j;k) ! (k; ; ) zu zeigen, wird zweimal <strong>das</strong> Lemma<br />

6.17 verwendet. Das erste Mal werden die Gleichungen 1) und 2) auf i; j; k; ; und <strong>das</strong><br />

zweite Mal die Gleichungen 3) und 4) auf i; j;k ; angewendet.<br />

60


Sei (i = i,2; j = j ,1; k = k,1). Nach dem Lemma gelten i =2 + ,2, j = k+ ,1<br />

und k = k , 1. E<strong>in</strong>e weitere Verwendung des Lemmas liefert = , 1 und = , also<br />

<strong>in</strong>sgesamt (k=k,1; = ,1; = ).<br />

Sei nun (i = i , 1; j = j , 1; k = k). Die erste Anwendung des Lemmas liefert<br />

i = 2 + , 1, j = k + , 1 und k = k. Die zweite Anwendung fuhrt zu = und<br />

= , 1, also <strong>in</strong>sgesamt zu(k=k; = ; = , 1).<br />

Sei nunmehr (i = i; j = j , 1; k = k , 1). Das Lemma liefert i =2 + ,j=k+ ,1<br />

und k = k , 1. Die zweite Anwendung liefert = und = , und <strong>in</strong>sgesamt (k =<br />

k , 1; = ; = ).<br />

Um den Berechnungsqua<strong>der</strong> e zient zu fullen, kann also statt <strong>der</strong> Indizierung mit<br />

(i; j; k) ebenso die Indizierung (k; ; ) verwendet werden. Sofern ke<strong>in</strong>e Verwechslungsmoglichkeit<br />

besteht werden sowohl die Bezeichnung D(i; j; k) als auch D(k; ; )verwendet,<br />

<strong>der</strong>en Unterschied aus <strong>der</strong> Benennung <strong>der</strong> Parameter hervorgeht.<br />

6.3.3.3 Algorithmus zum Fullen des Berechnungsqua<strong>der</strong>s<br />

Der Algorithmus zum Fullen des Berechnungsqua<strong>der</strong>s f<strong>ur</strong> zwei Folgen x = x0;:::;xN,1<br />

und y = y0;:::;yM,1 und vorgegebenes 0 ist <strong>in</strong> Abbildung 6.9 angegeben. D<strong>ur</strong>ch die<br />

Indizierung mit (k; ; ) wird n<strong>ur</strong> f<strong>ur</strong> die wirklich de nierten Speicherzellen Platz reserviert.<br />

Die Wertebereiche f<strong>ur</strong> k, und aus Satz 6.18 spiegeln sich <strong>in</strong>denfor-Schleifen wie<strong>der</strong>.<br />

Nach Satz 6.19 mussen f<strong>ur</strong> die Berechnung von D(k; ; ) anhand <strong>der</strong> Rek<strong>ur</strong>sionsformel<br />

(6.7) die Werte D(k; ; ) mit<br />

1. k = k , 1, = , 1, = (Zusammenfassung),<br />

2. k = k, = , = , 1 (Identitat) und<br />

3. k = k , 1, = , = (E<strong>in</strong>fugung)<br />

betrachtet werden. Diese s<strong>in</strong>d n<strong>ur</strong> de niert, falls k, und <strong>in</strong>nerhalb <strong>der</strong> d<strong>ur</strong>ch k, und<br />

de nierten Wertebereiche liegen. Vor e<strong>in</strong>em Zugri auf D(k; ; ) wird deshalb gepruft,<br />

ob die Indizes k, , <strong>in</strong>nerhalb <strong>der</strong> Grenzen liegen. Die Anzahl <strong>der</strong> Kastchen ist genau die<br />

Anzahl <strong>der</strong> Schleifend<strong>ur</strong>chlaufe, also<br />

X<br />

k=0<br />

X<br />

m<strong>in</strong>(k;b N<br />

2 c)<br />

=0<br />

(m<strong>in</strong>(N , 2 ; M , k)+1)<br />

Da nach De nition immer k und m<strong>in</strong>(N , 2 ; M , k) m<strong>in</strong>(N; M) gelten, la t sich<br />

61


Berechnungsqua<strong>der</strong>(x[0::N , 1], y[0::M , 1], ):<br />

//Speicherplatzreservierung<br />

cell ***D=new **cell[ +1];<br />

for (k =0;k ;k++)f<br />

D[k]=new *cell[maxNu(k) +1];<br />

for ( =0; maxNu(k); ++)f<br />

D[k; ]=new cell[maxEta(k; )];<br />

g<br />

g<br />

// Initialisierung<br />

D[0; 0; 0] = 0;<br />

// Fullen des Berechnungsqua<strong>der</strong>s<br />

for (k =0;k ;k++)f<br />

for ( =0; maxNu(k)); ++)f<br />

for ( =0; maxEta(k; ); ++)f<br />

if(k >0)f<br />

if (( >0)&&( , 1 maxNu(k , 1))&&( maxEta(k , 1; ,1))) f<br />

doubl = D(k , 1; ,1; )+d(x[i( ; ) , 1] + x[i( ; )];y[j(k; )]);<br />

g<br />

if (( maxNu(k , 1))&& ( maxEta(k , 1; ))) f<br />

miss = D(k , 1; ; )+d( (i( ; ));y[j(k; )]);<br />

g<br />

g<br />

if ( >0)f<br />

match = D(k; ; , 1) + d(x[i( ; )];y[j(k; )]);<br />

g<br />

D[k; ; ] = m<strong>in</strong> ? (doubl,miss,match);<br />

g<br />

g<br />

g<br />

ret<strong>ur</strong>n D;<br />

Abbildung 6.9: DP-Algorithmus zum Fullen des Berechnungsqua<strong>der</strong>s. Die Bereiche <strong>der</strong> Indizes k,<br />

und , speziell die Funktionen maxEta und maxNu, beziehen sich auf Satz 6.18. Die Funktionen<br />

i( ; ) und j(k; ) seien d<strong>ur</strong>ch die Beziehungen aus Lemma 6.17 de niert.<br />

62


die Anzahl <strong>der</strong> Kastchen nach oben abschatzen d<strong>ur</strong>ch<br />

X<br />

k=0<br />

kX<br />

=0<br />

(m<strong>in</strong>(N; M) + 1) = (m<strong>in</strong>(N; M) + 1)(<br />

2<br />

2<br />

+ 3<br />

2 +1)=O( 2 m<strong>in</strong>(N; M)):<br />

Da die Laufzeit des Algorithmus proportional z<strong>ur</strong> Anzahl <strong>der</strong> Kastchen ist, s<strong>in</strong>d sowohl<br />

die Platz- als auch die Zeitkomplexitat O( 2 m<strong>in</strong>(N; M)).<br />

Anhand des ausgefullten Berechnungsqua<strong>der</strong>s konnen nun f<strong>ur</strong> jeden <strong>in</strong>teressierenden<br />

Abstand e<strong>in</strong>e o<strong>der</strong> auch alle optimalen Transformationen z<strong>ur</strong>uckverfolgt und ausgegeben<br />

werden. E<strong>in</strong>e Z<strong>ur</strong>uckverfolgung e<strong>in</strong>er optimalen Transformation benotigt e<strong>in</strong>e Laufzeit<br />

proportional z<strong>ur</strong> Lange <strong>der</strong> Transformation, also zu dem jeweiligen j = k + .<br />

6.3.3.4 Speicherung von " Abk<strong>ur</strong>zungen\ im Berechungsqua<strong>der</strong><br />

F<strong>ur</strong> e<strong>in</strong>e optimale Transformation genugt es, f<strong>ur</strong> jede <strong>in</strong> ihr enthaltene Editieroperation den<br />

Typ (Zusammenfassung o<strong>der</strong> E<strong>in</strong>fugung) sowie die Position <strong>in</strong> <strong>der</strong> Musterfolge anzugeben.<br />

Auf e<strong>in</strong>em optimalen Pfad mussen daf<strong>ur</strong> n<strong>ur</strong> die Zellen des Qua<strong>der</strong>s betrachtet werden,<br />

<strong>in</strong> denen e<strong>in</strong> Ebenenwechsel statt ndet, da die Ebene die Anzahl <strong>der</strong> Editieroperationen<br />

angibt. F<strong>ur</strong> e<strong>in</strong>e Zelle (k; ; ), die im Berechnungsgraph e<strong>in</strong>e ausgehende Kante zu e<strong>in</strong>er<br />

Zelle <strong>der</strong> Ebene k , 1 besitzt, gibt <strong>das</strong> aktuelle i =2 + die Position <strong>in</strong> <strong>der</strong> Musterfolge<br />

an. Handelt es sich um e<strong>in</strong>e E<strong>in</strong>fugung, wird nach dem i-ten Folgenglied e<strong>in</strong> Element<br />

e<strong>in</strong>gefugt, handelt es sich ume<strong>in</strong>e Zusammenfassung, werden <strong>das</strong> (i , 1)-te und <strong>das</strong> i-te<br />

Folgenglied zusammengefa t.<br />

Sofern es genugt, f<strong>ur</strong> jeden Abstand n<strong>ur</strong> e<strong>in</strong>e optimale Transformation zu berechnen,<br />

kann die Laufzeit f<strong>ur</strong> die Berechnung e<strong>in</strong>er optimalen Transformation verk<strong>ur</strong>zt werden,<br />

<strong>in</strong>dem <strong>in</strong> je<strong>der</strong> Zelle <strong>der</strong> Matrix e<strong>in</strong> Verweis auf die nachste Zelle auf dem optimalen Pfad,<br />

bei <strong>der</strong> e<strong>in</strong> Ebenenwechsel statt ndet, abgespeichert wird. Bei e<strong>in</strong>er Z<strong>ur</strong>uckverfolgung<br />

des Berechnungsweges konnen dann diese Verweise als Abk<strong>ur</strong>zungen im optimalen Pfad<br />

benutzt werden. Die Berechnung e<strong>in</strong>er optimalen Transformation f<strong>ur</strong> e<strong>in</strong>e Zelle <strong>in</strong> <strong>der</strong><br />

Ebene k benotigt dann e<strong>in</strong>e Laufzeit von (k).<br />

E<strong>in</strong> solcher Verweis kann wahrend des Fullens des Berechnungsqua<strong>der</strong>s leicht mitberechnet<br />

werden: Als Verweis auf e<strong>in</strong>e an<strong>der</strong>e Zelle genugt es, den Parameter dieser Zelle<br />

sowie den Typ <strong>der</strong> Editieroperation zu speichern. Die Parameter und k gehen daraus<br />

hervor, da aufe<strong>in</strong>an<strong>der</strong>folgende Identitatsoperationen immer <strong>in</strong> <strong>der</strong>selben Diagonale <strong>in</strong><br />

<strong>der</strong>selben Ebene stehen, und e<strong>in</strong>e Editieroperation immer e<strong>in</strong>en Ebenenwechsel bedeutet,<br />

wobei sich bei e<strong>in</strong>er E<strong>in</strong>fugeoperation <strong>das</strong> nicht veran<strong>der</strong>t, wahrend es sich bei e<strong>in</strong>er Zusammenfassung<br />

um e<strong>in</strong>s verr<strong>in</strong>gert. Der <strong>in</strong> Abbildung 6.10 angegebene Pseudocode ist im<br />

Berechnungsqua<strong>der</strong>-Algorithmus aus Abbildung 6.9 am Ende des <strong>in</strong>nersten Schleifenrumpfes,<br />

also direkt nach <strong>der</strong> Zuweisung des M<strong>in</strong>imums an die Zelle, e<strong>in</strong>zufugen und beschreibt<br />

die Speicherung e<strong>in</strong>es Verweises.<br />

63


if(D[k; ; ]==match)f<br />

D[k][ ][ ]:type='I';<br />

D[k][ ][ ]: =D[k][nu][ , 1]: ;<br />

g else if(D[k; ; ]==doubl)f<br />

D[k][ ][ ]:type='Z';<br />

D[k][ ][ ]: = ;<br />

g else if(D[k; ; ]==miss)f<br />

D[k][ ][ ]:type='M';<br />

D[k][ ][ ]: = ;<br />

g<br />

Abbildung 6.10: Speicherung e<strong>in</strong>es Verweises auf die nachste Zelle auf dem optimalen Pfad.<br />

D<strong>ur</strong>ch die e<strong>in</strong>an<strong>der</strong> ausschlie ende (if - else if)-Konstruktion wird, falls es von e<strong>in</strong>er<br />

Zelle mehrere ausgehende Kanten gibt, e<strong>in</strong>e Identitatsoperation ('I') gegenuber e<strong>in</strong>er Zusammenfassung<br />

('Z'), und e<strong>in</strong>e Zusammenfassung gegenuber e<strong>in</strong>er E<strong>in</strong>fugung ('E') vorgezogen.<br />

Diese Reihenfolge ist willk<strong>ur</strong>lich; e<strong>in</strong>e an<strong>der</strong>e Reihenfolge o<strong>der</strong> aber e<strong>in</strong>e zufallige<br />

Auswahl s<strong>in</strong>d ebenso moglich. Auf diese Art wird, falls es f<strong>ur</strong> e<strong>in</strong>en Abstand mehrere optimale<br />

Transformationen gibt, genau e<strong>in</strong>e ausgewahlt. In <strong>der</strong> Regel wird es relativ selten<br />

vorkommen, da zwei verschiedene Elementaroperationen bei e<strong>in</strong>er Zelle genau denselben<br />

Abstand liefern.<br />

Die Z<strong>ur</strong>uckverfolgung e<strong>in</strong>er Transformation anhand solcher Abk<strong>ur</strong>zungen ist <strong>in</strong> Abbildung<br />

6.11 angegeben. Der Algorithmus speichert f<strong>ur</strong> jede Editieroperation die Position i<br />

und den Typ <strong>in</strong> dem Feld edits, was er am Ende z<strong>ur</strong>uckliefert. Falls es m<strong>in</strong>destens e<strong>in</strong>e<br />

Editieroperation f<strong>ur</strong> die Ausgangszelle gibt, d.h., wenn k>0 ist, wird die Transformation<br />

z<strong>ur</strong>uckverfolgt. Dazu werden die drei Laufvariablen k2, 2 und 2 benotigt. Am Anfang<br />

wird, je nachdem, ob die Ausgangszelle schon e<strong>in</strong>e Editieroperation enthalt o<strong>der</strong> nicht,<br />

2 <strong>in</strong>itialisiert. 2 und k2 werden mit bzw. k <strong>in</strong>itialisiert, da sich bei <strong>der</strong> ersten Editieroperation<br />

die Diagonale und die Ebene nicht an<strong>der</strong>n. In <strong>der</strong> for-Schleife d<strong>ur</strong>chlaufen<br />

(k2; 2; 2) die Editieroperationszellen <strong>der</strong> optimalen Transformation. Dabei werden k2 <strong>in</strong><br />

jedem Schritt und 2n<strong>ur</strong> bei e<strong>in</strong>er Zusammenfassung um e<strong>in</strong>s verr<strong>in</strong>gert (vgl. Satz 6.19).<br />

6.3.3.5 E<strong>in</strong>schrankungen des Berechnungsqua<strong>der</strong>s<br />

E<strong>in</strong> vollstandig ausgefullter (N +1) (M+1) ( + 1)-Berechnungsqua<strong>der</strong> be<strong>in</strong>haltet<br />

meistens mehr Informationen, als wirklich benotigt werden: So enthalt er beispielsweise <strong>in</strong><br />

den jeweils letzten Zeilen und Spalten alle de nierten k-Abstande f<strong>ur</strong> 0 k zwischen<br />

allen Pra xen <strong>der</strong> ersten Folge und <strong>der</strong> gesamten zweiten Folge und zwischen <strong>der</strong> gesamten<br />

ersten Folge und allen Pra xen <strong>der</strong> zweiten Folge. Ist <strong>das</strong> Ziel jedoch n<strong>ur</strong> die Berechnung<br />

e<strong>in</strong>es guten Abstandsbegri s zwischen zwei Folgen, wird man <strong>in</strong> <strong>der</strong> Regel n<strong>ur</strong> an allen<br />

k-Abstanden <strong>der</strong> gesamten Folgen, also an allen D(N; M; k) f<strong>ur</strong> 0 k <strong>in</strong>teressiert<br />

64


TransformationMitAbk<strong>ur</strong>zungen(D; k; ; ):<br />

if(k >0)f<br />

//Initialisierung <strong>der</strong> Laufvariablen<br />

if(D[k][ ][ ]:arrow =='I')f<br />

2=D[k][ ][ ]: ;<br />

g elsef<br />

2= ;<br />

g<br />

2= ;<br />

k2=k;<br />

while(k2 > 0)f<br />

edits[k2 , 1]=(i( 2; 2);D[k2][ 2][ 2]:arrow);<br />

if(D[k2][ 2][ 2]:arrow =='Z')f<br />

2 ,,;<br />

g<br />

k2,,;<br />

2=D[k2][ 2][ 2]: ;<br />

g<br />

ret<strong>ur</strong>n edits;<br />

g<br />

ret<strong>ur</strong>n null;<br />

Abbildung 6.11: Algorithmus z<strong>ur</strong> Z<strong>ur</strong>uckverfolgung e<strong>in</strong>er optimalen Transformation f<strong>ur</strong> die Zelle<br />

(k; ; ) anhand des mit Abk<strong>ur</strong>zungen versehenen Berechnungsqua<strong>der</strong>s D. Der Algorithmus liefert<br />

e<strong>in</strong> Feld <strong>der</strong> Lange k von Editieroperationen, bzw. null bei k = 0 z<strong>ur</strong>uck.<br />

65


se<strong>in</strong>.<br />

Je nach Anwendung kann man daher den Berechnungsqua<strong>der</strong> e<strong>in</strong>schranken, so da<br />

ke<strong>in</strong>e unnotigen Zellen berechnet werden. F<strong>ur</strong> die alle<strong>in</strong>ige Berechnung des Abstandes<br />

D(N; M; ) zum Beispiel werden n<strong>ur</strong> solche (i; j; k) benotigt, f<strong>ur</strong> die e<strong>in</strong>e optimale Transformation<br />

1 2Ti;j;k e<strong>in</strong> Pra x e<strong>in</strong>er optimalen Transformation 2TN;M; se<strong>in</strong> kann. Der<br />

entsprechende Su x 2 2TN,i;M,j; ,k mu dann ebenfalls e<strong>in</strong>e Transformation se<strong>in</strong>, was<br />

nach Satz 6.12 genau dann <strong>der</strong> Fall ist, wenn<br />

1. M , j , N + i = , k , 2 f<strong>ur</strong> e<strong>in</strong> 2f0;:::; ,kg<br />

2. und M , j , k<br />

gelten. Umgeformt <strong>in</strong>(k; ; )-Schreibweise ergibt dies die Bed<strong>in</strong>gungen<br />

1.<br />

M,N, +2k<br />

2<br />

2. M , .<br />

Sollen alle D(N; M;<br />

+N,M<br />

2<br />

und<br />

0 ) f<strong>ur</strong> 0 0 berechnet werden, mussen diese Bed<strong>in</strong>gungen f<strong>ur</strong><br />

m<strong>in</strong>destens e<strong>in</strong> 0 erfullt se<strong>in</strong>, was <strong>in</strong>sgesamt die Bed<strong>in</strong>gungen<br />

1.<br />

M,N, +2k<br />

2<br />

2. M<br />

ergibt.<br />

+N,M<br />

2<br />

und<br />

Solche zusatzlichen Bed<strong>in</strong>gungen schranken die Wertebereiche <strong>der</strong> Variablen k, o<strong>der</strong><br />

e<strong>in</strong>. Diese E<strong>in</strong>schrankungen konnen sich jedoch n<strong>ur</strong> auf den jeweils m<strong>in</strong>imalen und<br />

maximalen Wert <strong>der</strong> Variable beziehen, da ansonsten e<strong>in</strong>e Berechnung anhand <strong>der</strong> Rek<strong>ur</strong>sionsgleichung<br />

nicht mehr moglich ware. Deshalb konnen beim Fullen des Berechnungsqua<strong>der</strong>s<br />

problemlos moglicherweise kle<strong>in</strong>ere Wertebereiche f<strong>ur</strong> die Variablen sowohl bei<br />

<strong>der</strong> Speicherplatzreservierung als auch bei dem D<strong>ur</strong>chgehen <strong>der</strong> for-Schleifen, verwendet<br />

werden. Die Laufzeit und <strong>der</strong> verwendete Speicherplatz verr<strong>in</strong>gern sich dann nat<strong>ur</strong>lich<br />

entsprechend <strong>der</strong> kle<strong>in</strong>eren Wertebereiche.<br />

66


Kapitel 7<br />

E<strong>in</strong> <strong>Crossdat<strong>in</strong>g</strong>algorithmus<br />

basierend auf k-Abstanden<br />

In diesem Kapitel wird e<strong>in</strong> neuer <strong>Crossdat<strong>in</strong>g</strong>algorithmus vorgestellt, <strong>der</strong> e<strong>in</strong>e Musterjahrr<strong>in</strong>gfolge,<br />

die fehlende und doppelte R<strong>in</strong>ge enthalten kann, <strong>in</strong> e<strong>in</strong>er von Irregularitaten<br />

freien Referenzfolge lokalisiert. Der Algorithmus verwendet den k-Transformationsabstand<br />

aus Kapitel 6.<br />

7.1 Grundlegende Idee<br />

Seien a = a0;:::;am,1 die Referenzjahrr<strong>in</strong>gfolge, b = b0;:::;bn,1 die <strong>in</strong> a zu lokalisierende<br />

Musterjahrr<strong>in</strong>gfolge, m<strong>in</strong>Ovl die m<strong>in</strong>imale Uberlappungslange und e<strong>in</strong>e obere Schranke<br />

f<strong>ur</strong> die Anzahl zugelassener Editieroperationen.<br />

Der k-Transformationsabstand kann als Abstandsbegri f<strong>ur</strong> <strong>das</strong> <strong>Crossdat<strong>in</strong>g</strong> herangezogen<br />

werden, <strong>in</strong>dem an allen Uberlappungspositionen von b <strong>in</strong> a alle moglichen k-<br />

Transformationsabstande zwischen b und zusammenhangenden Teilfolgen <strong>in</strong> a mit bis zu<br />

Editieroperationen berechnet werden. Um die Abstande s<strong>in</strong>nvoll untere<strong>in</strong>an<strong>der</strong> vergleichen<br />

zu konnen, mu danach je<strong>der</strong> Abstand d<strong>ur</strong>ch die Lange j = k + <strong>der</strong> entsprechend<br />

optimal transformierten Musterfolge geteilt werden (Langennormierung).<br />

Anhand <strong>der</strong> Abstande alle<strong>in</strong> kann jedoch nochke<strong>in</strong>e Datierungsentscheidung getro en<br />

werden. Zwar geht aus <strong>der</strong> Position des Abstandes <strong>in</strong> e<strong>in</strong>em Berechnungsqua<strong>der</strong> die Anzahl<br />

<strong>der</strong> E<strong>in</strong>fugungen und Zusammenfassungen <strong>in</strong> je<strong>der</strong> optimalen Transformation hervor (vgl.<br />

Satz 6.16), jedoch kommt es oft vor, da z<strong>ur</strong> objektiven M<strong>in</strong>imierung des Abstandes<br />

subjektiv gesehen unnotige Editieroperationen notig s<strong>in</strong>d. Zum Beispiel folgt oft k<strong>ur</strong>z<br />

nach e<strong>in</strong>er E<strong>in</strong>fugung e<strong>in</strong>e Zusammenfassung, o<strong>der</strong> umgekehrt, o<strong>der</strong> e<strong>in</strong>e Editieroperation<br />

steht ganz am Anfang o<strong>der</strong> ganz am Ende <strong>der</strong> Folge. Z<strong>ur</strong> Bewertung <strong>der</strong> Abstande mussen<br />

67


also die optimalen Transformationen vorliegen, so da subjektiv uber die Notwendigkeit<br />

<strong>der</strong> Editieroperationen entschieden werden kann.<br />

Z<strong>ur</strong> besseren Auswertung sollten alle Abstande sortiert werden, so da sie dann aufsteigend<br />

zusammen mit den entsprechenden Datierungen und den Stellen <strong>der</strong> E<strong>in</strong>fugungen und<br />

Zusammenfassungen <strong>in</strong> den optimalen Transformationen f<strong>ur</strong> b ausgegeben werden konnen.<br />

7.2 Berechnung aller Folge-Pra x- und Pra x-Folge-<br />

Abstande <strong>in</strong> e<strong>in</strong>em Berechnungsqua<strong>der</strong><br />

Beidseitig unvollständige Überlappung:<br />

L<strong>in</strong>ke unvollständige Überlappung:<br />

Vollständige Überlappung:<br />

Rechte unvollständige Überlappung:<br />

b:<br />

b:<br />

Abbildung 7.1: Konstellationen, die beim Anlegen von b <strong>in</strong> a auftreten konnen. F<strong>ur</strong> die Berechnung<br />

aller Transformationsabstande, die b auf <strong>das</strong>selbe Anfangsjahr datieren, mussen n<strong>ur</strong> die grau<br />

e<strong>in</strong>gezeichneten Su xe betrachtet werden.<br />

F<strong>ur</strong> die Berechnung aller moglichen Transformationsabstande an allen<br />

Uberlappungspositionen von b <strong>in</strong> a konnen alle Abstande, die b auf <strong>das</strong>selbe Anfangsjahr<br />

datieren, zusammengefa t <strong>in</strong> e<strong>in</strong>em Berechnungsqua<strong>der</strong> berechnet werden.<br />

Daf<strong>ur</strong> wird anschaulich gesehen die Folge b an e<strong>in</strong>er Position <strong>in</strong> a, die <strong>das</strong> Anfangsjahr<br />

bestimmt, angelegt, und n<strong>ur</strong> die Su xe bei<strong>der</strong> Folgen ab <strong>der</strong> ersten geme<strong>in</strong>samen<br />

Uberlappungsposition betrachtet. Die vier Falle, die dabei auftreten konnen, zeigt<br />

Abbildung 7.1. Bei e<strong>in</strong>er l<strong>in</strong>ken sowie bei e<strong>in</strong>er beidseitig unvollstandigen Uberlappung<br />

von b <strong>in</strong> a mu n<strong>ur</strong> <strong>der</strong> Su x x von b betrachtet werden, <strong>der</strong> mit a uberlappt, und mit<br />

a =: y verglichen werden. Bei e<strong>in</strong>er vollstandigen sowie e<strong>in</strong>er rechten unvollstandigen<br />

Uberlappung von b <strong>in</strong> a mu die ganze Folge b =: x mit dem d<strong>ur</strong>ch <strong>das</strong> Anfangsjahr<br />

bestimmten Su x y von a verglichen werden.<br />

68<br />

a:<br />

a:<br />

a:<br />

a:<br />

b:<br />

b:


F<strong>ur</strong> die so de nierten Teilfolgen x = x0;:::;xN,1 von b und y = y0;:::;yM,1 von<br />

a, die <strong>in</strong> Abbildung 7.1 grau e<strong>in</strong>gezeichnet s<strong>in</strong>d, s<strong>in</strong>d die k-Abstande zwischen x und<br />

allen Pra xen von y (Folge-Pra x-Abstande) sowie zwischen allen Pra xen von x und <strong>der</strong><br />

gesamten Folge y (Pra x-Folge-Abstande), sofern sie existieren, von Interesse. Die Folge-<br />

Pra x-Abstande entsprechen allen de nierten D(N; j; k) f<strong>ur</strong> 0 j M und 0 k<br />

und die Pra x-Folge-Abstande allen de nierten D(i; M; k) f<strong>ur</strong> 0 i N und 0 k .<br />

Da e<strong>in</strong> k-Abstand mit 0 k n<strong>ur</strong> existieren kann, wenn die Langendi erenz <strong>der</strong><br />

zu vergleichenden Folgen nicht uberschreitet, seien im folgenden Ne und Me de niert<br />

d<strong>ur</strong>ch<br />

Ne = N und Me = N + , falls M >N+<br />

Ne=M+ und Me = M , falls M


Die zu berechnenden Zellen mussen also bei e<strong>in</strong>er (k; ; )-Indizierung folgenden Bed<strong>in</strong>gungen<br />

genugen:<br />

1. 0 k<br />

2. 0 m<strong>in</strong>(k; Ne<br />

2<br />

Ne,m<strong>in</strong>Ovl+k<br />

; ) =:maxNu(k)<br />

2<br />

3. 0 m<strong>in</strong>(Ne , 2 ; Me , k) =:maxEta(k; )<br />

E<strong>in</strong> solcher Berechnungsqua<strong>der</strong> kann nun mit dem Algorithmus aus Abschnitt 6.3.3.3,<br />

unter <strong>der</strong> Berucksichtigung <strong>der</strong> e<strong>in</strong>schranken<strong>der</strong>en Bed<strong>in</strong>gung f<strong>ur</strong> , gefullt werden, was<br />

Zeit- und Platz O( 2 m<strong>in</strong>(Me;Ne)) benotigt.<br />

7.3 Sukkzessive Berechnung aller Ergebnisabstande <strong>in</strong>klusive<br />

je e<strong>in</strong>er optimalen Transformation<br />

Die Berechnung aller moglichen Transformationsabstande an allen<br />

Uberlappungspositionen von b <strong>in</strong> a erfolgt sukkzessiv f<strong>ur</strong> alle moglichen Datierungen<br />

von b <strong>in</strong> a. Daf<strong>ur</strong> wird wie bei dem sukkzessiven Algorithmus aus Abschnitt 3.2<br />

die Folge b an allen Positionen <strong>in</strong> a angelegt und f<strong>ur</strong> jede Position <strong>der</strong> entsprechende<br />

Pra xqua<strong>der</strong> (vgl. Abschnitt 7.2) berechnet. Da <strong>der</strong> Benutzer zum<strong>in</strong>dest f<strong>ur</strong> die<br />

<strong>in</strong>sgesamt besten Abstande die optimalen Transformationen wissen mochte, konnten<br />

alle Pra xqua<strong>der</strong> abgespeichert werden, so da e<strong>in</strong>e Z<strong>ur</strong>uckverfolgung <strong>der</strong> Berechnung<br />

je<strong>der</strong>zeit f<strong>ur</strong> jeden Abstand moglich ware. E<strong>in</strong> solcher Algorithmus w<strong>ur</strong>de Zeit und Platz<br />

O(<br />

X,1<br />

l=m<strong>in</strong>Ovl,n<br />

m,m<strong>in</strong>Ovl X<br />

2<br />

m<strong>in</strong>(n + l; m)+<br />

l=0<br />

2 m<strong>in</strong>(n; m , l))<br />

benotigen. Die Summen ergeben ausgerechnet 2 (mn , m<strong>in</strong>Ovl 2 + m<strong>in</strong>Ovl), und damit<br />

e<strong>in</strong>e Laufzeit und e<strong>in</strong>en Platzverbrauch von O( 2 (mn,m<strong>in</strong>Ovl 2 +m<strong>in</strong>Ovl)) = O( 2 mn).<br />

Zum<strong>in</strong>dest <strong>der</strong> Platzverbrauch kann jedoch reduziert werden, <strong>in</strong>dem die Transformationen<br />

vorher berechnet und nicht je<strong>der</strong> Pra xqua<strong>der</strong> abgespeichert wird. Dazu wird<br />

direkt nach dem Fullen e<strong>in</strong>es Berechnungsqua<strong>der</strong>s f<strong>ur</strong> jeden Ergebnisabstand e<strong>in</strong>e optimale<br />

Transformation z<strong>ur</strong>uckverfolgt, <strong>der</strong>en Editieroperationen <strong>in</strong> e<strong>in</strong>em Feld <strong>der</strong> Lange k<br />

gespeichert werden, wobei k die Anzahl <strong>der</strong> Editieroperationen ist. Je<strong>der</strong> Abstand wird<br />

dann zusammen mit dem Feld <strong>der</strong> Editieroperationen <strong>der</strong> optimalen Transformation <strong>in</strong> e<strong>in</strong>em<br />

zusatzlichen Ergebnisfeld gespeichert. S<strong>in</strong>d f<strong>ur</strong> alle Abstande die Editieroperationen<br />

berechnet und gespeichert, wird <strong>der</strong> Pra xqua<strong>der</strong> geloscht.<br />

Die E<strong>in</strong>schrankung auf n<strong>ur</strong> e<strong>in</strong>e optimale Transformation pro Abstand mu nat<strong>ur</strong>lich<br />

nicht getro en werden. Es konnten auch alle optimalen Transformationen f<strong>ur</strong> e<strong>in</strong>en Abstand<br />

berechnet werden, so da statt e<strong>in</strong>em Feld <strong>der</strong> Lange k e<strong>in</strong>e Liste von Fel<strong>der</strong>n <strong>der</strong><br />

70


Ergebnisse(D, result, resultIndex,l):<br />

for(k =0;k


Lange k abgespeichert werden mu te. Da bei <strong>der</strong> Berechnung e<strong>in</strong>er Zelle m<strong>in</strong>destens<br />

zwei <strong>der</strong> drei verschiedenen Berechnungsarten genau denselben Abstand liefern, und deshalb<br />

mehr als e<strong>in</strong>e optimale Transformation f<strong>ur</strong> e<strong>in</strong>en Abstand existiert, ist jedoch eher<br />

unwahrsche<strong>in</strong>lich. Falls <strong>der</strong> Fall doch auftritt, wird genau e<strong>in</strong>e optimale Transformation<br />

ausgewahlt.<br />

Da f<strong>ur</strong> jeden Ergebnisabstand n<strong>ur</strong> e<strong>in</strong>e optimale Transformation z<strong>ur</strong>uckverfolgt<br />

wird, konnen wie <strong>in</strong> Unterabschnitt 6.3.3.4 beschrieben, beim Fullen des Pra xqua<strong>der</strong>s<br />

Abk<strong>ur</strong>zungen im optimalen Pfad gespeichert werden, die die Berechnung e<strong>in</strong>er optimalen<br />

Transformation <strong>in</strong> Laufzeit (k) ermoglichen.<br />

Der hier beschriebene Algorithmus ist als Pseudocode <strong>in</strong> Abbildung 7.2 angegeben.<br />

Die sukkzessive Berechnung aller Pra xqua<strong>der</strong> erfolgt <strong>in</strong> <strong>der</strong> Prozed<strong>ur</strong> Ergebnisfeld. Beim<br />

Fullen e<strong>in</strong>es Berechnungsqua<strong>der</strong>s sollen dabei die Abk<strong>ur</strong>zungen anhand des Algorithmus<br />

aus Abschnitt 6.3.3.4 mitberechnet werden. F<strong>ur</strong> jeden gefullten Qua<strong>der</strong> wird die<br />

Prozed<strong>ur</strong> Ergebnisse aufgerufen, <strong>in</strong> <strong>der</strong> f<strong>ur</strong> alle Ergebnisabstande des Qua<strong>der</strong>s, also alle<br />

D(k; ; maxEta(k; )), e<strong>in</strong> neues Element des Ergebnisfeldes result gefullt wird. E<strong>in</strong> Element<br />

des Ergebnisfeldes enthalt den bereits langennormierten Abstand (value), <strong>das</strong> Feld<br />

<strong>der</strong> Editieroperationen <strong>der</strong> optimalen Transformation (edits) und den Index l aus dem<br />

sukkzessiven Algorithmus, <strong>der</strong> die Datierung angibt. Die Langennormierung erfolgt dabei<br />

d<strong>ur</strong>ch e<strong>in</strong>e Division d<strong>ur</strong>ch k + maxEta(k; ). Die optimale Transformation wird mit dem<br />

Algorithmus TransformationMitAbk<strong>ur</strong>zungen aus Abschnitt 6.3.3.4 berechnet. F<strong>ur</strong> jeden<br />

Ergebnisabstand wird e<strong>in</strong> weiteres Feld <strong>in</strong> result belegt und <strong>der</strong> Index resultIndex, <strong>der</strong> am<br />

Ende h<strong>in</strong>ter <strong>das</strong> letzte belegte Feld zeigt, um e<strong>in</strong>s <strong>in</strong>krementiert.<br />

Da jede Ebene k e<strong>in</strong>es Berechnungsqua<strong>der</strong>s hochstens k + 1 Diagonalen hat und m + n ,<br />

2m<strong>in</strong>Ovl + 1 Berechnungsqua<strong>der</strong> gefullt werden, gibt es hochstens<br />

(m + n , 2m<strong>in</strong>Ovl +1) X<br />

(k +1)=(m+n,2m<strong>in</strong>Ovl +1)<br />

k=0<br />

2 +3 +2<br />

Ergebnisabstande, die <strong>in</strong> result gespeichert werden mussen. Da die Speicherung e<strong>in</strong>er optimalen<br />

Transformation (k) anSpeicherplatz und Laufzeit kostet, mu f<strong>ur</strong> <strong>das</strong> Speichern<br />

e<strong>in</strong>er Zelle (k; ; ) im result-Feld (k +1) Speicherplatz und auch Laufzeit verwendet<br />

werden. F<strong>ur</strong> alle Ergebnisabstande ergibt dies <strong>in</strong>sgesamt e<strong>in</strong>e Zeit- und Platzkomplexitat<br />

von<br />

O((m+n,2m<strong>in</strong>Ovl + 1)(1 + X<br />

(k +1)k)) =O((m + n) 3 ) :<br />

k=1<br />

Die Berechnung aller Ergebnisabstande mit dem Ergebnisfeld-Algorithmus hat unter<br />

diesen Bed<strong>in</strong>gungen e<strong>in</strong>e Laufzeit von O( 2 mn +(m+n) 3 )=O( 2 mn) und e<strong>in</strong>e Platzkomplexitat<br />

von O((m + n) 3 + m<strong>in</strong>(n; m) 2 ).<br />

72<br />

2


7.4 <strong>Crossdat<strong>in</strong>g</strong>algorithmus<br />

Die Jahrr<strong>in</strong>gfolgen enthalten, wie <strong>in</strong> den Kapiteln 1 und 2 erwahnt w<strong>ur</strong>de, <strong>in</strong> <strong>der</strong> Regel<br />

Langzeittrends. E<strong>in</strong>e Berechnung <strong>der</strong> Transformationsabstande ohne vorherige Standardisierung<br />

<strong>der</strong> Folgen (vgl. Unterkapitel 2.4) wird deshalb selten zu befriedigenden Ergebnissen<br />

fuhren. E<strong>in</strong>e Standardisierung <strong>der</strong> Folgen ist also notwendig. Der komplette<br />

<strong>Crossdat<strong>in</strong>g</strong>algorithmus verlauft daher <strong>in</strong> drei Schritten:<br />

1. Standardisierung bei<strong>der</strong> Folgen<br />

2. Berechnung aller Ergebnisabstande mit Ergebnisfeld<br />

3. Sortieren des Ergebnisfeldes mit anschlie en<strong>der</strong> Ausgabe<br />

Die Standardisierung bei<strong>der</strong> Folgen kann <strong>in</strong> (n+m) Zeit und Platz erfolgen. Schritt 2<br />

hat e<strong>in</strong>e Laufzeit von O( 2 mn) und benotigt O((m+n) 3 + m<strong>in</strong>(n; m) 2 ) Platz. Das Sortieren<br />

des Ergebnisfeldes dauert mit e<strong>in</strong>em geeigneten Algorithmus O(((m+n) 2 ) log((m+<br />

n) 2 )), und die Ausgabe aller Abstande O((m + n) 3 + m<strong>in</strong>(n; m) 2 ). Die Laufzeit <strong>in</strong>sgesamt<br />

ist deshalb O( 2 mn) und <strong>der</strong> Platzverbrauch O((m + n) 3 + m<strong>in</strong>(n; m) 2 ).<br />

D<strong>ur</strong>ch die Standardisierung <strong>der</strong> Folgen im voraus entsprechen die Kosten <strong>der</strong> Editieroperationen<br />

nicht den <strong>ur</strong>sprunglich beabsichtigten Kosten. So wird bei e<strong>in</strong>er Zusammenfassung<br />

statt des standardisierten Wertes <strong>der</strong> Summe zweier Jahrr<strong>in</strong>gbreiten die Summe<br />

<strong>der</strong> standardisierten Werte verwendet und bei e<strong>in</strong>er E<strong>in</strong>fugung statt des standardisierten<br />

Wertes des arithmetischen Mittels <strong>der</strong> umliegenden Werte <strong>das</strong> arithmetische Mittel<br />

<strong>der</strong> standardisierten Werte. Van Deusen [11] umgeht dies, <strong>in</strong>dem er wahrend des Fullens<br />

<strong>der</strong> Berechnungsmatrix implizit e<strong>in</strong>e Standardisierung <strong>der</strong> Daten mitberechnet. Dies ist<br />

jedoch n<strong>ur</strong> f<strong>ur</strong> spezielle Standardisierungen moglich, die auf Daten vor dem zu standardisierenden<br />

Wert zugreifen, wie etwa die Di erenz von Logarithmen o<strong>der</strong> e<strong>in</strong>e e<strong>in</strong>fache<br />

Logarithmenstandardisierung.<br />

7.5 Das <strong>Crossdat<strong>in</strong>g</strong>programm dpcross<br />

Der <strong>Crossdat<strong>in</strong>g</strong>algorithmus w<strong>ur</strong>de <strong>in</strong> dem auf Diskette beigefugten sowie <strong>in</strong> Anhang C<br />

abgedruckten Programm dpcross <strong>in</strong> <strong>der</strong> Programmiersprache C ++ implementiert. Z<strong>ur</strong><br />

graphischen Auswertung <strong>der</strong> Ergebnisse wird <strong>das</strong> Programm gnuplot verwendet.<br />

Als Standardisierungsverfahren stehen e<strong>in</strong>erseits die Standardisierung anhand e<strong>in</strong>es<br />

ungewichteten gleitenden Mittels sowie die Berechnung <strong>der</strong> elementweisen Di erenz von<br />

Logarithmen z<strong>ur</strong> Verfugung. Es konnen jedoch auch bereits standardisierte Folgen als<br />

E<strong>in</strong>gabe verwendet werden. Die Wahl <strong>der</strong> Standardisierung sowie die E<strong>in</strong>stellung von<br />

Parametern wie o<strong>der</strong> m<strong>in</strong>Ovl erfolgt uber e<strong>in</strong>e Kon g<strong>ur</strong>ationsdatei, die <strong>in</strong> Anhang A<br />

naher erlautert wird.<br />

73


Abbildung 7.3: Beispiel f<strong>ur</strong> e<strong>in</strong>en Programmablauf. H<strong>in</strong>ter " Kosten:\ steht <strong>der</strong> jeweilige<br />

langennormierte Abstand. " Laenge\ gibt die Lange <strong>der</strong> transformierten Folge an. Die Daten s<strong>in</strong>d<br />

e<strong>in</strong>e Jahrr<strong>in</strong>gbreitenfolge und e<strong>in</strong>e Referenzfolge von Kiefern aus dem Berl<strong>in</strong>er Umland. (Daten aus<br />

dem Deutschen Archaologischen Insitut, E<strong>ur</strong>asien-Abteilung) Die graphische Veranschaulichung<br />

des ersten Match<strong>in</strong>g-Resultats ist <strong>in</strong> Abbildung 7.4 und die des sechsten Resultats <strong>in</strong> Abbildung<br />

7.5 abgebildet.<br />

Als e<strong>in</strong>e e<strong>in</strong>fache Verallgeme<strong>in</strong>erung des Abstandsbegri s wird <strong>in</strong> dem Programm <strong>der</strong><br />

bezuglich <strong>der</strong> Editieroperationen gewichtete Transformationsabstand<br />

D(i; j; k) =<br />

8<br />

><<br />

>:<br />

0 ;wenn i=j=k=0<br />

j,1 P<br />

m<strong>in</strong> w d( (x) ;y ) ;wenn Ti;j;k 6= ;<br />

2Ti;j;k =0<br />

nicht de niert ; sonst<br />

(7.2)<br />

berechnet. Dabei ist f<strong>ur</strong> jeden Elementaroperationstyp e<strong>in</strong> Gewicht de niert, und zwar<br />

1. w E f<strong>ur</strong> e<strong>in</strong>e E<strong>in</strong>fugung,<br />

2. w I f<strong>ur</strong> e<strong>in</strong>e Identitatsoperation und<br />

3. w Z f<strong>ur</strong> e<strong>in</strong>e Zusammenfassung.<br />

In <strong>der</strong> Rek<strong>ur</strong>sionsformel wird <strong>der</strong> gewichtete Transformationsabstand wie folgt berech-<br />

74


Abbildung 7.4: Graphische Darstellung <strong>der</strong> ersten Datierung aus dem Beispiel-Programmablauf<br />

aus Abbildung 7.3 mit Hilfe des Programms gnuplot.<br />

net:<br />

D(i; j; k) = ?<br />

m<strong>in</strong><br />

8<br />

<<br />

:<br />

D(i , 2;j ,1;k,1) + w Z d(xi,2 + xi,1;yj,1);<br />

D(i,1;j ,1;k)+w I d(xi,1;yj,1);<br />

D(i; j , 1;k,1) + w E d( (i , 1);yj,1)<br />

9<br />

=<br />

; (7.3)<br />

F<strong>ur</strong> w E=w Z=w I=1 entspricht dies dem <strong>in</strong> Unterkapitel 6.3 de nierten k-Abstand.<br />

Mit den Gewichtungsfaktoren kann die Auswahl <strong>der</strong> Elementaroperationen <strong>in</strong> gewisser<br />

Weise bee<strong>in</strong> u t werden. Hohe Faktoren f<strong>ur</strong> Editieroperationen und e<strong>in</strong> niedriger Faktor<br />

f<strong>ur</strong> e<strong>in</strong>e Identitatsoperation mu ten den Algorithmus zu weniger Editierungen veranlassen.<br />

Die Wahl solcher Gewichtungen ist jedoch subjektiv. Unabhangig von den Gewichtungen<br />

wird z<strong>ur</strong> Langennormierung je<strong>der</strong> Abstand d<strong>ur</strong>ch die Lange <strong>der</strong> optimalen Transformation,<br />

also d<strong>ur</strong>ch die Anzahl <strong>der</strong> Elementaroperationen, geteilt.<br />

E<strong>in</strong> Beispiel f<strong>ur</strong> e<strong>in</strong>en Programmablauf wird <strong>in</strong> den Abbildungen 7.3, 7.4 und 7.5 gezeigt.<br />

Als Musterfolge w<strong>ur</strong>de e<strong>in</strong>e bereits datierte Jahrr<strong>in</strong>gbreitenfolge e<strong>in</strong>er Kiefer aus<br />

dem Berl<strong>in</strong>er Umland und als Referenzfolge e<strong>in</strong>e aus Kiefern aus demselben Umkreis gewonnene<br />

Mittelwertfolge verwendet (Daten aus dem Deutschen Archaologischen Institut,<br />

E<strong>ur</strong>asien-Abteilung) 1 . Der Parameter w<strong>ur</strong>de auf 1 und m<strong>in</strong>Ovl auf 50 gesetzt. Die<br />

ersten funf Datierungsvorschlage datieren die Folge, bis auf subjektiv gesehen unnotige<br />

Editieroperationen, auf die korrekte Datierung 1881. Beim ersten und beim funften Er-<br />

1 Weitere Daten s<strong>in</strong>d bei <strong>der</strong> International Tree-R<strong>in</strong>g Data Bank (ITRDB) unter<br />

http://www.ngdc.noaa.gov/paleo/treer<strong>in</strong>g.html erhaltlich.<br />

75


Abbildung 7.5: Graphische Darstellung <strong>der</strong> sechsten Datierung aus dem Beispiel-Programmablauf<br />

aus Abbildung 7.3 mit Hilfe des Programms gnuplot.<br />

gebnis schlagt <strong>das</strong> Programm e<strong>in</strong>e Editieroperation ganz am Ende <strong>der</strong> Folge vor, wahrend<br />

es beim zweiten und dritten Ergebnis ganz am Anfang <strong>der</strong> Folge editiert. Die Datierung<br />

des dritten Ergebnisses auf 1882 entspricht d<strong>ur</strong>ch die Zusammenfassung im Jahr 1883 eigentlich<br />

e<strong>in</strong>er Datierung auf 1881. E<strong>in</strong>e Datierung auf <strong>das</strong> Jahr 1881 ohne Editierungen<br />

wird im vierten Ergebnis vorgeschlagen. Die restlichen Datierungsvorschlage fallen d<strong>ur</strong>ch<br />

die relativ k<strong>ur</strong>ze Lange <strong>der</strong> transformierten Folgen auf. In Abbildung 7.4 ist <strong>das</strong> erste<br />

Ergebnis mit Hilfe des Programms gnuplot graphisch dargestellt, <strong>in</strong>dem die transformierte<br />

Musterfolge sowie <strong>das</strong> entsprechende Referenzfolgenstuck als K<strong>ur</strong>ven aufgetragen und die<br />

Stellen <strong>der</strong> E<strong>in</strong>fugungen und Zusammenfassungen markiert werden. Zum Vergleich zeigt<br />

Abbildung 7.5 die graphische Darstellung des sechsten Ergebnisses.<br />

Beispiele f<strong>ur</strong> <strong>das</strong> Verhalten des Programms bei kunstlich geloschten bzw. verdoppelten<br />

R<strong>in</strong>gen zeigen die Abbildungen 7.6 und 7.7. Die Musterfolge aus dem ersten Beispiel w<strong>ur</strong>de<br />

daf<strong>ur</strong> kunstlich veran<strong>der</strong>t. In Abbildung 7.6 w<strong>ur</strong>de im Jahr 1925 e<strong>in</strong> im Verhaltnis zu den<br />

umliegenden Werten au allend niedriger Wert geloscht. Die Datierungsvorschlage s<strong>in</strong>d<br />

nun nicht mehr so e<strong>in</strong>heitlich wie im ersten Beispiel, jedoch ist <strong>der</strong> erste Vorschlag bis auf<br />

die genaue Position <strong>der</strong> E<strong>in</strong>fugung korrekt. F<strong>ur</strong> <strong>das</strong> Beispiel <strong>in</strong> Abbildung 7.7 w<strong>ur</strong>de e<strong>in</strong><br />

relativ hoher Wert im Jahr 1913 d<strong>ur</strong>chzwei zu diesem Wert aufsummierende Werte ersetzt.<br />

Wie bei <strong>der</strong> kunstlichen Loschung e<strong>in</strong>es Elements s<strong>in</strong>d auch hier die Datierungsvorschlage<br />

une<strong>in</strong>heitlich, jedoch ist wie<strong>der</strong>um <strong>der</strong> erste Datierungsvorschlag korrekt.<br />

76


Abbildung 7.6: Datierungsergebnisse f<strong>ur</strong> dieselben Folgen aus Abbildung 7.3, wobei <strong>in</strong> <strong>der</strong> Musterfolge<br />

<strong>der</strong> Wert im Jahr 1925 geloscht w<strong>ur</strong>de.<br />

Abbildung 7.7: Datierungsergebnisse f<strong>ur</strong> dieselben Folgen aus Abbildung 7.3, wobei <strong>in</strong> <strong>der</strong> Musterfolge<br />

<strong>der</strong> Wert im Jahr 1913 d<strong>ur</strong>ch zwei auf diesen Wert aufsummierende Werte ersetzt w<strong>ur</strong>de.<br />

77


Kapitel 8<br />

Ausblick<br />

Das Programm dpcross ist e<strong>in</strong> aus dendrochronologischer Sichtweise ungewohntes <strong>Crossdat<strong>in</strong>g</strong>programm,<br />

da es <strong>in</strong> e<strong>in</strong>e Musterjahrr<strong>in</strong>gfolge oft mehrere fehlende und doppelte R<strong>in</strong>ge<br />

h<strong>in</strong>e<strong>in</strong><strong>in</strong>terpretiert. Sofern bei den Match<strong>in</strong>gergebnissen zwischen subjektiv unnotigen und<br />

plausibel ersche<strong>in</strong>enden Editieroperationen unterschieden wird, ersche<strong>in</strong>en die Datierungsvorschlage<br />

von dpcross d<strong>ur</strong>chaus verwendbar. Dies sollte jedoch von Dendrochronologen<br />

<strong>in</strong> Tests untersucht werden.<br />

Da <strong>in</strong> dpcross davon ausgegangen wird, da fehlende und doppelte R<strong>in</strong>ge n<strong>ur</strong> <strong>in</strong> <strong>der</strong><br />

Muster- und nicht <strong>in</strong> <strong>der</strong> Referenzfolge auftreten konnen, ist es <strong>in</strong> <strong>der</strong> Praxis hauptsachlich<br />

f<strong>ur</strong> archaologische Zwecke e<strong>in</strong>setzbar, bei denen bereits e<strong>in</strong>e qualitativ hochwertige Referenzfolge<br />

vorliegt. Die Konstruktion e<strong>in</strong>er Referenzfolge aus mehreren Jahr<strong>in</strong>gfolgen ist<br />

mit dpcross n<strong>ur</strong> begrenzt moglich, da <strong>in</strong> diesem Fall auch die Referenzfolge moglicherweise<br />

Unregelma igkeiten enthalten kann. Als Alternative kann wie bisher nach e<strong>in</strong>er Referenzfolgenbildung<br />

e<strong>in</strong> Qualitatskontrollprogramms wie Cofecha e<strong>in</strong>gesetzt werden.<br />

Die bisherige Implementation von dpcross ist auf Jahrr<strong>in</strong>gbreitenfolgen beschrankt.<br />

E<strong>in</strong>e Anwendung auf an<strong>der</strong>e Jahrr<strong>in</strong>gcharakteristika ist jedoch, sofern diese<br />

jahrr<strong>in</strong>gweise vorliegen, d<strong>ur</strong>ch e<strong>in</strong>fache Umgestaltung <strong>der</strong> Zusammenfassungs- und<br />

E<strong>in</strong>fugungsoperationen moglich.<br />

Moglicher Forschungsbedarf besteht f<strong>ur</strong> die gleichzeitige Datierung e<strong>in</strong>er Menge von<br />

Jahrr<strong>in</strong>gfolgen e<strong>in</strong>es Standorts untere<strong>in</strong>an<strong>der</strong> mit impliziter Konstruktion e<strong>in</strong>er Referenzfolge<br />

aus diesen Folgen. Bisher werden die Folgen sukkzessiv datiert und zu e<strong>in</strong>er Referenzfolge<br />

zusammengefa t, und anschlie end wird <strong>in</strong> <strong>der</strong> Regel e<strong>in</strong> Qualitatskontrollprogramm<br />

angewendet.<br />

78


Anhang A<br />

Programmkon g<strong>ur</strong>ation<br />

Das Programm dpcross erwartet als Kommandozeilenparameter die Namen <strong>der</strong><br />

Referenzfolgen- sowie <strong>der</strong> Musterfolgendatei; <strong>der</strong> Aufruf erfolgt also <strong>in</strong> <strong>der</strong> Form dpcross<br />

. Optional konnen als weitere Kommandozeilenparameter<br />

und die Anzahl resultNum <strong>der</strong> auszugebenden besten Ergebnisabstande angegeben<br />

werden. Die Referenzfolgendatei mu im Zwei-Spalten-Format vorliegen, wobei die erste<br />

Spalte den Jahreszahlen und die zweite Spalte den jeweiligen Jahrr<strong>in</strong>gbreiten entspricht.<br />

Die Musterfolgendatei kann entwe<strong>der</strong> im E<strong>in</strong>-Spalten-Format, <strong>in</strong> dem <strong>in</strong> je<strong>der</strong> Zeile e<strong>in</strong>e<br />

Jahrr<strong>in</strong>gbreite steht, o<strong>der</strong> im Zwei-Spalten-Format se<strong>in</strong>. Das Zwei-Spalten-Format dient<br />

z<strong>ur</strong> Bestatigung o<strong>der</strong> Uberprufung bereits bestehen<strong>der</strong> Datierungen des Musters, daher<br />

wird <strong>der</strong> Inhalt <strong>der</strong> ersten Spalte, <strong>der</strong> Aufschlu uber e<strong>in</strong>e mogliche Datierung geben<br />

konnte, ignoriert.<br />

Z<strong>ur</strong> weitergehenden Kon g<strong>ur</strong>ation des Programms steht die Kon g<strong>ur</strong>ationsdatei dpcross.cfg<br />

z<strong>ur</strong> Verfugung. E<strong>in</strong> Beispiel e<strong>in</strong>er solchen Datei zeigt Abbildung A.1, <strong>in</strong> <strong>der</strong><br />

die Standardwerte f<strong>ur</strong> die Parameter angegeben s<strong>in</strong>d. E<strong>in</strong>e Zeile wird als Kommentarzeile<br />

aufgefa t, wenn am Anfang <strong>der</strong> Zeile zwei '/' stehen. E<strong>in</strong> Parameter wird gesetzt, <strong>in</strong>dem<br />

<strong>der</strong> Parametername gefolgt von e<strong>in</strong>em '=' und dem zu setzendem Wert <strong>in</strong> e<strong>in</strong>e Zeile geschrieben<br />

wird, wobei ke<strong>in</strong>e Leerzeichen dazwischen stehen d<strong>ur</strong>fen. Wird e<strong>in</strong> bestimmter<br />

Parameter nicht <strong>in</strong> <strong>der</strong> Kon g<strong>ur</strong>ationsdatei gesetzt, wird e<strong>in</strong> Standardwert angenommen.<br />

Der Parameter preprocess gibt an, ob die Daten vorverarbeitet, also standardisiert werden<br />

sollen. Dabei stehen e<strong>in</strong>e Standardisierung anhand e<strong>in</strong>es gleitenden Mittels ( oatave),<br />

wie <strong>in</strong> Abschnitt 2.4.3 angegeben, o<strong>der</strong> anhand <strong>der</strong> Di erenz von Logarithmen (logdi )<br />

z<strong>ur</strong> Verfugung. Bei e<strong>in</strong>er an<strong>der</strong>en Angabe wird ke<strong>in</strong>e Standardisierung d<strong>ur</strong>chgefuhrt. Im<br />

Falle <strong>der</strong> Standardisierung anhand e<strong>in</strong>es gleitenden Mittels stehen die weiteren Parameter<br />

halfwidth und dolog z<strong>ur</strong> Verfugung. halfwidth gibt die abgerundete halbe Anzahl <strong>der</strong> zu<br />

mittelnden Jahre an, also zum Beispiel mu bei 5 zu mittelnden Jahren halfwidth=2 gesetzt<br />

werden. Der boolesche Parameter dolog, <strong>der</strong> die Werte true o<strong>der</strong> false annehmen kann,<br />

gibt an, ob <strong>der</strong> nat<strong>ur</strong>liche Logarithmus <strong>der</strong> transformierten Werte als endgultige Transfor-<br />

79


Vorverarbeitung mit gleitendem Mittel (floatave) o<strong>der</strong> Differenz von<br />

//Logarithmen (logdiff)?<br />

preprocess=floatave<br />

//floatave: Halbe Anzahl (abgerundet) <strong>der</strong> zu mittelnden Jahre:<br />

halfwidth=2<br />

//floatave: Logarithmus:<br />

dolog=true<br />

//logdiff: Faktor:<br />

logmult=5<br />

//M<strong>in</strong>imale "Uberlappung:<br />

m<strong>in</strong>Ovl=50<br />

//Alpha:<br />

alpha=1<br />

//Anzahl <strong>der</strong> auszugebenden Ergebnisse<br />

resultNum=10<br />

//Multiplikation jedes Abstandes mit factor<br />

factor=100<br />

//Multiplikation e<strong>in</strong>er E<strong>in</strong>f"ugeoperation mit w_E<br />

w_E=1<br />

//Multiplikation e<strong>in</strong>er Identit"atsoperation mit w_I<br />

w_I=1<br />

//Multiplikation e<strong>in</strong>er Zusammenfassungsoperation mit w_Z<br />

w_Z=1<br />

//Aufruf zum L"oschen des Verzeichnisses "work"<br />

//delDir=null , wenn nicht gel"oscht werden soll<br />

delDir=rm -f work/*<br />

Abbildung A.1: Kon g<strong>ur</strong>ationsdatei f<strong>ur</strong> <strong>das</strong> Programm dpcross. Kommentare werden d<strong>ur</strong>ch<br />

zwei '/' am Anfang <strong>der</strong> Zeile markiert. Parameter werden d<strong>ur</strong>ch e<strong>in</strong>en Ausdruck <strong>der</strong> Form<br />

= <strong>in</strong> e<strong>in</strong>er Zeile gesetzt.<br />

80


mation betrachtet werden soll o<strong>der</strong> nicht. Bei <strong>der</strong> Standardisierung mittels <strong>der</strong> Di erenz<br />

von Logarithmen berechnet sich die transformierte Folge y aus <strong>der</strong> Ursprungsfolge x d<strong>ur</strong>ch<br />

die Formel yi = log(logmult xi) , log(logmult xi+1).<br />

Der Parameter m<strong>in</strong>Ovl legt die m<strong>in</strong>imale Uberlappungslange und alpha die maximale<br />

Anzahl von Editieroperationen fest. Beide Parameter mussen m<strong>in</strong>destens gleich dem M<strong>in</strong>imum<br />

<strong>der</strong> Langen <strong>der</strong> zwei E<strong>in</strong>gabefolgen se<strong>in</strong> und werden gegebenenfalls auf diesen Wert<br />

gesetzt. resultNum gibt an, wieviele Ergebnisabstande ausgegeben werden sollen. Da <strong>das</strong><br />

Feld <strong>der</strong> Ergebnisabstande sortiert wird, werden die resultNum-kle<strong>in</strong>sten Abstande ausgegeben.<br />

Mit dem Parameter factor kann man e<strong>in</strong>en Faktor angegeben, mit dem je<strong>der</strong> Ergebnisabstand<br />

multipliziert werden soll. Dies dient ausschlie lich <strong>der</strong> besseren Ubersicht.<br />

Nach dem Programmablauf werden die Dateien im Arbeitsverzeichnis " work\ geloscht.<br />

Der entsprechende Aufruf kann <strong>in</strong> <strong>der</strong> Kon g<strong>ur</strong>ationsdatei <strong>in</strong> dem Parameter delDir angegeben<br />

werden. Wird dieser Parameter nicht o<strong>der</strong> mit dem Wert null angegeben, wird <strong>das</strong><br />

Verzeichnis nicht geloscht.<br />

81


Anhang B<br />

Programmdokumentation<br />

Das Programm ist <strong>in</strong> <strong>der</strong> Programmiersprache C ++ geschrieben. Es besteht aus drei<br />

Hauptklassen, e<strong>in</strong>igen Hilfsklassen und e<strong>in</strong>er ma<strong>in</strong>-Methode. Die drei Hauptklassen s<strong>in</strong>d<br />

die Klasse box, die e<strong>in</strong>en Pra xqua<strong>der</strong> darstellt,<br />

die Klasse resultArray, die <strong>das</strong> Ergebnisfeld be<strong>in</strong>haltet und berechnet<br />

und die Klasse array, die e<strong>in</strong> dynamisches Feld mit den zwei moglichen Standardisierungsverfahren<br />

implementiert.<br />

F<strong>ur</strong> jede <strong>der</strong> drei Hauptklassen gibt es gleichnamig Implementations- (.cc) und De nitionsdateien<br />

(.h). F<strong>ur</strong> die Hilfsklassen ist au erdem e<strong>in</strong>e Datei misc.h und f<strong>ur</strong> die ma<strong>in</strong>-Methode<br />

e<strong>in</strong>e Datei ma<strong>in</strong>.cc vorhanden. Alle Dateien s<strong>in</strong>d im Anhang C abgedruckt.<br />

B.1 Die Datei misc.h<br />

In <strong>der</strong> Datei misc.h s<strong>in</strong>d mehrere Klassen de niert, auf die die Hauptklassen zugreifen. Der<br />

Verbund editOp de niert e<strong>in</strong>e Editieroperation die, wie <strong>in</strong> Unterabschnitt 6.3.3.4 erlautert<br />

ist, d<strong>ur</strong>ch den Wert i und den Typ type <strong>der</strong> Editieroperation bestimmt ist. Der Typ e<strong>in</strong>er<br />

Editieroperation wird dabei d<strong>ur</strong>ch Konstanten kodiert.<br />

Die Klasse cell reprasentiert genau e<strong>in</strong>e Zelle des Berechnungsqua<strong>der</strong>s. Sie enthalt als<br />

Komponenten den jeweiligen Transformationsabstand value, den Typ <strong>der</strong> genau e<strong>in</strong>en Elementaroperation,<br />

die e<strong>in</strong>er von dieser Zelle ausgehenden Kante des Berechnungsgraphen<br />

entspricht (arrow) und <strong>das</strong> e<strong>in</strong>e Abk<strong>ur</strong>zung im Qua<strong>der</strong> de nierende eta.<br />

Die Klasse resultElement beschreibt e<strong>in</strong>en Ergebnisabstand mit Zusatz<strong>in</strong>formationen.<br />

Sie be<strong>in</strong>haltet den langentransformierten Abstand value, den die Datierung angebenden<br />

82


Parameter whichbox, sowie die die <strong>ur</strong>sprungliche Zelle charakterisierenden Variablen k,<br />

nu und length = k + eta. E<strong>in</strong>e weitere Komponente ist <strong>das</strong> Feld edits mit Elementen<br />

vom Typ editOp, <strong>in</strong> dem e<strong>in</strong>e optimale Transformation anhand <strong>der</strong> <strong>in</strong> ihr enthaltenen<br />

Editieroperationen abgelegt wird. edits hat dabei immer die Lange k.<br />

Mit Hilfe <strong>der</strong> Klasse stillWork<strong>in</strong>gClass wird wahrend <strong>der</strong> Berechnung angezeigt, da die<br />

Berechnung im Gange ist.<br />

B.2 Die Klasse box<br />

In <strong>der</strong> Klasse box wird e<strong>in</strong> Pra xqua<strong>der</strong> berechnet. Der Qua<strong>der</strong> wird <strong>in</strong> e<strong>in</strong>em dreidimensionalen<br />

Feld entry abgespeichert, <strong>das</strong> aus Objekten <strong>der</strong> Klasse cell besteht.<br />

Die meisten Variablen, Methoden und Parameter entsprechen den <strong>in</strong> Unterkapitel 6.3<br />

und <strong>in</strong> Kapitel 7 verwendeten Begri en und <strong>Algorithmen</strong>. Im Konstruktor <strong>der</strong> Klasse<br />

box werden Ne und Me berechnet und <strong>der</strong> benotigte Speicherplatz reserviert, welcher<br />

im Destruktor wie<strong>der</strong>um freigegeben wird. In <strong>der</strong> Methode ll wird <strong>der</strong> Pra xqua<strong>der</strong><br />

mittels des Algorithmus aus Abschnitt 6.3.3.3 anhand <strong>der</strong> <strong>in</strong> Abschnitt 7.2 angegebenen<br />

Wertebereiche f<strong>ur</strong> k, und gefullt. F<strong>ur</strong> jede Zelle wird dabei e<strong>in</strong>e Abk<strong>ur</strong>zung, wie <strong>in</strong><br />

Abschnitt 6.3.3.4 beschrieben ist, gespeichert.<br />

In <strong>der</strong> Methode computeResults werden aus dem gefullten Berechnungsqua<strong>der</strong> unter<br />

Anwendung <strong>der</strong> Ergebnisse-Prozed<strong>ur</strong> aus Unterkapitel 7.3 alle benotigten Abstande mit<br />

jeweils genau e<strong>in</strong>er optimalen Transformation gespeichert. Die Speicherung ndet dabei<br />

<strong>in</strong> e<strong>in</strong>em Feld result mit Elementen <strong>der</strong> <strong>in</strong> misc.h de nierten Klasse resultElement statt. Das<br />

Feld wird <strong>in</strong> <strong>der</strong> Klasse boxArray gespeichert, und <strong>in</strong> jedem Pra xqua<strong>der</strong> werden weitere<br />

Ergebnisabstande h<strong>in</strong>zugefugt. Die Variable rIndex zeigt dabei auf bzw. h<strong>in</strong>ter <strong>das</strong> letzte<br />

de nierte Element <strong>in</strong> result. F<strong>ur</strong> jeden Ergebnisabstand wird dabei e<strong>in</strong>e Transformation<br />

mittels des Algorithmus TransformationMitAbk<strong>ur</strong>zungen aus Unterabschnitt 6.3.3.4 berechnet<br />

und die e<strong>in</strong>zelnen Editieroperationen <strong>in</strong> <strong>der</strong> Komponente edits des Ergebniselementes<br />

gespeichert.<br />

B.3 Die Klasse resultArray<br />

Die Klasse resultArray wird im Hauptprogramm genau e<strong>in</strong>mal <strong>in</strong>stanziiert. Sie ist f<strong>ur</strong><br />

die Verwaltung und Berechnung aller Ergebniselemente zustandig. E<strong>in</strong> Ergebniselement<br />

ist e<strong>in</strong> Objekt <strong>der</strong> Klasse resultElement und be<strong>in</strong>haltet e<strong>in</strong>en Ergebnisabstand, die zugehorige<br />

optimale Transformation sowie Informationen zu <strong>der</strong> <strong>ur</strong>sprunglichen Zelle und<br />

dem Pra xqua<strong>der</strong>. resultArray enthalt e<strong>in</strong> Feld namens result, <strong>das</strong> aus Objekten <strong>der</strong> Klasse<br />

resultElement besteht. Da es hochstens (m + n , 2m<strong>in</strong>Ovl +1) 2 +3 +2 Ergebnisabstande<br />

2<br />

geben kann (s. Unterkapitel 7.3), wird <strong>das</strong> Feld im Konstruktor mit dieser Gro e angelegt.<br />

83


In <strong>der</strong> Methode ll werden anhand des Ergebnisfeld-Algorithmus aus Abschnitt 7.3 alle<br />

Ergebnisabstande mit zugehorigen optimalen Transformationen berechnet. In jedem<br />

Schritt wird dabei e<strong>in</strong> neuer Berechnungsqua<strong>der</strong> b <strong>der</strong> Klasse box <strong>in</strong>itialisiert und gefullt.<br />

Das Feld result wird d<strong>ur</strong>ch die Aufrufe von b, >computeResults sukkzessive aufgefullt,<br />

wobei die Komponente rIndex immer auf <strong>das</strong> nachste freie Element<strong>in</strong>result zeigt. Um anzuzeigen,<br />

da die Berechnung lauft, wird nach jedem Schleifend<strong>ur</strong>chgang stillWork<strong>in</strong>g.pr<strong>in</strong>t()<br />

aufgerufen.<br />

Mit <strong>der</strong> Methode sort wird <strong>das</strong> Ergebnisfeld nach aufsteigenden Abstandse<strong>in</strong>tragen<br />

value sortiert. Dabei wird <strong>das</strong> <strong>in</strong> ANSI-C vorhandene Quicksort qsort verwendet. Quicksort<br />

hat zwar im schlechtesten Fall e<strong>in</strong>e quadratische Laufzeit, benotigt jedoch im Mittel e<strong>in</strong>e<br />

Laufzeit von (n log n) f<strong>ur</strong> Fel<strong>der</strong> <strong>der</strong> Gro e n.<br />

Die Methode show gibt die <strong>in</strong> result gespeicherten und vorher mit sort sortierten Ergebnisse<br />

aus. Z<strong>ur</strong> Ubersichtlichkeit werden n<strong>ur</strong> die resultNum ersten, also dem Abstand nach<br />

kle<strong>in</strong>sten, Ergebnisse ausgegeben. F<strong>ur</strong> e<strong>in</strong> Ergebnis wird zuerst die entsprechende Jahreszahl<br />

ausgegeben, die sich d<strong>ur</strong>ch Addition des Anfangsjahres masstartyear <strong>der</strong> Referenzfolge<br />

und des Parameters whichbox, <strong>der</strong> die Position des Berechnungsqua<strong>der</strong>s im sukkzessiven<br />

Algorithmus angibt, berechnet. Weiterh<strong>in</strong> werden die Kosten, also <strong>der</strong> Abstand value,<br />

die Lange <strong>der</strong> optimal transformierten Folge sowie die Positionen (<strong>in</strong> Kalen<strong>der</strong>jahren,<br />

bezogen auf die Datierung) <strong>der</strong> Editieroperationen <strong>der</strong> e<strong>in</strong>en abgespeicherten optimalen<br />

Transformation ausgegeben. Der Typ e<strong>in</strong>er Editieroperation wird dabei mit Z f<strong>ur</strong> e<strong>in</strong>e<br />

Zusammenfassung und E f<strong>ur</strong> e<strong>in</strong>e E<strong>in</strong>fugung angegeben.<br />

E<strong>in</strong>e graphische Auswertung <strong>der</strong> Ergebnisse ist mit Hilfe des Programm gnuplot<br />

moglich. Die daf<strong>ur</strong> benotigten Dateien werden <strong>in</strong> <strong>der</strong> Methode writeTransformedData <strong>in</strong><br />

<strong>das</strong> Verzeichnis work geschrieben. F<strong>ur</strong> jedes <strong>der</strong> resultNum ersten Ergebnisse <strong>in</strong> result<br />

werden drei Dateien angelegt: E<strong>in</strong>e Datei im Zwei-Spalten-Format f<strong>ur</strong> die transformierte<br />

Musterfolge, e<strong>in</strong>e Datei im Zwei-Spalten-Format f<strong>ur</strong> <strong>das</strong> entsprechende Teilstuck <strong>der</strong> Referenzfolge<br />

sowie e<strong>in</strong>e Datei mit gnuplot-Aufrufen zum Anzeigen <strong>der</strong> ersten beiden Dateien<br />

und z<strong>ur</strong> Markierung <strong>der</strong> Stellen <strong>der</strong> E<strong>in</strong>fugungen und Zusammenfassungen. Die Date<strong>in</strong>amen<br />

bestehen aus den Pra xen sample, master bzw. plot, und dem geme<strong>in</strong>samen Su x<br />

... Die Anzahl <strong>der</strong><br />

Zusammenfassungen ist dabei <strong>das</strong> entsprechende und die Anzahl <strong>der</strong> E<strong>in</strong>fugungen k ,<br />

(vgl. Satz 6.16). In die Datei namens result werden <strong>der</strong> gnuplot Programmaufruf sowie<br />

die Namen aller plot-Dateien geschrieben. Diese wird mit e<strong>in</strong>em Systemaufruf, <strong>der</strong> z<strong>ur</strong><br />

Zeit f<strong>ur</strong> Unix-Systeme angegeben ist und f<strong>ur</strong> an<strong>der</strong>e Betriebssysteme eventuell gean<strong>der</strong>t<br />

werden mu , ausfuhrbar gemacht und spater gegebenenfalls ausgefuhrt.<br />

B.4 Die Klasse array<br />

In <strong>der</strong> Klasse array ist e<strong>in</strong> dynamisches Feld A von double-Werten implementiert, <strong>das</strong> z<strong>ur</strong><br />

Speicherung <strong>der</strong> Muster- und Referenzdaten dient. Im Konstruktor wird e<strong>in</strong> Feld <strong>der</strong><br />

84


ubergebenen Gro e size angelegt. Bei <strong>der</strong> Zuweisung von Werten mit <strong>der</strong> Methode set<br />

wird dabei gegebenenfalls <strong>das</strong> Feld <strong>in</strong> Schritten <strong>der</strong> Gro e <strong>in</strong>crease erweitert.<br />

Die Methode mu gibt f<strong>ur</strong> e<strong>in</strong>en gegebenen Index i <strong>das</strong> arithmetische Mittel <strong>der</strong> Werte<br />

A[i-1] und A[i+1] z<strong>ur</strong>uck. Falls i <strong>das</strong> erste bzw. letzte Element des Feldes bezeichnet wird<br />

<strong>das</strong> erste bzw. letzte Element des Feldes z<strong>ur</strong>uckgegeben.<br />

Die Methoden oat<strong>in</strong>g average und log di stellen die beiden z<strong>ur</strong> Verfugung stehenden<br />

Standardisierungsverfahren dar. In oat<strong>in</strong>g average wird die im Paramter raw<br />

ubergebene Folge anhand des gleitenden Mittels (vgl. Abschnitt 2.4.3) mit e<strong>in</strong>er Breite<br />

von 2 halfwidth +1 standardisiert und im Objekt-eigenen Feld A gespeichert. Falls <strong>der</strong><br />

Parameter dolog wahr ist, wird <strong>der</strong> nat<strong>ur</strong>liche Logarithmus jedes mit dem gleitenden Mittel<br />

standardisierten Wertes gespeichert. In <strong>der</strong> Methode log di wird die Di erenz von<br />

nat<strong>ur</strong>lichen Logarithmen <strong>der</strong> E<strong>in</strong>gabefolge raw gebildet, wobei vor <strong>der</strong> Anwendung des<br />

Logarithmus je<strong>der</strong> Wert mit dem Faktor logmult multipliziert wird. Die <strong>in</strong> A gespeichert<br />

Ergebnisfolge ist dabei um e<strong>in</strong>s k<strong>ur</strong>zer als die Ursprungsfolge raw.<br />

B.5 Die ma<strong>in</strong>-Methode<br />

In <strong>der</strong> ma<strong>in</strong>-Methode wird <strong>der</strong> <strong>in</strong> Unterkapitel 7.5 angegebene Programmablauf realisert.<br />

Zunachst werden aus <strong>der</strong> gegebenenfalls existierenden Kon g<strong>ur</strong>ationsdatei dpcross.cfg die<br />

Programmparameter e<strong>in</strong>gelesen (vgl. Anhang A). Danach werden die Parameter von <strong>der</strong><br />

Kommandozeile, also die Date<strong>in</strong>amen <strong>der</strong> Referenz- und <strong>der</strong> Musterfolge sowie gegebenenfalls<br />

und resultN um e<strong>in</strong>gelesen. Die <strong>in</strong> <strong>der</strong> Kon g<strong>ur</strong>ationsdatei angegebenen Werte f<strong>ur</strong><br />

und resultN um werden dabei gegebenenfalls uberschrieben.<br />

Danach werden die Muster- und Referenzdaten aus den angegebenen Dateien <strong>in</strong> die<br />

Instanzen sampleraw bzw. masterraw <strong>der</strong> Klasse array e<strong>in</strong>gelesen. Wie <strong>in</strong> Anhang A beschrieben,<br />

mu die Musterfolge im E<strong>in</strong>- bzw. Zwei-Spalten-Format und die Referenzfolge<br />

im Zwei-Spalten-Format vorliegen. Die Anfangsdaten werden <strong>in</strong> den Variablen samstartyear<br />

und masstartyear gespeichert; dabei dient die Datierung samstartyear n<strong>ur</strong> zum Vergleich.<br />

Gegebenenfalls werden die Daten standardisiert, wobei die standardisierte Musterfolge <strong>in</strong><br />

dem array sample und die standardisierte Referenzfolge <strong>in</strong> master abgespeichert wird. Falls<br />

e<strong>in</strong>ige <strong>der</strong> Parameter halfwidth, logmult, m<strong>in</strong>Ovl und alpha vom Benutzer auf unde nierte<br />

Werte o<strong>der</strong> garnicht gesetzt w<strong>ur</strong>den, werden diese auf Standardwerte gesetzt.<br />

Die Berechnung und Ausgabe <strong>der</strong> Abstande erfolgt nun d<strong>ur</strong>ch <strong>das</strong> Anlegen e<strong>in</strong>er Instanz<br />

results <strong>der</strong> Klasse resultArray und dem Aufruf <strong>der</strong> Methoden results. ll, results.sort<br />

und results.show. Der Methode results. ll werden dabei die standardisierten Daten o<strong>der</strong>,<br />

wenn nicht standardisiert w<strong>ur</strong>de, die e<strong>in</strong>gelesenen Daten ubergeben. Vor <strong>der</strong> Ausgabe <strong>der</strong><br />

Ergebnisse werden z<strong>ur</strong> Information die Lange <strong>der</strong> z<strong>ur</strong> Abstandsberechnung verwendeten<br />

Folgen, e<strong>in</strong>ige Parameter sowie zum Vergleich e<strong>in</strong>e bekannte Datierung <strong>der</strong> Musterfolge,<br />

falls vorhanden, ausgegeben. Der Aufruf von results.show wird so oft wie<strong>der</strong>holt, wie <strong>der</strong><br />

85


Benutzer den Parameter resultNum an<strong>der</strong>n mochte. Anschlie end werden die resultNum<br />

ersten Ergebnisse mit result.writeTransformedData <strong>in</strong> Dateien geschrieben und gegebenenfalls<br />

mit gnuplot angezeigt. Die Ausgabe <strong>der</strong> Ergebnisse kann beliebig oft wie<strong>der</strong>holt<br />

werden. Am Ende werden die Ergebnisdateien im Verzeichnis work geloscht. Falls <strong>der</strong><br />

Anwen<strong>der</strong> die Ergebnisdateien an<strong>der</strong>weitig verwenden mochte, sollte er diese wahrend des<br />

Programmablaufs an e<strong>in</strong>er an<strong>der</strong>en Stelle speichern o<strong>der</strong> <strong>in</strong> <strong>der</strong> Kon g<strong>ur</strong>ationsdatei den<br />

Loschstr<strong>in</strong>g delDir umsetzen.<br />

86


Anhang C<br />

Programmcode<br />

C.1 ma<strong>in</strong>.cc<br />

#<strong>in</strong>clude "box.h"<br />

#<strong>in</strong>clude "resultArray.h"<br />

<strong>in</strong>t ma<strong>in</strong>(<strong>in</strong>t argc, char *argv[]){<br />

// Name <strong>der</strong> Konfig<strong>ur</strong>ationsdatei<br />

char configfilename[20]="dpcross.cfg";<br />

// Date<strong>in</strong>amen <strong>der</strong> E<strong>in</strong>gabedateien<br />

char *samname, *masname;<br />

// L"angen des Musters und <strong>der</strong> Referenzfolge<br />

unsigned samsize, massize;<br />

// Anfangsjahre (beim Muster n<strong>ur</strong> zum Vergleich)<br />

unsigned masstartyear, samstartyear=0;<br />

// Date<strong>in</strong>ame <strong>der</strong> ausf"uhrbaren gnuplot-Datei<br />

char resultname[]="work/result";<br />

// m<strong>in</strong>imale "Uberlappung<br />

unsigned m<strong>in</strong>Ovl=50;<br />

// Maximale Anzahl von Editieroperationen<br />

unsigned alpha=1;<br />

87


Gewichtsfaktoren f"<strong>ur</strong> die e<strong>in</strong>zelnen Elementaroperationen<br />

double w_E=1., w_Z=1., w_I=1.;<br />

// Faktor z<strong>ur</strong> Multiplikation mit jedem Abstand<br />

// (f"<strong>ur</strong> e<strong>in</strong>e "ubersichtlichere Ausgabe)<br />

double factor=100.;<br />

// Nicht-standardisierte Daten<br />

array sampleraw(100,100), masterraw(100,100);<br />

// Faktor z<strong>ur</strong> Multiplikation bei log.-Standardisierung<br />

double logmult=5;<br />

// Anzahl <strong>der</strong> auszugebenden Ergebnisse<br />

unsigned resultNum=10;<br />

// Halbe Breite des gleitenden Mittels<br />

unsigned halfwidth=2;<br />

// Befehl zum L"oschen des work-Verzeichnisses<br />

char *delDir=new char[256];<br />

strcpy(delDir,"rm -f work/*");<br />

unsigned i=0, dummy;<br />

<strong>in</strong>t ok=1;<br />

unsigned dofloatave=1, dolog=1, dologdiff=0;<br />

double tmp;<br />

FILE *file;<br />

char buffer[256], *s;<br />

/*<br />

* E<strong>in</strong>lesen <strong>der</strong> Konfig<strong>ur</strong>ationsdatei<br />

*/<br />

if((file=fopen(configfilename,"r"))!=NULL){<br />

s=fgets(buffer,256,file);<br />

while(s!=NULL){<br />

if(strncmp(buffer,"\\",2)!=0){<br />

//Ke<strong>in</strong> Kommentar<br />

if(strncmp(buffer,"preprocess",10)==0){<br />

if(strncmp((buffer+11),"floatave",8)==0){<br />

dologdiff=0;<br />

//Gleitendes Mittel<br />

dofloatave=1;<br />

88


} else if(strncmp((buffer+11),"logdiff",7)==0){<br />

dofloatave=0;<br />

//Differenz von Logarithmen<br />

dologdiff=1;<br />

} else{<br />

dofloatave=0;<br />

dologdiff=0;<br />

}<br />

} else if(strncmp(buffer,"halfwidth",9)==0){<br />

sscanf(buffer+10, "%i",&halfwidth);<br />

} else if(strncmp(buffer,"dolog",5)==0){<br />

if(strncmp((buffer+6),"true",4)==0){<br />

dolog=1;<br />

} else{<br />

dolog=0;<br />

}<br />

} else if(strncmp(buffer,"logmult",7)==0){<br />

sscanf(buffer+8, "%lf",&logmult);<br />

} else if(strncmp(buffer,"alpha",5)==0){<br />

sscanf(buffer+6, "%u",&alpha);<br />

} else if(strncmp(buffer,"m<strong>in</strong>Ovl",6)==0){<br />

sscanf(buffer+7, "%u",&m<strong>in</strong>Ovl);<br />

} else if(strncmp(buffer,"resultNum",9)==0){<br />

sscanf(buffer+10, "%u",&resultNum);<br />

} else if(strncmp(buffer,"factor",6)==0){<br />

sscanf(buffer+7, "%lf",&factor);<br />

} else if(strncmp(buffer,"w_E",3)==0){<br />

sscanf(buffer+4, "%lf",&w_E);<br />

} else if(strncmp(buffer,"w_I",3)==0){<br />

sscanf(buffer+4, "%lf",&w_I);<br />

} else if(strncmp(buffer,"w_Z",3)==0){<br />

sscanf(buffer+4, "%lf",&w_Z);<br />

} else if(strncmp(buffer,"delDir",6)==0){<br />

strcpy(delDir,buffer+7);<br />

if(!strncmp(delDir,"null",4)){<br />

89


}<br />

delete delDir;<br />

delDir=NULL;<br />

}<br />

}<br />

s=fgets(buffer,256,file);<br />

}<br />

fclose(file);<br />

}//if<br />

/*<br />

* E<strong>in</strong>lesen <strong>der</strong> Date<strong>in</strong>amen (sowie optional alpha und<br />

* resultNum) von <strong>der</strong> Kommandozeile<br />

*/<br />

if(argc


samstartyear=dummy;<br />

sampleraw.set(i++,tmp);<br />

while(ok!=EOF){<br />

ok=fscanf(file, "%u", &dummy);<br />

fscanf(file, "%lf", &tmp);<br />

if(ok!=EOF)<br />

sampleraw.set(i++,tmp);<br />

}<br />

//E<strong>in</strong>-Zeilen-Format<br />

} else{<br />

sampleraw.set(i++,dummy);<br />

while(ok!=EOF){<br />

ok=fscanf(file, "%lf", &tmp);<br />

if(ok!=EOF)<br />

sampleraw.set(i++,tmp);<br />

}<br />

}<br />

samsize=i;<br />

fclose(file);<br />

/*<br />

* E<strong>in</strong>lesen <strong>der</strong> Referenzdaten<br />

*/<br />

ok=1;<br />

i=0;<br />

file=fopen(masname,"r");<br />

if(file==NULL){<br />

cerr


massize=i;<br />

/*<br />

* Berechnung <strong>der</strong> standardisierten Daten<br />

*/<br />

// standardisierte Daten<br />

array sample(samsize,100);<br />

array master(massize,100);<br />

unsigned m<strong>in</strong>Last=m<strong>in</strong>(sampleraw.last,masterraw.last);<br />

if(dofloatave){<br />

//Berechnung e<strong>in</strong>er kle<strong>in</strong>eren 'halfwidth', falls noetig<br />

if((2*halfwidth+1>m<strong>in</strong>Last)||(halfwidth==0)){<br />

halfwidth=(m<strong>in</strong>Last-1)/2;<br />

cout


*<br />

* Berechnung und Ausgabe <strong>der</strong> Abst"ande<br />

*/<br />

if(dofloatave){<br />

cout


}<br />

coutanswer;<br />

cout


void computeResults(resultElement *result, unsigned& rIndex,<br />

unsigned whichBox, double factor);<br />

};<br />

#endif //BOX_H<br />

C.3 box.cc<br />

#<strong>in</strong>clude "box.h"<br />

//----------------------------------------------------------------------/<br />

//----------------------------- box --------------------------/<br />

//----------------------------------------------------------------------/<br />

box:: box(unsigned N, unsigned M, unsigned alpha, unsigned m<strong>in</strong>Ovl){<br />

this->alpha=alpha;<br />

this->m<strong>in</strong>Ovl=m<strong>in</strong>Ovl;<br />

}<br />

N_e=N;<br />

M_e=M;<br />

if(M>N+alpha)<br />

M_e=N+alpha;<br />

else if(M


}<br />

delete []entry[k][nu];<br />

}<br />

delete []entry[k];<br />

}<br />

delete []entry;<br />

//----------------------------------------------------------------------/<br />

//----------------------------- i --------------------------/<br />

//----------------------------------------------------------------------/<br />

<strong>in</strong>t box:: i(unsigned nu, unsigned eta){<br />

//-1 , da <strong>das</strong> Feld bei 0 beg<strong>in</strong>nt<br />

ret<strong>ur</strong>n (2*nu+eta-1);<br />

}<br />

//----------------------------------------------------------------------/<br />

//----------------------------- j --------------------------/<br />

//----------------------------------------------------------------------/<br />

<strong>in</strong>t box:: j(unsigned k, unsigned eta){<br />

//-1 , da <strong>das</strong> Feld bei 0 beg<strong>in</strong>nt<br />

ret<strong>ur</strong>n (k+eta-1);<br />

}<br />

//----------------------------------------------------------------------/<br />

//----------------------------- d --------------------------/<br />

//----------------------------------------------------------------------/<br />

double box:: d(double a, double b){<br />

ret<strong>ur</strong>n sqr(a-b);<br />

}<br />

//----------------------------------------------------------------------/<br />

//----------------------------- maxNu --------------------------/<br />

//----------------------------------------------------------------------/<br />

unsigned box:: maxNu(unsigned k){<br />

ret<strong>ur</strong>n m<strong>in</strong>(k,m<strong>in</strong>((unsigned)(N_e/2),(unsigned)((N_e-m<strong>in</strong>Ovl+k)/2)));<br />

}<br />

//----------------------------------------------------------------------/<br />

//----------------------------- maxEta --------------------------/<br />

//----------------------------------------------------------------------/<br />

unsigned box:: maxEta(unsigned k, unsigned nu){<br />

ret<strong>ur</strong>n m<strong>in</strong>(N_e-2*nu,M_e-k);<br />

}<br />

96


----------------------------------------------------------------------/<br />

//----------------------------- fill --------------------------/<br />

//----------------------------------------------------------------------/<br />

void box:: fill(array& sample, array& master, unsigned sstart,<br />

unsigned mstart,double w_E, double w_I, double w_Z){<br />

unsigned char def<strong>in</strong>ed;<br />

unsigned k,nu,eta;<br />

double miss=0., match=0., doubl=0., m<strong>in</strong>;<br />

for(k=0; k


m<strong>in</strong>=match;<br />

}<br />

entry[k][nu][eta].value=m<strong>in</strong>;<br />

//Speichern e<strong>in</strong>er Abkuerzung<br />

if(((def<strong>in</strong>ed & MATCH) !=0)&&(m<strong>in</strong>==match)){<br />

entry[k][nu][eta].arrow=MATCH;<br />

entry[k][nu][eta].eta=entry[k][nu][eta-1].eta;<br />

} else if(((def<strong>in</strong>ed & DOUBL) !=0)&&(m<strong>in</strong>==doubl)){<br />

entry[k][nu][eta].arrow=DOUBL;<br />

entry[k][nu][eta].eta=eta;<br />

} else if(((def<strong>in</strong>ed & MISS) !=0)&&(m<strong>in</strong>==miss)){<br />

entry[k][nu][eta].arrow=MISS;<br />

entry[k][nu][eta].eta=eta;<br />

}<br />

} //for eta<br />

} //for nu<br />

} //for k<br />

}<br />

//----------------------------------------------------------------------/<br />

//--------------------- computeResults --------------------------/<br />

//----------------------------------------------------------------------/<br />

void box:: computeResults(resultElement *result, unsigned& rIndex,<br />

unsigned whichBox, double factor){<br />

unsigned k,nu,eta,k2,nu2,eta2;<br />

for(k=0; k


eta2=entry[k][nu][eta].eta;<br />

} else{<br />

eta2=eta;<br />

}<br />

nu2=nu;<br />

k2=k;<br />

while(k2>0){<br />

result[rIndex].edits[k2-1].i=i(nu2,eta2);<br />

result[rIndex].edits[k2-1].type=entry[k2][nu2][eta2].arrow;<br />

if(entry[k2][nu2][eta2].arrow==DOUBL){<br />

nu2--;<br />

}<br />

k2--;<br />

eta2=entry[k2][nu2][eta2].eta;<br />

}<br />

}<br />

rIndex++;<br />

}<br />

} //for nu<br />

} //for k<br />

C.4 resultArray.h<br />

#ifndef RESULTARRAY_H<br />

#def<strong>in</strong>e RESULTARRAY_H<br />

#<strong>in</strong>clude "misc.h"<br />

#<strong>in</strong>clude "box.h"<br />

class resultArray{<br />

public:<br />

resultElement *result;<br />

box *b;<br />

stillWork<strong>in</strong>gClass stillWork<strong>in</strong>g;<br />

unsigned rIndex, n, m, boxnum, alpha, m<strong>in</strong>Ovl;<br />

resultArray(unsigned n, unsigned m, unsigned alpha, unsigned m<strong>in</strong>Ovl);<br />

~resultArray();<br />

void fill(array& sample, array& master,double factor,<br />

double w_E, double w_I, double w_Z);<br />

void sort();<br />

99


void show(unsigned resultNum, unsigned masstartyear);<br />

void writeTransformedData(unsigned masstartyear,unsigned resultNum,<br />

array& sampleraw, array& masterraw,char* resultname);<br />

};<br />

#endif //RESULTARRAY_H<br />

C.5 resultArray.cc<br />

#<strong>in</strong>clude "resultArray.h"<br />

//----------------------------------------------------------------------/<br />

//----------------------- resultArray ---------------------------/<br />

//----------------------------------------------------------------------/<br />

resultArray:: resultArray(unsigned n, unsigned m,unsigned alpha,<br />

unsigned m<strong>in</strong>Ovl){<br />

rIndex=0;<br />

this->n=n;<br />

this->m=m;<br />

this->alpha=alpha;<br />

this->m<strong>in</strong>Ovl=m<strong>in</strong>Ovl;<br />

boxnum=n+m-2*m<strong>in</strong>Ovl+1;<br />

}<br />

result=new resultElement[boxnum*((alpha*(alpha+1))/2+alpha+1)];<br />

result[0].length=0;<br />

result[0].value=0.;<br />

//----------------------------------------------------------------------/<br />

//----------------------- ~resultArray ---------------------------/<br />

//----------------------------------------------------------------------/<br />

resultArray:: ~resultArray(){<br />

}<br />

for(unsigned i=0; i0)<br />

delete []result[i].edits;<br />

}<br />

delete[] result;<br />

100


----------------------------------------------------------------------/<br />

//----------------------- fill ---------------------------/<br />

//----------------------------------------------------------------------/<br />

void resultArray:: fill(array& sample, array& master, double factor,<br />

double w_E, double w_I, double w_Z){<br />

for (unsigned ii=0; iicomputeResults(result,rIndex,ii,factor);<br />

//vollstaendige und rechte unvollstaendige Ueberlappugen<br />

} else {<br />

b=new box(n,m+n-ii-m<strong>in</strong>Ovl,alpha,m<strong>in</strong>Ovl);<br />

b->fill(sample, master,0,ii-n+m<strong>in</strong>Ovl,w_E,w_I,w_Z);<br />

b->computeResults(result,rIndex,ii,factor);<br />

}<br />

delete b;<br />

stillWork<strong>in</strong>g.pr<strong>in</strong>t();<br />

}<br />

cout


if(result[ii].whichBox


cerr


for(unsigned kk=0; kk0){<br />

y2-=(result[ii].edits[kk-1].i+1);<br />

}<br />

for(; y=masstartyear)<br />

fpr<strong>in</strong>tf(masfile,"%u\t%f\n",y,masterraw[m++]);<br />

}<br />

if(result[ii].edits[kk].type==DOUBL){<br />

fpr<strong>in</strong>tf(plotfile,"set label \"Z\" at %u,17 center\n",y);<br />

fpr<strong>in</strong>tf(plotfile,"set label \"Z\" at %u,27 center\n",y);<br />

fpr<strong>in</strong>tf(plotfile,"set label \"Z\" at %u,37 center\n",y);<br />

fpr<strong>in</strong>tf(samfile,"%u\t%f\n",y,(sampleraw[s]+sampleraw[s+1]));<br />

s+=2;<br />

//if(y2>=masstartyear)<br />

fpr<strong>in</strong>tf(masfile,"%u\t%f\n",y,masterraw[m++]);<br />

} else {//MISS<br />

fpr<strong>in</strong>tf(plotfile,"set label \"E\" at %u,17 center\n",y);<br />

fpr<strong>in</strong>tf(plotfile,"set label \"E\" at %u,27 center\n",y);<br />

fpr<strong>in</strong>tf(plotfile,"set label \"E\" at %u,37 center\n",y);<br />

fpr<strong>in</strong>tf(samfile,"%u\t%f\n",y,sampleraw.mu(s-1));<br />

//if(y2>=masstartyear)<br />

fpr<strong>in</strong>tf(masfile,"%u\t%f\n",y,masterraw[m++]);<br />

}<br />

y=y2+1;<br />

}//for kk<br />

unsigned lastS=result[ii].length-result[ii].k+result[ii].nu;<br />

//Im Falle e<strong>in</strong>er l<strong>in</strong>ken unvollstaendigen Ueberlappung addiere<br />

//die Anzahl <strong>der</strong> nicht ueberlappenden Daten<br />

if(result[ii].whichBox


}<br />

}<br />

fpr<strong>in</strong>tf(samfile,"%u\t%f\n",y,sampleraw[s++]);<br />

fpr<strong>in</strong>tf(masfile,"%u\t%f\n",y++,masterraw[m++]);<br />

fpr<strong>in</strong>tf(plotfile,"plot \"%s\" with l<strong>in</strong>espo<strong>in</strong>ts, \"%s\" with l<strong>in</strong>espo<strong>in</strong>ts",<br />

samfilename,masfilename);<br />

fpr<strong>in</strong>tf(plotfile,"\npause -1 \" f"<strong>ur</strong> den n"achsten Graph\"");<br />

fclose(plotfile);<br />

fclose(samfile);<br />

fclose(masfile);<br />

// }//if<br />

} //for ii<br />

fclose(resultfile);<br />

char command[20];<br />

spr<strong>in</strong>tf(command,"chmod u+x %s",resultname);<br />

system(command);<br />

C.6 misc.h<br />

#ifndef MISC_H<br />

#def<strong>in</strong>e MISC_H<br />

#<strong>in</strong>clude<br />

#<strong>in</strong>clude<br />

#<strong>in</strong>clude<br />

#<strong>in</strong>clude<br />

#<strong>in</strong>clude<br />

#<strong>in</strong>clude "array.h"<br />

#def<strong>in</strong>e m<strong>in</strong>(a,b) ((a)(b)?(a):(b))<br />

#def<strong>in</strong>e sqr(a) ((a)*(a))<br />

// Konstanten<br />

const unsigned short NONE=0;<br />

const unsigned short MISS=1;<br />

const unsigned short MATCH=2;<br />

const unsigned short DOUBL=4;<br />

105


struct editOp{<br />

unsigned i;<br />

unsigned short type;<br />

};<br />

class cell{<br />

public:<br />

double value;<br />

unsigned short arrow;<br />

unsigned eta;<br />

cell(){<br />

value=0.;<br />

arrow=NONE;<br />

eta=0;<br />

}<br />

};<br />

class resultElement{<br />

public:<br />

double value;<br />

unsigned whichBox,k,nu,length;<br />

editOp *edits;<br />

static <strong>in</strong>t compare(const resultElement *r1, const resultElement *r2){<br />

if(r1->value < r2->value)<br />

ret<strong>ur</strong>n -1;<br />

else if(r1->value > r2->value)<br />

ret<strong>ur</strong>n 1;<br />

else<br />

ret<strong>ur</strong>n 0;<br />

}<br />

};<br />

class stillWork<strong>in</strong>gClass{<br />

unsigned i;<br />

//0 is '/', 1 is '\'<br />

unsigned lastchar;<br />

public:<br />

106


stillWork<strong>in</strong>gClass(){<br />

i=0;<br />

lastchar=0;<br />

}<br />

void pr<strong>in</strong>t(){<br />

if(i==0){<br />

lastchar=1;<br />

cout


~array();<br />

double operator[](unsigned i);<br />

double mu(<strong>in</strong>t i);<br />

void set(unsigned i, double value);<br />

void float<strong>in</strong>g_average(array& raw, unsigned halfwidth,bool dolog);<br />

void log_diff(array& raw, double logmult);<br />

};<br />

#endif //ARRAY_H<br />

C.8 array.cc<br />

#<strong>in</strong>clude "array.h"<br />

//----------------------------------------------------------------------/<br />

//------------------------ array ------------------------------/<br />

//----------------------------------------------------------------------/<br />

array:: array(unsigned size, unsigned <strong>in</strong>crease){<br />

if((A=(double *)malloc(size*sizeof(double)))==NULL){<br />

cerr


}<br />

}<br />

cout


}<br />

last=i+1;<br />

//----------------------------------------------------------------------/<br />

//------------------------ float<strong>in</strong>g_average --------------------------/<br />

//----------------------------------------------------------------------/<br />

void array:: float<strong>in</strong>g_average(array& raw, unsigned halfwidth, bool dolog){<br />

// Prozent des (2*halfwidth+1)-gleitenden Mittels,<br />

// eventuell <strong>der</strong> Logarithmus davon<br />

unsigned i, left, right, mid=0;<br />

double sum=0, factor, newvalue;<br />

factor=2*halfwidth+1;<br />

// l<strong>in</strong>ke unvollstaendige gleitende Mittel<br />

for(i=0; i


}<br />

double sumOfNewvalues=0.;<br />

// vollstaendige gleitende Mittel<br />

newvalue=factor*(double)raw[mid]/(double)sum;<br />

if(dolog)<br />

newvalue=log(newvalue);<br />

set(mid,newvalue);<br />

while(right


Literat<strong>ur</strong>verzeichnis<br />

[1] Roland W. Aniol. Tree-r<strong>in</strong>g analysis us<strong>in</strong>g Catras. Dendrochronologia, 1:45{53, 1983.<br />

[2] R.M. Argent. Dendroclimatological <strong>in</strong>vestigation of river red gum. PhD thesis, University<br />

of Melbo<strong>ur</strong>ne, 1995. Kapitel 10.<br />

[3] Robert Argent and Rob Wilson. The tree r<strong>in</strong>g faq.<br />

http://aqua.civag.unimelb.edu.au/ argent.<br />

[4] M.G.L. Baillie. Tree-R<strong>in</strong>g Dat<strong>in</strong>g and Archaeology. Croom Helm London, 1982.<br />

[5] M.G.L. Baillie and J.R. Pilcher. A simple crossdat<strong>in</strong>g program for tree-r<strong>in</strong>g research.<br />

Tree-R<strong>in</strong>g Bullet<strong>in</strong>, 33:7{14, 1973.<br />

[6] I.N. Bronste<strong>in</strong> and K.A. Semendjajew. Taschenbuch <strong>der</strong> Mathematik. B.G. Teubner,<br />

25 edition, 1991.<br />

[7] Paolo Cherub<strong>in</strong>i and Wolfgang Zierhofer. Baume als Zeugen <strong>der</strong> Klimageschichte.<br />

Spektrum <strong>der</strong> Wissenschaft, pages 122{124, November 1996.<br />

[8] Edward R. Cook and K. Bri a. Data analysis. In Edward R. Cook and Leonar<strong>das</strong> A.<br />

Kairiukstis, editors, Methods of Dendrochronology - Applications <strong>in</strong> the Environmental<br />

Sciences, pages 97{162. Kluwer Academic Publishers and International Institute<br />

for Applied Systems Analysis, Dordrecht, Nie<strong>der</strong>lande, 1990.<br />

[9] Edward R. Cook and Leonar<strong>das</strong> A. Kairiukstis, editors. Methods of Dendrochronology<br />

- Applications <strong>in</strong> the Environmental Sciences. Kluwer Academic Publishers and<br />

International Institute for Applied Systems Analysis, Dordrecht, Nie<strong>der</strong>lande, 1990.<br />

[10] Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest. Introduction to<br />

Algorithms. MIT Press, 1994.<br />

[11] Paul C. Van Deusen. A dynamic program for cross-dat<strong>in</strong>g tree r<strong>in</strong>gs. Canadian<br />

Jo<strong>ur</strong>nal of Forest Research, 20:200{205, 1989.<br />

[12] A.E. Douglass. <strong>Crossdat<strong>in</strong>g</strong> <strong>in</strong> dendrochronology. Jo<strong>ur</strong>nal of Forestry, 39:825{831,<br />

1941.<br />

112


[13] D. Eckste<strong>in</strong> and J. Bauch. Beitrag z<strong>ur</strong> Rationalisierung e<strong>in</strong>es dendrochronologischen<br />

Verfahrens und z<strong>ur</strong> Analyse se<strong>in</strong>er Aussagesicherheit. Forstwissenschaftliches Zentralblatt,<br />

88:230{250, 1969.<br />

[14] Dieter Eckste<strong>in</strong>. Entwicklung und Anwendung <strong>der</strong> <strong>Dendrochronologie</strong> z<strong>ur</strong> Altersbestimmung<br />

<strong>der</strong> Siedlung Haithabu. PhD thesis, Universitat Hamb<strong>ur</strong>g, 1969.<br />

[15] Douglas F. Elliott and K. Ramamohan Rao. Fast Transforms - Algorithms, Analyses,<br />

Applications. Academic Press, 1982.<br />

[16] Harold C. Fritts. Computer programs for tree-r<strong>in</strong>g research. Tree-R<strong>in</strong>g Bullet<strong>in</strong>,<br />

25:2{7, 1963.<br />

[17] H.C. Fritts. Tree R<strong>in</strong>gs and Climate. Academic Press, 1976.<br />

[18] Klaus Gollmer. Proze diagnose mit Mitteln <strong>der</strong> Mustererkennung und Anwendung <strong>in</strong><br />

<strong>der</strong> Biotechnologie. VDI Verlag, 1996.<br />

[19] Dan Gus eld. Algorithms on Str<strong>in</strong>gs, Trees and Sequences. Cambridge University<br />

Press, 1997.<br />

[20] Herman John Heikkenen. Tree-r<strong>in</strong>g patterns: A key-year technique for crossdat<strong>in</strong>g.<br />

Jo<strong>ur</strong>nal of Forestry, pages 302{305, May 1984.<br />

[21] E. Hollste<strong>in</strong>. Mittele<strong>ur</strong>opaische Eichenchronologie. Phillip von Zabern, Ma<strong>in</strong>z am<br />

Rhe<strong>in</strong>, 1980.<br />

[22] Richard L. Holmes. Computer-assisted quality control <strong>in</strong> tree-r<strong>in</strong>g dat<strong>in</strong>g and meas<strong>ur</strong>ement.<br />

Tree-R<strong>in</strong>g Bullet<strong>in</strong>, 43:69{75, 1983.<br />

[23] Bruno Huber. Uber die Sicherheit jahrr<strong>in</strong>gchronologischer Datierung. Holz als Rohund<br />

Werksto , 6:263{268, 1943.<br />

[24] Bruno Huber. <strong>Dendrochronologie</strong>. In Handbuch <strong>der</strong> Mikroskopie <strong>in</strong> <strong>der</strong> Technik,<br />

volume 5, pages 171{211. 1970.<br />

[25] International Tree-R<strong>in</strong>g Data Bank (ITRDB). ITRDB program library.<br />

ftp.ngdc.noaa.gov; http://www.ngdc.noaa.gov/paleo/treer<strong>in</strong>g.html.<br />

[26] Michele Kaennel and Fritz H. Schwe<strong>in</strong>gruber. Multil<strong>in</strong>gual Glossary of Dendrochronology.<br />

Paul Haupt Publishers, Bern, Schweitz, 1995.<br />

[27] Peter Kle<strong>in</strong> and Dieter Eckste<strong>in</strong>. Die <strong>Dendrochronologie</strong> und ihre Anwendung. Spektrum<br />

<strong>der</strong> Wissenschaft, pages 56{68, Januar 1988.<br />

[28] Joseph B. Kruskal and David Sanko . An anthology of algorithms and concepts for<br />

sequence comparison. In David Sanko and Joseph B. Kruskal, editors, Time Warps,<br />

Str<strong>in</strong>g Edits, and Mocromolecules: The Theory and Practice ofSequence Comparison,<br />

chapter 10. Addison-Wesley Publish<strong>in</strong>g Company, 1983.<br />

113


[29] Peter Ian Kuniholm and Bernd Kromer et al. Anatolian tree r<strong>in</strong>gs and the absolute<br />

chronology of the eastern Mediterranean, 2220-718bc. Nat<strong>ur</strong>e, 381:780{783, June<br />

1996.<br />

[30] Roy Lawrance and Robert A. Wagner. An extension of the str<strong>in</strong>g-to-str<strong>in</strong>g correction<br />

problem. Jo<strong>ur</strong>nal of the Association for Comput<strong>in</strong>g Mach<strong>in</strong>ery, 22(2):177{183, 1975.<br />

[31] V.I. Levenshte<strong>in</strong>. B<strong>in</strong>ary codes capable of correct<strong>in</strong>g deletions, <strong>in</strong>sertions, and reversals.<br />

Soviet Physics-Doklady, 10(8):707{710, 1966.<br />

[32] Coralie Mills. Dat<strong>in</strong>g short tree-r<strong>in</strong>g sequences: an evaluation of three statistical<br />

proced<strong>ur</strong>es. In Tree R<strong>in</strong>gs and Environment: Proceed<strong>in</strong>gs of the <strong>in</strong>ternational dendrochronological<br />

symposium <strong>in</strong> Ystad, Schweden, pages 225{229, 1992.<br />

[33] Mart<strong>in</strong> A.R. Munro. An improved algorithm for crossdat<strong>in</strong>g tree-r<strong>in</strong>g series. Tree-<br />

R<strong>in</strong>g Bullet<strong>in</strong>, 44:17{27, 1984.<br />

[34] Hermann Ney. Dynamic programm<strong>in</strong>g as a technique for pattern recognition. In<br />

Proceed<strong>in</strong>gs of the 6th International Conference on Pattern Recognition <strong>in</strong> Munich,<br />

pages 1119{1125, 1982.<br />

[35] H.J. Nussbaumer. Fast Fo<strong>ur</strong>ier Transform and Convolution Algorithms. Spr<strong>in</strong>ger<br />

Verlag, 1981.<br />

[36] M.L. Parker. Dendrochronological techniques used by the geological s<strong>ur</strong>vey of canada.<br />

Technical report, Geological S<strong>ur</strong>vey of Canada, 1971. paper 71-25.<br />

[37] Robert Pohl. Cor<strong>in</strong>a - The Cornell R<strong>in</strong>g Analysis Program. The Malcolm and Carolyn<br />

Wiener Laboratory for Aegean and Near Eastern Dendrochronology, Department<br />

of the History of Art and Archaelogy, Cornell University, Ithaca. Quellcode und<br />

Handbuch.<br />

[38] William H. Press, Saul A. Teukolsky, William T. Vetterl<strong>in</strong>g, and Brian P. Flannery.<br />

Numerical Recipes <strong>in</strong> C. Cambridge University Press, 2. edition, 1992.<br />

[39] Lawrence R. Rab<strong>in</strong>er, Aaron E. Rosenberg, and Stephen E. Lev<strong>in</strong>son. Consi<strong>der</strong>ations<br />

<strong>in</strong> dynamic time warp<strong>in</strong>g algorithms for discrete word recognition. IEEE Transactions<br />

on Acoustics, Speech, and Signal Process<strong>in</strong>g, ASSP-26(6):575{582, 1978.<br />

[40] Thomas Riemer. Uber die Varianz von Jahrr<strong>in</strong>gbreiten. Statistische Methoden f<strong>ur</strong><br />

die Auswertung <strong>der</strong> jahrlichen Dickenzuwachse von Baumen unter sich an<strong>der</strong>nden<br />

Lebensbed<strong>in</strong>gungen. Berichte des Forschungszentrums Waldokosysteme, Reihe A,<br />

Band 121, 1994. Dissertation Universitat Gott<strong>in</strong>gen.<br />

[41] Frank R<strong>in</strong>n. TSAP Reference Manual. Heidelberg.<br />

[42] Hiroaki Sakoe and Seibi Chiba. Dynamic programm<strong>in</strong>g algorithm optimization for<br />

spoken word recognition. IEEE Transactions on Acoustics, Speech, and Signal Process<strong>in</strong>g,<br />

ASSP-26(1):43{49, 1978.<br />

114


[43] David Sanko and Joseph B. Kruskal, editors. Time Warps, Str<strong>in</strong>g Edits, and Mocromolecules:<br />

The Theory and Practice of Sequence Comparison. Addison-Wesley<br />

Publish<strong>in</strong>g Company, 1983.<br />

[44] Ra<strong>in</strong>er Schwabe. Elementare Wahrsche<strong>in</strong>lichkeitstheorie. Skriptum z<strong>ur</strong> Vorlesung im<br />

W<strong>in</strong>tersemester 1990/91, Freie Universitat Berl<strong>in</strong>.<br />

[45] F.H. Schwe<strong>in</strong>gruber. Der Jahrr<strong>in</strong>g. Paul Haupt, Bern, 1983.<br />

[46] F.H. Schwe<strong>in</strong>gruber. Jahrr<strong>in</strong>ge und Umwelt - Dendrookologie. Eidgenossische Forschungsanstalt<br />

f<strong>ur</strong> Wald, Schnee und Landschaft, Birmensdorf, 1993.<br />

[47] F.H. Schwe<strong>in</strong>gruber. Trees and Wood <strong>in</strong> Dendrochronology. Spr<strong>in</strong>ger-Verlag, 1993.<br />

[48] Graham A. Stephen. Str<strong>in</strong>g Search<strong>in</strong>g Algorithms. World Scienti c, 1994.<br />

[49] R.E. Taylor, M<strong>in</strong>ze Stuiver, and Paula J. Reimer. Development and extension of the<br />

calibration of the radiocarbon time scale: Archaeological applications. Quaternary<br />

Science Reviews (Quaternary Geochronology), 15:655{668, 1996.<br />

[50] Esko Ukkonen and Derick Wood. Approximate str<strong>in</strong>g match<strong>in</strong>g with su x automata.<br />

Algorithmica, 10:353{364, 1993.<br />

[51] Robert A. Wagner and Michael J. Fischer. The str<strong>in</strong>g-to-str<strong>in</strong>g correction problem.<br />

Jo<strong>ur</strong>nal of the Association for Comput<strong>in</strong>g Mach<strong>in</strong>ery, 21(1):168{173, 1974.<br />

[52] Ynjiun P. Wang and Theo Pavlidis. Optimal correspondence of str<strong>in</strong>g subsequences.<br />

In IEEE Transactions on Pattern Analysis and Mach<strong>in</strong>e Intelligence, volume 12. 1990.<br />

[53] Wayne M. Wendland. An objective method to identify miss<strong>in</strong>g or false r<strong>in</strong>gs. Tree-<br />

R<strong>in</strong>g Bullet<strong>in</strong>, 35:41{47, 1975.<br />

[54] T.M.L. Wigley, P.D. Jones, and K.R. Bri a. Cross-dat<strong>in</strong>g methods <strong>in</strong> dendrochronology.<br />

Jo<strong>ur</strong>nal of Archaeological Science, 14:51{64, 1987.<br />

[55] Brian Williams. Biostatistiscs. Chapman & Hall, 1993.<br />

[56] Archie G. Worth<strong>in</strong>g and Joseph Ge ner. Treatment of Experimental Data. John<br />

Wiley, Chapman & Hall, 1943.<br />

[57] Taro Yamane. Statistik - E<strong>in</strong> e<strong>in</strong>fuhrendes Lehrbuch, volume 1. Fischer, 1976.<br />

115

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!