길이가 몇 단어입니까


9

추가 편집 :이 질문은 이제 본질적으로 답변됩니다. 자세한 내용은 이 블로그 항목 을 참조하십시오. 의견과 답변을 게시 한 모든 사람에게 감사합니다.


원래 질문

이것은 내가 MathOverflow에 대해 물었던 질문 의 희망적으로 더 똑똑하고 더 나은 정보 입니다. 제가 그 질문을했을 때, 저는 문제가있는 수학 영역의 이름조차 몰랐습니다. 이제는 그것이 부분 단어의 알고리즘 조합론에 있다고 확신합니다. ( 여기 에 관한 주제에 관한 최신 책 .)

단어 목록을 만들고 싶습니다 l편지. 각 단어의 길이는 정확히k. 거래는ajb 목록에 있습니다. 와일드 카드 / 무정의 기호 인 경우 ajb목록에 다시 나타나지 않습니다. (다음과 같은 경우에도 마찬가지입니다.a=b또는 j=0 따라서 금지 된 하위 단어는 ab.)

예를 들어 k=4l=5:

abcd
bdce
dcba <-금지되어 있기 때문에 dc 위의 줄에 나타났습니다
aeed <-금지되어 있기 때문에 ad 첫 줄에 나타났다

필자가 찾은 "피할 수없는 부분 단어"에 관한 문헌은 모두 부정확하다. 결국 단어 크기가 충분히 크면 일부 단어 패턴을 피할 수 없다. 그런 정리의 소소한 버전을 찾고 싶습니다. 따라서 질문 :

일부 형태의 단어가 주어짐 ajb 알파벳으로 l 글자 수, 단어 수 k 그것을 피하고 다항식 시간에 명시 적으로 생산할 수 있습니까?

위의 질문이 어려울 것으로 기대하지는 않지만 미묘한 부분이 없으면 직접 계산할 수 있습니다. 이 사이트에 게시하는 실제 이유는 내 응용 프로그램에 대한 단어 목록의 속성에 대해 더 많이 알아야하기 때문에 누군가 후속 질문에 답변 할 수 있기를 바랍니다.

이것이 일반적으로 연구 되었습니까? 부분 단어를 피할 수없는 것이 아니라 불가피하게되기 전에 "얼마나 오래 걸리는가"를 고려해야하는 논문은 무엇입니까?

감사.


(1) 첫 번째 질문과 이전에 언급 된 예의 일치 성을 이해할 수 없습니다. 귀하의 예에서 입력은 무엇입니까? (2) 첫 번째 질문에서 두 가지 다른 목적으로 k를 사용하고 있습니까?
이토 쓰요시

(2)에 관해서는 그렇습니다. 나는 실수를 저지르고 편집했다. 감사합니다.
Aaron Sterling

(1)에 관해서는, 부분 단어가 나타나면 "내가 얼마나 방을 떠 났는지"를 알고 싶습니다. 그러나 그렇습니다. 실제 질문은 예제에 나오는 것과 같은 목록을 만드는 방법입니다 (금지 된 부분 단어없이). 입력 값은kl, 목록에서 생성 할 원하는 단어 수. "이전에 나오는 부분 단어 속성을 피하는 것".
Aaron Sterling

2
@Aaron, 나는 당신의 궁극적 인 응용 프로그램이 무엇인지 모르지만 Davenport-Schinzel 시퀀스 (및 일반화)는 특정 반복 패턴을 포함하지 않는 문자열의 최대 길이에 대해 묻습니다. 관련 개념입니다.
Suresh Venkat

1
Seth Pettie는 금지 된 서브 매트릭스에 대한 매우 훌륭한 일반화를 연구하고 있습니다.
Suresh Venkat

답변:


4

특별한 경우가 있습니다 : 길이의 이진 단어 수 k 두 개가 연속적으로 나타나지 않도록 F(k+3), 어디 F(n) 입니다 nth 피보나치 수 ( F(1)=1,F(2)=1). 증명은 Zeckendorf 표현을 통해 이루어 집니다.

편집 : 우리는이 초기 특수 사례를 약간 더 큰 특수 사례로 확장 할 수 있습니다 a0a. 길이의 문자열을 고려하십시오k 알파벳 크기 이상 l+1 편지와 같은 a두 번 연속으로 나타나지 않습니다. 허락하다f(k)그러한 문자열의 수 ( "유효 함"이라고 함). 우리는 다음과 같이 주장합니다.

f(k)=lf(k1)+lf(k2)
f(0)=1,f(1)=l+1
직감은 유효한 길이의 문자열을 만들 수 있다는 것입니다. k 다음 중 하나에 의해 : a) l 아닌 글자 a 유효한 길이의 문자열로 k1또는 b) 편지와 인접 a 그리고 다른 편지지 만 a 유효한 길이의 문자열로 k2.

다음은 위의 재발에 대해 닫힌 양식인지 확인할 수 있습니다. 여기서 때 을 이해 .

f(k)=i=0k(k+1ii)lki
(ni)=0i>n

편집 # 2 : 하나 더 사례를 시작합시다 . 하위 문자열 , "valid"를 포함하지 않는 요소 알파벳 이상의 문자열을 호출 하고 가 길이가 인 유효한 문자열 세트를 나타내도록합니다 . 또한,의는 정의 할 수 의 부분 집합으로 로 시작하는 문자열로 구성된 와 로 시작되지 않은 것으로 . 마지막으로,,.0b,ablabSkkTkSkbUkbf(k)=|Sk|g(k)=|Tk|h(k)=|Uk|

및 것을 관찰했다 . 다음으로, 우리는 다음과 같은 반복을 유추한다 : 첫 번째는 의 모든 요소의 시작 부분에 를 추가하면 의 요소를 생성 한다는 사실에서 비롯됩니다 . 두 번째는 우리의 소자 구성 할 수 있다는 관찰로부터 오는 임의의 문자하지만 추가하여 의 요소의 정면 모든 문자를 추가하거나을하지만 또는 어느 소자의 전면 에 .g(0)=0,h(0)=1,f(0)=1g(1)=1,h(1)=l1,f(1)=l

g(k+1)=f(k)h(k+1)=(l1)h(k)+(l2)g(k)
bSkTk+1Uk+1bUkabTk

다음으로, 재귀 방정식을 재정렬하여 다음과 같이 구합니다.

f(k+1)=g(k+1)+h(k+1)=f(k)+(l1)h(k)+(l2)g(k)=f(k)+(l1)f(k)g(k)=lf(k)f(k1)

함수를 생성하거나 약간 게으른 경우 Wolfram Alpha 로 직진하여이 재발에 대해 다소 불투명 한 폐쇄 형 솔루션을 얻을 수 있습니다 . 그러나 OEIS 에서 약간의 인터넷 검색과 을 통해 실제로 다음과 같은 것을 알 수 있습니다. 여기서 는 두 번째 종류의 체비 쇼프 다항식입니다 ! .

f(k)=Uk(l/2)
Ukkth

매우 흥미 롭습니다. 감사합니다.
Aaron Sterling

2

첫 번째 질문에 대한 완전히 다른 접근 방식 은 일반 언어로 단어생성 할 때 최근 질문에 대한 답변을 재사용합니다 . 일반 언어 에서 길이 에 대해 이러한 알고리즘을 적용하면 충분합니다. 여기서 는 알파벳입니다.kΣaΣjbΣΣ


감사. 연결이 있는지 궁금합니다. 여기서 귀하의 답변을 통해 여기에 참조 된 논문을 살펴볼 필요가 있었으며 그 중 하나는 내가 고려중인 문제 중 하나를 확실히 해결합니다.
Aaron Sterling

0

업데이트 :이 답변이 잘못되었습니다 :

가정 고정하면, 우리의 개수 카운트 할 수 있는 방법을 패턴 일치 될 수있다 : 제 심볼은 어떤 위치에 일치시킬 수 , 우리는이jajba1ikj1li1 그 시점 이전의 가능성, lj 중에서 ab, lkji1 문자열의 나머지 부분에 대해

i=1kj1li1ljlkji1=(kj1)lk2
사례. 의견에서 이토 츠요시 (Tsuyoshi Ito)가 언급 했듯이이 숫자는 일치하는 다른 단어의 수가 아닙니다 .ajb하나의 단어가 다른 방식으로 동일한 패턴을 일치시킬 수 있기 때문입니다. 예를 들어aa 세 번 일치 aaaa, ab 두 번 abab, ab 두 번 aabb. 패턴을 여러 번 일치시키는 방법을 여러 번 세어보고 "내포물 제외"표현을 나타낼 수 있지만 패턴이 겹칠 수있는 방법이 너무 길어집니다.

첫 번째 질문은 j 고정되어 있지 않습니다. 즉 우리는 단어를 포함시키지 않기를 원합니다. ab:

  • 어느 한 쪽 a 첫 번째 기호는 나타나지 않으며 (l1)k 가능한 단어들
  • 또는 a 어떤 위치에서 먼저 나타납니다 1ik우리는 사용할 수 없습니다 b 나머지 단어에는 : (l1)i1 요인에 대한 선택 a, (l1)ki 나머지를위한 선택, 총계 i=1k(l1)i1(l1)ki=k(l1)k1가능한 단어. 인지 어떤지a=b 관련이 없습니다.

두 번째 질문에 대해서는 제안 할 것이 많지 않습니다. 단어 삽입과 관련이 있지만 Higman의 Lemma 에 대한 잘못된 시퀀스에 대해 알고있는 결과 는 즉시 적용되지 않습니다.


감사합니다, 실뱅, 저는 그것이 옳지 않다고 생각합니다. 사용할 수있다b 나중에 단어에서 a가 나타납니다. 우리는 단지 사용할 수 없습니다b 정확히 있다면 j 사이의 글자 ab, 만약 ajb더 일찍 나타났다. 아마도 나는 당신의 주장을 오해하고 있습니다.
Aaron Sterling

미안, 나는 확실하지 않다 j고쳐졌다. 고정 된 답변을 편집했습니다.j게다가.
Sylvain

1
fixed-j 사례가 정확하다고 생각하지 않습니다. 예를 들어, k = 4이고 j = 1이면 단어 aabb가 두 번 빼집니다. 고정되지 않은 j 사례를 읽지 않았습니다.
이토 쓰요시

이토 츠요시 : 그렇습니다.
Sylvain

그와 같이 오답을 표시하십시오.
이토 쓰요시
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.