package automenta.netention.comm; /** * * @author seh */ public class SmartConversation { // Set<String> agents = new HashSet(); // private Map<String, Integer> wordCounts = new HashMap(); // private Map<String, String> messageToSender = new HashMap(); // // private static enum BooleanState { // // TRUE, FALSE // } // // private static enum SeasonState { // // WINTER, SUMMER, SPRING, FALL // } // // private static enum AgeState { // // BABY, CHILD, TEENAGER, ADULT, SENIOR // } // // private static enum FeverState { // // LOW, NONE, WARM, HOT // } // private static final Random RANDOM = new Random(); // // MutableBayesianAdjacencyNetwork network; // // public void ExampleBayesianNetwork() { // //create nodes // BayesianNode<SeasonState> season = new SimpleBayesianNode<SeasonState>(SeasonState.WINTER, network); // BayesianNode<AgeState> age = new SimpleBayesianNode<AgeState>(AgeState.BABY, network); // BayesianNode<BooleanState> stuffyNose = new SimpleBayesianNode<BooleanState>(BooleanState.TRUE, network); // BayesianNode<FeverState> fever = new SimpleBayesianNode<FeverState>(FeverState.HOT, network); // BayesianNode<BooleanState> tired = new SimpleBayesianNode<BooleanState>(BooleanState.FALSE, network); // BayesianNode<BooleanState> sick = new SimpleBayesianNode<BooleanState>(BooleanState.FALSE, network); // // // //add nodes // network.add(season); // network.add(age); // network.add(stuffyNose); // network.add(fever); // network.add(tired); // network.add(sick); // // { // //others //// network.add(new SimpleBayesianNode<SeasonState>(SeasonState.FALL, network)); //// network.add(new SimpleBayesianNode<SeasonState>(SeasonState.SPRING, network)); //// network.add(new SimpleBayesianNode<SeasonState>(SeasonState.SUMMER, network)); // } // // //connect nodes // network.add(new SimpleBayesianEdge<BayesianNode>(season, stuffyNose)); // network.add(new SimpleBayesianEdge<BayesianNode>(season, fever)); // network.add(new SimpleBayesianEdge<BayesianNode>(season, tired)); // network.add(new SimpleBayesianEdge<BayesianNode>(season, sick)); // network.add(new SimpleBayesianEdge<BayesianNode>(age, stuffyNose)); // network.add(new SimpleBayesianEdge<BayesianNode>(age, fever)); // network.add(new SimpleBayesianEdge<BayesianNode>(age, tired)); // network.add(new SimpleBayesianEdge<BayesianNode>(age, sick)); // network.add(new SimpleBayesianEdge<BayesianNode>(tired, fever)); // network.add(new SimpleBayesianEdge<BayesianNode>(tired, stuffyNose)); // network.add(new SimpleBayesianEdge<BayesianNode>(tired, sick)); // network.add(new SimpleBayesianEdge<BayesianNode>(stuffyNose, fever)); // network.add(new SimpleBayesianEdge<BayesianNode>(stuffyNose, sick)); // network.add(new SimpleBayesianEdge<BayesianNode>(fever, sick)); // // //let the network learn // for (int sampleCount = 0; sampleCount < 10; sampleCount++) { // //sampleState(); // } // //lets check some probabilities // final Set<BayesianNode> goals = new HashSet<BayesianNode>(); // goals.add(sick); // final Set<BayesianNode> influences = new HashSet<BayesianNode>(); // influences.add(fever); // sick.setState(BooleanState.TRUE); // fever.setState(FeverState.LOW); // final double lowPercentage = network.conditionalProbability(goals, influences); // fever.setState(FeverState.NONE); // final double nonePercentage = network.conditionalProbability(goals, influences); // fever.setState(FeverState.WARM); // final double warmPercentage = network.conditionalProbability(goals, influences); // fever.setState(FeverState.HOT); // final double hotPercentage = network.conditionalProbability(goals, influences); // // // final SeasonState seasonState = (SeasonState.values())[RANDOM.nextInt(SeasonState.values().length)]; // season.setState(seasonState); // // final AgeState ageState = (AgeState.values())[RANDOM.nextInt(AgeState.values().length)]; // age.setState(ageState); // // final BooleanState noseState = (BooleanState.values())[RANDOM.nextInt(BooleanState.values().length)]; // stuffyNose.setState(noseState); // // final BooleanState tiredState = (BooleanState.values())[RANDOM.nextInt(BooleanState.values().length)]; // tired.setState(tiredState); // // // fever.setState(FeverState.NONE); // sick.setState(BooleanState.FALSE); // network.learnStates(); // fever.setState(FeverState.NONE); // sick.setState(BooleanState.FALSE); // network.learnStates(); // fever.setState(FeverState.NONE); // sick.setState(BooleanState.FALSE); // network.learnStates(); // fever.setState(FeverState.NONE); // sick.setState(BooleanState.FALSE); // network.learnStates(); // fever.setState(FeverState.NONE); // sick.setState(BooleanState.TRUE); // network.learnStates(); // // fever.setState(FeverState.LOW); // sick.setState(BooleanState.FALSE); // network.learnStates(); // fever.setState(FeverState.LOW); // sick.setState(BooleanState.FALSE); // network.learnStates(); // fever.setState(FeverState.LOW); // sick.setState(BooleanState.FALSE); // network.learnStates(); // fever.setState(FeverState.LOW); // sick.setState(BooleanState.TRUE); // network.learnStates(); // fever.setState(FeverState.LOW); // sick.setState(BooleanState.TRUE); // network.learnStates(); // // fever.setState(FeverState.WARM); // sick.setState(BooleanState.FALSE); // network.learnStates(); // fever.setState(FeverState.WARM); // sick.setState(BooleanState.FALSE); // network.learnStates(); // fever.setState(FeverState.WARM); // sick.setState(BooleanState.TRUE); // network.learnStates(); // fever.setState(FeverState.WARM); // sick.setState(BooleanState.TRUE); // network.learnStates(); // fever.setState(FeverState.WARM); // sick.setState(BooleanState.TRUE); // network.learnStates(); // // fever.setState(FeverState.HOT); // sick.setState(BooleanState.FALSE); // network.learnStates(); // fever.setState(FeverState.HOT); // sick.setState(BooleanState.TRUE); // network.learnStates(); // fever.setState(FeverState.HOT); // sick.setState(BooleanState.TRUE); // network.learnStates(); // fever.setState(FeverState.HOT); // sick.setState(BooleanState.TRUE); // network.learnStates(); // fever.setState(FeverState.HOT); // sick.setState(BooleanState.TRUE); // network.learnStates(); // } // // public SmartConversation() { // } // // public void addMessage(String messageID, String senderID, String text, String retweetsMsgID, String repliesToMsgID) { // agents.add(senderID); // messageToSender.put(messageID, senderID); // // if (retweetsMsgID != null) { // } // } // // public void clear() { // agents.clear(); // // } // // public Collection<String> getAgents() { // return Collections.unmodifiableSet(agents); // } // // public Map<String, Integer> getWordCounts() { // return wordCounts; // } // // /** key: time period in the future that a response ocurred, value: likelyhood of at least one response */ // public Map<Double, Double> getProbabilityOfResponseByFuturePeriods() { // return new HashMap(); // } // // /** key: recipient uri, value: likelyhood of reply by them */ // public Map<String, Double> getProbabilityOfReplyByUsers() { // return new HashMap(); // } }