Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

Collaborative Intelligence

Exercise Sheet 1
Team:
Suneetha Kanoor - 391271
Exercise 6.4

package exercise1;
public class LevenshteinDistance {
private String s1,s2;
private int[][] distMatrix;
public LevenshteinDistance(String s1, String s2) {
super();
this.s1 = s1;
this.s2 = s2;
}
public void displayMatrix(int[][] matrix){
for(int i=0; i < matrix.length; i++){
System.out.print("[");
for(int j=0; j < matrix[i].length; j++){
System.out.print(matrix[i][j] + ",");
}
System.out.println("]");
}
}
public int getMinimun(int a, int b, int c){
if(a <= b && a <= c)
return a;

if(b <= a && b <= c)


return b;
if(c <= b && c <= a)
return c;
return 0;
}
public int getValue(int i,int j){
int cost;
if(this.s1.charAt(i-1) == this.s2.charAt(j-1))
cost = 0;
else
cost = 1;
return getMinimun(this.distMatrix[i-1][j-1]+cost,
this.distMatrix[i-1][j]+1,
this.distMatrix[i][j-1]+1);
}
public int getLD(){
int len_s1 = this.s1.length();
int len_s2 = this.s2.length();
if(len_s1 == 0)
return len_s2;
if(len_s2 == 0)
return len_s1;
this.distMatrix = new int[len_s1+1][len_s2+1];
for(int i=0; i < len_s2+1 ; i++){
distMatrix[0][i] = i;
}

for(int i=0; i < len_s1+1 ; i++){


distMatrix[i][0] = i;
}
for(int i=1; i<len_s1+1; i++){
for(int j=1; j<len_s2+1; j++){
distMatrix[i][j] = getValue(i,j);
}
}
displayMatrix(distMatrix);
return 0;
}
public static void main(String[] args) {
LevenshteinDistance ld1 = new LevenshteinDistance("hallo", "hello");
LevenshteinDistance ld2 = new LevenshteinDistance("kln", "koeln");
LevenshteinDistance ld3 = new LevenshteinDistance("cologne",
"colonia");
ld1.getLD();
System.out.println();
ld2.getLD();
System.out.println();
ld3.getLD();
}
}

Output:
[0,1,2,3,4,5,]
[1,0,1,2,3,4,]

[2,1,1,2,3,4,]
[3,2,2,1,2,3,]
[4,3,3,2,1,2,]
[5,4,4,3,2,1,]
[0,1,2,3,4,5,]
[1,0,1,2,3,4,]
[2,1,1,2,3,4,]
[3,2,2,2,2,3,]
[4,3,3,3,3,2,]
[0,1,2,3,4,5,6,7,]
[1,0,1,2,3,4,5,6,]
[2,1,0,1,2,3,4,5,]
[3,2,1,0,1,2,3,4,]
[4,3,2,1,0,1,2,3,]
[5,4,3,2,1,1,2,3,]
[6,5,4,3,2,1,2,3,]
[7,6,5,4,3,2,2,3,]

You might also like