1 Seite 1 Kapitel 5 Fehlererkennende Codes Kapitel 5

Werbung
Kapitel
Kapitel55
Fehlererkennende
FehlererkennendeCodes
Codes
Inhalt
Inhalt
5.1
5.1Grundlagen:
Grundlagen:Was
Wassind
sindVehler?
Vehler?
5.2
5.2Vertuaschungsfehler
Vertuaschungsfehler
5.3
5.3Der
DerISBN-Code
ISBN-Code
3-406-45404-6
3-406-45404-6
5.4
5.4Der
DerEAN-Code
EAN-Code(„Strichcode“)
(„Strichcode“)
© Beutelspacher
Juni 2004
Seite 2
Kapitel 5
Seite 1
1
5.1
5.1Grundlagen:
Grundlagen:Was
Wassind
sindVehler?
Vehler?
Bei
Beider
derSpeicherung
Speicherungund
undÜbertragung
Übertragungvon
vonDaten
Daten(Texten,
(Texten,Zahlen)
Zahlen)
entstehen
Fehler:
Zeichen
können
verändert
werden,
vertauscht
entstehen Fehler: Zeichen können verändert werden, vertauscht
werden,
werden,wegfallen
wegfallenusw.:
usw.:Vehler,
Vehler,Feler,
Feler,Fehlerrr,
Fehlerrr,...
...
Definition:
Definition:Ein
EinFehler
Fehlereines
einesTextes
Textes(d.h.
(d.h.Buchstaben
Buchstabenoder
oder
Zahlenfolge)
Zahlenfolge)besteht
besteht(für
(füruns)
uns)darin,
darin,
dass
dassein
einoder
odermehrerer
mehrererZeichen
Zeichenverändert
verändertwerden
werden
(d.h.
zu
anderen
Zeichen
werden).
(d.h. zu anderen Zeichen werden).
Ziel:
Ziel:Der
DerEmpfänger
Empfängersoll
sollerkennen
erkennenkönnen:
können:
ob
ein
(oder
mehrere)
Fehler
passiert
ob ein (oder mehrere) Fehler passiertsind
sind(Fehlererkennung)
(Fehlererkennung)
wie
wiedie
dieOriginalzeichen
Originalzeichenaussehen
aussehen(Fehlerkorrektur).
(Fehlerkorrektur).
© Beutelspacher
Juni 2004
Seite 3
Kapitel 5
Die
DieMethode
Methode
Grundidee:
Grundidee: Man
Manfügt
fügtder
derNachricht
Nachrichtetwas
etwashinzu,
hinzu,
eine
„Kontrollinformation“,
die
dazu
dient,
eine „Kontrollinformation“, die dazu dient,
eventuelle
eventuelleÜbertragungsfehler
Übertragungsfehlerzu
zuerkennen.
erkennen.
Beispiele:
Beispiele:
Namen
Namen buchstabieren
buchstabieren („Emm
(„Emmooenn
ennenn
ennte
teaage“)
ge“)
Buchstabieralphabete
Buchstabieralphabete(„A
(„Awie
wieAnton,
Anton,BBwie
wieBerta,
Berta,...“)
...“)
Natürliche
NatürlicheSprachen
Sprachensind
sind redundant
redundant(haben
(habenüberflüssige
überflüssige
Information):
Information):man
man vrsteht
vrsteht alls,
alls,auc
auc wnn
wnneinge
eingeBchstbn
Bchstbnfhln.
fhln.
Selpst
Selpstwen
wengroppe
groppe recktscreib
recktscreibFelr
Felrauftren,
auftren,ged
geddr
drßinn
ßinnnich
nichfärlohn.
färlohn.
© Beutelspacher
Juni 2004
Seite 4
Kapitel 5
Seite 2
2
Die
DiePrüfziffer
Prüfziffer
Beispiel:
Beispiel:Wir
Wirwollen
wollen4-stellige
4-stelligeZahlen
Zahlenübermitteln.
übermitteln.Der
DerEmpfänger
Empfänger
soll
merken,
ob
die
Daten
korrekt
sind.
soll merken, ob die Daten korrekt sind.
Da
Daman
mandies
diesan
anden
denDaten
Datenselbst
selbstnicht
nichterkennen
erkennenkann,
kann,fügt
fügtman
man
eine
Ziffer
hinzu
(man
erhält
also
eine
5-stellige
Zahl),
und
zwar
eine Ziffer hinzu (man erhält also eine 5-stellige Zahl), und zwarso,
so,
dass
dassdie
dieQuersumme
Quersummedieser
dieserZahl
Zahleine
eineZehnerzahl
Zehnerzahlist.
ist.
Die
Ziffer
an
der
hinzugefügten
Stelle
heißt
Prüfziffer.
Die Ziffer an der hinzugefügten Stelle heißt Prüfziffer.
Konkret:
Konkret:man
manbestimmt
bestimmtdie
dieSumme
Summeder
derersten
erstenvier
vierZiffern
Ziffernund
und
ergänzt
ergänztdiese
dieseSumme
Summedurch
durchdie
diePrüfziffer
Prüfzifferzur
zurnächsten
nächstenZehnerzahl.
Zehnerzahl.
Beispiel:
Beispiel:Wenn
Wenndie
dieDaten
Datendie
dieZahl
Zahl 1234
1234 sind,
sind,so
soist
istdie
diePrüfziffer
Prüfziffer0;
0;
der
derDatensatz
Datensatz 4813
4813 hat
hatdie
diePrüfziffer
Prüfziffer4.
4.
Übermittelt
Übermitteltwird
wirddann
danndie
dieFolge
Folge 12340
12340 bzw.
bzw.48134
48134
© Beutelspacher
Juni 2004
Seite 5
Kapitel 5
Code
Code
Man
Manspricht
sprichtvon
voneinem
einemCode.
Code.Im
ImBeispiel
Beispielist
istder
derCode
Codedie
dieMenge
Menge
aller
5-stelligen
Zahlen,
deren
Quersumme
durch
10
teilbar
aller 5-stelligen Zahlen, deren Quersumme durch 10 teilbarist:
ist:
CC=={a
{a11aa22aa33aa44aa55| | aai i∈∈{0,
{0,1,
1,...,
...,9},
9},aa11+a
+a22+a
+a33+a
+a44+a
+a55ist
istdurch
durch10
10 teilb.}.
teilb.}.
Die
DieElemente
Elementeeines
einesCodes
Codesnennt
nenntman
man Codewörter.
Codewörter.
Der
DerEmpfänger
Empfängerakzeptiert
akzeptierteine
eineNachricht
Nachrichtnur,
nur,
wenn
sie
ein
Codewort
ist.
wenn sie ein Codewort ist.
Konkret:
Konkret:Der
DerEmpfänger
Empfängersummiert
summiertdie
dieZiffern
Ziffern(inklusive
(inklusiveder
der
Prüfziffer).
Er
akzeptiert
die
Nachricht
nur,
wenn
dies
eine
Prüfziffer). Er akzeptiert die Nachricht nur, wenn dies eine
Zehnerzahl
Zehnerzahlist.
ist.
Beispiel:
12340
Beispiel: 12340 wird
wirdakzeptiert
akzeptiert 12840
12840 nicht.
nicht.
© Beutelspacher
Juni 2004
Seite 6
Kapitel 5
Seite 3
3
Definition
Definitioneines
einesParitätscodes
Paritätscodes
Definition.
Definition.Man
Manbezeichnet
bezeichnetdie
dieMenge
Menge
CC=={a
{0, 1, ..., 9}, a1++ aa2++...
+ an ist
durch 10 teilbar}
{a11aa22...
... aann| | aai∈
i∈ {0, 1, ..., 9}, a
1
2 ... + a
n ist durch 10 teilbar}
als
alsParitätscode
Paritätscode der
derLänge
Länge nn zur
zurBasis
Basis10.
10.
5.1.1
5.1.1Satz:
Satz:Jeder
JederParitätscode
Paritätscodeerkennt
erkenntEinzelfehler.
Einzelfehler.
Beweis.
Beweis. Sei
Sei aa11aa22...a
...annein
einCodewort.
Codewort.Dann
Dannist
ist aa11+a
+a22+...+
+...+aann durch
durch
10
10 teilbar.
teilbar.Es
Essei
seiein
einFehler
Fehlerder
derersten
erstenStelle
Stelleaufgetreten.
aufgetreten.D.h.
D.h. aa1
1
wurde
wurdeinineine
eineandere
andereZiffer
Ziffer aa11' '≠≠ aa11 verwandelt.
verwandelt.
Angenommen,
auch
a
’a
...a
wäre
ein
Angenommen, auch a1 ’a2 ...an wäre einCodewort.
Codewort.Dann
Dannwäre
wäreauch
auch
1
2
n
aa1’+a
22++ ...+a
...+ann durch
durch 10
10 teilbar.
teilbar.
1’+a
© Beutelspacher
Juni 2004
Seite 7
Kapitel 5
Beweis
Beweis(Fortsetzung)
(Fortsetzung)
Dann
Dannist
ist(2.1.1)
(2.1.1)auch
auchdie
dieDifferenz
Differenz
(a
(a11++ aa22++...
...++aann))––(a
(a11' ' ++aa22++...
...++aann))==aa11––aa11‘ ‘
durch
durch 10
10 teilbar.
teilbar.
Da
a
und
1
Da a1 und aa11‘ ‘ Ziffern
Ziffernaus
aus {0,
{0,1,
1,...,
...,9}
9} sind,
sind,muss
mussgelten:
gelten:
–9
–9≤≤aa11––aa11‘ ‘≤≤9.
9.
Die
Dieeinzige
einzigeZahl
Zahlinindiesem
diesemBereich,
Bereich,die
diedurch
durch 10
10 teilbar
teilbarist,
ist,ist
ist 0.
0.
Also
folgt:
a
–
a
‘
=
0,
d.h.
a
=
a
‘.
Also folgt: a1 – a1 ‘ = 0, d.h. a1 = a1 ‘.
1
1
1
1
Das
Dasist
istein
einWiderspruch,
Widerspruch,also
alsoist
ist aa11’a’a22...a
...ann kein
keinCodewort.
Codewort.
© Beutelspacher
Juni 2004
Seite 8
Kapitel 5
Seite 4
4
5.2
5.2Vertuaschungsfehler
Vertuaschungsfehler
Definition.
Definition.Wir
Wirsagen:
sagen:Ein
EinCode
Code CC erkennt
erkenntVertauschungsfehler,
Vertauschungsfehler,
falls
für
jedes
Codewort
a
a
...
a
a
...a
gilt:
Die
falls für jedes Codewort a1 a2 ... ai ai+1 ...an gilt: Diedurch
durch VertauVertau1 2
i i+1
n
schung
(mit a ≠ a ))erzeugte
Folge
schungder
derElemente
Elemente aai i und
und aai+1
i+1 (mit ai i ≠ ai+1
i+1 erzeugte Folge
aa1aa2...
... aai+1aai...a
...an ist
istkein
keinCodewort.
Codewort.
1 2
i+1 i
n
Die
Diebisherigen
bisherigenParitätscodes
Paritätscodeserkennen
erkennenkeine
keineVertauschungsfehler.
Vertauschungsfehler.
Da
3
+
5
=
5
+
3
ist,
kann
man
35
→
53
nicht
Da 3 + 5 = 5 + 3 ist, kann man 35 → 53 nichterkennen.
erkennen.
Wunsch:
Wunsch:Die
Dieeinzelnen
einzelnenStellen
Stellensollen
sollenunterschiedlich
unterschiedlich„stark“
„stark“inin die
die
Quersumme
eingehen.
Quersumme eingehen.
Idee:
Idee: Jede
JedeStelle
Stellewird
wirdmit
miteinem
einem„Gewicht”
„Gewicht”versehen.
versehen.Die
Die
entsprechende
Ziffer
wird
mit
diesem
Gewicht
multipliziert,
entsprechende Ziffer wird mit diesem Gewicht multipliziert,
bevor
bevorsie
sieinindie
dieQuersumme
Quersummeeingeht.
eingeht.
© Beutelspacher
Juni 2004
Seite 9
Kapitel 5
Beispiel
Beispiel(Kontonummern,
(Kontonummern,Loknummern
Loknummern...)
...)
(Konto)nummer
(Konto)nummerohne
ohnePrüfziffer:
Prüfziffer: 11
88
99
88
22
88
00
11
Gewichtung
Gewichtung
11
22
11
22
11
22
11
22
Produkte
Produkte(Ziffer
(Ziffer ×× Gewicht)
Gewicht)
11
16
16 99
16
16 00
22
16
16 22
Dann
Dannwird
wirddie
dieSumme
Summe SS dieser
dieserProdukte
Produktebestimmt;
bestimmt;es
esergibt
ergibtsich
sich
SS==11++16
16++99++16
16++22++16
16++00++22==62.
62.
Diese
DieseZahl
Zahlwird
wirddurch
durchdie
die Prüfziffer
Prüfzifferzur
zurnächsten
nächstenZehnerzahl
Zehnerzahl
ergänzt.
ergänzt.
Die
DiePrüfziffer
Prüfzifferist
istalso
alsogleich
gleich 8,
8,
und
die
vollständige
Kontonummer
und die vollständige Kontonummerlautet
lautet 189
189828
828018.
018.
© Beutelspacher
Juni 2004
Seite 10
Kapitel 5
Seite 5
5
Code
Code11
Wir
Wirbeschreiben
beschreibendiesen
diesenCode
Code(„Code
(„Code1”)
1”)formal:
formal:
CC1 =={a
{a11aa22aa33aa44aa55aa66aa77aa88aa99| |
1
10
teilt
a
+
2a
+
a
10 teilt a11 + 2a22 + a33++2a
2a44++ aa55++2a
2a66++ aa77++2a
2a88++ aa99}.}.
Vorteil:
Vorteil:In
Indiesem
diesemCode
Code11können
könnenwir
wirprinzipiell
prinzipiellVertauschungsfehler
Vertauschungsfehler
erkennen,
da
benachbarte
Stellen
verschieden
gewichtet
erkennen, da benachbarte Stellen verschieden gewichtetwerden.
werden.
Nachteil:
Nachteil:Code
Code11erkennt
erkenntnicht
nichtalle
alleEinzelfehler!
Einzelfehler!
Wenn
an
einer
mit
2
gewichteten
Stelle
Wenn an einer mit 2 gewichteten Stelledie
dieZahl
Zahl 88 mit
mitder
derZahl
Zahl 33
vertauscht
vertauschtwird,
wird,so
soliefert
liefertdie
die88den
denBeitrag
Beitrag16,
16,die
dieZahl
Zahl 33 den
den
Beitrag
Beitrag 66 zur
zurSumme
Summe S;
S;also
alsoergibt
ergibtsich
sichdie
diegleiche
gleichePrüfziffer.
Prüfziffer.
Ebenso
werden
7
↔2,
6
↔
1,
5
↔
0
und
9
↔
4
nicht
Ebenso werden 7 ↔2, 6 ↔ 1, 5 ↔ 0 und 9 ↔ 4 nichterkannt.
erkannt.
© Beutelspacher
Juni 2004
Seite 11
Kapitel 5
Code
Code22
Kontonummer
Kontonummerohne
ohnePrüfziffer:
Prüfziffer: 11
Gewichtung
11
Gewichtung
Produkte
11
Produkte(Ziffer
(Ziffer ×× Gewicht)
Gewicht)
Quersummen
Quersummendieser
dieserProdukte
Produkte 11
88
22
99
11
16
16 99
77 99
88
22
22
11
16
16 22
77 22
88
22
00
11
11
22
16
16 00
77 00
22
22
Dann
Dannwird
wirddie
dieSumme
Summe SS dieser
dieserQuersummen
Quersummenbestimmt:
bestimmt:
SS==11++77++99++77++22++77++00++22==35.
35.
Diese
DieseZahl
Zahlwird
wirddurch
durchdie
die Prüfziffer
Prüfzifferzur
zurnächsten
nächstenZehnerzahl
Zehnerzahl
ergänzt.
ergänzt.
Die
DiePrüfziffer
Prüfzifferist
istalso
also5,
5,
und
unddie
dievollständige
vollständigeKontonummer
Kontonummerlautet
lautet 189
189828
828015.
015.
© Beutelspacher
Juni 2004
Seite 12
Kapitel 5
Seite 6
6
Code
Code22erkennt
erkenntEinzelfehler
Einzelfehler
5.2.1
5.2.1Satz.
Satz.Der
DerCode
Code22erkennt
erkenntalle
alleEinzelfehler.
Einzelfehler.
Beweis.
Beweis. Stellen,
Stellen,die
diemit
mit11gewichtet
gewichtetsind:
sind:o.k.
o.k. (vergleiche
(vergleiche3.2.1.)
3.2.1.)
Wir
Wirbetrachten
betrachteneine
einemit
mit22gewichtete
gewichteteStelle.
Stelle.Zu
Zuzeigen:
zeigen:Die
DieQuerQuersummen
des
Doppelten
der
Ziffern
sind
verschieden.
(Das
ist
summen des Doppelten der Ziffern sind verschieden. (Das istder
der
Beitrag,
Beitrag,der
dervon
vondieser
dieserStelle
Stelleinindie
dieSumme
Summe SS eingeht.
eingeht.Wenn
Wenndiese
diese
Zahlen
Zahlenalle
alleverschieden
verschiedensind,
sind,dann
dannwerden
werdenalle
alleEinzelfehler
Einzelfehlererkannt.)
erkannt.)
Ziffer
Ziffer
00 11
22
33
44
55
66 77
Produkt
Produkt(Ziffer
(Ziffer×× Gewicht)
Gewicht) 00 22
44
66
88
10
10 12
12 14
14 16
16 18
18
Quersumme
Quersummedes
desProdukts
Produkts 00 22
44
66
88
11
33 55
88
77
99
99
© Beutelspacher
Juni 2004
Seite 13
Kapitel 5
5.3
5.3Der
DerISBN-Code
ISBN-Code
ISBN
ISBN==Internationale
InternationaleStandard
StandardBuch
BuchNummer
Nummer
Jede
JedeISBN
ISBNhat
hatzehn
zehnStellen,
Stellen,die
dieininvier
vierGruppen
Gruppeneingeteilt
eingeteiltsind.
sind.
Erste
ErsteGruppe:
Gruppe: Sprachraum
Sprachraum(0,
(0,1:
1:englisch,
englisch,2:
2:französisch,
französisch,3:
3:deutsch,
deutsch,
...,
88:
italienisch,
...)
..., 88: italienisch, ...)
Zweite
ZweiteGruppe:
Gruppe: Verlag
Verlag(528:
(528:Verlag
VerlagVieweg)
Vieweg)
Dritte
DritteGruppe:
Gruppe: Nummer
Nummerdes
desBuches
Buches(z.B.
(z.B.16783:
16783:„In
„InMathe
Mathewar
warich
ich
immer
schlecht
...“).
immer schlecht ...“).
Vierte
VierteGruppe:
Gruppe: Prüfsymbol.
Prüfsymbol.
© Beutelspacher
Juni 2004
Seite 14
Kapitel 5
Seite 7
7
Berechnung
Berechnungdes
desPrüfsymbols
Prüfsymbols
Sei
Sei aa11aa22aa33...
... aa99aa1010 eine
eineISBN
ISBN(also
(alsoist
ist aa1010 das
dasPrüfsymbol).
Prüfsymbol).Dieses
Dieses
wird
so
bestimmt,
dass
die
Zahl
wird so bestimmt, dass die Zahl
10⋅a
10⋅a11++ 9⋅a
9⋅a22++ 8⋅a
8⋅a33++ 7⋅a
7⋅a44++ 6⋅a
6⋅a55++ 5⋅a
5⋅a66++ 4⋅a
4⋅a77++ 3⋅a
3⋅a88++ 2⋅a
2⋅a99++ 1⋅a
1⋅a1010
eine
eineElferzahl
Elferzahlist.
ist.Das
Dasbedeutet:
bedeutet:Man
Manbestimmt
bestimmtdie
dieZahl
Zahl
SS==10⋅a
10⋅a11++ 9⋅a
9⋅a22++ 8⋅a
8⋅a33++ 7⋅a
7⋅a44++ 6⋅a
6⋅a55++ 5⋅a
5⋅a66++ 4⋅a
4⋅a77++ 3⋅a
3⋅a88++ 2⋅a
2⋅a99
und
undergänzt
ergänztdiese
diesedurch
durchdas
dasPrüfsymbol
Prüfsymbol aa1010 zur
zurnächsten
nächsten Elferzahl.
Elferzahl.
Welche
WelcheWerte
Wertekann
kann aa1010 annehmen?
annehmen? 0,
0,1,
1,2,
2,3,
3,...,
...,99 oder
oder 10.
10.
Wenn
sich
10
ergibt,
so
schreibt
man
X
(römische
Zehn).
Wenn sich 10 ergibt, so schreibt man X (römische Zehn).
© Beutelspacher
Juni 2004
Seite 15
Kapitel 5
Qualität
Qualitätdes
desISBN-Codes
ISBN-Codes
Formale
FormaleBeschreibung
Beschreibungdes
desISBN-Codes:
ISBN-Codes:
CCISBN =={a
{a11aa22...a
...a1010| |
ISBN
11
11 teilt
teilt 10⋅a
10⋅a11++ 9⋅a
9⋅a22++ 8⋅a
8⋅a33++ 7⋅a
7⋅a44++...
...++3⋅a
3⋅a88++ 2⋅a
2⋅a99++ 1⋅a
1⋅a1010}.}.
Dass
Dass der
der ISBN-Code
ISBN-Codesuper
superist,
ist,sagt
sagtder
derfolgende
folgendeSatz:
Satz:
5.3.1
5.3.1Satz.
Satz.(a)
(a)Der
DerISBN-Code
ISBN-Codeerkennt
erkenntalle
alleEinzelfehler.
Einzelfehler.
(b)
Der
ISBN-Code
erkennt
alle
Vertauschungsfehler
(b) Der ISBN-Code erkennt alle Vertauschungsfehler
––sogar
sogaran
anbeliebigen
beliebigenStellen.
Stellen.
© Beutelspacher
Juni 2004
Seite 16
Kapitel 5
Seite 8
8
Beweis
Beweis
Beweis.
Beweis. (a):
(a):Übungsaufgabe.
Übungsaufgabe.
(b)
(b)Wir
Wirzeigen,
zeigen,dass
dassder
derISBN-Code
ISBN-Codejede
jedeVertauschung
Vertauschungder
derersten
ersten
beiden
Stelle
erkennt.
Sei
dazu
a
a
a
...
a
a
eine
ISBN.
Also
beiden Stelle erkennt. Sei dazu a1 a2 a3 ... a9 a10 eine ISBN. Alsoist
ist
1 2 3
9 10
10⋅a
10⋅a11++ 9⋅a
9⋅a22++ 8⋅a
8⋅a33++ 7⋅a
7⋅a44++ 6⋅a
6⋅a55++ 5⋅a
5⋅a66++ 4⋅a
4⋅a77++ 3⋅a
3⋅a88++ 2⋅a
2⋅a99++ 1⋅a
1⋅a1010
eine
einedurch
durch11
11teilbare
teilbareZahl.
Zahl.
Nun
Nun mögen
mögen die
die ersten
ersten beiden
beiden Ziffern
Ziffern vertauscht
vertauscht werden;
werden; es
es entsteht
entsteht
also
alsodie
dieFolge
Folge aa2aa1aa3...
... aa9aa10..Wir
Wirkönnen
können aa1 ≠≠ aa2 voraussetzen.
voraussetzen.
2 1 3
9 10
1
2
Angenommen,
Angenommen,auch
auchdies
dieswäre
wäreein
einCodewort.
Codewort.Dann
Dannwäre
wäreauch
auch
10⋅a
10⋅a22++ 9⋅a
9⋅a11++ 8⋅a
8⋅a33++ 7⋅a
7⋅a44++ 6⋅a
6⋅a55++ 5⋅a
5⋅a66++ 4⋅a
4⋅a77++ 3⋅a
3⋅a88++ 2⋅a
2⋅a99++ 1⋅a
1⋅a1010
eine
einedurch
durch 11
11 teilbare
teilbareZahl.
Zahl.
© Beutelspacher
Juni 2004
Seite 17
Kapitel 5
Beweis
Beweis(Fortsetzung)
(Fortsetzung)
Zusammen
Zusammenfolgt
folgtmit
mit2.1.2,
2.1.2,dass
dass 11
11 auch
auchfolgende
folgendeZahl
Zahlteilt:
teilt:
10⋅a
10⋅a11++ 9⋅a
9⋅a22––(10⋅a
(10⋅a22++ 9⋅a
9⋅a11))==aa11––aa22..
Nun
Nunargumentieren
argumentierenwir
wirwie
wieim
imBeweis
Beweisvon
von3.4.1:
3.4.1:
Da
a
und
a
beide
zwischen
0
und
9
liegen,
Da a1 und a2 beide zwischen 0 und 9 liegen,
1
2
ist
istdie
dieDifferenz
Differenz aa11––aa22 eine
eineZahl
Zahlzwischen
zwischen –9
–9 und
und +9.
+9.
Die
einzige
durch
11
teilbare
Zahl
in
diesem
Bereich
ist
Die einzige durch 11 teilbare Zahl in diesem Bereich istaber
aber 0.0.
Daher
Daherist
ist aa11––aa22==0,
0,das
dasheißt
heißt aa11==aa22..
Dieser
DieserWiderspruch
Widerspruchzeigt,
zeigt,dass
dassder
derISBN-Code
ISBN-CodeVertauschungen
Vertauschungender
der
ersten
erstenbeiden
beidenStellen
Stellen100%ig
100%igerkennt.
erkennt.
© Beutelspacher
Juni 2004
Seite 18
Kapitel 5
Seite 9
9
5.4
5.4Der
DerEAN-Code
EAN-Code
EAN
EAN== Europäische
EuropäischeArtikel
ArtikelNummer
Nummer
Ziele:
Ziele:(a)
(a)Schutz
Schutzgegen
gegenEinzelfehler
Einzelfehlerund
und(in
(ingeringerem
geringeremUmfang)
Umfang)
gegen
Vertauschungsfehler
gegen Vertauschungsfehler
(b)
(b)Nummer
Nummersowohl
sowohlmenschenmenschen-als
alsauch
auchmaschinenlesbar.
maschinenlesbar.
Methoden:
Methoden:(a)
(a)Prüfziffer
Prüfziffer
(b)
Strichcode
(Barcode)
(b) Strichcode (Barcode)(für
(fürLesbarkeit
Lesbarkeitdurch
durcheinen
einenScanner)
Scanner)
Konsequenz:
Konsequenz:In
Inden
den„Strichen“
„Strichen“steckt
stecktdie
diegleiche
gleicheInformation
Informationwie
wieinin
den
den„Ziffern“;
„Ziffern“;darin
darinist
istkeine
keine„Geheiminformation“
„Geheiminformation“verborgen.
verborgen.
© Beutelspacher
Juni 2004
Seite 19
Kapitel 5
EAN
EAN
Eine
EineEAN
EANhat
hat13
13(oder,
(oder,bei
beikleinen
kleinenArtikeln,
Artikeln,8)
8)Stellen,
Stellen,
die
in
vier
Gruppen
eingeteilt
sind.
die in vier Gruppen eingeteilt sind.
Erste
ErsteGruppe
Gruppe (2
(2 Ziffern):
Ziffern):Land
Land der
der Herstellung
Herstellung (00-09:
(00-09:U.S.A.,
U.S.A.,
Canada,
30-37:
Frankreich,
40-43:
Deutschland,
50:
U.K.,
Canada, 30-37: Frankreich, 40-43: Deutschland, 50: U.K.,54:
54:
Belgien,
Belgien,57:
57:Dänemark,
Dänemark,76:
76:Schweiz,
Schweiz,80-81:
80-81:Italien,
Italien,90-91:
90-91:
Österreich,
Österreich,...)
...)
Zweite
ZweiteGruppe
Gruppe (5
(5 Ziffern):
Ziffern):bundeseinheitliche
bundeseinheitlicheBeztriebsnummer
Beztriebsnummer
Dritte
DritteGruppe
Gruppe(5
(5 Ziffern):
Ziffern):Herstellespezifische
HerstellespezifischeArtikelnummer
Artikelnummer
Vierte
VierteGruppe
Gruppe(1
(1 Ziffer):
Ziffer):Prüfziffer
Prüfziffer
© Beutelspacher
Juni 2004
Seite 20
Kapitel 5
Seite 10
10
Die
DiePrüfziffer
Prüfzifferbeim
beimEAN-Code
EAN-Code
EAN
EANohne
ohne Prüfz.:
Prüfz.: 44 00 00 00 44 11 77 00 22 00 00 00
Gewichtung
Gewichtung
11 33 11 33 11 33 11 33 11 33 11 33
Produkte
Produkte
44 00 00 00 44 33 77 00 22 00 00 00
Dann
Dannwird
wirddie
dieSumme
Summe SS dieser
dieserProdukte
Produktebestimmt;
bestimmt;es
esergibt
ergibtsich
sich
SS==44++00++00++00++44++33++77++00++22++00++00++00==20.
20.
Diese
DieseZahl
Zahlwird
wirddurch
durchdie
die Prüfziffer
Prüfzifferzur
zurnächsten
nächstenZehnerzahl
Zehnerzahl
ergänzt.
ergänzt.
Die
DiePrüfziffer
Prüfzifferist
istalso
alsogleich
gleich 0,
0,
und
die
vollständige
EAN
lautet
und die vollständige EAN lautet 40
4000417
0041702000
020000.
0.
© Beutelspacher
Juni 2004
Seite 21
Kapitel 5
Eigenschaften
Eigenschaftendes
desEAN-Codes
EAN-Codes
5.4.1.
5.4.1.Satz.
Satz.Der
DerEAN
EANCode
Codeerkennt
erkenntalle
alleEinzelfehler
Einzelfehler
Der
DerEAN-Code
EAN-Codeerkennt
erkenntnicht
nichtalle
alle(aber
(aberdie
diemeisten)
meisten)
Vertauschungsfehler.
Vertauschungsfehler.
Beweis:
Beweis: Übungsaufgabe
Übungsaufgabe
Bemerkung:
Bemerkung:Da
Dabeim
beimLesen
Lesendurch
durcheinen
einenScanner
Scannerpraktisch
praktischkeine
keine
Vertauschungsfehler
vorkommen,
war
es
entscheidend,
eine
Vertauschungsfehler vorkommen, war es entscheidend, einesehr
sehr
gute
guteEinzelfehlererkennung
Einzelfehlererkennungzu
zugewährleisten.
gewährleisten.
© Beutelspacher
Juni 2004
Seite 22
Kapitel 5
Seite 11
11
Der
DerStrichcode
Strichcode
Die
DieÜbersetzung
Übersetzungeiner
einerEAN
EANininden
denmaschinenlesbaren
maschinenlesbarenStrichcode
Strichcode
erfolgt
auf
raffinierte
Art
und
Weise.
erfolgt auf raffinierte Art und Weise.
Zusätzliche
ZusätzlicheZiele:
Ziele:1.
1.Man
Manmuss
musserkennen
erkennenkönne,
könne,ininwelcher
welcherRichtung
Richtung
die
Ziffern
gelesen
werden
(von
vorne
nach
hinten
o.u.).
die Ziffern gelesen werden (von vorne nach hinten o.u.).
2.
2.Man
Manmöchte
möchtezwei
zweiHälften
Hälftenaus
aus66Ziffern
Ziffernhaben;
haben;daher
daherwird
wirddie
dieerste
erste
Ziffer
Zifferimplizit
implizitdurch
durchdie
dieandern
anderncodiert.
codiert.Konsequenz:
Konsequenz:Man
Manbraucht
braucht
verschiedene
verschiedene Zeichensätze.
Zeichensätze.
Methode:
Methode:Jede
JedeZiffer
Zifferwird
wirdinineine
eineFolge
Folgevon
vonsieben
siebenweißen
weißenund
und
schwarzen
schwarzenStreifen
Streifengleicher
gleicherDicke
Dickeübersetzt.
übersetzt.(Diese
(DieseStreifen
Streifenfügen
fügen
sich
sichzu
zumehr
mehroder
oderweniger
wenigerdicken
dickenschwarzen
schwarzenund
undweißen
weißenStreifen
Streifen
zusammen.)
Siehe
Tabelle
auf
der
nächsten
Folien.
zusammen.) Siehe Tabelle auf der nächsten Folien.
© Beutelspacher
Juni 2004
Seite 23
Kapitel 5
Die
DieTabelle
Tabellefür
fürdie
dieStrichcodes
Strichcodes
© Beutelspacher
Juni 2004
Seite 24
Kapitel 5
Seite 12
12
Prinzip
Prinzipdes
desStrichcodes
Strichcodes
Beobachtung:
Beobachtung:Jedes
JedesZeichen
Zeichendes
desZeichensatzes
ZeichensatzesAAhat
hateine
eine
ungerade
Anzahl
von
schwarzen
Streifen,
aber
bei
B
und
ungerade Anzahl von schwarzen Streifen, aber bei B undCChat
hat
jedes
jedesZeichen
Zeicheneine
einegerade
geradeAnzahl
Anzahlvon
vonschwarzen
schwarzenStreifen.
Streifen.
Tatsächlich
Tatsächlichist
istCCdas
das„Komplement“
„Komplement“von
vonA.
A.
Wie
Wiewerden
werdendie
dieZiffern
Ziffern aa11,, aa22,, aa33,,...,
...,aa1313 einer
einerEAN
EAN
ininStrichmuster
codiert?
Strichmuster codiert?
•• Die
DieZiffern
Ziffern aa88,, aa99,,...,
...,aa1313(also
(alsodie
diezweite
zweiteHälfte)
Hälfte)wird
wirdstets
stetsmit
mit
Zeichensatz
C
codiert.
Zeichensatz C codiert.
•• Die
DieZiffern
Ziffern aa22,, aa33,,...,
...,aa77 werden
werdengemäß
gemäßfolgender
folgenderTabelle
Tabellecodiert.
codiert.
Durch
die
Abfolge
der
Zeichensätze
wird
a
automatisch
codiert.
Durch die Abfolge der Zeichensätze wird a1 automatisch codiert.
1
© Beutelspacher
Juni 2004
Seite 25
Kapitel 5
Zeichensätze
Zeichensätzefür
fürdie
dieZiffern
Ziffern aa22,,aa33,,...,
...,aa77
aa1
1
aa2
2
aa3
3
00
11
AA
AA
AA
AA
22
33
AA
AA
AA
AA
44
55
AA
AA
BB
BB
66
77
AA
AA
BB
BB
88
99
AA
AA
BB
BB
aa4 aa5
4
5
AA AA
BB AA
BB BB
BB BB
AA AA
BB AA
BB BB
AA BB
AA BB
BB AA
aa6
6
aa7
7
AA
BB
AA
BB
AA
BB
BB
AA
BB
AA
BB
BB
AA
AA
AA
BB
BB
BB
AA
AA
© Beutelspacher
Juni 2004
Seite 26
Kapitel 5
Seite 13
13
Abschließende
AbschließendeBemerkungen
Bemerkungen
•• Die
Die„langen“
„langen“Striche
Strichesind
sind„Trennzeichen“:
„Trennzeichen“:
Der
Scanner
merkt,
wann
Der Scanner merkt, wanner
eranfangen
anfangenund
undwann
wanner
eraufhören
aufhörenmuss.
muss.
•• Der
DerScanner
Scannererkennt
erkenntdie
dieReihenfolge
Reihenfolgeder
derZeichen:
Zeichen:
Das
erste
Zeichen
(a
)
wird
in
jedem
Fall
mit
Das erste Zeichen (a2 ) wird in jedem Fall mit A,
A,d.h.
d.h.mit
miteiner
einer
2
ungeraden
ungeradenAnzahl
Anzahlvon
vonschwarzen
schwarzenStreifen
Streifencodiert.
codiert.
Das
letzte
Zeichen
(a
)
wird
dagegen
immer
Das letzte Zeichen (a1313) wird dagegen immermit
mitZeichensatz
Zeichensatz C,
C,
also
einer
geraden
Anzahl
von
schwarzen
Streifen
codiert.
also einer geraden Anzahl von schwarzen Streifen codiert.
•• Der
DerScanner
Scannerzählt
zähltdie
dieschwarzen
schwarzenStreifen
Streifenim
imersten
erstenZeichen,
Zeichen,
welches
er
liest,
und
weiß
dann,
ob
er
von
vorne
nach
welches er liest, und weiß dann, ob er von vorne nachhinten
hinten
o.u.
o.u.liest.
liest.
© Beutelspacher
Juni 2004
Seite 27
Kapitel 5
Seite 14
14
Herunterladen