1
+ import java .io .FileWriter ;
2
+ import java .io .IOException ;
1
3
import java .util .ArrayList ;
2
4
import java .util .HashSet ;
3
5
import java .util .Set ;
4
6
5
7
public class Main {
6
- public static void main (String [] args ) {
7
- double experiment = 0 ;
8
- for (int e =0 ;e <1 ;e ++) {
9
-
10
- int totalusers = 100 ;
11
- int totalinterest = 50 ;
12
- double xrange = 10 ;
13
- double yrange = 10 ;
14
- ArrayList <User > presentUser = new ArrayList <>();
15
- for (int i =0 ;i <totalusers ;i ++) {
16
- User instance = new User ();
17
- instance .x = (Math .random ()*xrange );
18
- instance .y = (Math .random ()*yrange );
19
- instance .id = i ;
20
- for (int ii =0 ;ii < (int )(Math .random ()*totalinterest +1 );ii ++) {
21
-
22
- instance .interest .add ((int )(Math .random ()*totalinterest +1 ));
23
- }
24
- presentUser .add (instance );
25
- instance = null ;
26
8
27
- }
28
- //show the result of random and the presentUser
29
- for (int i =0 ;i <presentUser .size ();i ++) {
30
- //System.out.println(i+" "+presentUser.get(i).x+" "+presentUser.get(i).y+" "+presentUser.get(i).interest.size());
9
+ public static void main (String [] args ) throws IOException {
10
+ FileWriter fw = new FileWriter ("output.txt" );
11
+ int totalusers = 0 ;
12
+ for (int j =100 ;j <=1000 ;j =j +100 ) {
13
+ totalusers =j ;
14
+ double experiment = 0 ;
15
+ for (int e =0 ;e <100 ;e ++) {
16
+ double partial = 0.5 ;
17
+ int totalinterest = (int ) (totalusers *partial );
18
+ double xrange = totalusers ;
19
+ double yrange = totalusers ;
20
+ ArrayList <User > presentUser = new ArrayList <>();
21
+ for (int i =0 ;i <totalusers ;i ++) {
22
+ User instance = new User ();
23
+ instance .x = (Math .random ()*xrange );
24
+ instance .y = (Math .random ()*yrange );
25
+ instance .id = i ;
26
+ for (int ii =0 ;ii < (int )(Math .random ()*totalinterest +1 );ii ++) {
27
+
28
+ instance .interest .add ((int )(Math .random ()*totalinterest +1 ));
29
+ }
30
+ presentUser .add (instance );
31
+ instance = null ;
32
+
33
+ }
34
+ //show the result of random and the presentUser
35
+ /*for(int i=0;i<presentUser.size();i++) {
36
+ System.out.println(i+" "+presentUser.get(i).x+" "+presentUser.get(i).y+" "+presentUser.get(i).interest.size());
31
37
32
38
33
- }
34
- /*Greedy gr = new Greedy(new ArrayList<>(presentUser));
39
+ }*/
40
+ /*Greedy gr = new Greedy(new ArrayList<>(presentUser));
35
41
gr.countFar();
36
42
gr.findSetCover();*/
37
43
38
- /*heuristicGreedy hgr = new heuristicGreedy(new ArrayList<>(presentUser));
44
+ /*heuristicGreedy hgr = new heuristicGreedy(new ArrayList<>(presentUser));
39
45
hgr.countFar();
40
46
hgr.findSetCover();*/
41
-
42
- /*GAR gar = new GAR(new ArrayList<>(presentUser));
47
+
48
+ /*GAR gar = new GAR(new ArrayList<>(presentUser));
43
49
gar.RandomChoose();
44
50
gar.countFar();
45
51
gar.findSetCover();*/
46
52
47
- /*RAG rag = new RAG(new ArrayList<>(presentUser));
53
+ /*RAG rag = new RAG(new ArrayList<>(presentUser));
48
54
rag.countFar();
49
55
rag.findSetCover();
50
56
rag.RandomChoose();*/
51
57
52
- /*Set<User> set = gr.getGoal();
58
+ /*Set<User> set = gr.getGoal();
53
59
set.retainAll(rag.getGoal());
54
60
System.out.println((double)set.size()/gr.getGoal().size());
55
61
experiment = experiment+(double)set.size()/gr.getGoal().size();*/
56
- /*ArrayList<User> presentUser2 = new ArrayList<>();
62
+ /*ArrayList<User> presentUser2 = new ArrayList<>();
57
63
User t1 = new User();
58
64
t1.interest.add(1);
59
65
t1.interest.add(2);
@@ -72,13 +78,14 @@ public static void main(String[] args) {
72
78
presentUser2.add(t3);
73
79
presentUser2.add(t4);
74
80
75
- MSC msc = new MSC(new ArrayList<>(presentUser2));*/
76
-
81
+ MSC msc = new MSC(new ArrayList<>(presentUser2));
82
+
77
83
ArrayList<User> presentUser3 = new ArrayList<>();
78
84
User u1 = new User();
79
85
u1.interest.add(1);
80
- u1 .x = 0 ;
81
- u1 .y = 0 ;
86
+ //u1.interest.add(2);
87
+ u1.x = 5;
88
+ u1.y = 6;
82
89
User u2 = new User();
83
90
u2.interest.add(2);
84
91
u2.x = 0;
@@ -88,18 +95,23 @@ public static void main(String[] args) {
88
95
u3.x = 5;
89
96
u3.y = 6;
90
97
presentUser3.add(u1);
91
- presentUser3 .add (u2 );
92
- MSC_distance msc_distance = new MSC_distance (new ArrayList <>(presentUser3 ));
93
-
94
-
95
-
98
+ presentUser3.add(u2);*/
96
99
97
- }
100
+ long time1 = System .currentTimeMillis ();
101
+ MSC_distance msc_distance = new MSC_distance (new ArrayList <>(presentUser ));
102
+ long time2 = System .currentTimeMillis ();
103
+ experiment = experiment +(time2 -time1 );
104
+ //System.out.println((time2-time1) + "毫秒");
98
105
99
106
100
- //System.out.println(" final "+experiment/100);
107
+ }
101
108
102
109
110
+ //System.out.println(" final "+experiment/100);
111
+ System .out .println ((experiment )/100 + "毫秒" );
112
+ fw .write (totalusers +"\t " +(experiment )/100 +"\r \n " );
113
+ fw .flush ();
114
+ }
103
115
104
116
}
105
117
0 commit comments