Urejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se

Podobni dokumenti
Turingov stroj in programiranje Barbara Strniša Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolo

Učinkovita izvedba algoritma Goldberg-Tarjan Teja Peklaj 26. februar Definicije Definicija 1 Naj bo (G, u, s, t) omrežje, f : E(G) R, za katero v

Kazalo 1 DVOMESTNE RELACIJE Operacije z dvomestnimi relacijami Predstavitev relacij

Microsoft Word - M docx

1. izbirni test za MMO 2018 Ljubljana, 16. december Naj bo n naravno število. Na mizi imamo n 2 okraskov n različnih barv in ni nujno, da imam

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni

Diapozitiv 1

Strojna oprema

Microsoft PowerPoint - Java-rekurzija.ppt

6.1 Uvod 6 Igra Chomp Marko Repše, Chomp je nepristranska igra dveh igralcev s popolno informacijo na dvo (ali vec) dimenzionalnem prostoru

2. izbirni test za MMO 2017 Ljubljana, 17. februar Naj bosta k 1 in k 2 dve krožnici s središčema O 1 in O 2, ki se sekata v dveh točkah, ter

Osnove matematicne analize 2018/19

Vrste

resitve.dvi

Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Statistika Pisni izpit 6. julij 2018 Navodila Pazljivo preberite be

C:/Users/Matevž Èrepnjak/Dropbox/FKKT/TESTI-IZPITI-REZULTATI/ /Izpiti/FKKT-avgust-17.dvi

C:/Users/Matevž Èrepnjak/Dropbox/FKKT/testi in izpiti/ /IZPITI/FKKT-februar-14.dvi

Microsoft Word - M docx

Microsoft Word - UP_Lekcija04_2014.docx

Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Verjetnost Pisni izpit 5. februar 2018 Navodila Pazljivo preberite

NAJRAJE SE DRUŽIM S SVIČNIKOM, SAJ LAHKO VADIM ČRTE IN KRIVULJE, PA VELIKE TISKANE ČRKE IN ŠTEVILKE DO 20. Preizkusite znanje vaših otrok in natisnite

Vaje: Matrike 1. Ugani rezultat, nato pa dokaži z indukcijo: (a) (b) [ ] n 1 1 ; n N 0 1 n ; n N Pokaži, da je množica x 0 y 0 x

5 SIMPLICIALNI KOMPLEKSI Definicija 5.1 Vektorji r 0,..., r k v R n so afino neodvisni, če so vektorji r 1 r 0, r 2 r 0,..., r k r 0 linearno neodvisn

Microsoft Word - Seštevamo stotice.doc

3. Metode, ki temeljijo na minimalnem ostanku Denimo, da smo z Arnoldijevim algoritmom zgenerirali ON bazo podprostora Krilova K k (A, r 0 ) in velja

MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir

glava.dvi

FGG13

resitve.dvi

INFORMATOR BIROKRAT 1/2011

BiokemInfo - Pregled funkcij

FAKULTETA ZA STROJNIŠTVO Matematika 2 Pisni izpit 9. junij 2005 Ime in priimek: Vpisna št: Zaporedna številka izpita: Navodila Pazljivo preberite bese

MERJENJE GORIŠČNE RAZDALJE LEČE

Mladi za napredek Maribora srečanje DOLŽINA»SPIRALE«Matematika Raziskovalna naloga Februar 2015

Teorija kodiranja in kriptografija 2013/ AES

UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO Oddelek za matematiko in računalništvo DIPLOMSKO DELO Peter Škofič Maribor, 2014

Microsoft Word - ELEKTROTEHNIKA2_ junij 2013_pola1 in 2

M

predstavitev fakultete za matematiko 2017 A

Brownova kovariancna razdalja

Mere kompleksnih mrež (angl. Network Statistics) - Seminarska naloga pri predmetu Izbrana poglavja iz diskretne matematike

PREDMETNI KURIKULUM ZA RAZVOJ METEMATIČNIH KOMPETENC

EKVITABILNE PARTICIJE IN TOEPLITZOVE MATRIKE Aleksandar Jurišić Politehnika Nova Gorica in IMFM Vipavska 13, p.p. 301, Nova Gorica Slovenija Štefko Mi

Microsoft Word - M _mod..docx

Naloge iz kolokvijev Analize 1 (z rešitvami) E-UNI, GING, TK-UNI FERI dr. Iztok Peterin Maribor 2009 V tej datoteki so zbrane naloge iz kolokvijev za

Diapozitiv 1

UM FKKT, Bolonjski visoko²olski program Kemijska tehnologija Vpisna ²tevilka Priimek, ime 3. test pri predmetu MATEMATIKA II Ra unski del

Poglavje 3 Reševanje nelinearnih enačb Na iskanje rešitve enačbe oblike f(x) = 0 (3.1) zelo pogosto naletimo pri reševanju tehničnih problemov. Pri te

FGG14

MAGIČNI KVADRATI DIMENZIJE 4n+2

Poslovilno predavanje

Matematika Diferencialne enačbe prvega reda (1) Reši diferencialne enačbe z ločljivimi spremenljivkami: (a) y = 2xy, (b) y tg x = y, (c) y = 2x(1 + y

7. VAJA A. ENAČBA ZBIRALNE LEČE

ANALITIČNA GEOMETRIJA V RAVNINI

Navodila Trgovina iCenter

Microsoft PowerPoint - Mocnik.pptx

11. Navadne diferencialne enačbe Začetni problem prvega reda Iščemo funkcijo y(x), ki zadošča diferencialni enačbi y = f(x, y) in začetnemu pogo

Lehmerjev algoritem za racunanje najvecjega skupnega delitelja

resitve.dvi

RAČUNALNIŠKA ORODJA V MATEMATIKI

IND/L Zakon o državni statistiki (Uradni list RS, št. 45/1995 in št. 9/2001) Letni program statističnih raziskovanj (Uradni list RS, št. 97/2013) Spor

N

Microsoft PowerPoint - Objekti_gradnja.ppt

GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega)

KOMISIJA ZA LOGIKO 32. TEKMOVANJE IZ ZNANJA LOGIKE DRŽAVNO TEKMOVANJE, in 2. letnik Šifra: NALOGA MOŽNE TOČKE DOSEŽENE TOČKE

C:/Users/Matevž Èrepnjak/Dropbox/FKKT/TESTI-IZPITI-REZULTATI/ /Izpiti/FKKT-junij-17.dvi

IND-L Zakon o državni statistiki (Uradni list RS, št. 45/95 in št. 9/01) Letni program statističnih raziskovanj za leto 2011 (Uradni list RS, št. 92/1

Slide 1

Microsoft PowerPoint - Java_spremenljivke

Diapozitiv 1

resitve.dvi

2.1 Osnovni pojmi 2 Nim Ga²per Ko²mrlj, Denicija 2.1 P-poloºaj je poloºaj, ki je izgubljen za igralca na potezi. N- poloºaj je poloºaj, ki

Datum in kraj

UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO Katja Ciglar Analiza občutljivosti v Excel-u Seminarska naloga pri predmetu Optimizacija v fina

Microsoft Word - N Moderirana navodila.docx

Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Statistika Pisni izpit 31. avgust 2018 Navodila Pazljivo preberite

'Kombinatoricna optimizacija / Lokalna optimizacija'

DOMACA NALOGA - LABORATORIJSKE VAJE NALOGA 1 Dani sta kompleksni stevili z in z Kompleksno stevilo je definirano kot : z = a + b, a p

resitve.dvi

DN5(Kor).dvi

Matematika II (UN) 2. kolokvij (7. junij 2013) RE ITVE Naloga 1 (25 to k) ƒasovna funkcija f je denirana za t [0, 2] in podana s spodnjim grafom. f t

NAVODILA AVTORJEM PRISPEVKOV

P181C10111

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in

Zavod sv. Stanislava Škofijska klasična gimnazija Programiranje v Pythonu Program za računanje Maturitetna seminarska naloga iz informatike Kandidat:

Srednja šola za oblikovanje

Univerza na Primorskem FAMNIT, MFI Vrednotenje zavarovalnih produktov Seminarska naloga Naloge so sestavni del preverjanja znanja pri predmetu Vrednot

Ravninski grafi Tina Malec 6. februar 2007 Predstavili bomo nekaj osnovnih dejstev o ravninskih grafih, pojem dualnega grafa (k danemu grafu) ter kako

Računalniški praktikum Projektna naloga - Izdelava spletne strani Avtor: Matej Tekavčič Skupina: Matej Tekavčič - koordinator Simon Vrhovnik Tine Kavč

Naloge 1. Dva električna grelnika z ohmskima upornostma 60 Ω in 30 Ω vežemo vzporedno in priključimo na idealni enosmerni tokovni vir s tokom 10 A. Tr

N

N

LABORATORIJSKE VAJE IZ FIZIKE

Spoznajmo PowerPoint 2013

Ime in priimek

Priloga 1: Pravila za oblikovanje in uporabo standardiziranih referenc pri opravljanju plačilnih storitev Stran 4012 / Št. 34 / Uradni lis

INFORMATOR BIROKRAT 1/2011

MERE SREDNJE VREDNOSTI

Microsoft Word - N _moderacija.docx

Transkripcija:

Urejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se velikokrat zmoti. Na srečo piše v programu Microsoft Word, ki ji napačne besede popravi, oziroma ji ponudi besede, ki so podobne njeni nepravilno napisani besedi. Toda, kako lahko program ve, katero besedo smo mislili? Če si pri tem pomaga s slovarjem, ki ga uporabi kot množico vseh možnosti, lahko besedo razdeli na posamezne črke ter ji dodeli številko (razliko med napačno napisano besedo in besedo v slovarju, nato pa kot predlog poda tiste besede, ki se od napisane najmanj razlikujejo), nato pa črke, ki tvorijo besedo v pravilnem zaporedju primerja s slovarjem. 2 Urejevalna razdalja Vprašamo se, kaj je merilo podobnosti med besedami. Zaslutimo, da nam razdalja med besedami pove, koliko operacij je potrebno, da iz ene besede dobimo drugo. Dovoljene operacije so odstranitev znaka, dodajanje znaka, in zamenjava znaka. Definicija 1. Abeceda je poljubna končna množica znakov. Niz je zaporedje znakov iz abecede. Besede v slovenščini so le kratki nizi, mi pa bomo računali razdaljo med poljubnimi nizi. Definicija 2. Urejevalna razdalja je število, ki nam pove, najmanj koliko operacij potrebujemo, da iz enega niza dobimo drugega. Dovoljene operacije so: odstranitev znaka dodajanje znaka 1

zamenjava znaka. Cilj naše naloge je bil napisati program v Javi, ki bo določil urejevalno razdaljo med dvema nizoma. 3 Problem tramvaj, razvada Za osnoven primer, ki smo ga rešili kar peš (s poskušanjem) smo vzeli besedi tramvaj in razvada. Ugotovili smo, da moramo narediti 4 poteze, da spremenimo besedo tramvaj v besedo razvada. Če odstranimo t iz tramvaja, dobimo kar štiri črke, ki se ujemajo na enakih mestih(ramvaj, RAzVAda). Nato smo črko m iz besede ramvaj spremenili v črko z in smo dobili že pet enakih črk zaporedoma (RAZVAj, RAZVAda). Nato smo še črko j spremenili v črko d (RAZVAD, RAZVADa) in na koncu še dodali črko a. Dobili smo dve enaki besedi RAZVADA. Tako smo uganili, da je urejevalna razdalja med besedama TRAMVAJ in RAZVADA največ 4, ko bomo zagnali algoritem na tem primeru bomo s tem dokazali da je urejevalna razdalja natančno 4. 4 Algoritem Računanja urejevalne razdalje se bomo lotili z algoritmom. Algoritem deluje na osnovi dvodimenzionamelne tabele in dinamičnega programiranja. Problema se bomo lotili tako, da ga bomo razdelili na manjše dele, s pomočjo katerih bomo potem rešitev počasi sestavili. Naj bosta a in b niza dolžin m in n. Označimo z E(i, j) urejevalno razdaljo med podnizoma a[0 : i] in b[0 : j], to pomeni, da vzamemo le prvih i znakov niza a in prvih j znakov niza b. Denimo da poznamo E(x, j) za vse x < i ter E(i, y) za vse y < j, ter E(x, y) za x < i, y < j. Iz teh podatkov želimo izračunati E(i, j). Izbiramo med tremi možnostmi: 1. Dodamo znak b[j] na konec a[0 : i] 2. Izbrišemo znak 3. Zamenjamo znak ali ga preskočimo, če sta znaka enaka. Če se odločimo za 1. možnost, bo število potrebnih operacij enako E(i 1, j)+ 1, saj naredimo eno dodatno operacijo (dodamo znak) ter toliko operacij, kot potrebujemo za izračun urejevalne razdalje med a[i 1] in b[j]. Če se odločimo za 2. možnost, bo število potrebnih operacij enako E(i, j 1)+1, saj naredimo eno dodatno operacijo (odstranimo znak) ter toliko operacij, kot potrebujemo 2

za izračun urejevalne razdalje med a[i 1] in b[j]. Če pa se odločimo za tretjo možnost, bo število potrebnih operacij enako E(i 1, j 1)+δ(a, b, i, j), kjer je { 0; če a[i] = b[j] δ(a, b, i, j) = 1; če a[i] b[j]. Ta δ nam pove, da porabimo operacijo, če sta znaka različna, če pa sta enaka potem jih ni potrebno zamenjati in ne porabimo poteze. Izberemo najmnjšo od teh možnosti, torej E(i, j) = min{e(i 1, j) + 1, E(i, j 1) + 1, E(i 1, j 1) + δ(a, b, i, j). Kaj pa so naši začetni pogoji? Če imamo prazen niz in ga hočemo prevesti na nepraznega, moramo vse črke dodati, torej lahko sklepamo da je E(i, 0) = i in E(0, j) = j. Sedaj naredimo tabelo E velikosti m n, kjer bomo zračunali urejevalno razdaljo. Število E(i, j) bomo zapisali v tabelo na mesto (i, j). Prvo vrstico in prvi stolpec tabele izpolnimo z začetnimi pogoji (primer vidimo na tabeli 4). Tabela 1: Tabela z začetnimi pogoji 0 0 t r a m v a j 0 0 1 2 3 4 5 6 7 r 1 a 2 z 3 v 4 a 5 d 6 a 7 Če si izberemo neko polje, ga lahko izpolnimo, če vemo vrednosti polj, ki so nad njim, levo od njega in diagonalno zgoraj levo od njega (E[i 1][j], E[i][j 1], E[i 1][j 1]). To naredimo s formulo, ki smo jo že prej napisali E(i, j) = min{e(i 1, j) + 1, E(i, j 1) + 1, E(i 1, j 1) + δ(a, b, i, j). Ko tabelo tako izpolnimo, dobimo tabelo 4. To je bil ročni postopek, ki pa ga hitreje naredi program zapisan v dodatku. 3

5 Analiza algoritma Tabela 2: Dokončana tabela 0 0 t r a m v a j 0 0 1 2 3 4 5 6 7 r 1 1 1 2 3 4 5 6 a 2 2 2 1 2 3 4 5 z 3 3 3 2 2 3 4 5 v 4 4 4 3 3 2 3 4 a 5 5 5 4 4 3 2 3 d 6 6 6 5 5 4 3 3 a 7 7 7 6 6 5 4 4 Ko ocenjujemo algoritem, merimo, koliko časa se program izvaja. Tega ne merimo v sekundah, ampak v številu aritmetičnih operacij. Število uporabljenih operacij želimo izraziti kot funkcijo velikosti vhodnih podatkov. Natančneje, zanima nas red naraščanja števila operacij, ko večamo vhodni podatek. Definicija 3. Naj bosta f, g : R R funkciji realnih števil. Tedaj pišemo f(x) = O(g(x)), če obstaja taka pozitivna konstanta M in x 0 R, da velja x x 0 : f(x) M g(x) Ta definicija pomeni, da bo imela funkcija M g(x) za velike x (asimptotično) večje vrednosti kot funkcija f(x). Naš algoritem deluje v času O(m n), kjer sta m in n dolžini vhodnih nizov, namreč imamo tabelo velikosti m n, izpolniti moramo m n polj, vsako izpolnjevanje pa vzame konstantno število opreacij. To skupaj združimo v O(m n). 6 Metrični prostori Metrični prostori so v matematiki zelo pomembni in imajo veliko lepih lastnosti, zaradi česar smo tudi želeli dokazati, da je urejevalna razdalja metrika na množici vseh nizov. Več o metričnih prostorih si lahko preberete v knjigi [2] in v članku [3]. Definicija 4. Naj bo M neprazna množica in d : M M R preslikava. Par (M, d) je metrični prostor, če velja: d(x, y) 0 in d(x, y) = 0 x = y (pozitivna definitnost) d(x, y) = d(x, y) ( simetričnost) 4

d(x, z) d(x, y) + d(y, z) (trikotniška neenakost). Sedaj, ko smo definirali metrične prostore, lahko zapišemo izrek o urejevalni razdalji. Izrek 1. Naj bo M množica vseh nizov nad končno abecedo in d urejevalna razdalja. Tedaj je par (M, d) metrični prostor. Dokaz. Preveriti moramo pogoje za metrični prostor: simetričnost je očitna, ker lahko prvi niz pretvorimo v drugega z analognimi operacijami kot drugega v prvega. pozitivna definitnost: Če sta niza enaka, potem ni treba nič spremeniti in je razdalja enaka nič, drugače, če nista enaka, pa moramo nekaj spremeniti in je večja od nič. trikotniška neenakost: Denimo, da imammo tri nize a, b in c. Število potrebnih operacij, da prevedemo niz a v b je gotovo manjše ali enako kot če najprej prevedemo a v c in potem c v b. S tem smo pokazali, da je (M, d) res metrični prostor. 7 Zaključek Ugotovili smo torej, kako lahko program pomaga naši MARS - ovski tajnici pri tipkanju. Napisali smo tudi učinkovit program, ki urejevalno razdaljo izračuna. Dokazali smo, da je urejevalna razdalja metrika na množici vseh nizov, saj ustreza vsem trem potrebnim pogojem. 8 Dodatek program Napisalo smo tudi program v Javi, ki izračuna urejevalno razdaljo med nizoma. //naredimo delta funkcijo public static int delta(char[] a,char[] b,int i,int j){ if(a[i-1]==b[j-1]){ return 0; 5

return 1; // napišemo funkcijo, ki izracuna urejevalno razdaljo. // Vhodni podatek sta dva niza. public static int urejevalnarazdalja(string aa,string bb){ int m=aa.length(); // z m označimo dolžino prvega niza int n=bb.length(); // z n označimo dolžino drugega niza // preverimo, če je en niz morda prazen, saj takrat je urejevalna // razdalja kar dolžina drugega niza int o=math.max(m,n); if(m==0 n==0){ return o; //spremenimo niza v seznama znakov char[] a=new char[m]; char[] b=new char[n]; for(int i=0;i<m;i++){ a[i]=aa.charat(i); for(int j=0;i<n;j++){ b[j]=bb.charat(j); // naredimo tabelo velikosti m x n int[][] E=new int[m+1][n+1]; //vstavimo začetne pogoje v tabelo for(int i=0;i<=n;i++){ E[0][i]=i; for(int j=1;i<=m;j++){ E[j][0]=j; //napolnimo tabelo kot v predpisu for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ E[i][j]=Math.min(Math.min(E[i-1][j]+1, E[i][j-1]+1),E[i-1][j-1]+delta(a,b,i,j)); //funkcija vrne (m,n)-ti element tabele return E[m][n]; 6

Literatura [1] Jurafsky, D.: Minimum edit distance; Definition of minimum edit distance: 2015, Stanford; stran 1-36 (https://web.stanford.edu/class/cs124/lec/med.pdf) [2] Vrabec, J.: Metrični prostori:1. izdaja. Ljubljana: DMFA Slovenije, 1990; [3] Maša Smajila, Ana Štuhec, Nejc Zajc, Neža Žager Korenjak: Banachovo skrčitveno načelo, MARSovski projekt 2015 7