2013-07-01 3 views
1

Particle Swarm Algorithm을 사용하여 Monoalphabetic Substitution Ciphers를 해결할 C# 응용 프로그램을 작성했습니다.Particle Swarm Cryptanalysis의 솔루션 좌표

기본적으로 프로세스를 이해하고 벡터를 업데이트하는 데 필요한 모든 알고리즘을 찾았습니다. 여기서 해결할 수없는 것은 문제 공간에서 26 문자 솔루션의 위치/cooridnates를 계산하여 여기에있는 알고리즘에서 사용할 수 있도록하는 방법입니다. http://www.codeproject.com/Articles/42258/Particle-swarm-optimization-for-function-optimizat

위치는 단순히 문자와 관련된 int 배열입니다 알파벳의 위치?

도움을 주시면 감사하겠습니다.

+2

와우. 죄송 해요. – Jonesopolis

+1

당신이하고있는 일은 .. 무슨 일이 ... 머리가 날아간거야 –

+1

그 위치보다는 순열에 더 잘 반영 될거야. 그러나 어쨌든, 이것은 암호 해독 문제가 나쁜 적합성 기능을 만들기 때문에 거의 작동하지 않습니다. 고급 암호화는 올바른지 또는 잘못되었는지에 대한 문제를 제공하며 올바른 한 가지 방법 만 있습니다. 그래서 당신은 절대적으로 "그라디언트"가 없습니다. 넌 무작위 검색을하고있어. – Andreas

답변

2

PSO는 기본적으로 연속 된 공간에서 작동합니다. 물론 이산 문제에 대한 버전이 있으며이 문제는 별개의 문제인 것으로 보입니다.

공간을 정의했습니다. 범위 (0, 26)로 연속되도록하십시오. 이제 입자 분포를 통계 분포의 평균으로 사용하거나 값의 바닥을 구할 수 있습니다. 많은 중복 전화가 있기 때문에 메모가 있으면 좋을 것입니다.

다음은 제약 조건입니다. 같은 편지로 대체 할 수있는 편지가 없습니다. 여러 가지 방법으로 해결할 수 있습니다. 가장 간단한 방법은 수리 기능입니다. 알고리즘에 이미 설정된 값이 발생하면 (여러 값의 바닥이 같기 때문에)두고두고 나중에 다시 돌아옵니다. 어떤 글자가 여전히 사용 가능합니다.

BTW에서는 PSO를 사용하여 언어의 문자 발생 통계를 사용하여 문제를 해결하는 ANN을 교육 할 수도 있습니다.

희망이 있습니다. 건배!