Skip to content

Commit c07275d

Browse files
committed
Added configuratino options for clustering coefficient
1 parent ace3855 commit c07275d

File tree

5 files changed

+25
-3
lines changed

5 files changed

+25
-3
lines changed

src/main/java/ldbc/snb/datagen/generator/ClusteringKnowsGenerator.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import ldbc.snb.datagen.objects.Knows;
88
import ldbc.snb.datagen.objects.Person;
99
import ldbc.snb.datagen.util.RandomGeneratorFarm;
10+
import org.apache.hadoop.conf.Configuration;
1011

1112
import java.util.*;
1213

@@ -18,6 +19,7 @@ public class ClusteringKnowsGenerator implements KnowsGenerator {
1819
Random rand;
1920
private ArrayList<Float> percentages = null;
2021
private int stepIndex = 0;
22+
private float targetCC = 0.0f;
2123

2224
private class PersonInfo {
2325
public int index_;
@@ -333,7 +335,7 @@ boolean improveCC(ClusteringInfo cInfo, ArrayList<Community> communities) {
333335
Community c = filtered.get(index);
334336
c.p_ = Math.max(c.p_ + 0.01f, 1.0f);
335337
cInfo.sumProbs+=0.01;
336-
estimateCCCommunity(cInfo, c, c.p_ );
338+
estimateCCCommunity(cInfo, c, c.p_);
337339
return true;
338340
}
339341

@@ -421,7 +423,6 @@ public void generateKnows( ArrayList<Person> persons, int seed, ArrayList<Float>
421423
rand.setSeed(seed);
422424
this.percentages = percentages;
423425
this.stepIndex = step_index;
424-
float targetCC = 0.15f;
425426

426427

427428
ArrayList<Community> communities = generateCommunities(persons);
@@ -457,4 +458,10 @@ public void generateKnows( ArrayList<Person> persons, int seed, ArrayList<Float>
457458
}
458459
System.out.println("Number of persons with less degree than expected: "+count);
459460
}
461+
462+
public void initialize( Configuration conf ) {
463+
targetCC = conf.getFloat("ldbc.snb.datagen.generator.ClusteringKnowsGenerator.clusteringCoefficient", 0.1f);
464+
System.out.println("Initialized clustering coefficient to "+targetCC);
465+
targetCC /= 2.0f;
466+
}
460467
}

src/main/java/ldbc/snb/datagen/generator/DistanceKnowsGenerator.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import ldbc.snb.datagen.objects.Knows;
55
import ldbc.snb.datagen.objects.Person;
66
import ldbc.snb.datagen.util.RandomGeneratorFarm;
7+
import org.apache.hadoop.conf.Configuration;
78

89
import java.util.ArrayList;
910

@@ -30,6 +31,10 @@ public void generateKnows( ArrayList<Person> persons, int seed, ArrayList<Float>
3031
}
3132
}
3233

34+
public void initialize( Configuration conf ) {
35+
36+
}
37+
3338
boolean know( Person personA, Person personB, int dist, ArrayList<Float> percentages, int step_index ) {
3439
if( personA.knows().size() >= Knows.target_edges( personA, percentages, step_index) ||
3540
personB.knows().size() >= Knows.target_edges( personB, percentages, step_index) ) return false;
@@ -42,4 +47,5 @@ boolean know( Person personA, Person personB, int dist, ArrayList<Float> percent
4247
}
4348

4449

50+
4551
}

src/main/java/ldbc/snb/datagen/generator/KnowsGenerator.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package ldbc.snb.datagen.generator;
22

33
import ldbc.snb.datagen.objects.Person;
4+
import org.apache.hadoop.conf.Configuration;
45

56
import java.util.ArrayList;
67

@@ -9,4 +10,6 @@
910
*/
1011
public interface KnowsGenerator {
1112
public void generateKnows( ArrayList<Person> persons, int seed, ArrayList<Float> percentages, int step_index );
13+
14+
public void initialize( Configuration conf );
1215
}

src/main/java/ldbc/snb/datagen/generator/RandomKnowsGenerator.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import ldbc.snb.datagen.objects.Knows;
44
import ldbc.snb.datagen.objects.Person;
5+
import org.apache.hadoop.conf.Configuration;
56

67
import java.util.ArrayList;
78
import java.util.Collections;
@@ -51,4 +52,8 @@ public void generateKnows( ArrayList<Person> persons, int seed, ArrayList<Float>
5152
}
5253
}
5354
}
55+
56+
public void initialize( Configuration conf ) {
57+
58+
}
5459
}

src/main/java/ldbc/snb/datagen/hadoop/HadoopKnowsGenerator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ protected void setup(Context context) {
3737
this.conf = context.getConfiguration();
3838
try {
3939
this.knowsGenerator = (KnowsGenerator) Class.forName(conf.get("knowsGeneratorName")).newInstance();
40+
this.knowsGenerator.initialize(conf);
4041
}catch(Exception e) {
4142
System.out.println(e.getMessage());
4243
}
@@ -80,7 +81,7 @@ public void reduce(BlockKey key, Iterable<Person> valueSet,Context context)
8081

8182

8283
public HadoopKnowsGenerator( Configuration conf, String preKeySetterName, String postKeySetterName, ArrayList<Float> percentages, int step_index, String knowsGeneratorName ) {
83-
this.conf = conf;
84+
this.conf = new Configuration(conf);
8485
this.preKeySetterName = preKeySetterName;
8586
this.postKeySetterName = postKeySetterName;
8687
this.percentages = percentages;

0 commit comments

Comments
 (0)