Browse Source

Add zoopt option

pull/3/head
troyyyyy GitHub 3 years ago
parent
commit
c4ab9843d3
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 4 deletions
  1. +8
    -4
      abducer/abducer_base.py

+ 8
- 4
abducer/abducer_base.py View File

@@ -106,21 +106,26 @@ class AbducerBase(abc.ABC):
address_num = min(max_address_num, self.cache_min_address_num[(tuple(pred_res), key)] + require_more_address)
if (tuple(pred_res), key, address_num) in self.cache_candidates:
candidates = self.cache_candidates[(tuple(pred_res), key, address_num)]
return self.get_min_cost_candidate(pred_res, pred_res_prob, candidates)
if self.zoopt:
return candidates[0]
else:
return self.get_min_cost_candidate(pred_res, pred_res_prob, candidates)
if self.zoopt:
address_idx, address_num = self.zoopt_get_address_idx(pred_res, key, max_address_num)
candidates = self.kb.address_by_idx(pred_res, key, address_idx)
min_address_num = address_num
candidate = candidates[0]
else:
candidates, min_address_num, address_num = self.kb.abduce_candidates(pred_res, key, max_address_num, require_more_address)
candidate = self.get_min_cost_candidate(pred_res, pred_res_prob, candidates)
if self.cache:
self.cache_min_address_num[(tuple(pred_res), key)] = min_address_num
self.cache_candidates[(tuple(pred_res), key, address_num)] = candidates

candidate = self.get_min_cost_candidate(pred_res, pred_res_prob, candidates)
return candidate
@@ -138,7 +143,7 @@ if __name__ == '__main__':
prob1 = [[0, 0.99, 0.01, 0, 0, 0, 0, 0, 0, 0], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]]
prob2 = [[0, 0, 0.01, 0, 0, 0, 0, 0.99, 0, 0], [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]]
kb = add_KB(GKB_flag = True)
kb = add_KB()
abd = AbducerBase(kb, 'confidence')
res = abd.abduce(([1, 1], prob1, 8), max_address_num = 2, require_more_address = 0)
print(res)
@@ -192,4 +197,3 @@ if __name__ == '__main__':
print(res)
print()


Loading…
Cancel
Save