예제 #1
0
 private Map<String, Integer> getUniqueIds() {
   Map<String, Integer> result = new HashMap<String, Integer>();
   for (HeaderTableItem item : headerTableItems) {
     result.put(item.getItemId(), item.getNodeList().size());
   }
   return result;
 }
예제 #2
0
 public String traverse() {
   StringBuilder stringBuilder = new StringBuilder();
   stringBuilder.append(Constants.NEW_LINE);
   for (HeaderTableItem item : headerTableItems) {
     stringBuilder.append(item.traverse());
     stringBuilder.append(Constants.NEW_LINE);
   }
   return stringBuilder.toString();
 }
예제 #3
0
 private HeaderTableItem getHeaderTableItem(String id) {
   HeaderTableItem result = null;
   for (HeaderTableItem item : headerTableItems) {
     if (item.getItemId().equalsIgnoreCase(id)) {
       result = item;
     }
   }
   return result;
 }
예제 #4
0
  public void updateHeaderTable(UNode uNode, double probability, double prefixValue) {
    HeaderTableItem item = null;
    if ((item = findHeaderTableItemById(uNode.getId())) == null) {
      HeaderTableItem headerTableItem = addNewTableItem(uNode.getId());
      headerTableItem.updateHeaderData(uNode, probability, prefixValue);

    } else {
      item.updateHeaderData(uNode, probability, prefixValue);
    }
  }
예제 #5
0
 public List<UNode> getAllNodesOfHeaderTableItem(String id) {
   List<UNode> list = null;
   HeaderTableItem item = findHeaderTableItemById(id);
   if (item != null) {
     list = item.getNodeList();
   } else {
     list = Collections.emptyList();
   }
   return list;
 }
예제 #6
0
 public void removeAllNodes(String id) {
   HeaderTableItem headerTableItem = getHeaderTableItem(id);
   List<UNode> nodeList = headerTableItem.getNodeList();
   headerTableItems.remove(headerTableItem);
   int count = nodeList.size();
   for (int i = 0; i < count; i++) {
     UNode childNode = nodeList.get(i);
     UNode parentNode = childNode.getParentNode();
     parentNode.getChildNodeList().remove(childNode);
   }
 }
예제 #7
0
 public int findNode(UNode node) {
   int result = -1;
   for (int i = 0; i < headerTableItems.size(); i++) {
     HeaderTableItem headerTableItem = headerTableItems.get(i);
     int index = -1;
     if ((index = headerTableItem.getNodeIndex(node)) != -1) {
       result = index;
       break;
     }
   }
   return result;
 }
예제 #8
0
 public List<UNode> removeAndFindInfrequentNodesByMining(double minSupport) {
   List<UNode> nodes = new ArrayList<UNode>();
   int count = headerTableItems.size();
   for (int i = 0; i < count; i++) {
     HeaderTableItem item = headerTableItems.get(i);
     if (item.getMiningValue() < minSupport) {
       nodes.addAll(item.getNodeList());
       headerTableItems.remove(item);
       i--;
       count--;
     }
   }
   return nodes;
 }
예제 #9
0
  //    public List<HTableItemInfo> getInFrequentItemInfoByPrefix(double minSupport) {
  //        List<HTableItemInfo> result = new ArrayList<HTableItemInfo>();
  //        for (HeaderTableItem item : headerTableItems) {
  //            double prefixVal = item.getItemPrefixValue();
  //            double probabilityValue = item.getItemProbabilityValue();
  //            double miningValue = item.getMiningValue();
  //            if (prefixVal < minSupport) {
  //                HTableItemInfo hTableItemInfo = new HTableItemInfo();
  //                hTableItemInfo.setItemId(item.getItemId());
  //                hTableItemInfo.setItemPrefixValue(prefixVal);
  //                hTableItemInfo.setItemProbabilityValue(probabilityValue);
  //                hTableItemInfo.setMiningProbability(miningValue);
  //                result.add(hTableItemInfo);
  //            }
  //        }
  //        return result;
  //    }
  //
  //    public List<HTableItemInfo> getFrequentItemInfoByPrefix(double minSupport) {
  //        List<HTableItemInfo> result = new ArrayList<HTableItemInfo>();
  //        for (HeaderTableItem item : headerTableItems) {
  //            double prefixVal = item.getItemPrefixValue();
  //            double probabilityValue = item.getItemProbabilityValue();
  //            double miningValue = item.getMiningValue();
  //            if (prefixVal >= minSupport) {
  //                HTableItemInfo hTableItemInfo = new HTableItemInfo();
  //                hTableItemInfo.setItemId(item.getItemId());
  //                hTableItemInfo.setItemPrefixValue(prefixVal);
  //                hTableItemInfo.setItemProbabilityValue(probabilityValue);
  //                hTableItemInfo.setMiningProbability(miningValue);
  //                result.add(hTableItemInfo);
  //            }
  //        }
  //        return result;
  //    }
  //
  //    public List<HTableItemInfo> getFrequentItemInfoByMiningValue(double minSupport) {
  //        List<HTableItemInfo> result = new ArrayList<HTableItemInfo>();
  //        for (HeaderTableItem item : headerTableItems) {
  //            double prefixVal = item.getItemPrefixValue();
  //            double probabilityValue = item.getItemProbabilityValue();
  //            double miningValue = item.getMiningValue();
  //            if (miningValue >= minSupport) {
  //                HTableItemInfo hTableItemInfo = new HTableItemInfo();
  //                hTableItemInfo.setItemId(item.getItemId());
  //                hTableItemInfo.setItemPrefixValue(prefixVal);
  //                hTableItemInfo.setItemProbabilityValue(probabilityValue);
  //                hTableItemInfo.setMiningProbability(miningValue);
  //                result.add(hTableItemInfo);
  //            }
  //        }
  //        return result;
  //    }
  //
  //    public List<HTableItemInfo> getInFrequentItemInfoBySupport(double minSupport) {
  //        List<HTableItemInfo> result = new ArrayList<HTableItemInfo>();
  //        for (HeaderTableItem item : headerTableItems) {
  //            double prefixVal = item.getItemPrefixValue();
  //            double probabilityValue = item.getItemProbabilityValue();
  //            double miningValue = item.getMiningValue();
  //            if (probabilityValue < minSupport) {
  //                HTableItemInfo hTableItemInfo = new HTableItemInfo();
  //                hTableItemInfo.setItemId(item.getItemId());
  //                hTableItemInfo.setItemPrefixValue(prefixVal);
  //                hTableItemInfo.setItemProbabilityValue(probabilityValue);
  //                hTableItemInfo.setMiningProbability(miningValue);
  //                result.add(hTableItemInfo);
  //            }
  //        }
  //        return result;
  //    }
  //
  //    public List<HTableItemInfo> getFrequentItemInfoBySupport(double minSupport) {
  //        List<HTableItemInfo> result = new ArrayList<HTableItemInfo>();
  //        for (HeaderTableItem item : headerTableItems) {
  //            double prefixVal = item.getItemPrefixValue();
  //            double probabilityValue = item.getItemProbabilityValue();
  //            double miningValue = item.getMiningValue();
  //            if (probabilityValue >= minSupport) {
  //                HTableItemInfo hTableItemInfo = new HTableItemInfo();
  //                hTableItemInfo.setItemId(item.getItemId());
  //                hTableItemInfo.setItemPrefixValue(prefixVal);
  //                hTableItemInfo.setItemProbabilityValue(probabilityValue);
  //                hTableItemInfo.setMiningProbability(miningValue);
  //                result.add(hTableItemInfo);
  //            }
  //        }
  //        return result;
  //    }
  //
  //    public List<HTableItemInfo> getInFrequentItemInfoByMiningValue(double minSupport) {
  //        List<HTableItemInfo> result = new ArrayList<HTableItemInfo>();
  //        for (HeaderTableItem item : headerTableItems) {
  //            double prefixVal = item.getItemPrefixValue();
  //            double probabilityValue = item.getItemProbabilityValue();
  //            double miningValue = item.getMiningValue();
  //            if (miningValue < minSupport) {
  //                HTableItemInfo hTableItemInfo = new HTableItemInfo();
  //                hTableItemInfo.setItemId(item.getItemId());
  //                hTableItemInfo.setItemPrefixValue(prefixVal);
  //                hTableItemInfo.setItemProbabilityValue(probabilityValue);
  //                hTableItemInfo.setMiningProbability(miningValue);
  //                result.add(hTableItemInfo);
  //            }
  //        }
  //        return result;
  //    }
  public List<HTableItemInfo> getHeaderInfo() {
    List<HTableItemInfo> result = new ArrayList<HTableItemInfo>();
    for (HeaderTableItem item : headerTableItems) {
      HTableItemInfo hTableItemInfo = new HTableItemInfo();

      double prefixVal = item.getTotalPrefixValue();
      double probabilityValue = item.getTotalProbability();
      double miningValue = item.getMiningValue();

      hTableItemInfo.setItemId(item.getItemId());
      hTableItemInfo.setItemPrefixValue(prefixVal);
      hTableItemInfo.setItemProbabilityValue(probabilityValue);
      hTableItemInfo.setMiningProbability(miningValue);
      result.add(hTableItemInfo);
    }
    return result;
  }
예제 #10
0
 public void slideHeaderTable() {
   for (HeaderTableItem item : headerTableItems) {
     List<UNode> nodes = item.getNodeList();
     int counter = nodes.size();
     for (int i = 0; i < counter; i++) {
       UNode node = nodes.get(i);
       boolean isEmpty = true;
       for (UData data : node.getUncertainDataList()) {
         if (data.getItemProbability() > 0) {
           isEmpty = false;
           break;
         }
       }
       if (isEmpty) {
         nodes.remove(node);
         counter = counter - 1;
         i--;
       }
     }
   }
 }
예제 #11
0
 public HeaderTable copy(UNode uNode) {
   HeaderTable newTable = new HeaderTable(windowSize);
   List<UNode> distinctNodes = uNode.getDistinctNodes();
   for (HeaderTableItem item : this.headerTableItems) {
     HeaderTableItem newTableItem = newTable.addNewTableItem(item.getItemId());
     newTableItem.addProbabilityAndPrefixValue(
         item.getTotalProbability(), item.getTotalPrefixValue());
   }
   for (UNode node : distinctNodes) {
     newTable.updateHeaderTable(node, 0, 0);
   }
   return newTable;
 }
예제 #12
0
 public void updateHeaderTable(String id, double probability, double prefixValue) {
   HeaderTableItem headerTableItem = getHeaderTableItem(id);
   headerTableItem.addProbabilityAndPrefixValue(probability, prefixValue);
 }
예제 #13
0
 void addNode(UNode node, int index) {
   HeaderTableItem item = findHeaderTableItemById(node.getId());
   item.addNodeItem(node, index);
 }