La directive SMTLib2 (get-info all-statistics)
affiche plusieurs numéros, par ex.Quelles statistiques indiquent une exécution efficace de Z3?
num. conflicts: 4
num. propagations: 0 (binary: 0)
num. qa. inst: 23
Afin de tester différents axiomatisations et codages je voudrais savoir quels de ces numéros sont appropriés pour déclarer qu'un run Z3 est mieux/plus efficace qu'un autre.
Deviner à partir des noms Je dirais que num. qa. inst
- le nombre d'instanciations de quantificateurs - est un bon indicateur (inférieur = meilleur), mais qu'en est-il des autres?
Merci de remarquer les options supplémentaires! Mais qu'en est-il des autres numéros, par ex. "nombre de décisions"? Lequel d'entre eux devrait être considéré lors de l'analyse comparative des codages Z3? –
"nombre de conflits" est beaucoup plus pertinent que "nombre de décisions". BTW, Z3 utilise backtracking non chronologique. Ainsi, n décisions n'implique pas que Z3 a exploré 2^n branches. "nombre de conflits" est à peu près égal au nombre de branches explorées par Z3. Il existe d'autres nombres utiles pour détecter les goulots d'étranglement dans le raisonnement théorique. Par exemple, "pivots" -> Z3 a des problèmes avec l'arithmétique linéaire, "coupes de gomory" -> arithmétique entière, "interface eqs" -> combinaison de théorie, etc. –