2010-05-07 2 views
1

첫째, 전 컴퓨터 과학자가 아닌 엔지니어입니다. 따라서 사전의 잘못된 사용이나 CS 배경에 대한 일반적인 무언가에 대해 사과드립니다.N 잎이있는 무작위적이고 엄격한 이진 루팅 트리를 생성하고 인코딩하는 방법 (GA 용)?

여기 내 질문에 대한 동기 부여의 배경입니다 : 전력 분배기 네트워크 (간단히 빔 형성 네트워크 또는 BFN이라고도 함) 설계에 도움이되는 유전 알고리즘 최적화 도구 작성을 고려 중입니다. BFN은 안테나 배열의 N 개의 방사 요소 각각에 전력을 분배하기위한 것입니다. 각 방사 요소에 전달되는 총 입력 전력의 비율이 지정되었습니다. 위상 적으로 말해서, BFN은 엄격하게 2 진 루트 트리입니다. 트리의 (N-1) 개의 내부 노드 각각은 동일하지 않은 2 진 전력 스플리터의 입력 포트를 나타냅니다. 트리의 N 잎은 전력 분배기 출력입니다. 특정 전력 분배기 토폴로지가 주어지면 전력 분배기 출력을 임의의 순서로 어레이 입력에 매핑 할 수 있습니다. N이 있습니다! 그러한 산출의 순열. 원하는 순서를 선택할 때 여러 가지 고려 사항이 있습니다. 1) 각 바이너리 커플러의 전력 비율은 지정된 값 범위 내에 있어야합니다. 2) 순서는 전력 분배기를 연결하는 전송선의 기계적 라우팅을 단순화하도록 선택되어야합니다.

BFN의 N, 말의 범위 일 수있다으로 출력한다 수가 6 이미 특정 BFN 토폴로지를 주어 어레이 입력 전력 분포를 원하는, 유전자 알고리즘 최적화 작성한

22, 검색합니다 N을 통해! 준수 전력 비율 및 우수한 기계 라우팅을 갖는 설계를 생성하기위한 BFN 출력의 순열.

가능한 BFN 토폴로지의 공간을 자동으로 생성하고 검색하도록 프로그램을 일반화하려고합니다. 내가 이해할 수 있듯이, N 개의 출력 (이진 트리의 나뭇잎)에 대해 $ C_N $이 카탈로니아 수인 $ C_ {N-1} $ 개의 서로 다른 토폴로지가 있습니다.

유전 알고리즘에 사용하기 위해 염색체 설명과 일치하는 방식으로 N 잎이있는 임의의 트리를 인코딩하는 방법을 알고 싶습니다. 또한 이와 관련된 초기 인구를 채우기 위해 무작위 인스턴스를 생성하고,이 유형의 염색체에 대한 크로스 오버 및 돌연변이 연산자를 구현해야합니다. 모든 제안을 환영합니다. 회신에 CS 전문 용어의 양을 최소화하십시오. 나는 그것에 익숙하지 않을 것입니다. 사전에

감사합니다, 와우, 당신은 행운에있어

답변

0

트리는 특별한 유형의 그래프입니다. 그래프는 connection matrix으로 표시 할 수 있습니다.

연결 매트릭스가 "x 노드가 y에 연결되었습니다."라는 질문에 대한 응답입니다. 각 노드에 해당하는 n 개의 행과 열이 있습니다. 행/열 x/y의 교차점에있는 1은 연결을 나타냅니다 (가중치 체계에서 사용할 수 있음).

물론 행렬은 '행 길이'라는 메타 데이터로 벡터로 다시 쓰여질 수 있습니다.

언급 한 Lippert 메서드와 같은 몇 가지 방식으로 이진 트리를 생성 한 다음 행렬 형식으로 변환하고 행렬에 GA 연산자를 정의하는 것이 좋습니다.

관련 문제