레이블이 종(種)인 게시물을 표시합니다. 모든 게시물 표시
레이블이 종(種)인 게시물을 표시합니다. 모든 게시물 표시

창조론 이야기 - 창조론자들의 흑백논리

자연계에는 다음과 같은 수많은 빛깔들이 있습니다.

먼셀의 컬러트리

이런 빛깔들이 모여 다음과 같은 아름다운 모습을 보여주고 있죠.













그런데 창조론의 모태라 할 수 있는 기독교에서는 태생부터 대상을 흑백으로만 보는 이분법에 익숙해 있습니다.
모든 것은 아니면 이며
야훼가 아니면 우상이고
정통교단이 아니면 이단입니다.
선택받은 유대인이 아니면 모두 이방인이며
사람들은 의인이 아니면 악인이고,
구원 아니면 죽음이며,
나중에 천국 아니면 지옥으로 가게 됩니다.

이런 흑백논리에 익숙해진 창조론자들은 자연조차도 흑백의 시선으로 보게 됩니다.

㉠ 어떤 이론이 완전히 맞지 않으면 완벽하게 틀린 것입니다.
㉡ 어떤 대상이 생물이 아니면 무생물이며
㉢ 두 동물이 같은 종이 아니면 완전하게 다른 종입니다.

하지만 자연은 그렇지 않습니다. 검은색과 흰색만 있는 것이 아니라 회색도 있고 각종 색깔들도 있습니다. 이런 중간색을 모두 무시해 버리고 흰색과 검은색으로만 사물을 본다면 마치 이런 그림을 보는 것이나 마찬가지겠죠.








㉠ 어떤 이론이 완전히 맞지 않으면 완벽하게 틀린 것입니다.

앞에서도 몇번 글을 쓴 적이 있습니다만,




이를테면

㉮ 복어독을 먹으면 죽습니다.
㉯ 복어독을 먹어도 죽지 않습니다.

서로 반대되는 이 두 명제들 중 어느것이 완벽한 진실이고 어느것이 완전한 거짓일까요?
말하자면 둘 다 완벽한 진실도, 완전한 거짓도 아닙니다. ㉯는 복어독을 먹어보면(?) 쉽게 반증되며 ㉮ 역시 극소량의 복어독을 먹으면 죽지 않으므로 반증 가능합니다. 오히려 극소량의 복어독(tetrodotoxin)은 근육경련에 대한 치료약으로 쓰입니다.

tetrodotixin
하지만 일반적으로 봤을 때, ㉮는 완전한 진실은 아니지만 진실에 가까운 명제입니다. ㉯는 완전한 거짓은 아니지만 거짓에 가까운 명제죠.
아무튼 '복어독을 먹으면 죽습니다'가 완전한 진실이 아니라고 해서 '복어독을 먹어도 상관없다'라고 주장하는 사람은 뭐라고 할까요?


㉡ 어떤 대상이 생물이 아니면 무생물이며
'판스워스 교수의 생물학 강의'란 책에서는 모터사이클이 생물인지 아닌지에 대한 토론을 하는 부분이 있습니다.
생물인지 무생물인지를 판단하기 위해서는 먼저 정확한 기준을 정해야 합니다. 그 기준을 찾아봅시다.

㉮ 생물은 호흡을 한다.
모터사이클 역시 호흡을 합니다. 엔진으로 공기를 빨아들이며 그중 산소를 사용하고 배기구로 이산화탄소를 내뿜습니다.
㉯ 생물은 외부에서 에너지를 받아들인다.
모터사이클 역시 외부에서 에너지(휘발유)를 받아들입니다.
㉰ 생물은 생각할 수 있다
토마토가 생각할 수 있을까요?
㉱ 생물은 생식한다.
생식하지 못하는 노새는 무생물일까요?

이 외에도 더 있지만 너무 많군요...
꼭 이런 비유가 아니더라도 바이러스는 생물일까요? 유전체는 가지고 있지만 번식은 전적으로 다른 살아있는 세포에 의존하는 미생물 말입니다.
그리고 얼마전에 큰 소동이 벌어졌던 프리온(Prion)은 어떨까요? 프리온은 유전체조차 가지고 있지 않은 단백질 분자입니다. 그럼에도 불구하고 프리온은 스스로 증식합니다.

생물과 무생물을 정확히 나눌 수 있는 생물학자는 없습니다. 지금은 사물은 완전한 생물완전한 무생물 사이의 어디엔가 위치한다고 생각하고 있습니다.
모터사이클은 치솔보다 생물에 가깝다. 로봇은 모터사이클보다 생물에 가깝다. 개는 로봇보다 생물에 가깝다
이 책에 나온 한 구절입니다.

㉢ 두 동물이 같은 종이 아니면 완전하게 다른 종입니다.
이것은 고리종의 보기로 완벽하게 반박됩니다.


윗 그림에서 ㅎ의 파랑새와 ㅌ의 새는 같은 종입니다., ㅌ과 ㅊ의 새도 같은 종이고... ㅍ과 ㅎ의 빨강새도 같은 종입니다. 하지만 ㅎ의 파랑새와 빨강새는 다른 종입니다.

정확히 말하자면 ㅎ의 파랑새와 ㅌ의 새는 100% 교배 가능합니다. ㅎ의 파랑새와 ㅊ의 새 사이에서는 교배성공율이 100%가 안됩니다. ㅇ, ㅂ 등으로 계속 멀어질수록 교배성공율은 점점 떨어지죠. 즉 종과 종은 정확하게 분리되는 것이 아니라 점점 멀어지는 것입니다.


아무튼 여러 종교들 중에서 기독교계열의 개신교만이 진화론을 거부하는 것에는 여러가지 (정치적, 경제적, 신앙적) 이유가 있겠지만, 이와 같은 흑백논리 역시 순진한 개신교인들이 진화론을 이해하는데 걸림돌이 되는 것 같습니다.

진화론 이야기 - 콩심은데 콩난다

'콩심은데 콩난다'는 말을 부정하는 진화론자는 없습니다.
한편으로 진화론자들은 '종이 나뉘는 것(콩이 콩이 아닌 두 종으로 나뉘는 것)이 진화다'라고도 하죠.


창조론자들(또는 진화론을 모르는 일반인들)이 보기에 이 두 말은 모순인 듯 싶습니다. 콩심은데서는 콩밖에 나지 않는데 진화란 콩이 콩이 아닌 다른 것이 된다는 말이니까요.

이렇게 진화론자들은 모순된 말을 하는 거짓말장이, 또는 궤변론자일까요?


어떤 곳에 다음과 같은 '콩콩이'가 살고 있습니다.

만약 이 콩콩이가 단체사진을 찍는다면 다음과 같은 모습일까요?


그렇지 않겠죠. 사람도 키가 160cm인 사람이 있는가 하면 200cm에 가까운 사람도 있습니다. 몸무게도 40kg인 사람이 있는가 하면 100kg인 사람도 있습니다. 눈이 큰 사람과 눈이 작은 사람, 몸에 털이 많은 사람과 적은 사람 등등 매우 다양한 사람들이 많습니다.
소나 양, 토끼 등도 겉보기에는 똑같아 보이지만, 이들과 오래 생활한 사람들은 서로의 다른 점을 구분할 수 있을 정도로 차이가 있습니다.
그러므로 콩콩이의 단체사진은 다음과 같을 것입니다.


어느날 큰 지진이 일어나 이 콩콩이들의 보금자리 한가운데로 깊은 낭떠러지가 생겼습니다.


그리고 절벽 서쪽엔 풀밭이 우거졌으며 동쪽에는 여기저기 경사면이 생겨 자칫하다간 낭떠러지로 굴러떨어지는 경우가 종종 생겼습니다.

몇년이 지난 후 다시 콩콩이들을 모아 사진을 찍었습니다(이때 전에 찍은 콩콩이들을 모아 다시 찍은 것이 아니라 새로운 콩콩이들을 모아 찍은 것입니다.).


이들은 과연 콩콩이들일까요?

다시 몇년이 지난 후 콩콩이들을 모아 사진을 찍었습니다.


이들은 과연 콩콩이들일까요?


몇년 간격으로 계속 사진을 찍은 결과입니다.


즉 낭떠러지 서쪽에서는 풀숲에서 눈에 잘 안띄는 초록색으로(이것을 푸르미라 부릅시다), 동쪽에서는 굴러 떨어지지 않는 네모꼴로(이것을 네모네모라 합시다) 진화가 일어났습니다.

자, 여기서 창조론자들이 가장 궁금해하는 질문을 해 봅시다.
낭떠러지 서쪽에서 콩콩이가 푸르미를 낳은 것은 언제일까요? 그리고 낭떠러지 동쪽에서 콩콩이가 네모네모를 낳은 것은 언제일까요?
다른 말로 한다면, 최초의 푸르미, 최초의 네모네모가 태어난 것은 언제일까요?

최초의 푸르미, 최초의 네모네모란 없습니다. 왜냐하면 한 세대의 콩콩이들과 그 다음 세대의 콩콩이들 사이에 변화는 있었지만, 그 변화의 크기는 각 세대 콩콩이들 사이의 차이보다 훨씬 작거든요.
사람으로 말하자면 한 세대의 키가 160±5cm라면 그 다음세대의 키는 161±4cm라는 식으로, 평균키는 커졌지만 두 세대를 섞어놓더라도 구분이 불가능할 정도입니다. 그러나 이 작은 차이가 쌓이고 쌓여서 결과적으로는 눈에 보이는 커다란 차이로 바뀌는 것이죠.

우리가 콩콩이, 푸르미, 네모네모라고 이름을 쉽게 붙이지만, 자연에 있어 콩콩이, 푸르미 따위는 없습니다. 변화하는 생물들만이 있을 뿐이고, 사람들이 편의상 비슷한 특징을 가진 생물들을 모아 이름을 붙인 것 뿐입니다.

이런 이유로 콩콩이는 콩콩이를 낳지만 콩콩이는 푸르미로, 또 콩콩이는 네모네모로 진화할 수 있는 것입니다.

아, 저기서 콩콩이와 네모네모 사이 중간단계의 화석이 어디 있냐구요?

창조론 이야기 - 중간화석에 대하여

GA - CNNC를 이용한 XOR 회로[5] - 종(種) 분류 및 보호, 재생산

7. 종 분류
다른 GA에서도 마찬가지지만, CNNC 역시 다양성 확보를 위해 종을 분류하여 관리하는 것이 좋습니다.
종 분류 방법이야 많이 있지만, 여기 CNNC에서는 노드 수(세포 수)를 기준으로 종을 관리하기로 했습니다. 앞의 교차부분에서 언급했던 것처럼 노드 수가 다를 경우에는 교배가 불가능하니까 말입니다.

8. 종 보호
다양성을 위해 종별로 나누고 다양성을 유지시키기 위해 소수종을 보호합니다. 그런데 약간의 문제가 생기는군요.
기존에 소수종을 보호하기 위한 방법은, 각 개체의 적응도에 그 개체가 소속된 종의 개체수에 따라 감소시키는 것이었습니다.
문제는 개체수가 줄어들었을때 그 개체의 적응도가 증가하고, 그 개체가 선택될 가능성이 늘어남에 따라, 한번 만들어진 종은 사라질 가능성이 줄어들게 된다는 점입니다.

Node[3] Pop[28]
Node[4] Pop[34]
Node[5] Pop[37]
Node[6] Pop[23]
Node[7] Pop[31]
Node[8] Pop[34]
Node[9] Pop[19]
Node[10] Pop[33]
Node[11] Pop[37]
Node[12] Pop[28]
Node[13] Pop[37]
Node[14] Pop[31]
Node[15] Pop[24]
Node[16] Pop[31]
Node[17] Pop[39]
Node[18] Pop[33]
Node[19] Pop[13]

과 같은 결과가 나올 수도 있습니다. 더구나 같은 종 안에서만 교배해야 하는 CNNC의 특성상20~40개의 개체수 안에서 유전자알고리즘을 돌려야 한다는 이야기가 되는 것입니다(한마디로 다양성이 너무 증가되었다는 말이 되는군요).
그러므로 CNNC에서는 '소수종의 보호'가 아니라 '각 종의 보호시간'을 도입하기로 했습니다. 돌연변이에 의해 하나의 새로운 종이 새로 나타났을 경우 30세대동안 보호(다음 세대 번식때 일정비율 그 종에서 번식시킴)시키는 개념입니다. 만약 30세대동안 최적값을 못찾았다면 그 종은 아무런 보호 없이 다른 종과의 생존경쟁으로 내몰리는 것이죠.
그러므로 여기서는 종의 개체수에 따른 적응도 보정은 사용하지 않습니다.

9. 재생산
지금까지의 재생산프로세스는 거의 동일했고 단지 문제에 따라 교차 및 돌연변이만 달랐었습니다. 그러나 이 경우에는 일반적인 재생산 프로시저를 사용할 수 없습니다.
CNNC용 재생산 프로시저는 다음과 같습니다. 참고로, 재생산 대상 선택은 각 개체의 적응도를 10~100 사이로 재계산한 후 룰렛을 돌리는 재계산법을 사용했으며, 상위 16개의 개체를 그대로 복사하는 Elitism을 사용했습니다(전체 개체수는 512).

function SelectParent(CreatureList parentlist, int spe)
.. // 점수의 상한선과 하한선 찾기
.. minscore := 10000;
.. maxscore := 0;
.. for k := 0, 512 do
..... if parentlist[k].Species == spe then
........ if minscore > parentlist[k].Score then
........... minscore := parentlist[k].Score
........ end
........ if parentlist[k].Score > maxscore then
........... maxscore := parentlist[k].Score
........ end
..... end
.. end

.. if maxscore != minscore then // 모든 개체의 점수가 다 같은 경우는 적용할 수 없음
..... // max를 1000, min을 10으로 맞춤
..... newmax := 1000
..... newmin := 10
..... diff := maxscore - minscore; // 보정 전의 스코어 차이
..... for k := 0, 128 do
........ if parentlist[k].Species == spe then
........... score := parentlist[k].Score
........... score := score - minscore
........... score := score * (newmax - newmin) / diff + newmin
........... parentlist[k].TempScore := score
....... else
........... parentlist[k].TempScore := 0
........ end
..... end
.. end
.. // 이후는 Roulette법과 동일(단 Score대신 TempScore 사용)
end


procedure Regeneration(CreatureList parentlist)
.. Declear CreatureList nextgen // 다음 세대를 임시로 저장할 버퍼

.. // 16개체 엘리트 적용
.. sort(parentlist) // parentlist를 적응도순으로 정렬
.. for i := 0, 16 do
..... nextgen.Insert(parentlist[i]);
.. end

.. // parent의 종 분류
.. for spe := 0, SpeciesManager.size do
..... SpeciesManager[spe].population := 0
.. end
.. for i := 0, 512 do
..... spe := parentlist[i].size // 각 개체의 크기(노드 갯수)가 곧 종 핸들
..... parentlist[i].species := spe;
..... if spe > SpeciesManager.size then // 처음 만들어진 종이라면
........ SpeciesManager.NewSpecies() // 새로운 종 등록
........ SpeciesManager[spe].population := 1
........ SpeciesManager[spe].Species := spe
........ SpeciesManager[spe].prevent := 30
..... else
........ SpeciesManager[spe].population := SpeciesManager[spe].population + 1
..... end
.. end

.. // 보호해야 할 종 확인 - 각 종마다 남아있는 prevent값 누적
.. totalprevent := 0
.. for spe := 0, SpeciesManager.size do
..... if SpeciesManager[spe].population > 0 then
........ totalprevent := totalprevent + SpeciesManager[spe].prevent
........ SpeciesManager[spe].prevent := SpeciesManager[spe].prevent - 1
..... end
.. end

.. // 전체 개체수의 절반(256)을 보호종을 위해 할당하고,
.. // 각 종의 prevent 비율로 할당
.. Declear CreatureList malelist // 보호종의 수컷(?)들만을 모아놓을 버퍼
.. for spe := 0, SpeciesManager.size do
..... if SpeciesManager[spe].population > 0 then
........ regennum := SpeciesManager[spe].prevent * 512 / (totalprevent * 2)
........ for k := 0, regennum do
........... // spe 중에서 적응도 재계산 순서로 선택
........... selectedmale := ParentSelect(parentlist, spe);
........... malelist.Insert(selectedmale)
........ end
..... end
.. end

.. // 보호종의 암컷(?)을 찾아 교배시킴
.. for k := 0, malelist.Size do
..... spe := malelist[k].Species
..... // parentlist에서 spe를 적응도순서로 골라냄
..... female := ParentSelect(parentlist, spe);
..... // malelist[k]와 female로 새로운 개체 만듦
..... CrossOver(malelist[k], female, child)
..... nextgen.Insert(child);
.. end

.. // 나머지 갯수 채움
.. while nextgen.Size != 512 do
..... male := ParentSelect(parentlist); // 종구분없이 골라냄
..... female := ParentSelect(parentlist, male.
Species); // 같은 종에서

..... // male과 female로 새로운 개체 만듦
..... CrossOver(male, female, child)
..... nextgen.Insert(child);
.. end
.. parentlist := nextgen // 새로운 세대로 교체
end

GA - 여덟여왕문제(8-Queen's Problem)[3] - 종(種) 유지

7. 종(種) 분류에 의한 다양성 유지

유전자 알고리즘시의 다양성을 유지하기 위한 한가지 방법으로 개체를 종으로 분류하여 관리하는 방법이 있습니다. 즉, 한 세대의 개체들이 각각 어느 종에 속해 있는지 결정한 후 그 종의 숫자가 클수록 패널티를 주는 것입니다. 앞에서 나왔던 것처럼 어느 한 개체가 다수를 점하게 되어 그 종의 개체수가 늘어나면 그만큼 적응도가 낮아져 재생산대상으로 선택될 가능성이 줄어듧니다. 그때문에 다른 종의 개체들이 살아남을 수 있도록 하는 - 다양성을 유지하도록 하는 것입니다.

7-1. 종 결정
우선 매 세대마다 각각의 개체(하렘)가 어느 종에 속하는지 확인해야 합니다. 그리고 각각의 종에 대해서 개체수가 몇개인지 확인해야 합니다. 다음 알고리즘에서 Dictionary는 지금까지 발견된 모든 종을 가지고 있는 리스트입니다.
매 세대 적응도를 계산하기 전 Dictionary의 모든 population을 0으로 클리어한 후 모든 Harem에 대해 다음 프로시저를 호출, 어떤 종에 속하는지, 그리고 각 종의 개체수는 얼마인지를 계산해야 합니다.

procedure SpeciesIdentify(Harem A)
.. for k := 0, Dictionary.size do
..... if SameSpacies(Dictionary[k].sample, A) then // A가 k번째 샘플과 같은 종일 경우
........ A.species = k // A가 k번째 종이라고 설정
........ Dictionary[k].population := Dictionary[k].population + 1 // 개체수 증가
........ return
..... end
.. end
.. // 어떤 종인지 확인 못했음 - 새로 발견된 종
.. AddElement(Dictionary) // Dictionary에 새로운 종을 등록하기 위해 원소 하나 추가
..
Dictionary[k].sample := A // k번째 종을 묘사하기 위한 샘플 저장
.. Dictionary[k].population := 1 // 하나가 발견되었으므로 1로 세팅
.. A.species = k // A가 k번째 종이라고 설정
end

SameSpacies함수는 생략하겠습니다. 간단히 말하자면 sample과 A의 각각 유전자대로 8*8의 체스판 위에 여왕들을 올려놓은 후 두 배열이 같은지를 확인합니다. 만약 모든 여왕들이 동일한 위치에 서 있다면 둘은 같은 종입니다.

7-2 종의 개체수에 따른 적응도(Fitness) 보정
앞에서 각 하렘의 여왕들이 서로를 방해하는 경우의 수 ConflictNumber를 구한후 -ConflictNumber를 적응도로 간주했습니다. 여기서는 이 하렘이 속한 종의 개체수를 보정해 주어야 합니다. 즉 이 경우에

function Fitness(Harem A)
.. species_ID := A.species
.. species_population := Dictionary[species_ID].population
.. return -A.ConflictNumber - species_population / 10
end

즉, 종의 개체수가 10 증가할 때마다 적응도는 1씩 감소하는 형태가 됩니다.

8. 최종결과

Generation : 499 : 24
[11](-1/3)(1/2)(-2/3)(3/2)(2/-1)(-1/-3)(3/-2)(-1/3)
* . * . * . Q .
. * . Q . * . *
* Q * . * . * .
. * . * . * . Q
* . * . * Q * .
Q * . * . * . *
* . Q . * . * .
. * . * Q * . *

[41](-2/2)(1/2)(-2/3)(3/2)(2/-1)(-1/-3)(3/-2)(-1/3)
* . Q . * . * .
Q * . * . * . *
* . * . * . Q .
. * . * Q * . *
* . * . * . * Q
. Q . * . * . *
* . * Q * . * .
. * . * . Q . *

[55](3/-2)(1/2)(-2/3)(3/2)(2/-1)(-1/-3)(3/-2)(-1/3)
* . * . Q . * .
. * . * . * Q *
Q . * . * . * .
. * Q * . * . *
* . * . * . * Q
. * . * . Q . *
* . * Q * . * .
. Q . * . * . *

[14](3/-3)(1/2)(-2/3)(3/2)(2/-1)(-1/-3)(3/-2)(-1/3)
* . * . * . Q .
Q * . * . * . *
* . Q . * . * .
. * . * . * . Q
* . * . * Q * .
. * . Q . * . *
* Q * . * . * .
. * . * Q * . *

[51](-3/0)(1/2)(-2/3)(3/2)(2/-1)(-1/-3)(3/-2)(-1/3)
* . * . * Q * .
. * . Q . * . *
* . * . * . Q .
Q * . * . * . *
* . Q . * . * .
. * . * Q * . *
* Q * . * . * .
. * . * . * . Q

[46](-3/-1)(2/1)(-1/-3)(2/-1)(2/-1)(1/3)(-2/3)(3/1)
* . * . * . * Q
. Q . * . * . *
* . * . Q . * .
. * Q * . * . *
Q . * . * . * .
. * . * . * Q *
* . * Q * . * .
. * . * . Q . *

[32](-2/1)(1/2)(-2/3)(3/2)(2/-1)(-1/-3)(3/-2)(-1/3)
Q . * . * . * .
. * . * . * Q *
* . * . Q . * .
. * . * . * . Q
* Q * . * . * .
. * . Q . * . *
* . * . * Q * .
. * Q * . * . *

[46](-2/3)(1/2)(-2/3)(3/2)(2/-1)(-1/-3)(3/-2)(-1/3)
* . * . * Q * .
. * Q * . * . *
Q . * . * . * .
. * . * . * Q *
* . * . Q . * .
. * . * . * . Q
* Q * . * . * .
. * . Q . * . *

[55](3/1)(2/1)(-1/-3)(2/-1)(2/-1)(1/3)(-2/3)(3/1)
* Q * . * . * .
. * . Q . * . *
* . * . * Q * .
. * . * . * . Q
* . Q . * . * .
Q * . * . * . *
* . * . * . Q .
. * . * Q * . *

[23](-1/2)(1/2)(-2/3)(3/2)(2/-1)(-1/-3)(3/-2)(-1/3)
* . * Q * . * .
. Q . * . * . *
* . * . * . * Q
. * . * . Q . *
Q . * . * . * .
. * Q * . * . *
* . * . Q . * .
. * . * . * Q *

[53](3/-1)(1/2)(-2/3)(3/2)(2/-1)(-1/-3)(3/-2)(-1/3)
* Q * . * . * .
. * . * Q * . *
* . * . * . Q .
Q * . * . * . *
* . Q . * . * .
. * . * . * . Q
* . * . * Q * .
. * . Q . * . *

[20](-3/1)(-1/-2)(-1/-3)(3/2)(2/-1)(-1/-3)(3/-2)(-1/3)
* . Q . * . * .
. * . * . Q . *
* . * . * . * Q
. Q . * . * . *
* . * Q * . * .
Q * . * . * . *
* . * . * . Q .
. * . * Q * . *

[28](-2/-2)(-1/-2)(-1/-3)(3/2)(2/-1)(-1/-3)(3/-2)(-1/3)
* . Q . * . * .
. * . * Q * . *
* Q * . * . * .
. * . * . * . Q
* . * . * Q * .
. * . Q . * . *
* . * . * . Q .
Q * . * . * . *

[41](3/0)(-3/2)(1/3)(3/2)(2/-1)(1/3)(-2/3)(-3/-1)
* . * Q * . * .
. * . * . * . Q
Q . * . * . * .
. * Q * . * . *
* . * . * Q * .
. Q . * . * . *
* . * . * . Q .
. * . * Q * . *

[6](3/2)(2/1)(-1/-3)(2/-1)(2/-1)(1/3)(-2/3)(3/1)
* . * . Q . * .
. Q . * . * . *
* . * Q * . * .
. * . * . Q . *
* . * . * . * Q
. * Q * . * . *
Q . * . * . * .
. * . * . * Q *

[10](-3/-1)(-1/-2)(-1/-3)(3/2)(2/-1)(-1/-3)(3/-2)(-1/3)
* . * . * . * Q
. Q . * . * . *
* . * Q * . * .
Q * . * . * . *
* . * . * . Q .
. * . * Q * . *
* . Q . * . * .
. * . * . Q . *

[36](3/0)(2/1)(-1/-3)(2/-1)(2/-1)(1/3)(-2/3)(3/1)
* . * Q * . * .
. * . * . Q . *
* . * . * . * Q
. * Q * . * . *
Q . * . * . * .
. * . * . * Q *
* . * . Q . * .
. Q . * . * . *

[11](-1/-3)(2/1)(-1/-3)(2/-1)(2/-1)(1/3)(-2/3)(3/1)
* . * . * . Q .
. * . * Q * . *
* . Q . * . * .
Q * . * . * . *
* . * . * Q * .
. * . * . * . Q
* Q * . * . * .
. * . Q . * . *

[38](-3/0)(-1/-2)(-1/-3)(3/2)(2/-1)(-1/-3)(3/-2)(-1/3)
* . * . * Q * .
. * . * . * . Q
* Q * . * . * .
. * . Q . * . *
Q . * . * . * .
. * . * . * Q *
* . * . Q . * .
. * Q * . * . *

[28](-1/-2)(2/1)(-1/-3)(2/-1)(2/-1)(1/3)(-2/3)(3/1)
* . * Q * . * .
. * . * . * Q *
* . * . Q . * .
. * Q * . * . *
Q . * . * . * .
. * . * . Q . *
* . * . * . * Q
. Q . * . * . *

[9](-2/-3)(2/1)(-1/-3)(2/-1)(2/-1)(1/3)(-2/3)(3/1)
* . * . * Q * .
. * . Q . * . *
* Q * . * . * .
. * . * . * . Q
* . * . Q . * .
. * . * . * Q *
Q . * . * . * .
. * Q * . * . *

[21](-1/-2)(-3/2)(1/3)(3/2)(2/-1)(1/3)(-2/3)(-3/-1)
* . * . Q . * .
. * . * . * Q *
* Q * . * . * .
. * . * . Q . *
* . Q . * . * .
Q * . * . * . *
* . * . * . * Q
. * . Q . * . *

[7](0/3)(-1/-2)(-1/-3)(3/2)(2/-1)(-1/-3)(3/-2)(-1/3)
* Q * . * . * .
. * . * . * . Q
* . * . * Q * .
Q * . * . * . *
* . Q . * . * .
. * . * Q * . *
* . * . * . Q .
. * . Q . * . *

[13](-2/-2)(2/1)(-1/-3)(2/-1)(2/-1)(1/3)(-2/3)(3/1)
* . Q . * . * .
. * . * . Q . *
* . * Q * . * .
. Q . * . * . *
* . * . * . * Q
. * . * Q * . *
* . * . * . Q .
Q * . * . * . *


위의 결과에서 볼 수 있듯이 500세대 후 총 24개의 서로 다른 배열을 얻을 수 있습니다.