1. 決策的主要方法有哪些
兩人同兼一職的現象是不存在的。同樣,在晉升時,必須一個是勝利者,一個是失敗者。
在瞬息萬變的經營環境中,企業家要為自己的企業航船把握正確的方向,僅靠你的生活經驗和直觀感覺是不行的,要藉助於現代成熟的定量分析方法,用以檢驗經驗與直感的可靠性和正確性,並根據定量分析結果,進行正確的決策。哈佛商學院的管理經濟學課程,教給學生們如何將主觀的定性判斷,與客觀的定量分析相結合進行經營決策的技能。學生們通過這門課的學習,理解了定量分析對於決策的重要性。
哈佛認為,企業經營者,要做好企業的決策,必須了解企業三種經營狀態。它們是「零和游戲」、「囚犯兩難」和「自然淘汰」。企業面臨的多數經營情況,都可歸為這三種游戲類型。企業家須判斷經營狀況屬於哪種游戲,從而決定應該採取的行動模式。
「零和游戲」就是一方得分他方失分,即合計為零的游戲。所有競爭項目都有價值,勝者得到價值。
擲硬幣可謂典型的零和游戲。正面朝上,背面自然朝下。一方取勝,他方定敗。這樣便產生了零和游戲。同樣,賭賽馬、賽狗也可以說是零和游戲的一種。賭賽馬取勝的人,從負者手中得到了錢,即賭注和找還錢的總和(當然要交跑道、維護費、贏馬所有者的獎金、稅款等)是零。
在企業中也是如此,兩人同兼一職的現象是不存在的。同樣,在晉升時,必須一個是勝利者,一個是失敗者。
的確,在這種零和游戲中,選手可選擇的戰略只是一個,那就是取勝,另無他法。各選手必須竭盡全力,勝利者獨享戰利品,因此在這里毫無妥協的餘地,談判也毫無意義。
在「囚犯兩難」的場合,如果各位參賽者都不想獨佔好處,那麼全體選手就能得到最好的結果。如果大家齊心協力,就能取得對眾人來說是最好的結局。如果每個人都姿意妄為,得到的將是最壞的結果。
犯人A、B分別在兩間房子內受審。檢察官要判犯人無期徒刑,由於種種原因暫時不能判決,於是,檢察官向他們兩人暗示:如果犯人坦白,省去了法院的時間和經費,就可以得到減刑。如果其中的一個囚犯坦白,提供了證詞,此犯人就可得到特別減刑。但是實際上,如果二人都坦白,證詞便無用了,所以不能得到相應的減刑。
假設犯人A坦白並提供了證詞,但犯人B沒有坦白,那麼犯人A判刑10年,犯人B就會被判無期徒刑;反之,如果犯人B坦白並作證,犯人A緘默不語的話,則犯人B判10年刑,犯人A則判無期徒刑。如果二人都坦白,省去了二審費用,二人都會被判20年刑。但是假如二人都不坦白,就會因證據不足被免予起訴。
如上所述,如果二人相互配合都不坦白,就能得到最好的結果。然而,二人卻分別被關在不同房間里受審,由於對對方不信任,二人都希望因自己坦白而減刑,這也許便招致了最壞的結果。只有信任對方,形成互相配合的狀態時,犯人矩陣作戰才能成功。
美國航空業在80年代中期,就陷人了這種「犯人兩難」矩陣的狀況。在實行嚴厲的管理措施時期,航空公司為緩和價格的航線競爭,就採取了相應措施。但是,管制措施一旦廢除,各航空公司便想方設法增加哪怕是數目很少的飛行次數,各航空公司相對降價,來實現自己最大利潤的慾望。其結果是,幾乎所有的航空公司都得到了最壞的結果。原因是,各航空公司在管制措施取消以前,與職工訂立了長期的工作合同,從而無法削減勞務成本。可如果航空公司都一起提高價格,整個航空公司的效益就會大為改觀。但是,對消費者來說,幸運的是,在反托拉斯法中,已明確地禁止這樣的價格協定。
「自然淘汰」是結婚或其他所有親密關系中都存在的窘境。游戲中的選手A,希望得到與選手B同樣的最好結果。這時對方如果放棄對最好結果的追求、,那麼選手A就達到目的了。反之,選手B也亦然。
很多公司為滿足各種特定的市場需求而製造產品,但實際上,往往只有一種產品倖存下來。這是因為生產方面的固定費用很高,各公司為了從投資中得到利益,就必須擁有較大的市場佔有率。
在商場實戰中,為了不讓競爭對手進入市場,利害相關者之間的交流和暗示,就具有決定的作用了。讓失敗可能性很大的人在市場上競爭,是任何當事者都不喜歡的。因此,很多時候,將今後要投放市場的產品消息告訴競爭對手,使其放棄市場競爭,是一種明智而有效的方法。了解究竟誰棄權的最有效的手段,是你自己第一個進入市場。
因為不可能詳細敘述所有的分析,我們這里所介紹的框架,只能將復雜的決策,分解為最簡單的要素。這是應用於各種職能規范中所必需的決策方法。
管理經濟學是數量分析類型學生們喜歡的科目。這是因為在分析過程中;他們可能會發現意想不到的「正確」答案。但是,習慣用主觀判斷和常識進行決策的學生們,也熱衷於學習數量化方法和邏輯分析方法。利用數量分析法,可以避免片面性增加其准確性和可靠性。明白了一個很有趣的道理,那就是,要使決策的數量化過程正確而有效,你必須具備一種靠直覺判斷各相關要素的能力。
雖然不能否認優秀的判斷力和決策的關鍵,但管理經濟學講座的目的,是教授在若干個選擇方案中,判斷哪種方案最為合適的方法。哈佛將送給你一個理想的答案,送給你一個基本的方法。學生學到的定量化技術,適用於正確評價候補方案的價值;預測不確定的未來;防範風險的對策;並用游戲來預測競爭者的反應用線性規劃法進行資源配置等等。
管理經濟學不僅教授判斷方案是否得當的方法,而且對如何向他人明確地表達自己的思考過程也有重大作用。用決策方法的一個最大好處是,如果在分析者之外,可以根據情況做出反應並能把所分析情況資料化,如果有人與分析家做出了不同的預測,是否應採取不同的行動方案,利用決策樹方法便可一目瞭然地明確。所以,決策樹利於傳達思想和交流情報,可以說是非常好的系統方法之一。
管理經濟學的另一個重要內容是敏感性分析。敏感性分析最終左右著判斷的結果。對未來的假設和預測,並對這些預測和假設進行檢驗。利用敏感性分析,即使如果有人做出了錯誤的假設,也能檢驗出該假設的錯誤所在。
哈佛研究的決策方法,適用於非常廣泛的領域,比如可以用於下面的各種職業和各種不同的決策問題。
你也許是一位著名的棒球隊的市場部部長,你想要搞清幾年來對主場比賽的入場觀眾最有影響的因素是什麼?並從分析因素中判斷今後該怎樣進行市場活動。
你是一個對即將來臨的暴風雨應採取對策的葡萄園營業部主任,暴風雨的長短與強弱和你採取的對策,可能造成葡萄全部被毀,也可能使今年成為歷史上產量最高的豐收年。
假如你是一個在似乎有石油,又無充分證明的原野上,決定是否投標取得採掘石油權,而且如果投標,又必須決定價格水平的事業部長,你該如何進行決策呢?
哈佛商學院管理經濟學的分析基礎是決策樹。
決策樹由決策者必須做出決定的場合和可能出現的不確定事項的場合兩部分構成。
利用決策樹分析法,必須明確以下幾個問題:
第一,描述決策和發生事情的順序。
第二,應清楚選擇列出的方案,與有可能發生的事情之間可能有矛盾。另外還要透徹地進行選擇方案的調查。
第三,決策者應預定時間范圍。在決策尚未決斷時,其決策可根據不同情況而定。
在任何領域都會存在競爭對手。因此,在管理經濟學講座的案例討論中,教授很重視訓練學生們預測競爭對手可能作出的反應,並根據預測的反應來制定行動計劃。學生們在各種方案中,要逐個評定各競爭對手的狀況,從而選擇出對自己公司有利的可靠的戰略決策。
第四,在進行決策時,必須依照對某種事件的預測來籌劃戰略行動。所以,決策樹是決定各階段選擇的指南。
在決策上列出選擇方案和預想結果後,決策者必須計算所預算各種結果的現金價值。學生要進行的是分析由各種戰略的實施所產生的現金收支的現值數額。
按決策的方法逐個分析備選方案,了解其合理的耗費和支出。不過在收益占兩個格支出分析中,不包括埋沒成本(即與決策無關的開支、應與投資決策分開考慮的財務費用等等)。
為了進行比較,教授還必須幫學生確定以稅前或者稅後(一般為後者)為甚准計算。其次指導學生在計算各種決策方案結果時,應如何考慮資金的時間價值,因為一切都要用現值表示。所利用的減價要素,不應與稅前稅後的現金收支發生矛盾。計算中還可能利用加權平均資本成本及再投資率(決策者將剩餘資金用於再投資的比率)等指標。
作出「推進」決策的製造部長預計,如果新產品推進成功,稅後的現金收入是550萬美元,如果失敗就要損失350萬美元。這時如果放棄該產品,則僅損失開發階段的埋沒成本。
在現實中,要正確地評價末端值,恐怕要用到相當多的數據才行。因此用上述方式輔助判斷,並記錄各種假設和方案,是比較方便實用的方法。
將預計結果全部繪制於圖中,便可預測各種結果的概率了。如擲硬幣時,正、反面的概率各為一半,即50%,擲骰子的概率為六分之一。
評價概率時,主觀判斷同樣重要,盡管每種可能結果的概率是根據預測、推測得來的,但是決策者要提高其精確度,還要充分利用以往的經驗和數據。
那麼,如何將以上步驟用於決策上去呢?哈佛的方法是:
根據預測結果和概率的所有情報,確定可能產生現金價值的行動方式。如果這樣能做成決策樹,然後再決定哪種行動戰略能帶來最大利益,而選擇「惜售」或「甩賣」等行為,去「分解」決策樹。進行這種作業時,哈佛的學生從計算末端值開始,即通過計算結果的加權平均值,得到該事項節的預想現金值。
回歸分析比預測更為復雜,一般要藉助計算機進行數據計算。也許有人一聽就會皺眉頭,確實,回歸分析技術有些高深,如果你在企業中看到一群人在談論回歸分析的話,差不多可以肯定其中有一兩位企業管理碩士或經濟學博士。
回歸分析是將預想的可能出現的結果,在計算機上實際摸擬的一種技術。採用此技術,能分析出現在的情況及與過去類似的情況,搞清所有對事項可能產生影響的要素。
下面我們來看看美國職業棒球隊比賽時,主場比賽觀念的預測方法。
首先要考慮對觀眾數量有影響的各種因素,如比賽球隊、比賽時間、比賽季節、星期幾、平均票價、客隊和主隊的明星隊員、氣溫、電視轉播、全部比賽場次數量等。
其次,在計算機上輸入有關各要素的各種變數數據和各場的觀念數,以及過去各比賽季節等信息。
使用回歸分析方法,須用計算機進行數千個數據的處理,才可知道哪種變數對觀念數量影響最大。根據回歸分析所得出的影響要素及其結果的關系,可以說明今後的趨向。
哈佛1981年秋天進行的有關這一問題的調查分析結論是,對觀眾數量最具影響力的,是有無明星選手參加比賽以及該場比賽是否為決賽兩個主要因素{而電視是否轉播,對觀眾的數量影響並不很大。這個調查結果,對承辦者來說是很有意義的。
由以上結果可知,紐約·尼克思隊給著名球星哈特里克·阿溫很高的年薪無可厚非,達克·富羅蒂的年薪猛增也理所當然。因為人們大多是來看他們表演的。可見回歸分析證明了直感的正確性。
決策者為收集預測數據還有一個方法,就是選擇對於結果有象徵性的若干實例,以此來預測結果。相信此技術效果的人們,稱之為推銷試驗。
生產新型口香糖的製造部長,為預測產品實際在全國有無反響,准備在一些地區進行推銷試驗。抽樣越多,收集的情報就越准。另外,試銷和抽樣要花費大量的時間和金錢,但產品實際投入市場後卻不一定能夠成功。經營者不斷盤算的是「為獲得更准確的情報,准備花多少錢?」
哈佛的管理經濟學講座,教給學生們對此類問題應採取的正確方法。決策者對不完整的情報,是不會投入很多資金的。而要獲得完整的情報,能使決策者作出正確的判斷,又必須投入相當多的資金。
分析兩種情況,但在說明之前有一點必須明確,那就是並非分析者描述了決策樹就可萬事大吉了,而是要把輸入公式中的重要情報整體作一下重新分析。
例如,製造部長雖已得出成功和失敗的概率,但是不能判斷其結果是否正確。為檢查這種假設的敏感性,部長會自問,怎樣才能開拓一個具有取消中止計劃的充分魅力的市場呢?盈虧平衡分析應是解決這一問題的不可缺少的分析方法。
如果用管理經濟學的語言來說,就是有多大的成功概率時,投放戰略會處於同一水平之上。
製造部長要考慮的另一個因素是非貨幣價值分析,在這判斷新型口香糖的生產會使公司對零售業可施加多大的影響力方面是非常重要的。當他們改變中止投放市場的決定時,這種影響力在何種程度上才為必要。
例如,假定投放市場的成功率為30%,公司為使產品投放市場並獲得在功,必須擁有相當於270萬美元以上價值的影響力,即在市場上要產生相當的反響。如果製造部長認為沒有270萬美元以上的市場效果,那麼,不能投放市場的決斷也就成立了。
但是,盡管如此,製造部長依然擔心自己的判斷不準時該怎麼辦呢?除計算預想現金值之外,就沒有其他判斷標准了嗎?此時最好把風險的概率及對風險的討厭程度也考慮在內。
即便冒風險也不願放過增加收益的機會的話,就應事先考慮投放後發生什麼事情,如果搞得好可賺550萬美元。可是如果考慮到企業預算比較緊張,即使是350萬美元的損失,也不能小看的話,就要謹慎地考慮投放市場的決策了。
哈佛商學院告訴那些未來的經營者們,每個人及每個企業單位所承擔的風險性質,以及對風險的忍耐度,對決策過程起著重要的作用。如果決策不是時常根據預想現金的最大值進行的,那麼在開始分析之前,就必須要確定決策的基準是什麼。
哈佛商學院還教授以下兩種解決問題的技術。因為實際上可選擇的方案很多,只靠大腦和筆記本是解決不了問題的,因此這兩種技術都要利用電子計算機進行輔助計算。
第一種技術是利用模擬實驗模型。這種模型的典型事例,就是計算某年必須生產多少呼拉圈。呼拉圈是一種深受歡迎的產品,生產量相當大,解決此類問題要使用計算機進行。
模擬模型往往用於不確定因素的預測。通過模擬實驗,可能對各種戰略結果給出實際影響的狀況,解決決策樹中的很多問題。當然,對產品的新價格總是經常存在著不確定性,但基於各種實驗中產生的平均利益,總能找到各種戰略的預想現金值,因為用計算機能較容易地驗證假設和進行敏感性分析。
第二種技術是線性規劃法,一般適用於生產性資源的分配決策。經營目標通常是以最小的支出獲得最大的收益。在這種情況下,就要考慮機器設備、從業人員某時期內的生產能力、營業時間、各產品的原材料數量、倉庫貯藏能力等資源約束條件。
然後再通過計算機求解學生們提出的諸多聯立方程式。學生們通過解釋其演算結果,不僅可知全部產品中,哪種產品能達到最大收益;哪個生產部門應完全發揮生產能力;投放新產品能否獲利等等,而且還能得出與決策有關的其他各種答案。線性規劃模型可用於使系列投資帶來最大收益的場合。
模擬實驗模型和線性規劃模型是經營管理中經常使用的兩種定量化模型。
前面分析了各種可能的情況,下面就是怎樣決策了。選擇戰略時,頭腦中應思考以下二個問題:
第一,決策樹只反映特定決策者的看法,因而判斷行動時機和各種不確定事項因人而異。
第二,輸入新情報時,情況變了,有時須隨之變更決策樹。
無論多麼優異的決策樹,都不過是解決問題的一種方法。
在決定行動戰略時,按以下步驟做則很方便。
步驟之一,根據決策基準實行明確的決策,如目的是要獲得最大限度的預想現金值?還是最小限度的經濟損失?總之必須選擇對戰略及價值最合適的決策標准。
步驟之二,決策應在一定時間中確實地貫徹執行。在設定目標時,要考慮預計的是長期風險和利益,還是短期和結果?期限多長?要六個月、一年、二年,還是更長的時間。
步驟之三,把可能發生的主要問題都放在決策樹中是很困難的,但必須認真和反復地思考各種戰略中所能想到的問題和價值。必須考慮對預計行動的競爭反應和結果。為了提高決策樹計算的概率的可靠性,還要看看有沒有收集到更多情報的選擇方案。假如將抽樣技術用於結果預測,就要分析一下該結果對作了決斷是否具備足夠的現實性。
企業的決策多數是很復雜的,往往需要深思熟慮和調查。因此,出色的判斷力是決策時不可缺少的要素。在需要考慮與找出與問題有關的各種要素,同時明確各要素問的相互關系的場合,數量分析會成為很好的決策工具。
定量分析技術可能會有意想不到的威力,但如果過於偏信,或漫不經心濫用的話,也可能出現誤導決策的危險。判斷和直感,是包括數量決策在內的,所有正確的經營決策所不可缺少的要素。、
2. 游戲場景管理的八叉樹演算法是怎樣的
八叉樹(octree)是三維空間劃分的數據結構之一,它用於加速空間查詢,例如在游戲中:
加速用於可見性判斷的視錐裁剪(view frustum culling)。
加速射線投射(ray casting) ,如用作視線判斷或槍擊判定。
鄰近查詢(proximity query),如查詢玩家角色某半徑范圍內的敵方NPC。
3. 各種類型的2D游戲里一般要用到什麼復雜的演算法
游戲類型(Game Genres),通常用於分類電子游戲,是一種分辨游戲之間區別的方法。世界上並沒有統一的分類方法。游戲類型主要分為6類:動作、冒險、模擬、角色扮演、休閑、體育,他們各有幾十種分支,形成了龐大的「游戲類型樹」。 電子游戲分類 RPG=Role-playing Game:角色扮演游戲 由玩家扮演游戲中的一個或數個角色,有完整的故事情節的游戲。玩家可能會與冒險類游戲混淆,其實區分很簡單,RPG游戲更強調的是劇情發展和個人體驗,一般來說,RPG可分為日式和美式兩種,主要區別在於文化背景和戰斗方式。日式RPG多採用回合制或半即時制戰斗,如《最終幻想》系列,大多國產中文 RPG也可歸為日式RPG之列,如大家熟悉的《仙劍》、《劍俠》等;美式RPG如《暗黑破壞神》系列。 ACT=Action Game:動作游戲 玩家控制游戲人物用各種武器消滅敵人以過關的游戲,不追求故事情節,如熟悉的《超級瑪里》、可愛的《星之卡比》、華麗的《波斯王子》等等。電腦上的動作游戲大多脫胎於早期的街機游戲和動作游戲如《魂斗羅》、《三國志》、《鬼泣》系列等,設計主旨是面向普通玩家,以純粹的娛樂休閑為目的,一般有少部分簡單的解謎成份,操作簡單,易於上手,緊張刺激,屬於「大眾化」游戲。 AVG=Adventure Game:冒險游戲 由玩家控制游戲人物進行虛擬冒險的游戲。與RPG不同的是,AVG的特色是故事情節往往是以完成一個任務或解開某些迷題的形式出現的,而且在游戲過程中刻意強調謎題的重要性。AVG也可再細分為動作類(AAG)和解迷類兩種,動作類AVG(AAG)可以包含一些格鬥或射擊成分如《生化危機》系列、《古墓麗影》系列、《恐龍危機》等;而解迷類AVG則純粹依靠解謎拉動劇情的發展,難度系數較大,代表是超經典的《神秘島》系列。 AAG=Act Adventure Game:動作冒險游戲 為冒險游戲的一個分支。但非常流行,自成一體,大有超過圖形類AVG之勢。故單獨列出。 SLG=Simulation Game:策略游戲 玩家運用策略與電腦或其它玩家較量,以取得各種形式勝利的游戲,或統一全國,或開拓外星殖民地。策略游戲可分為回合制和即時制兩種,回合制策略游戲如大家喜歡的《三國志》系列、《櫻花大戰》系列;即時制策略游戲如《命令與征服》系列、《帝國》系列、《沙丘》等。後來有些媒體將細分出模擬經營,即SIM(simulation)類游戲,如《模擬人生》、《模擬城市》、《過山車大亨》、《主題公園》等。TCG(養成類)游戲,比如《明星志願》等。 SRPG=Simulation Role-playing Game:戰略類角色扮演 原本角色扮演和戰略應該不能結合,但是如《火焰紋章》之類的游戲,因為操控小隊進行大地圖回合制戰斗極具戰略型(還因此被稱為戰棋類游戲)而且對人物進行培養扮演參與劇情也是很重要的游戲內容因此被玩家劃歸為是SRPG,可以說喜歡玩的人不多,人氣不夠。 RTS=Real-Time Strategy Game:即時戰略游戲 本來屬於策略游戲SLG的一個分支,但由於其在世界上的迅速風靡,使之慢慢發展成了一個單獨的類型,知名度甚至超過了SLG,有點像現在國際足聯和國際奧委會的關系。代表作有《紅色警戒》系列、《魔獸爭霸》系列、《帝國時代》系列、《星際爭霸》等等。後來,從其上又衍生出了所謂「即時戰術游戲」,多以控制一個小隊完成任務的方式,突出戰術的作用,以《盟軍敢死隊》為代表。 FTG=Fighting Game:格鬥游戲 由玩家操縱各種角色與電腦或另一玩家所控制的角色進行格鬥的游戲。按呈畫技術可再分為2D和3D兩種,2D格鬥游戲有著名的《街霸》系列、《侍魂》系列、《拳皇》系列等;3D格鬥游戲如《鐵拳》、《高達格鬥》等。此類游戲談不上什麼劇情,最多有個簡單的場景設定,或背景展示,場景、人物、操控等也比較單一,但操作難度較大,主要依靠玩家迅速的判斷和微操作取勝。 STG= Shooting Game:射擊類游戲 這里所說的射擊類,並非是類似《VR特警》的模擬射擊(槍戰),而是指純的飛機射擊,由玩家控制各種飛行物(主要是飛機)完成任務或過關的游戲。此類游戲分為兩種,一叫科幻飛行模擬游戲(Science-Simulation Game),非現實的,想像空間為內容,如《自由空間》、《星球大戰》系列等;另一種叫真實飛行模擬游戲(Real- Simulation Game),以現實世界為基礎,以真實性取勝,追求擬真,達到身臨其境的感覺,如《Lockon》系列、《DCS》、《蘇-27》等等。 FPS=First Personal Shooting Game:第一人稱視角射擊游戲 嚴格來說它是屬於動作游戲的一個分支,但和RTS一樣,由於其在世界上的迅速風靡,使之展成了一個單獨的類型,典型的有使命召喚系列、DOOM系列、QUAKE系列、《虛幻》、《半條命》、《CS》……不勝枚舉。 PZL=Puzzle Game:益智類游戲 Puzzle的原意是指以前用來培養兒童智力的拼圖游戲,引申為各類有趣的益智游戲,總的來說適合休閑,最經典的嘛~就是大家耳熟能詳的《俄羅斯方塊》。 體育競技 模擬各種體育賽事的游戲。比如《實況足球》等。 RCG=Racing Game:競速游戲[也有稱作為RAC的] 在電腦上模擬各類賽車運動的游戲,通常是在比賽場景下進行,非常講究圖像音效技術,往往是代表電腦游戲的尖端技術。驚險刺激,真實感強,深受車迷喜愛,代表作有《極品飛車》、《山脊賽車》、《摩托英豪》等。另一種說法稱之為「Driving Game」。目前,RCG內涵越來越豐富,出現了另一些其他模式的競速游戲,如賽艇的,賽馬等。 CAG=Card Game:卡片游戲 玩家操縱角色通過卡片戰斗模式來進行的游戲。豐富的卡片種類使得游戲富於多變化性,給玩家無限的樂趣,代表作有著名的《游戲王》系列,包括卡片中國游《武俠Online》,從廣意上說《王國之心》也可以歸於此類。 TAB=Table Game:桌面游戲 顧名思義,是從以前的桌面游戲脫胎到電腦上的游戲,如各類強手棋(即擲骰子決定移動格數的游戲),經典的如《大富翁》系列;棋牌類游戲也屬於TAB,如《拖拉機》、《紅心大戰》、《麻將》等等。 MSC=Music Game∶音樂游戲 培養玩家音樂敏感性,增強音樂感知的游戲。伴隨美妙的音樂,有的要求玩家翩翩起舞,有的要求玩家手指體操,例如大家都熟悉的跳舞機,就是個典型,目前的人氣中國游《勁樂團》也屬其列。 WAG=Wap Game:手機游戲 目前游戲隨處可以玩,連手機也必帶休閑游戲,中國民最喜歡手機游戲的種類,益智類比率最高,其次依次為動作類、戰略類、模擬類、射擊類。列舉幾個手機游戲例子:《金屬咆哮》、《FF7 前傳》等。 MUD=泥巴游戲 主要是依靠文字進行游戲的游戲,圖形作為輔助。1978年,英國埃塞克斯大學的羅伊?特魯布肖用DEC-10編寫了世界上第一款MUD游戲—— 「MUD1」,是第一款真正意義上的實時多人交互中國絡游戲,這是一個純文字的多人世界。(這可能就是MUD的命名來源吧)其他代表作有:《俠客行》、《子午線59》、《萬王之王》
4. 俄羅斯方塊游戲的編程應用了什麼演算法
主要是游戲基本邏輯,需要考慮一下碰撞,演算法涉及不深入的
如果要考慮插空位,需要使用A*等尋路演算法
如果你要實現和一個電腦對抗的tetris,則需要給電腦消行AI策略,就涉及到比較高端的決策演算法了。
5. 目前比較流行的決策樹演算法有哪些
ID3演算法,最簡單的決策樹
c4.5 是最經典的決策樹演算法,選擇信息差異率最大的作為分割屬性。
CART演算法,適合用於回歸
6. 幾種常見的決策演算法
動態歸劃演算法,貪心演算法法。最大流演算法,最短路演算法。
7. 決策樹演算法原理
決策樹是通過一系列規則對數據進行分類的過程。它提供一種在什麼條件下會得到什麼值的類似規則的方法。決策樹分為分類樹和回歸樹兩種,分類樹對離散變數做決策樹,回歸樹對連續變數做決策樹。
如果不考慮效率等,那麼樣本所有特徵的判斷級聯起來終會將某一個樣本分到一個類終止塊上。實際上,樣本所有特徵中有一些特徵在分類時起到決定性作用,決策樹的構造過程就是找到這些具有決定性作用的特徵,根據其決定性程度來構造一個倒立的樹--決定性作用最大的那個特徵作為根節點,然後遞歸找到各分支下子數據集中次大的決定性特徵,直至子數據集中所有數據都屬於同一類。所以,構造決策樹的過程本質上就是根據數據特徵將數據集分類的遞歸過程,我們需要解決的第一個問題就是,當前數據集上哪個特徵在劃分數據分類時起決定性作用。
一棵決策樹的生成過程主要分為以下3個部分:
特徵選擇:特徵選擇是指從訓練數據中眾多的特徵中選擇一個特徵作為當前節點的分裂標准,如何選擇特徵有著很多不同量化評估標准標准,從而衍生出不同的決策樹演算法。
決策樹生成: 根據選擇的特徵評估標准,從上至下遞歸地生成子節點,直到數據集不可分則停止決策樹停止生長。 樹結構來說,遞歸結構是最容易理解的方式。
剪枝:決策樹容易過擬合,一般來需要剪枝,縮小樹結構規模、緩解過擬合。剪枝技術有預剪枝和後剪枝兩種。
劃分數據集的最大原則是:使無序的數據變的有序。如果一個訓練數據中有20個特徵,那麼選取哪個做劃分依據?這就必須採用量化的方法來判斷,量化劃分方法有多重,其中一項就是「資訊理論度量信息分類」。基於資訊理論的決策樹演算法有ID3、CART和C4.5等演算法,其中C4.5和CART兩種演算法從ID3演算法中衍生而來。
CART和C4.5支持數據特徵為連續分布時的處理,主要通過使用二元切分來處理連續型變數,即求一個特定的值-分裂值:特徵值大於分裂值就走左子樹,或者就走右子樹。這個分裂值的選取的原則是使得劃分後的子樹中的「混亂程度」降低,具體到C4.5和CART演算法則有不同的定義方式。
ID3演算法由Ross Quinlan發明,建立在「奧卡姆剃刀」的基礎上:越是小型的決策樹越優於大的決策樹(be simple簡單理論)。ID3演算法中根據資訊理論的信息增益評估和選擇特徵,每次選擇信息增益最大的特徵做判斷模塊。ID3演算法可用於劃分標稱型數據集,沒有剪枝的過程,為了去除過度數據匹配的問題,可通過裁剪合並相鄰的無法產生大量信息增益的葉子節點(例如設置信息增益閥值)。使用信息增益的話其實是有一個缺點,那就是它偏向於具有大量值的屬性--就是說在訓練集中,某個屬性所取的不同值的個數越多,那麼越有可能拿它來作為分裂屬性,而這樣做有時候是沒有意義的,另外ID3不能處理連續分布的數據特徵,於是就有了C4.5演算法。CART演算法也支持連續分布的數據特徵。
C4.5是ID3的一個改進演算法,繼承了ID3演算法的優點。C4.5演算法用信息增益率來選擇屬性,克服了用信息增益選擇屬性時偏向選擇取值多的屬性的不足在樹構造過程中進行剪枝;能夠完成對連續屬性的離散化處理;能夠對不完整數據進行處理。C4.5演算法產生的分類規則易於理解、准確率較高;但效率低,因樹構造過程中,需要對數據集進行多次的順序掃描和排序。也是因為必須多次數據集掃描,C4.5隻適合於能夠駐留於內存的數據集。
CART演算法的全稱是Classification And Regression Tree,採用的是Gini指數(選Gini指數最小的特徵s)作為分裂標准,同時它也是包含後剪枝操作。ID3演算法和C4.5演算法雖然在對訓練樣本集的學習中可以盡可能多地挖掘信息,但其生成的決策樹分支較大,規模較大。為了簡化決策樹的規模,提高生成決策樹的效率,就出現了根據GINI系數來選擇測試屬性的決策樹演算法CART。
決策樹演算法的優點:
(1)便於理解和解釋,樹的結構可以可視化出來
(2)基本不需要預處理,不需要提前歸一化,處理缺失值
(3)使用決策樹預測的代價是O(log2m),m為樣本數
(4)能夠處理數值型數據和分類數據
(5)可以處理多維度輸出的分類問題
(6)可以通過數值統計測試來驗證該模型,這使解釋驗證該模型的可靠性成為可能
(7)即使該模型假設的結果與真實模型所提供的數據有些違反,其表現依舊良好
決策樹演算法的缺點:
(1)決策樹模型容易產生一個過於復雜的模型,這樣的模型對數據的泛化性能會很差。這就是所謂的過擬合.一些策略像剪枝、設置葉節點所需的最小樣本數或設置數的最大深度是避免出現該問題最為有效地方法。
(2)決策樹可能是不穩定的,因為數據中的微小變化可能會導致完全不同的樹生成。這個問題可以通過決策樹的集成來得到緩解。
(3)在多方面性能最優和簡單化概念的要求下,學習一棵最優決策樹通常是一個NP難問題。因此,實際的決策樹學習演算法是基於啟發式演算法,例如在每個節點進行局部最優決策的貪心演算法。這樣的演算法不能保證返回全局最優決策樹。這個問題可以通過集成學習來訓練多棵決策樹來緩解,這多棵決策樹一般通過對特徵和樣本有放回的隨機采樣來生成。
(4)有些概念很難被決策樹學習到,因為決策樹很難清楚的表述這些概念。例如XOR,奇偶或者復用器的問題。
(5)如果某些類在問題中佔主導地位會使得創建的決策樹有偏差。因此,我們建議在擬合前先對數據集進行平衡。
(1)當數據的特徵維度很高而數據量又很少的時候,這樣的數據在構建決策樹的時候往往會過擬合。所以我們要控制樣本數量和特徵的之間正確的比率;
(2)在構建決策樹之前,可以考慮預先執行降維技術(如PCA,ICA或特徵選擇),以使我們生成的樹更有可能找到具有辨別力的特徵;
(3)在訓練一棵樹的時候,可以先設置max_depth=3來將樹可視化出來,以便我們找到樹是怎樣擬合我們數據的感覺,然後在增加我們樹的深度;
(4)樹每增加一層,填充所需的樣本數量是原來的2倍,比如我們設置了最小葉節點的樣本數量,當我們的樹層數增加一層的時候,所需的樣本數量就會翻倍,所以我們要控制好樹的最大深度,防止過擬合;
(5)使用min_samples_split(節點可以切分時擁有的最小樣本數) 和 min_samples_leaf(最小葉節點數)來控制葉節點的樣本數量。這兩個值設置的很小通常意味著我們的樹過擬合了,而設置的很大意味著我們樹預測的精度又會降低。通常設置min_samples_leaf=5;
(6)當樹的類比不平衡的時候,在訓練之前一定要先平很數據集,防止一些類別大的類主宰了決策樹。可以通過采樣的方法將各個類別的樣本數量到大致相等,或者最好是將每個類的樣本權重之和(sample_weight)規范化為相同的值。另請注意,基於權重的預剪枝標准(如min_weight_fraction_leaf)將比不知道樣本權重的標准(如min_samples_leaf)更少偏向主導類別。
(7)如果樣本是帶權重的,使用基於權重的預剪枝標准將更簡單的去優化樹結構,如mn_weight_fraction_leaf,這確保了葉節點至少包含了樣本權值總體總和的一小部分;
(8)在sklearn中所有決策樹使用的數據都是np.float32類型的內部數組。如果訓練數據不是這種格式,則將復制數據集,這樣會浪費計算機資源。
(9)如果輸入矩陣X非常稀疏,建議在調用fit函數和稀疏csr_matrix之前轉換為稀疏csc_matrix,然後再調用predict。 當特徵在大多數樣本中具有零值時,與密集矩陣相比,稀疏矩陣輸入的訓練時間可以快幾個數量級。
8. 決策樹演算法原理是什麼
決策樹構造的輸入是一組帶有類別標記的例子,構造的結果是一棵二叉樹或多叉樹。二叉樹的 內部節點(非 葉子節點)一般表示為一個邏輯判斷,如形式為a=aj的邏輯判斷,其中a是屬性,aj是該屬性的所有取值:樹的邊是邏輯判斷的分支結果。
多叉樹(ID3)的內部結點是屬性,邊是該屬性的所有取值,有幾個 屬性值就有幾條邊。樹的葉子節點都是類別標記。
由於數據表示不當、有雜訊或者由於決策樹生成時產生重復的子樹等原因,都會造成產生的決策樹過大。
因此,簡化決策樹是一個不可缺少的環節。尋找一棵最優決策樹,主要應解決以下3個最優化問題:①生成最少數目的葉子節點;②生成的每個葉子節點的深度最小;③生成的決策樹葉子節點最少且每個葉子節點的深度最小。
決策樹演算法的優點如下:
(1)分類精度高;
(2)生成的模式簡單;
(3)對雜訊數據有很好的健壯性。
因而是目前應用最為廣泛的歸納推理演算法之一,在 數據挖掘中受到研究者的廣泛關注。
9. 棋類游戲的演算法有哪些
棋類游戲的演算法有哪些
棋類游戲通常包含三大要素:棋盤、棋子和游戲規則,其中游戲規則又包括勝負判定規則、落子的規則以及游戲的基本策略。下面我來給大家講講各類棋類游戲的演算法。
除了棋盤和棋子的建模,棋類游戲最重要的部分就是AI演算法的設計。目前棋類游戲的AI基本上就是帶啟發的搜索演算法,那麼常用的搜索演算法有哪些呢?
1. 博弈與博弈樹
博弈可以理解為有限參與者進行有限策略選擇的競爭性活動,比如下棋、打牌、競技、戰爭等。根據參與者種類和策略選擇的方式可以將博弈分成很多種,比如“二人零和、全信息、非偶然”博弈,也就是我們常說的零和博弈(Zero-sum Game)。所謂“零和”,就是有贏必有輸,不存在雙贏的結果。所謂“全信息”,是指參與博弈的雙方進行決策時能夠了解的信息是公開和透明的,不存在信息不對稱的情況。比如棋類游戲的棋盤和棋子狀態是公開的,下棋的雙方都可以看到當前所有棋子的位置,但是很多牌類游戲則不滿足全信息的條件,因為牌類游戲都不會公開自己手中的牌,也看不到對手手中的牌。所謂的“非偶然”,是指參與博弈的雙方的決策都是“理智”的行為,不存在失誤和碰運氣的情況。
在博弈過程中,任何一方都希望自己取得勝利,當某一方當前有多個行動方案可供選擇時,他總是挑選對自己最為有利同時對對方最為不利的那個行動方案。當然,博弈的另一方也會從多個行動方案中選擇一個對自己最有利的方案進行對抗。參與博弈的雙方在對抗或博弈的過程中會遇到各種狀態和移動(也可能是棋子落子)的選擇,博弈雙方交替選擇,每一次選擇都會產生一個新的棋局狀態。
假設兩個棋手(可能是兩個人,也可能是兩台計算機)MAX和MIN正在一個棋盤上進行博弈。當MAX做選擇時,主動權在MAX手中,MAX可以從多個可選決策方案中任選一個行動,一旦MAX選定某個行動方案後,主動權就轉移到了MIN手中。MIN也會有若干個可選決策方案,MIN可能會選擇任何一個方案行動,因此MAX必須對做好應對MIN的每一種選擇。如果把棋盤抽象為狀態,則MAX每選擇一個決策方案就會觸發產生一個新狀態,MIN也同樣,最終這些狀態就會形成一個狀態樹,這個附加了MAX和MIN的決策過程信息的狀態樹就是博弈樹(Game Tree)。
2. 極大極小值搜索演算法
極大極小值(Min-Max)搜索演算法是各種博弈樹搜索演算法中最基礎的搜索演算法。假如MAX和MIN兩個人在下棋,MAX會對所有自己可能的落子後產生的局面進行評估,選擇評估值最大的局面作為自己落子的選擇。這時候就該MIN落子,MIN當然也會選擇對自己最有利的局面,這就是雙方的博弈,即總是選擇最小化對手的'最大利益(令對手的最大利益最小化)的落子方法。作為一種博弈搜索演算法,極大極小值搜索演算法的名字就由此而來。
3. 負極大值搜索演算法
博弈樹的搜索是一個遞歸的過程,極大極小值演算法在遞歸搜索的過程中需要在每一步區分當前評估的是極大值節點還是極小值節點。1975年Knuth和Moore提出了一種消除MAX節點和MIN節點區別的簡化的極大極小值演算法,稱為負極大值演算法Negamax。該演算法的理論基礎是:
max(a,b) = -min(-a, -b)
簡單地將遞歸函數MiniMax()返回值取負再返回,就可以將所有的MIN 節點都轉化為MAX節點,對每個節點的搜索都嘗試讓節點值最大,這樣就將每一步遞歸搜索過程都統一起來。
4. “α-β”剪枝演算法
有很多資料將“α-β”剪枝演算法稱為“α-β”搜索演算法,實際上,它不是一種獨立的搜索演算法,而是一種嫁接在極大極小值演算法和負極大值演算法上的一種優化演算法。“α-β”剪枝演算法維護了一個搜索的極大極小值窗口:[α,β]。其中α表示在搜索進行到當前狀態時,博弈的MAX一方所追尋的最大值中最小的那個值(也就是MAX的最壞的情況)。在每一步的搜索中,如果MAX所獲得的極大值中最小的那個值比α大,則更新α值(用這個最小值代替α),也就是提高α這個下限。
而β表示在搜索進行到當前狀態時,博弈的MIN一方的最小值中最大的那個值(也就是MIN的最壞的情況)。在每一步的搜索中,如果MIN所獲得的極小值中最大的那個值比β小,則更新β值(用這個最大值代替β),也就是降低β這個上限。當某個節點的α≥β時,說明該節點的所有子節點的評估值既不會對MAX更有利,也不會對MIN更有利,也就是對MAX和MIN的選擇不會產生任何影響,因此就沒有必要再搜索這個節點及其所有子節點了。
5. 估值函數
對於很多啟發式搜索演算法,其“智力”的高低基本上是由估值函數(評估函數)所決定,棋類游戲的博弈樹搜索演算法也不例外。
估值函數的作用是把一個棋局量化成一個可直接比較的數字,這個數字在一定程度上能反映取勝的概率。棋局的量化需要考慮很多因素,量化結果是這些因素按照各種權重組合的結果。這些因素通常包括棋子的戰力(棋力)、雙方棋子佔領的空間、落子的機動性、威脅性(能吃掉對方的棋子)、形和勢等。
6. 置換表與哈希函數
置換表(transposition table)也是各種啟發式搜索演算法中常用的輔助演算法,它是一種以空間換時間的策略,使用置換表的目的就是提高搜索效率。一般情況下,置換表中的每一項代表者一個棋局中最好的落子方法,直接查找置換表獲得這個落子方法能避免耗時的重復搜索,這就是使用置換表能大幅提高搜索效率的原理。
使用置換表最大的問題是置換表的組織和查找的效率。一般來說,置換表越大,查找的命中率就越高。但這個關系不是絕對的,當置換表大小達到一定規模後,不僅不會再提高命中率,反而會因為耗時的查找操作影響演算法的效率。所以置換表不是越大越好,需要根據計算機的性能以及搜索的深度選擇一個合適的大小。此外,為了查找操作更高效,通常都會用可直接訪問的哈希表方式組織置換表,哈希函數的性能就成為影響置換表性能的重要因素。棋類游戲普遍採用Zobrist哈希演算法。
10. 游戲場景管理的八叉樹演算法是怎樣的
八叉樹(octree)是三維空間劃分的數據結構之一,它用於加速空間查詢,例如在游戲中: 加速用於可見性判斷的視錐裁剪(view frustum culling)。加速射線投射(ray casting),如用作視線判斷或槍擊判定。 鄰近查詢(proximity query),如查詢玩家角色某半徑范圍內的敵方NPC。碰撞檢測的粗略階段(broad phase),找出潛在可能碰撞的物體對。總括而言,前3個應用都是加速一些形狀(frustum、ray、proximity shape如球體)的相交測試(intersection test)。這種做法是adaptive的,就是說按照一定的條件(葉節點只能有一個點)來進行分割。實際上,我們可以設置其他條件去決定是否分割一個葉節點,例如節點內的點超過10個,或是最多分割4層就不再分割等等。在分割時,我們只需檢查點是在每個軸的哪一方,就能知道該點應放置在哪個新的節點里。建立了一個四/八叉樹之後,我們可以得出一個重要特性: 如果一個形狀S與節點A的空間(正方形/立方體)不相交,那麼S與A子樹下的所有點都不相交。那麼,在相交測試中,我們可以從根節點開始,遍歷四/八叉樹的節點,如節點相交就繼續遍歷,如不相交就放棄遍歷該子樹,最後在葉節點進行形狀與點的相交測試。這樣做,一般能剔除許多點,但注意最壞的情況是所有點集中在一起,那麼就不起加速作用。因此,除了傳統的四/八叉樹實現,也可以參考一些更新的技術。