Il est bien connu que les formules CNF peuvent être grossièrement partitionnées en 2 grandes classes: aléatoire vs structurée. Les formules CNF structurées, contrairement aux formules CNF aléatoires, présentent une sorte d'ordre, montrant des modèles qui ne se produiront probablement pas par hasard. Cependant, on peut trouver des formules structurées montrant un certain degré de caractère aléatoire (c'est-à-dire que certains groupes spécifiques de clauses semblent beaucoup moins structurés que d'autres), ainsi que des formules aléatoires avec une certaine forme de structure faible (c'est-à-dire que certains groupes spécifiques de clauses semblent moins aléatoires que d'autres ). Il semble donc que le caractère aléatoire d'une formule ne soit pas simplement un fait oui / non.
Soit une fonction qui, étant donnée une formule CNF F ∈ F , renvoie une valeur réelle comprise entre 0 et 1 inclus: 0 signifie une formule structurée pure, tandis que 1 signifie une formule aléatoire pure.
Je me demande si quelqu'un a déjà essayé d'inventer un tel . Bien sûr, la valeur retournée par r ne serait (du moins c'est mon intention) qu'une mesure pratique selon certains critères raisonnables, plutôt qu'une solide vérité théorique.
Je suis également intéressé de savoir si quelqu'un a déjà défini et étudié un indicateur statistique pouvant être utilisé dans la définition de ou dans la détermination d'autres propriétés globales utiles d'une formule. Par indicateur statistique, je veux dire quelque chose comme ça:
- VHC (Compteur Variance)
Soit une fonction qui, étant donné une variable v j ∈ N , retourne le nombre de fois v j apparaît dans F . Laissez - V l'ensemble des variables utilisées dans F . Soit ˉ h F = 1être le AHC (Average Hit Count). Le VHC est défini comme suit: HVC=1
Dans les cas aléatoires, le VHC est très faible (toutes les variables sont mentionnées presque le même nombre de fois), tandis que dans les cas structurés, il ne l'est pas (certaines variables sont utilisées très fréquemment et d’autres pas, c’est-à-dire qu’il existe des «grappes d’utilisation»).
- AID (Moyenne Impureté degré)
Soit soit le nombre de fois v j se produit positif, et laisser h - F ( v j ) le nombre de fois où il se produit négatif. Soit i : N → [ 0 , 1 ] une fonction qui, étant donnée une variable v j ∈ V , renvoie son ID (degré d'impureté). La fonction i ( v j ) est définie comme suit: i ( . Ces variables se produisant la moitié des fois positives et la moitié des fois négatives ont un degré d'impureté maximum, tandis que ces variables se produisant toujours positives ou toujours négatives (c'est-à-dire des littéraux purs) ont un degré d'impureté minimum. L'AID est simplement défini comme suit: AID=1
Dans les cas aléatoires (au moins dans ceux générés par des variables négatives avec une probabilité de0,5), l'AID est presque égal à1, tandis que dans les cas structurés, il est généralement loin de1.
- IDV (Impurity Degree Variance)
L'IDV est un indicateur plus robuste que l'AID seul, car il tient compte des instances aléatoires générées par la négation des variables avec une probabilité différente de . Il est défini comme suit: I D V = 1
Les motivations
- Pour mieux comprendre le fonctionnement des formules CNF, comment leur caractère aléatoire / structure pourrait être mesuré, si d'autres propriétés globales utiles pouvaient être déduites en examinant leurs indicateurs statistiques, si et comment ces indicateurs pourraient être utilisés pour accélérer la recherche.
- Je me demande si la satisfiabilité (ou même le nombre de solutions) d'une formule CNF pourrait être déduite en manipulant simplement habilement ses indicateurs statistiques.
Des questions
- Quelqu'un a-t-il déjà proposé un moyen de mesurer le caractère aléatoire d'une formule CNF?
- Quelqu'un a-t-il déjà proposé un indicateur statistique pouvant être utilisé pour étudier ou même déduire mécaniquement les propriétés globales utiles d'une formule CNF?