com.cyc.cycjava.cycl.inference.harness
Class inference_strategic_heuristics
java.lang.Object
com.cyc.tool.subl.util.SubLTrampolineFile
com.cyc.tool.subl.util.SubLTranslatedFile
com.cyc.cycjava.cycl.inference.harness.inference_strategic_heuristics
- All Implemented Interfaces:
- CommonSymbols, SubLFile
public final class inference_strategic_heuristics
- extends SubLTranslatedFile
Fields inherited from interface com.cyc.tool.subl.jrtl.nativeCode.subLisp.CommonSymbols |
ANSWER_TAG, APPEND_KEYWORD, APPEND_STACK_TRACES_TO_ERROR_MESSAGES, AREF, ASSEMBLE_FIXNUMS_TO_INTEGER, ATOM, BIGNUMP, BINARY_KEYWORD, BINDING_TYPE, BOOLEANP, CAAR, CADR, CAND, CAR, CCATCH, CDEC, CDESTRUCTURING_BIND, CDO, CDO_ALL_SYMBOLS, CDO_EXTERNAL_SYMBOLS, CDO_SYMBOLS, CDOHASH, CDOLIST, CDOTIMES, CDR, CHAR, CHAR_E_SYMBOL, CHAR_EQUAL_SYMBOL, CHAR_GREATER_THAN_OR_EQUAL_SYMBOL, CHAR_GREATER_THAN_SYMBOL, CHAR_GT_SYMBOL, CHAR_GTE_SYMBOL, CHAR_LESS_THAN_OR_EQUAL_SYMBOL, CHAR_LESS_THAN_SYMBOL, CHAR_LT_SYMBOL, CHAR_LTE_SYMBOL, CHAR_NE_SYMBOL, CHAR_NOT_EQUAL_SYMBOL, CHARACTERP, CHECK_TYPE, CINC, CLET, CMULTIPLE_VALUE_BIND, CNOT, CONS, CONSP, CONSTANT, COR, CPOP, CPROGV, CPUSH, CPUSHNEW, CREATE_KEYWORD, CSETF, CSETQ, CSOME, CTIME, CUNWIND_PROTECT, CVS_ID, DEBUG_IO, DECLAIM, DECLARE, DEFCONSTANT, DEFINE, DEFLEXICAL, DEFMACRO, DEFPARAMETER, DEFVAR, DIRECTION_KEYWORD, DYNAMIC, EIGHT_INTEGER, EIGHTEEN_INTEGER, ELEMENT_TYPE_KEYWORD, ELEVEN_INTEGER, END_KEYWORD, ENFORCE_MUST, ENFORCE_TYPE, EQ, EQL, EQUAL, EQUALP, ERROR, ERROR_KEYWORD, ERROR_OUTPUT, EVAL, EXTERNAL_FORMAT_KEYWORD, EXTERNAL_KEYWORD, FIF, FIFTEEN_INTEGER, FIRST, FIVE_INTEGER, FIXNUMP, FLOATP, FOUR_INTEGER, FOURTEEN_INTEGER, FUNCTION, FUNCTION_SPEC_P, FUNCTIONP, FUNLESS, FWHEN, GET, GETHASH, GETHASH_WITHOUT_VALUES, GUID_P, HASH_TABLE_ITERATOR_P, HASH_TABLE_P, IDENTITY, IF_DOES_NOT_EXIST_KEYWORD, IF_EXISTS_KEYWORD, IGNORE, INITIALIZATION_TYPE, INITIALIZER, INPUT_KEYWORD, INPUT_STREAM_P, INTEGERP, INTERNAL_KEYWORD, IO_KEYWORD, KEYWORDP, KILL_KEYWORD, LAMBDA_SYMBOL, LEXICAL, LIST, LISTP, LISTS, LOCK_P, LONG_BIGNUM_P, MACRO_ENV, MACRO_FORM, MEDIUM_BIGNUM_P, MEMBER, MINUS_ONE_INTEGER, MULTIPLE_VALUE_LIST, MUST, NCONC, NEW_VERSION_KEYWORD, NIL, NINE_INTEGER, NINETEEN_INTEGER, NREVERSE, NTH, NTH_VALUE, NULL, NULL_INPUT, NULL_OUTPUT, NUM_E_SYMBOL, NUM_GT_SYMBOL, NUM_GTE_SYMBOL, NUM_LT_SYMBOL, NUM_LTE_SYMBOL, NUM_NE_SYMBOL, NUMBERP, ONE_HUNDRED_THIRTY_SEVEN_INTEGER, ONE_HUNDRED_TWENTY_SEVEN_INTEGER, ONE_INTEGER, ONE_THOUSAND_INTEGER, OPTIONAL_SYMBOL, OTHERWISE, OUTPUT_KEYWORD, OUTPUT_STREAM_P, OVERWRITE_KEYWORD, PACKAGEP, PCASE, PCOND, PIF, PROBE_KEYWORD, PROCESS_TO_END, PROCESSP, PROCLAIM, PROGN, PUNLESS, PWHEN, QUERY_IO, QUIT, QUOTE, RENAME_AND_DELETE_KEYWORD, REST_SYMBOL, RET, RET_NIL, RET_T, RETURN_TAG, REVERSE, RW_LOCK_P, SECOND, SEQUENCEP, SEVEN_INTEGER, SEVENTEEN_INTEGER, SHORT_BIGNUM_P, SHOW_STACK_TRACES, SIX_INTEGER, SIXTEEN_INTEGER, SIXTY_FOUR_INTEGER, SORT, SSS, STANDARD_INPUT, STANDARD_OUTPUT, START_KEYWORD, STREAMP, STRING_E_SYMBOL, STRING_EQUAL_SYMBOL, STRING_GREATER_THAN_OR_EQUAL_SYMBOL, STRING_GREATER_THAN_SYMBOL, STRING_GT_SYMBOL, STRING_GTE_SYMBOL, STRING_LESS_THAN_OR_EQUAL_SYMBOL, STRING_LESS_THAN_SYMBOL, STRING_LT_SYMBOL, STRING_LTE_SYMBOL, STRING_NE_SYMBOL, STRING_NOT_EQUAL_SYMBOL, STRINGP, STRUCTURE_P, SUPERSEDE_KEYWORD, SUSPEND_TYPE_CHECKING, SYMBOL_FUNCTION, SYMBOL_VALUE, SYMBOLP, T, TEN_INTEGER, TERMINAL_IO, TEXT_KEYWORD, THIRTEEN_INTEGER, THIRTY_FOUR_INTEGER, THIRTY_THREE_INTEGER, THIRTY_TWO_INTEGER, THREE_INTEGER, TRACE_OUTPUT, TRUE, TWELVE_INTEGER, TWENTY_INTEGER, TWO_HUNDRED_FIFTY_FOUR_INTEGER, TWO_HUNDRED_FORTY_FOUR_INTEGER, TWO_INTEGER, UNDECLARED, UNPROVIDED, VALUES, VECTOR, VECTORP, WITH_ERROR_HANDLER, WITH_STATIC_AREA, WITH_THREAD_PRIVATE_AREA, WITH_WORKING_AREA, WORLD, ZERO_DOUBLE, ZERO_INTEGER |
Method Summary |
static SubLObject |
compute_problem_rule_historical_utility_recursive_internal(SubLObject problem,
SubLObject inference)
|
static SubLObject |
compute_problem_rule_historical_utility_recursive(SubLObject problem,
SubLObject inference)
|
static SubLObject |
compute_tactic_rule_historical_utility(SubLObject tactic)
|
static SubLObject |
count_a_priori_utility_recursive_internal(SubLObject problem,
SubLObject inference)
|
static SubLObject |
count_a_priori_utility_recursive(SubLObject problem,
SubLObject inference)
|
static SubLObject |
declare_inference_strategic_heuristics_file()
|
static SubLObject |
declare_strategic_heuristic(SubLObject heuristic,
SubLObject plist)
|
void |
declareFunctions()
Declares the mapping between functions and symbols for all named
functions defined in the file. |
static SubLObject |
determine_tactic_heuristic_relevance_delta(SubLObject tactic)
|
static SubLObject |
do_strategic_heuristics_tactic_match_p(SubLObject tactic,
SubLObject tactic_type)
|
static SubLObject |
init_inference_strategic_heuristics_file()
|
void |
initializeVariables()
Initializes all global variables and private internal variables
for constants defined in the file. |
static SubLObject |
new_strategic_heuristic_data(SubLObject function,
SubLObject scaling_factor,
SubLObject pretty_name,
SubLObject comment,
SubLObject tactic_type)
|
static SubLObject |
numeric_table_lookup(SubLObject n,
SubLObject lookup_table,
SubLObject v_default)
Return a value associated with the numeric argument N via a table lookup. |
static SubLObject |
problem_on_heuristic_rule_a_priori_utility_stackP(SubLObject problem)
|
static SubLObject |
problem_on_rule_historical_utility_stackP(SubLObject problem)
|
static SubLObject |
problem_skolem_count(SubLObject problem)
|
static SubLObject |
productivity_for_shallow_and_cheap_heuristic(SubLObject content_tactic,
SubLObject strategy)
|
static SubLObject |
push_problem_onto_heuristic_rule_a_priori_utility_stack(SubLObject problem)
|
static SubLObject |
push_problem_onto_rule_historical_utility_stack(SubLObject problem)
|
static SubLObject |
rule_has_utility_wrt_problemP(SubLObject rule,
SubLObject problem)
|
static SubLObject |
rule_irrelevant_to_problemP(SubLObject rule,
SubLObject problem)
|
static SubLObject |
rule_relevant_to_problemP(SubLObject rule,
SubLObject problem)
|
void |
runTopLevelForms()
Runs all top-level forms in order. |
static SubLObject |
setup_inference_strategic_heuristics_file()
|
static SubLObject |
strategic_heuristic_backchain_required(SubLObject strategy,
SubLObject transformation_tactic)
|
static SubLObject |
strategic_heuristic_completeness(SubLObject strategy,
SubLObject content_tactic)
|
static SubLObject |
strategic_heuristic_function(SubLObject heuristic)
|
static SubLObject |
strategic_heuristic_happiness_due_to_literal_count(SubLObject literal_count)
|
static SubLObject |
strategic_heuristic_happiness_due_to_skolem_count(SubLObject skolem_count)
|
static SubLObject |
strategic_heuristic_index()
|
static SubLObject |
strategic_heuristic_magic_wand(SubLObject strategy,
SubLObject generalized_removal_tactic)
|
static SubLObject |
strategic_heuristic_occams_razor(SubLObject strategy,
SubLObject content_tactic)
|
static SubLObject |
strategic_heuristic_relevant_term(SubLObject strategy,
SubLObject content_tactic)
|
static SubLObject |
strategic_heuristic_rule_a_priori_utility(SubLObject strategy,
SubLObject content_tactic)
|
static SubLObject |
strategic_heuristic_rule_historical_utility(SubLObject strategy,
SubLObject content_tactic)
|
static SubLObject |
strategic_heuristic_rule_literal_count(SubLObject strategy,
SubLObject transformation_tactic)
|
static SubLObject |
strategic_heuristic_scaling_factor(SubLObject heuristic)
|
static SubLObject |
strategic_heuristic_shallow_and_cheap(SubLObject strategy,
SubLObject content_tactic)
|
static SubLObject |
strategic_heuristic_skolem_count(SubLObject strategy,
SubLObject logical_tactic)
|
static SubLObject |
strategic_heuristic_tactic_type(SubLObject heuristic)
|
static SubLObject |
tactic_strategic_uselessness_based_on_proof_depth_math_memoized_internal(SubLObject min_proof_depth)
|
static SubLObject |
tactic_strategic_uselessness_based_on_proof_depth_math_memoized(SubLObject min_proof_depth)
|
static SubLObject |
tactic_strategic_uselessness_based_on_proof_depth(SubLObject tactic,
SubLObject strategy)
|
static SubLObject |
transformation_tactic_has_utilityP(SubLObject transformation_tactic)
|
static SubLObject |
transformation_tactic_irrelevantP(SubLObject transformation_tactic)
|
static SubLObject |
transformation_tactic_relevantP(SubLObject transformation_tactic)
|
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
me
public static final SubLFile me
myName
public static final java.lang.String myName
- See Also:
- Constant Field Values
$highly_relevant_term_enabledP$
public static SubLSymbol $highly_relevant_term_enabledP$
- When t, the Heuristic tactician will prefer problems which
mention highlyRelevantTerms.
$sym0$_STRATEGIC_HEURISTIC_INDEX_
public static final SubLSymbol $sym0$_STRATEGIC_HEURISTIC_INDEX_
$sym1$STRATEGIC_HEURISTIC_INDEX
public static final SubLSymbol $sym1$STRATEGIC_HEURISTIC_INDEX
$sym2$DO_STRATEGIC_HEURISTICS
public static final SubLSymbol $sym2$DO_STRATEGIC_HEURISTICS
$list3
public static final SubLList $list3
$list4
public static final SubLList $list4
$kw5$ALLOW_OTHER_KEYS
public static final SubLSymbol $kw5$ALLOW_OTHER_KEYS
$kw6$TACTIC
public static final SubLSymbol $kw6$TACTIC
$kw7$DONE
public static final SubLSymbol $kw7$DONE
$sym8$TACTIC_TYPE
public static final SubLSymbol $sym8$TACTIC_TYPE
$sym9$DO_DICTIONARY_KEYS
public static final SubLSymbol $sym9$DO_DICTIONARY_KEYS
$list10
public static final SubLList $list10
$sym11$CLET
public static final SubLSymbol $sym11$CLET
$sym12$STRATEGIC_HEURISTIC_FUNCTION
public static final SubLSymbol $sym12$STRATEGIC_HEURISTIC_FUNCTION
$sym13$STRATEGIC_HEURISTIC_SCALING_FACTOR
public static final SubLSymbol $sym13$STRATEGIC_HEURISTIC_SCALING_FACTOR
$sym14$STRATEGIC_HEURISTIC_TACTIC_TYPE
public static final SubLSymbol $sym14$STRATEGIC_HEURISTIC_TACTIC_TYPE
$sym15$PWHEN
public static final SubLSymbol $sym15$PWHEN
$sym16$DO_STRATEGIC_HEURISTICS_TACTIC_MATCH_P
public static final SubLSymbol $sym16$DO_STRATEGIC_HEURISTICS_TACTIC_MATCH_P
$sym17$KEYWORDP
public static final SubLSymbol $sym17$KEYWORDP
$list18
public static final SubLList $list18
$list19
public static final SubLList $list19
$kw20$FUNCTION
public static final SubLSymbol $kw20$FUNCTION
$kw21$SCALING_FACTOR
public static final SubLSymbol $kw21$SCALING_FACTOR
$kw22$PRETTY_NAME
public static final SubLSymbol $kw22$PRETTY_NAME
$kw23$COMMENT
public static final SubLSymbol $kw23$COMMENT
$kw24$TACTIC_TYPE
public static final SubLSymbol $kw24$TACTIC_TYPE
$kw25$SHALLOW_AND_CHEAP
public static final SubLSymbol $kw25$SHALLOW_AND_CHEAP
$list26
public static final SubLList $list26
$sym27$STRATEGIC_HEURISTIC_SHALLOW_AND_CHEAP
public static final SubLSymbol $sym27$STRATEGIC_HEURISTIC_SHALLOW_AND_CHEAP
$kw28$UNDETERMINED
public static final SubLSymbol $kw28$UNDETERMINED
$sym29$TACTIC_STRATEGIC_USELESSNESS_BASED_ON_PROOF_DEPTH_MATH_MEMOIZED
public static final SubLSymbol $sym29$TACTIC_STRATEGIC_USELESSNESS_BASED_ON_PROOF_DEPTH_MATH_MEMOIZED
$sym30$_TACTIC_STRATEGIC_USELESSNESS_BASED_ON_PROOF_DEPTH_MATH_MEMOIZED_
public static final SubLSymbol $sym30$_TACTIC_STRATEGIC_USELESSNESS_BASED_ON_PROOF_DEPTH_MATH_MEMOIZED_
$kw31$_MEMOIZED_ITEM_NOT_FOUND_
public static final SubLSymbol $kw31$_MEMOIZED_ITEM_NOT_FOUND_
$kw32$COMPLETENESS
public static final SubLSymbol $kw32$COMPLETENESS
$list33
public static final SubLList $list33
$kw34$COMPLETE
public static final SubLSymbol $kw34$COMPLETE
$sym35$STRATEGIC_HEURISTIC_COMPLETENESS
public static final SubLSymbol $sym35$STRATEGIC_HEURISTIC_COMPLETENESS
$kw36$OCCAMS_RAZOR
public static final SubLSymbol $kw36$OCCAMS_RAZOR
$list37
public static final SubLList $list37
$list38
public static final SubLList $list38
$int39$_100
public static final SubLInteger $int39$_100
$kw40$INTUITIVE
public static final SubLSymbol $kw40$INTUITIVE
$sym41$STRATEGIC_HEURISTIC_OCCAMS_RAZOR
public static final SubLSymbol $sym41$STRATEGIC_HEURISTIC_OCCAMS_RAZOR
$kw42$MAGIC_WAND
public static final SubLSymbol $kw42$MAGIC_WAND
$list43
public static final SubLList $list43
$kw44$INCOMPLETE
public static final SubLSymbol $kw44$INCOMPLETE
$sym45$STRATEGIC_HEURISTIC_MAGIC_WAND
public static final SubLSymbol $sym45$STRATEGIC_HEURISTIC_MAGIC_WAND
$kw46$BACKTRACKING_CONSIDERED_HARMFUL
public static final SubLSymbol $kw46$BACKTRACKING_CONSIDERED_HARMFUL
$list47
public static final SubLList $list47
$list48
public static final SubLList $list48
$sym49$STRATEGIC_HEURISTIC_BACKTRACKING
public static final SubLSymbol $sym49$STRATEGIC_HEURISTIC_BACKTRACKING
$int50$400
public static final SubLInteger $int50$400
$kw51$CONNECTED_CONJUNCTION
public static final SubLSymbol $kw51$CONNECTED_CONJUNCTION
$kw52$EXECUTED
public static final SubLSymbol $kw52$EXECUTED
$kw53$BACKCHAIN_REQUIRED
public static final SubLSymbol $kw53$BACKCHAIN_REQUIRED
$list54
public static final SubLList $list54
$int55$100
public static final SubLInteger $int55$100
$sym56$STRATEGIC_HEURISTIC_BACKCHAIN_REQUIRED
public static final SubLSymbol $sym56$STRATEGIC_HEURISTIC_BACKCHAIN_REQUIRED
$kw57$RULE_A_PRIORI_UTILITY
public static final SubLSymbol $kw57$RULE_A_PRIORI_UTILITY
$list58
public static final SubLList $list58
$kw59$LOOP
public static final SubLSymbol $kw59$LOOP
$sym60$STRATEGIC_HEURISTIC_RULE_A_PRIORI_UTILITY
public static final SubLSymbol $sym60$STRATEGIC_HEURISTIC_RULE_A_PRIORI_UTILITY
$sym61$COUNT_A_PRIORI_UTILITY_RECURSIVE
public static final SubLSymbol $sym61$COUNT_A_PRIORI_UTILITY_RECURSIVE
$sym62$TRANSFORMATION_RULE_A_PRIORI_UTILITY_HAPPINESS
public static final SubLSymbol $sym62$TRANSFORMATION_RULE_A_PRIORI_UTILITY_HAPPINESS
$kw63$RELEVANT_TERM
public static final SubLSymbol $kw63$RELEVANT_TERM
$list64
public static final SubLList $list64
$sym65$STRATEGIC_HEURISTIC_RELEVANT_TERM
public static final SubLSymbol $sym65$STRATEGIC_HEURISTIC_RELEVANT_TERM
$kw66$NEG
public static final SubLSymbol $kw66$NEG
$list67
public static final SubLList $list67
$kw68$POS
public static final SubLSymbol $kw68$POS
$sym69$ACCUMULATE_RELEVANT_OR_IRRELEVANT_TERM_COUNT
public static final SubLSymbol $sym69$ACCUMULATE_RELEVANT_OR_IRRELEVANT_TERM_COUNT
$kw70$RULE_HISTORICAL_UTILITY
public static final SubLSymbol $kw70$RULE_HISTORICAL_UTILITY
$list71
public static final SubLList $list71
$sym72$STRATEGIC_HEURISTIC_RULE_HISTORICAL_UTILITY
public static final SubLSymbol $sym72$STRATEGIC_HEURISTIC_RULE_HISTORICAL_UTILITY
$sym73$COMPUTE_PROBLEM_RULE_HISTORICAL_UTILITY_RECURSIVE
public static final SubLSymbol $sym73$COMPUTE_PROBLEM_RULE_HISTORICAL_UTILITY_RECURSIVE
$sym74$TRANSFORMATION_RULE_UTILITY
public static final SubLSymbol $sym74$TRANSFORMATION_RULE_UTILITY
$sym75$RULE_ASSERTION_
public static final SubLSymbol $sym75$RULE_ASSERTION_
$kw76$RULE_HISTORICAL_CONNECTEDNESS
public static final SubLSymbol $kw76$RULE_HISTORICAL_CONNECTEDNESS
$list77
public static final SubLList $list77
$sym78$STRATEGIC_HEURISTIC_RULE_HISTORICAL_CONNECTEDNESS
public static final SubLSymbol $sym78$STRATEGIC_HEURISTIC_RULE_HISTORICAL_CONNECTEDNESS
$sym79$CACHED_PROBLEM_LINK_PATHS_RELEVANT_TO_INFERENCE
public static final SubLSymbol $sym79$CACHED_PROBLEM_LINK_PATHS_RELEVANT_TO_INFERENCE
$sym80$PROBLEM_P
public static final SubLSymbol $sym80$PROBLEM_P
$sym81$INFERENCE_P
public static final SubLSymbol $sym81$INFERENCE_P
$sym82$PROBLEM_LINK_PATH_RULE_SET
public static final SubLSymbol $sym82$PROBLEM_LINK_PATH_RULE_SET
$sym83$TACTIC_P
public static final SubLSymbol $sym83$TACTIC_P
$sym84$_
public static final SubLSymbol $sym84$_
$sym85$ASSERTION_ID
public static final SubLSymbol $sym85$ASSERTION_ID
$kw86$LITERAL_COUNT
public static final SubLSymbol $kw86$LITERAL_COUNT
$list87
public static final SubLList $list87
$sym88$STRATEGIC_HEURISTIC_LITERAL_COUNT
public static final SubLSymbol $sym88$STRATEGIC_HEURISTIC_LITERAL_COUNT
$kw89$RULE_LITERAL_COUNT
public static final SubLSymbol $kw89$RULE_LITERAL_COUNT
$list90
public static final SubLList $list90
$sym91$STRATEGIC_HEURISTIC_RULE_LITERAL_COUNT
public static final SubLSymbol $sym91$STRATEGIC_HEURISTIC_RULE_LITERAL_COUNT
$list92
public static final SubLList $list92
$list93
public static final SubLList $list93
$kw94$SKOLEM_COUNT
public static final SubLSymbol $kw94$SKOLEM_COUNT
$list95
public static final SubLList $list95
$sym96$STRATEGIC_HEURISTIC_SKOLEM_COUNT
public static final SubLSymbol $sym96$STRATEGIC_HEURISTIC_SKOLEM_COUNT
$sym97$SKOLEM_FUNCTION_P
public static final SubLSymbol $sym97$SKOLEM_FUNCTION_P
$list98
public static final SubLList $list98
$sym99$HAPPINESS__
public static final SubLSymbol $sym99$HAPPINESS__
$sym100$THIRD
public static final SubLSymbol $sym100$THIRD
$sym101$FOURTH
public static final SubLSymbol $sym101$FOURTH
strategic_heuristic_index
public static final SubLObject strategic_heuristic_index()
do_strategic_heuristics_tactic_match_p
public static final SubLObject do_strategic_heuristics_tactic_match_p(SubLObject tactic,
SubLObject tactic_type)
new_strategic_heuristic_data
public static final SubLObject new_strategic_heuristic_data(SubLObject function,
SubLObject scaling_factor,
SubLObject pretty_name,
SubLObject comment,
SubLObject tactic_type)
declare_strategic_heuristic
public static final SubLObject declare_strategic_heuristic(SubLObject heuristic,
SubLObject plist)
- Parameters:
HEURISTIC
- keywordp; a token for the heuristic being declared.FUNCTION
- symbolp; a function with the arglist (strategy tactic) which returns a happiness-p.SCALING-FACTOR
- potentially-infinite-integer-p; how important this heuristic is
relative to the other heuristics. A relative weight.TACTIC-TYPE
- tactic-type-spec-p; the type of tactics HEURISTIC applies to.
The happiness returned by FUNCTION should be between -100 and 100. (although some extant heuristics disobey this.)
-100 = strongly disfavor (estimated 0% chance of success)
0 = agnostic (estimated A% chance of success, i.e. random chance)
100 = strongly favor (estimated 100% chance of success)
'A%' in the above guidelines is the probability that executing an arbitrary tactic will lead to success.
The happiness should be proportional to the estimated likelihood, according to this heuristic,
that executing TACTIC will lead toward success (i.e. proofs). For example, if A were 10%, and a tactic that
is guessed to be 20% likely to succeed yields a happiness of 25, then a tactic that is guessed to be 30% likely
to succeed should have a happiness of 50. It's okay for it to scale off more steeply at 100% because success is relatively rare.
strategic_heuristic_function
public static final SubLObject strategic_heuristic_function(SubLObject heuristic)
- Returns:
- nil or symbolp
strategic_heuristic_scaling_factor
public static final SubLObject strategic_heuristic_scaling_factor(SubLObject heuristic)
- Returns:
- nil or potentially-infinite-integer-p
strategic_heuristic_tactic_type
public static final SubLObject strategic_heuristic_tactic_type(SubLObject heuristic)
- Returns:
- nil or tactic-type-spec-p; the type of tactic that HEURISTIC applies to
strategic_heuristic_shallow_and_cheap
public static final SubLObject strategic_heuristic_shallow_and_cheap(SubLObject strategy,
SubLObject content_tactic)
productivity_for_shallow_and_cheap_heuristic
public static final SubLObject productivity_for_shallow_and_cheap_heuristic(SubLObject content_tactic,
SubLObject strategy)
tactic_strategic_uselessness_based_on_proof_depth
public static final SubLObject tactic_strategic_uselessness_based_on_proof_depth(SubLObject tactic,
SubLObject strategy)
tactic_strategic_uselessness_based_on_proof_depth_math_memoized_internal
public static final SubLObject tactic_strategic_uselessness_based_on_proof_depth_math_memoized_internal(SubLObject min_proof_depth)
tactic_strategic_uselessness_based_on_proof_depth_math_memoized
public static final SubLObject tactic_strategic_uselessness_based_on_proof_depth_math_memoized(SubLObject min_proof_depth)
strategic_heuristic_completeness
public static final SubLObject strategic_heuristic_completeness(SubLObject strategy,
SubLObject content_tactic)
strategic_heuristic_occams_razor
public static final SubLObject strategic_heuristic_occams_razor(SubLObject strategy,
SubLObject content_tactic)
strategic_heuristic_magic_wand
public static final SubLObject strategic_heuristic_magic_wand(SubLObject strategy,
SubLObject generalized_removal_tactic)
strategic_heuristic_backchain_required
public static final SubLObject strategic_heuristic_backchain_required(SubLObject strategy,
SubLObject transformation_tactic)
- Returns:
- happiness-p; return 100 iff TRANSFORMATION-TACTIC transforms a
single literal problem with a #$backchainRequired predicate.
Otherwise, return 0.
strategic_heuristic_rule_a_priori_utility
public static final SubLObject strategic_heuristic_rule_a_priori_utility(SubLObject strategy,
SubLObject content_tactic)
- Returns:
- happiness-p; between -100 and 100.
positive if CONTENT-TACTIC's problem has any supported* problem with a dependent transformation link
which used a highlyRelevantAssertion.
negative if CONTENT-TACTIC's problem has any supported* problem with a dependent transformation link
which used an irrelevantAssertion.
If there is a mix, it will take a percentage, with -100/+100 being 100% irrelevant/relevant.
0 indicates agnostic.
A special case is that zero dependent* transformation links yield a value of 100 instead
of 0, otherwise the Tactician will prefer highly relevant transformations over removals.
push_problem_onto_heuristic_rule_a_priori_utility_stack
public static final SubLObject push_problem_onto_heuristic_rule_a_priori_utility_stack(SubLObject problem)
problem_on_heuristic_rule_a_priori_utility_stackP
public static final SubLObject problem_on_heuristic_rule_a_priori_utility_stackP(SubLObject problem)
count_a_priori_utility_recursive_internal
public static final SubLObject count_a_priori_utility_recursive_internal(SubLObject problem,
SubLObject inference)
- Returns:
- 0; the number of PROBLEM's dependent* highly relevant assertions
minus the number of PROBLEM's dependent* irrelevant assertions (wrt INFERENCE).
count_a_priori_utility_recursive
public static final SubLObject count_a_priori_utility_recursive(SubLObject problem,
SubLObject inference)
determine_tactic_heuristic_relevance_delta
public static final SubLObject determine_tactic_heuristic_relevance_delta(SubLObject tactic)
transformation_tactic_relevantP
public static final SubLObject transformation_tactic_relevantP(SubLObject transformation_tactic)
- Returns:
- boolean; TRANSFORMATION-TACTIC's rule has a #$highlyRelevantAssertion
meta-assertion on it, and the mt of the meta-assertion is visible from the mt of
TRANSFORMATION-TACTIC's problem. If there is no rule, be conservative and return NIL.
transformation_tactic_irrelevantP
public static final SubLObject transformation_tactic_irrelevantP(SubLObject transformation_tactic)
- Returns:
- boolean; TRANSFORMATION-TACTIC's rule has an #$irrelevantAssertion
meta-assertion on it, and the mt of the meta-assertion is visible from the mt of
TRANSFORMATION-TACTIC's problem. If there is no rule, be conservative and return NIL.
transformation_tactic_has_utilityP
public static final SubLObject transformation_tactic_has_utilityP(SubLObject transformation_tactic)
rule_relevant_to_problemP
public static final SubLObject rule_relevant_to_problemP(SubLObject rule,
SubLObject problem)
rule_irrelevant_to_problemP
public static final SubLObject rule_irrelevant_to_problemP(SubLObject rule,
SubLObject problem)
rule_has_utility_wrt_problemP
public static final SubLObject rule_has_utility_wrt_problemP(SubLObject rule,
SubLObject problem)
strategic_heuristic_relevant_term
public static final SubLObject strategic_heuristic_relevant_term(SubLObject strategy,
SubLObject content_tactic)
- Returns:
- happiness-p; between -100 and 100. Gets +20 for each
#$highlyRelevantTerm in CONTENT-TACTIC's problem (relevance determined
from the context of the appropriate contextualized literal)
and -20 for each #$irrelevantTerm. Maxes/mins out at -100/100.
strategic_heuristic_rule_historical_utility
public static final SubLObject strategic_heuristic_rule_historical_utility(SubLObject strategy,
SubLObject content_tactic)
- Returns:
- happiness-p; between -100 and 100.
positive if CONTENT-TACTIC's problem has any supported* problem with a dependent transformation link
which uses a historically useful rule.
negative if CONTENT-TACTIC's problem has any supported* problem with a dependent transformation link
which uses a historically useless rule.
If there is a mix, it will take a percentage, with -100/+100 being 100% irrelevant/relevant.
0 indicates agnostic.
A special case is that zero dependent* transformation links yield a value of 100 instead
of 0, otherwise the Tactician will prefer relevant transformations over removals.
push_problem_onto_rule_historical_utility_stack
public static final SubLObject push_problem_onto_rule_historical_utility_stack(SubLObject problem)
problem_on_rule_historical_utility_stackP
public static final SubLObject problem_on_rule_historical_utility_stackP(SubLObject problem)
compute_problem_rule_historical_utility_recursive_internal
public static final SubLObject compute_problem_rule_historical_utility_recursive_internal(SubLObject problem,
SubLObject inference)
- Returns:
- 0; the number of PROBLEM's dependent* highly relevant assertions
minus the number of PROBLEM's dependent* irrelevant assertions (wrt INFERENCE).
compute_problem_rule_historical_utility_recursive
public static final SubLObject compute_problem_rule_historical_utility_recursive(SubLObject problem,
SubLObject inference)
compute_tactic_rule_historical_utility
public static final SubLObject compute_tactic_rule_historical_utility(SubLObject tactic)
strategic_heuristic_rule_literal_count
public static final SubLObject strategic_heuristic_rule_literal_count(SubLObject strategy,
SubLObject transformation_tactic)
strategic_heuristic_happiness_due_to_literal_count
public static final SubLObject strategic_heuristic_happiness_due_to_literal_count(SubLObject literal_count)
numeric_table_lookup
public static final SubLObject numeric_table_lookup(SubLObject n,
SubLObject lookup_table,
SubLObject v_default)
- Return a value associated with the numeric argument N via a table lookup.
LOOKUP-TABLE is a list of (input, output) pairs.
The symbol :positive-infinity represents infinity as the input value of the last pair.
All numeric lookup tables should end with :positive-infinity.
strategic_heuristic_skolem_count
public static final SubLObject strategic_heuristic_skolem_count(SubLObject strategy,
SubLObject logical_tactic)
problem_skolem_count
public static final SubLObject problem_skolem_count(SubLObject problem)
strategic_heuristic_happiness_due_to_skolem_count
public static final SubLObject strategic_heuristic_happiness_due_to_skolem_count(SubLObject skolem_count)
declare_inference_strategic_heuristics_file
public static final SubLObject declare_inference_strategic_heuristics_file()
init_inference_strategic_heuristics_file
public static final SubLObject init_inference_strategic_heuristics_file()
setup_inference_strategic_heuristics_file
public static final SubLObject setup_inference_strategic_heuristics_file()
declareFunctions
public void declareFunctions()
- Description copied from interface:
SubLFile
- Declares the mapping between functions and symbols for all named
functions defined in the file.
Like CRTL define.
initializeVariables
public void initializeVariables()
- Description copied from interface:
SubLFile
- Initializes all global variables and private internal variables
for constants defined in the file.
Like CRTL init.
runTopLevelForms
public void runTopLevelForms()
- Description copied from interface:
SubLFile
- Runs all top-level forms in order.
Like CRTL setup.