天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

當(dāng)前位置:主頁 > 科技論文 > 建筑工程論文 >

生命游戲和細(xì)胞自動機(jī)的學(xué)習(xí)筆記

發(fā)布時間:2016-05-27 19:03

  本文關(guān)鍵詞:細(xì)胞自動機(jī),由筆耕文化傳播整理發(fā)布。


Last updated: 23rd. July, 2012

© 野比 2012 版權(quán)所有

(本文為學(xué)習(xí)筆記,知識淺薄。我會將學(xué)習(xí)中的實驗記錄和心得記錄在此。) 

歡迎對這方面感興趣的愛好者一起研究。

尋求技術(shù)指導(dǎo)。

聯(lián)系QQ:1429013154

我一直對人工智能很感興趣,苦于數(shù)學(xué)基礎(chǔ)太差,很多理論方面的東西理解起來十分吃力。最近又翻出以前的學(xué)習(xí)目標(biāo):人工生命。名字挺懸乎,其實很多人都曾和它有過交集,就算沒有用到它進(jìn)化出的好物種——智能機(jī)器人,至少也應(yīng)該聽過甚至中過它進(jìn)化的惡劣物種——蠕蟲病毒。

說起人工生命和計算機(jī),就要從計算機(jī)歷史的最開始說起。因為計算機(jī)之父馮·諾依曼和他的小組成員勃克斯分別撰寫過題為《自我繁衍的自動機(jī)理論》和《細(xì)胞自動機(jī)論文集》的文章,堪稱人工生命最初的狂人。

背景故事就不說了,記在這里。

人工生命之父——Chris Langton

生命游戲百科

框架搭建

目前框架已搭建好。C#編寫,.NET 2.0,世界大小30x40。

我的架構(gòu)和經(jīng)典架構(gòu)不同。下面把世界法則對比一下。

經(jīng)典世界法則如下:

如果一個細(xì)胞周圍有2個細(xì)胞為生,則該細(xì)胞的生死狀態(tài)保持不變。在其它情況下,該細(xì)胞為死(即該細(xì)胞若原先為生,則轉(zhuǎn)為死,若原先為死,則保持不變)。

我的世界法則如下:

由于經(jīng)典法則中所有生命都有機(jī)會復(fù)活,所以在網(wǎng)上下載的經(jīng)典實現(xiàn)和絕大部分愛好者實現(xiàn)里,,世界都是被填滿了生命的,通過顏色等「隱藏」死亡的生命,使之「看起來」消失了。我打算設(shè)計的是一個模仿真實的世界法則,所以世界里該空白的地方就不能有生命存在。

這是框架截圖。

生命游戲和細(xì)胞自動機(jī)的學(xué)習(xí)筆記

下一步的工作

需要請教和研究的知識點

網(wǎng)上的資源

一個用C#實現(xiàn)的標(biāo)準(zhǔn)規(guī)則生命游戲(ysg8422am@csdn)

Langton螞蟻的一個粗略實現(xiàn)(vxbb@bccn)

進(jìn)展情況

28 May, 2012

1.今天嘗試將世界地圖封裝為控件,失敗了。功能上實現(xiàn)了,但原來2~4%的CPU負(fù)荷直接飆升到了25~30%,開銷相當(dāng)大。具體原因似乎是嵌套調(diào)用和太多參數(shù)傳遞的問題。而且地圖控件的架構(gòu)設(shè)計也很浪費資源,為每個地圖點緩存了一個Color。此問題留待以后解決。

2.在生物邏輯上加入了自然老化、休息和饑餓捕食的規(guī)則。使用了仿真自然隨機(jī)數(shù)發(fā)生器來模擬一切和自然概率(不像System.Random那么突變)有關(guān)的現(xiàn)象,如攻擊判定、進(jìn)攻或逃跑等。

生命游戲和細(xì)胞自動機(jī)的學(xué)習(xí)筆記

圖中Legend如下

健康

亞健康

饑餓

Starving

瀕死

邁向生命的第一縷曙光

在增加了健康因素,實驗體會主動覓食,接近并攻擊較弱的實驗體。

在進(jìn)化的過程中,出現(xiàn)了一些有意思的現(xiàn)象。

有的細(xì)胞在非常健康(HP>80+)的時候,也會追著弱小的實驗體「咬」,殺死實驗體后,HP增加不到5點,而代碼中,標(biāo)稱值是在HP<70時才開始覓食,且會整個吃掉尸體。

有的實驗體甚至有了那么一點點的「智力」(或者說僅僅是種本能),比如這個第6392代的家伙,它只要吃飽了,就會「繞場一周」,而且總是往墻上撞,企圖逃跑。

生命游戲和細(xì)胞自動機(jī)的學(xué)習(xí)筆記

隨機(jī)數(shù)和記憶的加入,立刻讓世界變得絢麗,變化多端。

 

23rd. July, 2012更新

CSDN網(wǎng)友nanqi0506(神棍,QQ:275096967)制作了一個他的版本:《LifeGame》。簡要摘錄如下,詳情請查閱原文。

生命游戲和細(xì)胞自動機(jī)的學(xué)習(xí)筆記

細(xì)胞屬性

暫時只使用基本的力量、敏捷、智力,屬性影響細(xì)胞各個方面。

細(xì)胞動作

細(xì)胞大多時間在漫步(Wander),但是在有其他細(xì)胞攻擊自身時,細(xì)胞會出于本能的進(jìn)行反擊,由于沒有智商(能力),經(jīng)常會看到兩個細(xì)胞致死不休的相互攻擊。當(dāng)然細(xì)胞也會在周圍有其他細(xì)胞時主動出擊,或者細(xì)胞懶得動(休息)。

細(xì)胞視野

細(xì)胞所謂的周圍(視野)已經(jīng)不局限與周圍8個方格,而是由于時間(白天還是黑夜),自身屬性(敏捷影響視野)去決定。例如下面是一個視野為3的細(xì)胞。

生命游戲和細(xì)胞自動機(jī)的學(xué)習(xí)筆記

細(xì)胞能力

可以理解為智商。但是感覺更像是游戲中的技能。例如說細(xì)胞在攻擊時發(fā)現(xiàn)擊中要害更致命,那么它以后攻擊的時候都會向要害攻擊(學(xué)會【擊中要害】)。

這里為了讓游戲更有意思,對思考類能力做了特殊處理,比如說細(xì)胞學(xué)會了【謀而后動】,那么它會在每次行動前,考慮自身、對手、周圍細(xì)胞等各個因素,然后做一個判斷,決定這次應(yīng)該做什么。學(xué)會【走為上策】細(xì)胞會在自己自身不利情況逃跑。更甚者學(xué)會【知己知彼】還會考慮對手情況。

細(xì)胞狀態(tài)

標(biāo)準(zhǔn)的如戰(zhàn)斗中、逃跑、瀕死,戰(zhàn)斗狀態(tài)如被拌摔等(與能力有關(guān))

能力中使用位運(yùn)算

首先在設(shè)計狀態(tài)的時候使用了位運(yùn)算判斷,這也是一個很經(jīng)典的學(xué)習(xí)案例:

生命游戲和細(xì)胞自動機(jī)的學(xué)習(xí)筆記

我為了給每個技能增加【稀有度】,提出一個能力最大值的概念,其實我承認(rèn)很大程度上是因為我發(fā)現(xiàn)智力有點廢柴。

每個能力并不全是只有一個1(二進(jìn)制),如上例中的【擊中要害】二進(jìn)制就有3個1。

這里需要說明一下,本身是沒有能力類型的(如上面的共計類型),但是發(fā)現(xiàn)由于攻擊類的能力稀有度低(原本的【奮力一擊】是0x00000001【擊中要害】是0x01000002),很多細(xì)胞同時擁有【奮力一擊】和【擊中要害】,所以提出了能力類型這個概念,同一個能力類型每個細(xì)胞只能擁有兩個(不排除給一些思考類能力增加判斷替換能力的功能)。

當(dāng)你獲得一個新技能的時候,剩余能力值(能力最大值減去已有能力值)不足,則無法獲得該技能,這樣保證了高智力細(xì)胞的優(yōu)勢。

判斷能力值的方法來源經(jīng)典的判斷整數(shù)二進(jìn)制中1的個數(shù),也算學(xué)有所用。其實完全可以寫一個類的,這我知道,而且在能力中暴露出來的問題(比如說通過0x00000001獲得【奮力一擊】這個能力的名字),也讓我考慮將能力封裝一個類。但是這都是后話。

判斷視野

這真是經(jīng)驗不足了。

雖然很喜歡游戲,但是對于游戲編程還是沒有過多接觸。

本來很簡單的一個問題,但是實現(xiàn)的時候還是出了不少問題,最后寫下如下代碼:

Within方法

List

  本文關(guān)鍵詞:細(xì)胞自動機(jī),由筆耕文化傳播整理發(fā)布。



本文編號:50732

資料下載
論文發(fā)表

本文鏈接:http://www.sikaile.net/jianzhugongchenglunwen/50732.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶3b008***提供,本站僅收錄摘要或目錄,作者需要刪除請E-mail郵箱bigeng88@qq.com