Limites de la taille du plus petit NFA pour L_k-distinct


18

Considérons le langage composé de toutes les chaînes de k lettres sur Σ de telle sorte qu'il n'y ait pas deux lettres égales:LkdistinctkΣ

Lkdistinct:={w=σ1σ2...σki[k]:σiΣ  and  ji:σjσi}

Cette langue est finie et donc régulière. Plus précisément, si |Σ|=n , puis.|Lkdistinct|=(nk)k!

Quel est le plus petit automate fini non déterministe qui accepte ce langage?

J'ai actuellement les limites supérieures et inférieures lâches suivantes:

  • Le plus petit NFA que je peux construire a états.4k(1+o(1))polylog(n)

  • Le lemme suivant implique une borne inférieure de 2k états:

Soit LΣ une langue régulière. Supposons qu'il y ait n paires P={(xi,wi)1in} telles que xiwjL si et seulement si i=j . Ensuite, tout NFA acceptant L a au moins n états.

  • Une autre borne inférieure (triviale) est log(nk) , qui est le journal de la taille du plus petit DFA pour la langue.

Je m'intéresse également aux NFA qui n'acceptent qu'une fraction fixe ( ) de L_ {k-distinct} , si la taille de l'automate est inférieure à \ epsilon \ cdot 4 ^ {k (1 + o ( 1))} \ cdot polylog (n) .0<ϵ<1Lkdistinctϵ4k(1+o(1))polylog(n)


Edit: je viens de commencer une prime qui avait une erreur dans le texte.

Je voulais dire que nous pouvons supposer que k=polylog(n) pendant que j'écrivais k=O(log(n)) .

Edit2:

La prime va bientôt se terminer, donc si quelqu'un est intéressé par ce qui est peut-être un moyen plus facile de le gagner, pensez à la langue suivante:

L(r,k)distinct:={w:w contient k symboles distincts et aucun symbole n'apparaît plus de r fois } .

(c'est-à-dire L(1,k)distinct=Lkdistinct ).

Une construction similaire à celle des commentaires donne un automate de taille pour .L ( r , k ) - d i s t i n c tO(ek2klog(1+r)poly(n))L(r,k)distinct

Cela peut-il être amélioré? Quelle est la meilleure limite inférieure que nous pouvons afficher pour cette langue?


2
Pouvez-vous décrire votre NFA limite supérieure?
mjqxxxx

Je ne peux pas encore écrire à ce sujet car nous y travaillons toujours et n'avons pas terminé la preuve. Au lieu de cela, je vais décrire un automate beaucoup plus simple de taille : Prenez une famille de hachage parfaite . Chaque hachage est une fonction . Cela signifie que pour chaque sous-ensemble de de taille au plus , il existe une fonction telle qu'elle mappe chaque élément du sous-ensemble à un nombre différent. Après le hachage, l'alphabet résultant a lettres, donc une autumaton de taille peut accepter la langue . ( n , k ) H h : [ n ] [ k ] [ n ] k h H k 2 k L k - d i s t i n cO((2e)k2O(log(k))log(n))(n,k)Hh:[n][k][n]khHk2kLkdistinct
RB

4
La borne inférieure donne comptant simplement le nombre d'états dans lesquels le NFA peut se trouver après exactement étapes. Je ne pense pas être au courant d'une méthode de preuve qui donne des limites significativement meilleures pour la taille totale que ce qui peut être obtenu qu'en regardant simplement ce qui se passe après étapes, pour certains . Mais ici, pour chaque il existe un NFA qui ne peut se trouver que dans un seul des états après exactement états. k / 2 t t t ( 2 + o ( 1 ) ) k t(2o(1))kk/2ttt(2+o(1))kt
Noam

3
Preuve (de ma revendication précédente): Le cas le plus difficile est ; choisissez différents sous-ensembles aléatoires (des symboles de l'alphabet) de taille exactement chacun et construisez un NFA qui a un état pour chaque avec un chemin menant à celui-ci si le premier symboles sont tous différents et sont contenus dans et ont un chemin d'acceptation à partir de celui-ci si les symboles suivants sont tous différents et sont contenus dans le complément de . Un argument de comptage montrera que whp (sur le choix aléatoire du2 kp o l y ( k , log n ) S i n t i t S i k - t S i S it=k/22kpoly(k,logn)SintitSiktSiSi') cette NFA acceptera en effet toute la langue souhaitée.
Noam

3
Dans la construction précédente, la manière la plus simple de construire le NFA aura un état pour chaque préfixe possible de longueur et pour chaque suffixe possible de longueur . Au lieu de cela, la partie préfixe et la partie suffixe de la NFA peuvent être construites récursivement en utilisant la même construction randomisée (mais maintenant uniquement dans et son complément, respectivement) et cela donnerait une taille totale . j > k - t S i ( 4 + o ( 1 ) ) kj<tj>ktSi(4+o(1))k
Noam

Réponses:


2

Ce n'est pas une réponse mais une méthode qui, je crois, laisserait une borne inférieure améliorée. Laissez-nous couper le problème après avoir lu lettre. On note la famille des ensembles d'éléments de de et la famille de ensembles d'éléments de par . Notons les états qui peuvent être atteints après avoir lu les éléments de (dans n'importe quel ordre) par et les états à partir desquels un état acceptant peut être atteint après avoir lu les éléments de (dans n'importe quel ordre) par . Nous avons besoin de ce si et seulement sia [ n ] A b = k - a [ n ] B A S A B T B S AT BA B = aa[n]Ab=ka[n]BASABTBSATBAB= . Cela donne déjà une limite inférieure pour le nombre d'états requis et je pense que cela pourrait donner quelque chose de non trivial.

Ce problème demande essentiellement une borne inférieure sur le nombre de sommets d'un hypergraphe dont le graphe linéaire est (partiellement) connu. Des problèmes similaires ont été étudiés par exemple par Bollobas et il existe plusieurs méthodes de preuve connues qui peuvent être utiles.

Mise à jour 2014.03.24: En fait, si l'hypergraphe ci-dessus peut être réalisé sur sommets , nous obtenons également un protocole de complexité de communication non déterministe de longueur pour la disjonction d'ensemble avec des ensembles d'entrées de taille et (en fait, les deux les problèmes sont équivalents). Le goulot d'étranglement est bien sûr quand , pour cela je n'ai pu trouver que ce qui suit dans le livre d'Eyal et Noam: prouvé par l'argument probabiliste standard. Malheureusement, je n'ai pas (encore) trouvé de limites inférieures suffisamment bonnes sur ce problème, mais en supposant que ce qui précède est net, cela donnerait une limite inférieureslogsaba=b=k/2N1(DISJa)log(2kloge(na))Ω(2klogn) unifier les deux limites inférieures que vous avez mentionnées.


1
Merci @domotorp pour votre réponse. Cela ressemble beaucoup à la preuve du lemme que j'ai utilisé pour la borne inférieure dans la question d'origine, mais sans spécifier les et réels , et donc pas une borne dénombrable. Votre commentaire sur la question ci-dessus suggère que la limite ne peut pas être améliorée par cette méthode, pensez-vous que cela pourrait faire mieux? xiyi2k
RB

3
L'intérêt de mon commentaire ci-dessus était que ces techniques ne peuvent pas donner une borne inférieure au-dessus de . C'est vraiment ce qui rend ce problème intéressant pour moi. (2+o(1))k
Noam

@Noam: Soit k = 2, a = b = 1. Nous obtenons déjà une borne inférieure car chaque doit être différent. lognSA
domotorp

1
@domotorp: Le cache un facteur O ( k log n ) : Voici l'analyse du pire des cas où a = b = k / 2 : Commencez par un A et B fixe et choisissez au hasard un sous-ensemble S de les n lettres alors nous avons P r [ A So(1)O(klogn)a=b=k/2ABSn . Maintenant, choisissez r 2 k de tels ensembles au hasard, alors la probabilité que pour au moins l'un d'entre eux se produise est 1 - e x p ( - r ) . Si nous choisissons r = O ( log ( nPr[ASandBSc]=2kr2k1exp(r)alors nous obtenons que tel est le cas pour TOUS les ensembles disjointsAetB(de taillek/2). Le nombre total de cesSdans cette construction estO(2kklogn). r=O(log(nk))=O(klogn)ABk/2SO(2kklogn)
Noam

2
@Noam: Je suis désolé , mais je ne l' ai jamais vu un caché dans un o ( 1 ) , d' autant plus que le problème est aussi intéressant pour IMHO k < < log n . Mais vous avez raison, RB a posé des questions sur k = p o l y l o g n . logno(1)k<<lognk=polylogn
domotorp

0

Quelques travaux en cours:

J'essaie de prouver une limite inférieure de . Voici une question qui, je suis sûr, donnerait une telle borne inférieure: trouver le minimum t tel qu'il existe une fonction f : { S [ n ] , | S | = k / 2 } { 0 , 1 } t qui préserve la disjonction, c'est-à-dire que S 1S 2 = ssi f ( S 1 ) f (4ktf:{S[n],|S|=k/2}{0,1}tS1S2= . Je suis presque sûr qu'une borne inférieure de t 2 k impliquerait presque immédiatement une borne inférieure de 2 2 k = 4 k pour notre problème. f ( S ) correspondpeu près à l'ensemble des noeuds du NFA peut obtenir après avoir lu les premiers k / 2 symboles de l'entrée, lorsque l'ensemble de ces k / 2 symboles est S .f(S1)f(S2)=t2k22k=4kf(S)k/2k/2S

Je pense que la solution à cette question pourrait déjà être connue, soit dans la littérature sur la complexité de la communication (en particulier dans les articles traitant du problème de la disjonction; peut-être que certains arguments de classement matriciel aideront), soit dans la littérature sur les encodages (par exemple comme celui-ci ).


2
Mes commentaires ci-dessus montrent que cette approche ne peut pas battre (2+o(1))n
Noam
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.