Skip to content
Snippets Groups Projects
Commit 0c9b1d06 authored by rsmelo@inf.ufpr.br's avatar rsmelo@inf.ufpr.br
Browse files

antes do artigo

parent b2703a63
No related branches found
No related tags found
No related merge requests found
...@@ -58,12 +58,42 @@ public class PrevalentSeed implements SeedChooser<Actor> { ...@@ -58,12 +58,42 @@ public class PrevalentSeed implements SeedChooser<Actor> {
return candidatos; return candidatos;
} }
public HashSet<Actor> preSelecaoOriginal(DirectedSocialNetwork grafo) {
int n = grafo.vertexSet().size();
// DS <-- {}
HashSet<Actor> candidatos = new HashSet<>();
// compare os vertices pelo grau
ComparaPorGrau comp = new ComparaPorGrau(grafo);
MinMaxPriorityQueue<Actor> heapMinMax = null;
heapMinMax = MinMaxPriorityQueue.orderedBy(comp).maximumSize(n)
.create();
for (Actor v : grafo.vertexSet()) {
heapMinMax.add(v);
}
Set<Actor> cobertos = new HashSet<>();
while (!heapMinMax.isEmpty()) {
Actor v = heapMinMax.removeLast();
Set<Actor> vizinhos = grafo.outNeighborsOf(v);
if (cobertos.addAll(vizinhos)) {
candidatos.add(v);
}
cobertos.add(v);
}
return candidatos;
}
@Override @Override
public HashSet<Actor> escolher(int k) { public HashSet<Actor> escolher(int k) {
HashSet<Actor> semente = new HashSet<Actor>(); HashSet<Actor> semente = new HashSet<Actor>();
HashSet<Actor> candidatos = new HashSet<Actor>(); HashSet<Actor> candidatos = new HashSet<Actor>();
candidatos = preSelecao(grafo); candidatos = preSelecaoOriginal(grafo);
if (candidatos.size() < k) { if (candidatos.size() < k) {
System.out.println("Erro: o cojunto de candidatos é menor que K"); System.out.println("Erro: o cojunto de candidatos é menor que K");
......
...@@ -186,7 +186,7 @@ public class DirectedSocialNetwork extends ...@@ -186,7 +186,7 @@ public class DirectedSocialNetwork extends
public double espectedSpread(HashSet<Actor> seed, boolean ic) { public double espectedSpread(HashSet<Actor> seed, boolean ic) {
double media = 0; double media = 0;
int soma = 0; int soma = 0;
int repeticoes = 5000; int repeticoes = 500;
if (!ic) { if (!ic) {
HashSet<Actor> ativados = linearThresholdDiffusion(seed); HashSet<Actor> ativados = linearThresholdDiffusion(seed);
......
...@@ -89,7 +89,8 @@ public class GraphReader { ...@@ -89,7 +89,8 @@ public class GraphReader {
// uniform IC model // uniform IC model
// return (double)10/100; // return (double)10/100;
// return 0.025; // return 0.025;
return Math.random()/4; // return Math.random()/4;
return 0.001;
} }
public DirectedSocialNetwork readEpinions() { public DirectedSocialNetwork readEpinions() {
......
...@@ -5,7 +5,7 @@ import java.text.SimpleDateFormat; ...@@ -5,7 +5,7 @@ import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.HashSet; import java.util.HashSet;
import javax.media.j3d.PhysicalBody; //import javax.media.j3d.PhysicalBody;
import org.jgrapht.graph.DefaultWeightedEdge; import org.jgrapht.graph.DefaultWeightedEdge;
...@@ -13,7 +13,7 @@ import plot.MeuPlot; ...@@ -13,7 +13,7 @@ import plot.MeuPlot;
import readgraph.GraphReader; import readgraph.GraphReader;
import algoritmos.ArticulationSeed; import algoritmos.ArticulationSeed;
import algoritmos.BestNeighbors; import algoritmos.BestNeighbors;
import algoritmos.DominatingSeed; import algoritmos.PrevalentSeed;
import algoritmos.HightDegree; import algoritmos.HightDegree;
import algoritmos.LazyGreedy; import algoritmos.LazyGreedy;
import algoritmos.OriginalGreedy; import algoritmos.OriginalGreedy;
...@@ -38,7 +38,7 @@ public class Simulacao { ...@@ -38,7 +38,7 @@ public class Simulacao {
System.out.println("\nTestando para k = " + k); System.out.println("\nTestando para k = " + k);
excutionTime = System.currentTimeMillis() * -1; excutionTime = System.currentTimeMillis() * -1;
HashSet<Actor> seed1 = new DominatingSeed(g).escolher(k); HashSet<Actor> seed1 = new PrevalentSeed(g).escolher(k);
excutionTime += System.currentTimeMillis(); excutionTime += System.currentTimeMillis();
tempo1[i] = (excutionTime / 1000.0f); tempo1[i] = (excutionTime / 1000.0f);
sigma1[i] = g.espectedSpread(seed1, true); sigma1[i] = g.espectedSpread(seed1, true);
...@@ -105,7 +105,7 @@ public class Simulacao { ...@@ -105,7 +105,7 @@ public class Simulacao {
System.out.println("\nTestando para k = " + k); System.out.println("\nTestando para k = " + k);
excutionTime = System.currentTimeMillis() * -1; excutionTime = System.currentTimeMillis() * -1;
HashSet<Actor> seed1 = new DominatingSeed(g).escolher(k); HashSet<Actor> seed1 = new PrevalentSeed(g).escolher(k);
excutionTime += System.currentTimeMillis(); excutionTime += System.currentTimeMillis();
tempo1[i] = (excutionTime / 1000.0f); tempo1[i] = (excutionTime / 1000.0f);
sigma1[i] = g.espectedSpread(seed1, true); sigma1[i] = g.espectedSpread(seed1, true);
...@@ -125,7 +125,7 @@ public class Simulacao { ...@@ -125,7 +125,7 @@ public class Simulacao {
stempo2[i] += tempo2[i];*/ stempo2[i] += tempo2[i];*/
excutionTime = System.currentTimeMillis() * -1; excutionTime = System.currentTimeMillis() * -1;
HashSet<Actor> seed2 = new DominatingSeed(g).escolher2(k); HashSet<Actor> seed2 = new PrevalentSeed(g).escolher2(k);
excutionTime += System.currentTimeMillis(); excutionTime += System.currentTimeMillis();
tempo2[i] = (excutionTime / 1000.0f); tempo2[i] = (excutionTime / 1000.0f);
sigma2[i] = g.espectedSpread(seed2, true); sigma2[i] = g.espectedSpread(seed2, true);
...@@ -241,10 +241,10 @@ public class Simulacao { ...@@ -241,10 +241,10 @@ public class Simulacao {
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date data = new Date(); Date data = new Date();
System.out.println("Data de início: " + dateFormat.format(data)); System.out.println("Data de início: " + dateFormat.format(data));
simularArtificial(); // simularArtificial();
simularPhy(); // simularPhy();
// simularEpinions(); simularEpinions();
simularHep(); // simularHep();
// simularDblp(); // simularDblp();
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment