모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 게시판찾기
  • 게시물ID : humorbest_939174
    작성자 : aiidyn (가입일자:2013-06-24 방문횟수:1598)
    추천 : 102
    조회수 : 11670
    IP : 211.253.***.194
    댓글 : 54개
    베스트 등록시간 : 2014/08/29 13:27:17
    원글작성시간 : 2014/08/29 10:23:29
    http://todayhumor.com/?humorbest_939174 모바일
    1주일 만에 세상을 만들어 보았습니다. (김)
    갑자기 생각나는것이 있는데 마침 시간도 있어서 메트렙으로 가상의 세계를 만들어 보았습니다.
    재미삼아 만들어본다는게 뜻하지 않게 1주일이나 걸렸네요.
    그런데 정작 만든것은 코드 400줄 정도 밖에 안되는 (주석빼고, 코드 좀더 효율적으로 짜면 200줄이 않될지도) 간단한 세상입니다. 
    이 세계의 기반은 1000x1000pixel의 에너지가 있는 땅이며,
    땅 위에서의 그 에너지로 부터의 1x1pixel의 식물들이 있고,
    마지막으로 1x1pixel의 동물들이 있습니다.
    각각의 동물들에게는 에너지와 관련된 무작위의 이동성향이 부여됩니다.
    동물은 그 성향을 바탕으로, 자기가 가지고 있는 에너지를 사용하여 다른 곳으로 이동하게 되며,
    그러다가 식물을 만나게 되면 그 식물을 먹고 에너지를 모읍니다.
    그러나 때로는 계속 식물을 만나지 못하면 그 동물은 에너지가 고갈되어 굶어 죽습니다.
    반면에 돌아다니다가 다른 다른 동물을 만나게 되면 그 동물과 싸우게 됩니다.
    이 싸움에서 승자는 에너지가 많은 쪽이며, 승자는 패자의 에너지를 흡수하며, 패자는 잡아 먹혀 죽습니다.
    동물의 행동이 이런식으로 진행되다가 일정수준의 에너지를 확보한 동물은 자신과 동일한 이동성향을 가진 자손,
    또는  자신과 동일한 성향에다가 추가된 pixel로 복잡성이 증가한 진화된(?) 자손을 번식할수 있습니다.
    (아직 단성생식만이 존재하는 세상임, 양성생식은 추후에)
    이렇게 해서세상을 작동시키면 결국 살아남는 동물이 있고 죽는 동물이 있을 것인데,
    이런 헛짓거리를 시작하게된 동기이자 최종적으로 보고자하는 결과는 잘 진화를 해서 살아남는 놈들의  pixel모양 및 이동성향 정보입니다.
    처음에 무작위의 1pixel로 시작된 동물이 어쩌다 잘 살아남게 되면 자신의 기존 정보와 함께 무작위의 방식으로 pixel수도 늘릴텐데
    복잡성이 증가한 그pixel의 형태나 정보에서(처음 설정된 땅의 에너지 패턴에 의해 결정되는) 어떤 규칙을 볼수 있지는 않을까 하는 겁니다. 
    한마디로,  이 가상 세계는 무작위에서 시작해서 무작위로 진행되는 과정에서 어쩌면 규칙이 발견될수 있지도 않을까해서 만들어 본 것입니다.
     
    1. 먼저 땅을 만듭니다.
    땅의 크기는 1000x1000pixel로 설정하였습니다.
    빨간색은 땅의 에너지 손실률을 나타냅니다.
    빨간색이 진할수록 그 영역에서의 동물은 에너지 손실은 더 큽니다.
    파랑색은 식물이 존재할 가능성을 나타냅니다.
    파랑색이 진할수록 식물이 존재할 가능성이 큽니다.
    초록색은 존재하는 식물이 가지고 있는 에너지의 양을 나타냅니다.
    초록색이 진할수록 식물이 (존재한다면) 가지고 있는 에너지의 양이 큽니다.
    이렇게 하여 그냥 순전히 임의로 설정된 것이기는 하지만 땅이 만들어 졌습니다. 
    그림1.jpg
     
     
    2. 다음으로 식물을 만듭니다.
    만들려는 세상에서의 주인공은 동물인지라 식물은 그냥 동물의 에너지 공급원 그 이상도 아니고 그 이하도 아닌걸로 설정하였습니다.
    무작위값과 앞서 에너지와 관련된 땅의 설정으로 부터 10000여개 식물의 위치와, 보유 에너지의 크기(최대 1)를 설정하였습니다.
    앞서의 에너지 소모정도를 나타낸 빨간색 땅 위에 식물의 분포를 가지고 있는 에너지의 크기가 반영된 하얀 점으로 표시하였습니다.
    이 세상에서는 식물이 동물에게 먹히면 먹힌 숫자 만큼의식물이 곧바로 다시 만들어지게 되여 총식물의 수는 언제나 10000개로 유지됩니다.
    이런 세상에서의 동물은 가능한 에너지 소모는 적고, 식물이 많이 있을 법한,
    그리고 에너지가 큰 식물이 있을 법한 위치(왼쪽 상단이나 모서리쪽)로 이동해야 오래 살아남을수 있겠죠.
     
    그림2.jpg
     
    3. 마지막으로 동물을 만듭니다.
    동물에게는 설정해야 하는 것이 너무나 많겠지만 최소한으로 만들었습니다.
    첫번째는 시작위치, 두번째는 에너지 보유량(red), 세번째는 이동의 무작위률(blue), 마지막은 이동성향(green)입니다.
    이동성향은 다시 나눠지며, 이동반경, 에너지소모 큰영역회피성, 에너지분포큰영역추구성, 큰에너지획득영역추구성입니다.
    최종적인 이동방향과 거리는 이동성향과 무작위 이동성이 반영되어 결정됩니다.
    모든 설정값들은 무작위로 부여되었으며 10개정도로 만들어 보겠습니다.
    에너지 소모정도를 밝기 정도로 표시한 땅위에 동물은 rgb 색깔 pixel로 뿌렸는데 잘 안보여서 그림은 생략.
    한번이동하는데는 일정 에너지가 들고, 도착한 영역의 에너지소모율에 따라서 에너지가 뺏깁니다.
    그렇게 하여 도착한 곳에서 식물을 만나게 되면 그 식물이 먹게 되고, 그 식물이 가지고 있는 양만큼의 에너지를 보충받게 됩니다.
    동물에게는 한계 수명같은것은 설정하지 않았지만, 계속 식물은 못만나면 에너지가 계속 줄어들어 결국 그 동물은 굶어 죽게 됩니다.
     
    4. 여기까지의 기본적인 설정들을 바탕으로 시물레이션 해보았습니다.
    세상은 한 1000년으로 설정하겠습니다.
    그 결과 최종 동물 이동경로를 그린것이 다음과 같습니다.
    pixel이 작아서 잘 안보이지만 (여기서는 더 안보이네요;;) 살아남은 놈은 빨간색으로, 죽은 놈은 회색으로 표시하였습니다.
    예상했던데로 모서리쪽으로 동물들이 이동하였네요.
     
    그림4.jpg
     
     
    5. 시물레이션 결과 개체들의 특성을 살펴본 그래프입니다.
    아래 그림1은 시간이 지남(x축)에 따른 개체수(y축)를 표시한 그래프입니다.
    파랑색선은 생존개체수이고, 녹색선은 누적된 굶어죽은 개체수입니다.
    생존 개체수는 처음에 10개로 시작하여 점점 줄어들다가 최종 1000년에는 4개가 되었네요.
    그러니까 1000년이 흐르는 동안 4마리가 살아남고 나머지 6마리는 굶어 죽었습니다.
    아래 그림 2는 각 개체별(x축)로 에너지 상태(y축)를 살펴본 것입니다.
    빨간색은 에너지 값을, 파란색은 먹은 식물 개수를 표시한 것입니다.
    가장 많이 식물을 먹은 놈은 5번 (10개)인데 가장 에너지가 많은 놈은 4번(~8)이네요.
    1번은 식물을 하나를 먹고도 죽었고, 하나도 식물을 못 먹은 놈들은 모두 죽었네요.
    당연한 이야기지만 이것은 무작위로 시작해서 무작위로 진행되기 때문에 결과는 할때마다 다릅니다.
    그림19.jpg
     
    6. 이제 동물들에게 약육강식의 원칙을 적용해보겠습니다.
    그러니까 동물들이 서로 이동하다가 만약 다른 동물과 만나게 되면 둘이 싸움을 붙이는 것이죠.
    전투력은 그냥 간단히 에너지 크기로 설정하였습니다.
    그러니까 둘중 에너지가 큰 놈이 살아남고, 에너지가 작은놈은 큰놈에게 잡아먹힙니다.
    싸움에서 이긴 에너지가 큰놈은 싸움에서 진 잡아먹은 놈의 에너지까지 받아 먹게 됩니다.
    이렇게 한 후 시물레이션을 해보면 다음과 같습니다.
    이번에는 잡아먹히는 놈들이 생기기 때문에 그것을 감안하여 동물 개체수를 2배로 늘려서 20개로 하였습니다.
    마찬가지로 살아남은 놈은 빨간색으로 죽은 놈은 흰색으로 표시하였습니다.
    시작 개체수가 많아서 그런지 아까보다는 좀더 점들이 많아 보이네요.
    그림9.jpg
     
    7. 약육강식이 적용된 세상에 대한 시물레이션 특성을 살펴본 그래프 입니다.
    아래 그림1은 시간이 지남(x축)에 따른 개체수(y축)를 표시한 그래프입니다.
    파랑색은 생존개체수, 녹색은 굶어죽은 개체수, 빨간색은 잡혀먹은 개체수입니다.
    시간이 지나면서 굶어 죽는 놈이 생기고, 좀더 지나니까 잡혀먹는 놈도 생기는 것이 확인이 되네요.
    이 시물레이션에서의 최종 생존개체는 6마리.
    아래 그림 2는 각 개체별(x축)로 에너지 상태(y축)의 값을 살펴본 것입니다.
    빨간색은 에너지 값을, 파란색은 먹은 식물 개수를, 녹색은 먹은  개수의 상대적인 값으로 표시하였습니다.
    대략 식물을 많이 찾아먹고, 동물을 많이 잡아먹은 놈들이 살아남은듯 한데
    15번이나 20개체 처럼 그렇게 해도 살아남지 못하는 경우도 있네요.
    그림20.jpg
     
    8. 이제 동물들에게 번식능력까지 부여해 보겠습니다.
    일정 수준의 에너지를 확보한 동물에게 번식기회를 주었습니다.
    새로운 개체는 모개체의 복제판으로 모개체와 탄생 위치를 제외하고 완전히 동일한 움직임성향을 가지게 됩니다.
    단성생식임에도 불구하고 동물에게 이 번식능력을 부여하는데 설정해야 하는것도 신경써야하는 것도 너무 많아서 꽤나 힘들었습니다.
     하물며 양성생식은 또 얼마나 복잡할까 해서 그것은 일단 보류상태입니다.
    번식능력을 부여하여 시물레이션을 하니 초기값에 따라서 총 개체수가 기하급수적으로 늘어나거서 또는 탄생개체수가 없게되는 상황이 있어서
    초기상태를 설정하는데 약간의 어려움이 있었습니다.
    이전까지와는 달리 개체수의 패턴은 조금의 차이에 의해  완전히 뒤바뀌기도 해서 전혀 예측할수가 없네요.
    유지되는 식물개체수나 새로운 개체 시작 지점에 영향을 많이 받는듯 합니다.
    유지식물개체수를 3000으로 줄여서 시물레이션 한 결과입니다.
    재대로 한것인지는 모르겠지만 결과가 의외로 별로 재미가 없네요.
    탄생개체는 다른 색깔로 표시를 하면 좀 재미있을 법 한데 귀찮아서 신경 못썻네요.
    그림12.jpg
     

    9. 번식능력까지 부여된 세상에 대한 시물레이션 특성을 살펴본 그래프 입니다.
    아래 그림1은 시간이 지남(x축)에 따른 개체수(y축)를 표시한 그래프입니다.
    파랑색은 생존개체수, 녹색은 굶어죽은 개체수, 빨간색은 잡혀먹은 개체수, 마지막으로 cyan 색은 탄생개체수입니다.
    이 그래프로 보건데 개체는 느닺없이 발생하기도 하는듯 하고, 설정환경에서 발생한 개체 대부분은 얼마 안가서 다른 개체에게 잡혀 먹히는듯 하네요.
    이 시물레이션에서의 개체수는 20에서 시작해서 최대 47까지 늘었다가 최종적으로 4마리로 마무리 됩니다.
    아래 2번 그림은 총 113개 탄생개체를 세대별로 표시한 것입니다.
    세로축은 개체번호이고, 가로축은 세대손이며 개체수는 색깔로 표시되었습니다.
    결론적으로 처음에 시작된 총 20개의 개체중에 새로운 개체를 탄생시킨 개체는 1번과 4번 뿐입니다.
    1번이 혼자 30개의 자식을 만들었고, 그 30개의 개체에서 총 3개의 자식, 또는 1번의 손자가 만들어 졌습니다.
    4번은 혼자 63개의 개체를 만들었고,  4번의 손자가 16마리, 4번의 증손자가 1마리입니다.
    번식능력이 부여되면서 결과를 별로 예측할수가 없어서 이것이 맞는 결과인지를 솔직히 확신할수가 없네요.
    그림21.jpg
     
    10. 마지막으로 동물들에게 진화능력까지 부여해 보았습니다.
    사실 지금까지중에서도 가장 복잡하고 까다롭고 불확실한 단계입니다.
    번식한 개체에게 특정수준의 에너지가 남게되면 자신보다 pixel 개수가 1개 더 많은 자손을 번식할 수있습니다.
    multipixel을 가진 탄생한 자손개체는 모개체와 동일한 정보를 가진 pixel과 함께 추가로 1pixel을 더 가지게 됩니다.  
    이런식으로 해서 진행한다면 경우에 따라서는 수개, 수십개의 pixel을 가진 복잡성의 동물이 생길수가 있게 됩니다.
    이런 과정을 '일종의' 진화로 봐도 무방할까 합니다. 
    아쉽게도 데이터 생성 코드가 비효율적으로 짜서 계속 메모리 뻑이 나서 세상을 500년으로 줄여서 했으며
    몇번의 시물레이션 끝에 얻은 진화개체가 있는 결과는 다음과 같으며 역시 이전과 별반 다를바 없습니다.
    그림15.jpg
     
    11. 마지막 진화능력까지 부여된 세상에 대한 시물레이션 특성을 살펴본 그래프 입니다.
    아래 그림1은 시간이 지남(x축)에 따른 개체수(y축)를 표시한 그래프입니다.
    파랑색은 생존개체수, 녹색은 누적 굶어죽은 개체수, 빨간색은 누적 잡혀먹은 개체수, cyan 색은 누적 탄생개체수이며,
    마지막으로 검정색이 누적 multipixel 개체수 입니다.
    아래 그림2는 총 55개의 발생개체를 세대별로 표시한 것입니다.
    자손은 11번 개체와 14번 개체뿐이고 나머지는 자손이 없습니다.
    11번 개체의 자식은 21마리이고 손자식은 27마리이고 증손자식은 3마리이며,
    14번 개체의 자식은 1마리이고 손자식은 3마리입니다.
    확인결과 multipixel을 가진 진화개체는 11번 개체의 17번째 손자식과 27번째의 손자식 딱 2개 생겼으며
    그나마도 pixel개수가 2개이며, 끝까지 살아남지도 못했네요.;;
    그림23.jpg
     
    여기까지입니다.
    아쉽게도 아직 기대한 것을 보지 못했네요.
    기대하는 것을 보려면 500년이 아니라 500만년은 되어야 할 것 같은데 참 곤란하네요.
    디버깅과 데이터 생성 코드 부터 수정하고, 양성생식 만들고, 연산과정 줄이는 작업과, 결과 검증작업이 남았습니다.
    이걸 가지고 땅도 바꿔보고, 초기값도 바꿔 보고, 세상을 좀더 정교화 하기도해서 처음에 의도했던 것을 보게 되었으면 좋겠네요.
     
     

    이 게시물을 추천한 분들의 목록입니다.
    [1] 2014/08/29 10:42:58  175.215.***.89  룰루랄랏  449422
    [2] 2014/08/29 11:01:37  203.237.***.19  hatter  102454
    [3] 2014/08/29 11:07:10  110.14.***.236  Elminster  517255
    [4] 2014/08/29 11:15:29  118.35.***.209  Nitesco  112613
    [5] 2014/08/29 11:18:40  59.26.***.100  큰아이  240366
    [6] 2014/08/29 12:58:52  203.226.***.78  비오는날엔  376459
    [7] 2014/08/29 13:01:01  168.131.***.237  한판놀아볼까  225448
    [8] 2014/08/29 13:09:50  211.202.***.70  S.Guri  5374
    [9] 2014/08/29 13:14:47  1.220.***.182  시라엘  231120
    [10] 2014/08/29 13:27:17  117.111.***.154  일단짤라  206788
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    1547352
    층간소음 때문에 개빡치는 만화 [3] 펌글 명불허전♬ 18/01/20 09:42 1105 14
    1547351
    [펌]아내가 유머톡을 보냈다.jpg [10] 커텐창문 18/01/20 09:07 3862 17
    1547350
    패기 돋는 PC방.jpg [8] 펌글 강화골드헐 18/01/20 08:54 4573 22
    1547349
    전투에서는 졌지만 전쟁에서 승리한 남자 [7] 개념탑재해라 18/01/20 08:15 4536 43
    1547348
    원만한 대화 꿀팁 글을 보고 심심해서 그린것 [2] 외부펌금지 헥토파스칼 18/01/20 07:33 2763 26
    1547347
    방탈죄송합니다.제발도와주세요.. [1] 여왕사마님 18/01/20 07:29 2621 34
    1547346
    쯔위의 핸드 스피드 [8] 펌글 바레이타 18/01/20 06:26 7740 26
    1547345
    행복한 코끼리의 일기 [10] 웃기는게목적 18/01/20 06:21 4182 24
    1547344
    이등병이 신병위로 휴가 나온 만화 [27] 펌글 명불허전♬ 18/01/20 04:41 5396 32
    1547343
    코끼리 vs 타조 [12] 웃기는게목적 18/01/20 03:44 4809 26
    1547341
    아내 : 자기야, 나 당신 할머니 사진 찾은 것 같아 [7] 카스피뉴 18/01/20 03:07 8030 30
    1547339
    프렌치 불독이 개밥도둑 찾는 만화 [25] 펌글 명불허전♬ 18/01/20 02:35 4501 47
    1547338
    유희왕)입잘터는놈이 이기는 카드 [9] 펌글 4수자리 18/01/20 02:32 4549 29
    1547337
    일본 회전초밥집에서 혐한당한것같다 [16] 펌글 히비키 18/01/20 02:29 8601 32
    1547336
    혼자 버려진 고양이를 데리고온 후 몇달뒤... [7] 당직사관 18/01/20 02:24 5603 26
    1547335
    26살 모쏠의 익스트림한 1개월... [5] 펌글 에뛰드88 18/01/20 01:55 8206 35
    1547334
    정치계의 피노키오.jpg [32] 펌글 웃기는게목적 18/01/20 01:51 8659 52
    1547333
    호불호 음식 취향 .jpg [37] 펌글 개리g 18/01/20 01:50 6687 23
    1547332
    요즘 미코 수영복은 파란색이 아니네요? [36] 차야 18/01/20 01:46 9614 26
    1547331
    아찔한 헬리콥터 착륙 [5] 펌글 웃기는게목적 18/01/20 01:40 6113 34
    1547329
    5살 딸의 도시락을 싸준 엄마 [19] 펌글 히비키 18/01/20 00:26 9135 57
    1547328
    새끼아끼는 멍뭉이 [17] 웃기는게목적 18/01/19 23:34 7097 65
    1547327
    코스프레.gif [7] 펌글 보람냠 18/01/19 23:14 10772 38
    1547326
    인간이 살아남은 이유 [7] 펌글 눈물한스푼 18/01/19 23:09 9772 48
    1547325
    댕댕이의 댕댕이 [4] 펌글 장난똥때리낭 18/01/19 23:04 7355 27
    1547324
    미드의 시작 [61] 펌글 눈물한스푼 18/01/19 22:50 9518 44
    1547323
    7년의 적자 끝에 간신히 성공한 사업가의 성공포인트 [30] 펌글 히비키 18/01/19 22:25 11789 71
    1547322
    총체적 난국 모음.jpgif [96] 펌글 4수자리 18/01/19 21:48 10105 61
    1547321
    월급 루팡 레전드 [36] 펌글 박통씨팔아요 18/01/19 21:35 12888 74
    1547320
    멍멍이.....사고 회로.....jpg [9] 펌글 개리g 18/01/19 21:07 9302 61
    [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [다음10개▶]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책