@@ -22,7 +22,7 @@ public void generateKnows( ArrayList<Person> persons, int seed, float percentage
22
22
randomFarm .resetRandomGenerators (seed );
23
23
for ( int i = 0 ; i < persons .size (); ++i ) {
24
24
Person p = persons .get (i );
25
- for ( int j = i +1 ; (p . maxNumKnows ()* percentage > p .knows ().size ()) && (j < persons .size ()); ++j ) {
25
+ for ( int j = i +1 ; ( target_edges ( p , percentage ) > p .knows ().size () ) && ( j < persons .size () ); ++j ) {
26
26
if ( know (p , persons .get (j ), j - i , percentage )) {
27
27
createKnow (p , persons .get (j ));
28
28
}
@@ -31,8 +31,8 @@ public void generateKnows( ArrayList<Person> persons, int seed, float percentage
31
31
}
32
32
33
33
boolean know ( Person personA , Person personB , int dist , float percentage ) {
34
- if ((float )(personA .knows ().size ()) >= ( float )( personA . maxNumKnows ())* percentage ||
35
- personB .knows ().size () >= ( float )( personB . maxNumKnows ())* percentage ) return false ;
34
+ if ((float )(personA .knows ().size ()) >= target_edges ( personA , percentage ) ||
35
+ personB .knows ().size () >= target_edges ( personA , percentage ) ) return false ;
36
36
double randProb = randomFarm .get (RandomGeneratorFarm .Aspect .UNIFORM ).nextDouble ();
37
37
double prob = Math .pow (DatagenParams .baseProbCorrelated , dist );
38
38
if ((randProb < prob ) || (randProb < DatagenParams .limitProCorrelated )) {
@@ -54,4 +54,8 @@ void createKnow( Person personA, Person personB ) {
54
54
personA .knows ().add (new Knows (personB , creationDate , similarity ));
55
55
}
56
56
}
57
+
58
+ float target_edges (Person person , float percentage ) {
59
+ return (float )(person .maxNumKnows ())*percentage ;
60
+ }
57
61
}
0 commit comments