2020年4月2日 星期四

                                                           

                                

   基因演算法(Genetic Algorithms)


         基因演算法,其哲學理論就是達爾文那套優勝劣汰適者生存的進化理論的思想。一個種群,通過長時間的繁衍,種群的基因會向著更適應環境的趨勢進化,適應性強的個體基因被保留,後代越來越多,適應能力低個體的基因被淘汰後代越來越少。經過幾代的繁衍進化,留下來的少數個體,就是相對能力最強的個體了。
        目前用數學來導出進化模式,用亂數先産生一组亞當與夏娃初始基因排序值,再利用優生理論選出最優基, 本文選擇方法是用機率分佈的所謂輪盤法(Roulette Wheel Selection)來選擇。後續善用自然生態演變的兩種模式 ,突變及交配産出最優的基因?原則上引用多組基因透過亂數來仿真突變及交配産出最優的基因? 但在虚擬環境中畢竟少了真實環境的因子,也造成基因演算法的區域性搜尋能力較差,導致單純的遺傳演算法比較費時,在進化後期搜尋效率較低。在實際應用中,遺傳演算法容易產生過早收斂的問題。
本文的函式如下:



流程圖如下:

Genetic Algorithms with python code 


import numpy as np
import math
import ga
import matplotlib.pyplot as plt

chromosome_length = 33

population_size = 500

best_outputs = []

num_generations = 20

best_score_progress = [] # Tracks progress

next_population=[]

reference = ga.create_reference_solution(chromosome_length)

for generation in range(num_generations):

    print("Generation : ", generation)

    # Measuring the fitness of each chromosome in the population.

    

    #fitness = ga.cal_pop_fitness(equation_inputs, testnew_population)

    fitness = ga.cal_pop_fitness(xnew_population,ynew_population)

    print("fitness")

    print(fitness)

    f_population=np.concatenate((v_population, fitness), axis=1)

    print("f_population")

    print(f_population)


    #best_outputs.append(numpy.max(numpy.sum(testnew_population*equation_inputs, axis=1)))

    best_outputs.append(np.max(fitness))

    # The best result in the current iteration.

    #print("Best result : ", numpy.max(numpy.sum(testnew_population*equation_inputs, axis=1)))

    print("Best result : ", np.max(fitness))

    # 

    # Selecting the best parents in the population for mating.

    total_fitness=np.sum(fitness)

    print("total_fitness")

    print(total_fitness)

    

    #to caculation orbaally of fitness

    prob_select=fitness/total_fitness

    print("prob_select")

    print(prob_select)

    

    prob_list=ga.get_probability_list(fitness)

    prob_list=np.array(prob_list)

    print("prob_list")

    print(prob_list)

    

    #print("relative_fitness")

    #print(ga.get_probability_list)

    

    parents=ga.roulette_wheel_pop(v_population,prob_list,10)

    parents=np.array(parents)

    print("Parents")

    print(parents)

    #parents = ga.select_mating_pool(v_population, fitness, num_parents_mating)

    # print("Parents")

    #print(parents)

    

    #parents=list[parents]

    parent1=ga.random_pop(parents,10)

    print("Parent1")

    print(parent1)

    parent1=np.array(parent1)

    #parent1=parent1[1][0]

    #print("Parent1")

    #print(parent1)

    

    parents = parents.view([('', parents.dtype)] * parents.shape[1])

    parent1 = parent1.view([('', parent1.dtype)] * parent1.shape[1])

    

    parent=np.setdiff1d(parents,parent1).view(parents.dtype).reshape(-1, parents.shape[1])

    print("Parent")

    print(parent)

    parent2=ga.random_pop(parent,10)

    print("Parent1")

    print(parent1)

    print("Parent2")

    print(parent2)

    parent1=np.array(parent1)

    parent2=np.array(parent2)

    # to binary code

    parent1_bin=ga.trans_binary(parent1)

    parent2_bin=ga.trans_binary(parent2)

    print("Parent1_bin")

    print(parent1_bin)

    print("Parent2_bin")

    print(parent2_bin)

    """

    child=(ga.breed_by_crossover(parent1_bin, parent2_bin))

    chide1=child[0]

    chide2=child[1]

    print("chide1")

    print(chide1)

    print("chide2")

    print(chide2)

    """

    new_population=[0]

    child_1, child_2 = ga.breed_by_crossover(parent1_bin, parent2_bin)

    #x1=' '.join(format(child_1, 'b') for x in bytearray(child_1))

    x1=child_1[0]

    x1=' '.join(format(x, 'b') for x in bytearray(x1))

    x3=child_1[1]

    x3=' '.join(format(x, 'b') for x in bytearray(x3))

    

    x2=child_2[0]

    x2=' '.join(format(x, 'b') for x in bytearray(x2))

    x4=child_2[1]

    x4=' '.join(format(x, 'b') for x in bytearray(x4))

    

    #for i in xrange(k):

    #    print(x1[i])

    child_1=ga.rebinary(x1,x3)

    #child_1.append(ga.rebinary(x3))

    child_2=ga.rebinary(x2,x4)

    #child_2.append(ga.rebinary(x4))

     

    

    #xx1=np.array(xx1)

    #xx3=np.array(xx3)

    #child_1=np.array(child_1)

    #child_2=np.array(child_2)

    print("child_1")

    print(child_1)                                                                   

    print("child_2")

    print(child_2)

    #child_1=np.concatenate(xx1,xx3)

    #child_1 = child_1.view([('', child_1.dtype)] * child_1.shape[1])

    #child_2 = child_2.view([('', child_2.dtype)] * child_2.shape[1])

    #print("child_1")

    #                                                                                                  print(child_1)

    chile_1,chile_2 = ga.breed_by_mutation(child_1,child_2)

    new_population=child_1

    new_population.append(child_2)

    print("new_population")

    print(new_population)

    # Replace the old population with the new one

    New_x1= ga.binaryToDecimal(child_1[:17])

    New_x2= ga.binaryToDecimal(child_1[18:])

    New_y1= ga.binaryToDecimal(child_2[:17])

    New_y2= ga.binaryToDecimal(child_2[18:])

    #New_x1= int(child_1[:18])

    #New_x2= int(child_1[18:])

    #New_y1= int(child_2[:18])

    #New_y2= int(child_2[18:])

    print("New+x1")

    print(New_x1)  

    print("New+x2")

    print(New_x2)  

    print("New_y1")

    print(New_y1) 

    print("New_y2")

    print(New_y2)                                                      

    child_x1=-3.0+New_x1*(12.1-(-3.0))/(2**17)-1

    child_x2=4.1+New_x2*(5.8-4.1)/(2**15)-1

    child_y1=-3.0+New_y1*(12.1-(-3.0))/(2**17)-1

    child_y2=4.1+New_y2*(5.8-4.1)/(2**15)-1

    print("child_x1")

    print(child_x1)  

    print("child_x2")

    print(child_x2)  

    print("child_y1")

    print(child_y1)  

    print("child_y2")

    print(child_y2)  

    child=np.random.ranf(size=(2,2))

   

    child[0,0]=child_x1

    child[0,1]=child_x2

    child[1,0]=child_y1

    child[1,1]=child_y2

       

    print("child")

    print(child)  

   # print("child_2")

   # print(child_2)  

    print("parent")

    print(parent1[0,0])

    parentn=np.random.ranf(size=(2,2))

    x=parent1[0,0]

    parentn[0,0]=x[0]

    parentn[0,1]=x[1]

    x=parent2[0,0]

    parentn[1,0]=x[0]

    parentn[1,1]=x[1]

    

   # parents.append(parent2)

    print("parent")

    print(parentn)

     

   

    new_population=np.array(new_population)

    #next_poulation=ga.randomly_mutate_population(new_population,0.1)

    #print("Next_population")

    #print(next_population)

      

    #new_population[parents.shape[0]:, :] = offspring_mutation

    # Creating the new population based on the parents and offspring.

    print("old_poulation")

    print(v_population)

    random_point = int(np.random.uniform(1, 7, 1))

    v_population[random_point,0] = parentn[0,0]

    v_population[random_point,1] = parentn[0,1]

    v_population[random_point+1,0] = parentn[1,0]

    v_population[random_point+1,1] = parentn[1,1]

    v_population[random_point+2,0] = child[0,0]

    v_population[random_point+2,1] = child[0,1]

    v_population[random_point+3,0] = child[1,0]

    v_population[random_point+3,1] = child[1,1]

    print("new_poulation")

    print(v_population)

   # v_population[parents.shape[0]:, :] = child

    #xnew_population=np.hsplit(v_population, 2, axis=0)

    #ynew_population=np.hsplit(v_population, 2, axis=1)

    num_repat=10

    for i in np.arange(num_repat): 

        xnew_population[i]=v_population[i][0]

        ynew_population[i]=v_population[i][1]

      

# Getting the best solution after iterating finishing all generations.

#At first, the fitness is calculated for each solution in the final generation.

    

    fitness = ga.cal_pop_fitness(xnew_population,ynew_population)

# Then return the index of that solution corresponding to the best fitness.

    best_match_idx = np.where(fitness == np.max(fitness))

    f_population=np.concatenate((v_population, fitness), axis=1)

    best_score=fitness[best_match_idx]

    print("1st generation f_population")

    print(f_population)

    print("Best solution : ", v_population[best_match_idx, :])

    print("Best solution fitness : ", fitness[best_match_idx])

    best_score_progress.append(best_score)


plt.plot(best_score_progress)

plt.xlabel('Generation')

plt.ylabel('Best score (% target)')

plt.show()



2019年8月26日 星期一

如何建構一個好程式


                                                                                               如何建構一個好程式

如何結構一個靈活,健壯和清晰(易於理解和使用)軟件設計是軟體工程師追求的夢。

也許你的同事和你的老闆告訴你幾乎不可能在第一次就做對了。 即使你想這樣做,因需求隨時會發生變化,新的需求會隨之出現,因此隨著時間柚推移,您需要擴展和修改代碼。 因此,每當您發現以您希望的方式更改代碼時很難或很難,在此筆者有幾項方式來建構靈活,健壯和清晰。
建構一個完整的程式代碼,類同創造故事一樣,有引言,大綱,內文及結論。

1)     建構它為開放架構。設計模式和架構技巧來建立系統,從模型建構,類似MVC (Model–View–Controller)Model control interface來建構程式架構。

2)     建立限制條件。系統中確實存在很多不合理的地方,例如法规限制,程式自我测試條件及硬體條件等。故有不少的這種程式碼,恰恰是為了解決一些特定場景下的問題的。也就是說,所有的規範以及程式設計的原則需打破惯性思維。

3)     程式生命週期。所有讀本及代碼有其生命期,因應需求或相容改變需要改進或重構。重構其意義是,在程式設計的過程中熟悉一些程式碼調整和優化的技巧,簡言之,基礎打牢固,多看點優秀的程式碼,在此推薦一本讀物是”重構模式”。


好的程式設計很少開箱即適用,需通過應用程序生命週期內的一系列轉換和改進而出現的。當然,擁有的經驗越多,就越容易看到死胡同。

2019年3月31日 星期日


從風災及豬舍太陽能板火警來看再生能源宿命

為邁向2025非核家園目標 推動新能源政策,於2016通過的能源政策。民進黨政府其為確保供電短期增加火力機組造成全台空污嚴重。在20%再生能源不切實際政策下,從2019起,全民發現全台灣島內所有可使用土地全部種光電也達不成20%的能源政策。何况現在己找不到大面積土地可以種光電的穷境清况下,必須依懶其它的能源。



20%再生能源其意義是不關光伏或風電,簡言之回到人勝不了天的兒時記憶了。過去看天吃飯,沒有風就沒有風力,離岸風電也須看風場。在國際1KW的太陽能建置費用己跌入500美金之下。大量衝擊國內太陽光伏相關産業。不過台灣現階段建置1KW成本尚需5萬到7萬的建置費用。這中間被通路或整合商上下剝削了很多層。再來台灣颱風季來臨時,風災後總時多少有災情。又不像歐洲大陸少有怪風來破壞光伏設備。



以台灣的天災頻繁來看。應從都市结構來建置分散型電廠, 善用外牆結構體來建置光伏 應該很適合北部建築密集城市發展暨鼓勵緑建築需貢獻多少比例的自行再生能源發電 以降低輸配電的缐損來提高能源使用的效率。



能源政策不可能一篇文章就能講清楚 需幾篇連載才能講清楚說明白。另外現行的太陽光面板其使用年限為20 後續如何回收分解再利用是一個新商機。



2019年2月17日 星期日

數位時代的領導力


                                                   數位時代的領導力!!!


麻省理工學院最近進行調查,訪談全球一千多位執行長,結果發現,90%的高階主管認為自家企業正遭受數位商業模式的破壞,但70%認為自己沒有可因應的營運架構。「數位領導力」成為現代執行長迫切需要的能力,而領導人究竟需具備哪些數位能力呢?

所謂數位時代的領導力是為善用數位科技進行公司自理。數位科技使用數位身份,即線上的員工,客戶及關係人即數位化以利企業獲利。數位科技深入人心透過對人性深層心靈層次的理解及副交感神經來提高同仁工作熱情,工作表現,工作品質,工作滿足感及客戶滿意度。


                                        photo from website



筆者建議先從即有的資料Label 化及標準化以利身份數位化。所謂身份數位化即能力,專業分級以利未來數位轉型。透過數位身份辨識串流成未來去中心化和扁平化的數位轉型組織。因應未來也沒有所謂專家獨大而是各自專業分工透過資料滙流以利判斷作決策。領導是3份靠天份其它靠學習,重點要身體力行的同理心管理,Otherwise, 就是豬頭管理。

依據MIT長期追蹤400家企業、最慘的事實是沒有數位化、又缺乏領導力的企業『豬頭企業』,與所謂數位化與領導兼強的『數位菁英』企業相比,前者獲利落後對手24%,幾乎可以確認,這群『豬頭企業』將是最快被市場淘汰的一群。面對未來數位科技的商業模式,必須用三維空間來學習全方位思維








1:  豬頭企業就是管理者把公司視為豬場經營的一種異術 。

















2019年2月13日 星期三

穩私權

           
                                           小人物的穩私權

近來手機拍照太方便了, 一個閃失你的手機就侵犯別人穩私權。如何保障你的肖像權應該仿歐美先進國家立法禁止數位相機及手機拍照是消音。必須強制其音效以警惕使用者避免隨時侵犯個人隱私。

                                         photo from   https://www.walkingphotographer.net/street-photography-milanowebsite

    /應強制音效/
        // In fact, in many places (most of Europe, Japan, parts of US, etc.) it's illegal to disable the shutter sound
        /*
        try {
            CameraFeatures.canDisableShutterSound = ci.canDisableShutterSound;
        }catch(NoSuchFieldError ex) {
            CameraFeatures.canDisableShutterSound = false;
        }
        */
        

個人隱私:
凡是關於個人的任何相關資料,自己能掌握並且不受到侵犯的權利,即為隱私權。
人權宣言第12:任何人的私生活、家庭、住宅和通信不得任意干涉,他的榮譽和名譽不得加以攻擊。人人有權享受法律保護,以免受這種干涉或攻擊。

隱私權的內容
●為商業利益使用他人的姓名或肖像
●侵犯私人的財產,土地,干擾私人生活的寧靜
●公佈私人隱私資料使人困窘
●發佈某人的錯誤信息,把當事人以錯誤的形象呈現在大眾面前

2019年2月7日 星期四

發財術


    豬年發財術

在多年企導生涯過程中常被年輕學子問到如何快速累積財富於半百來臨前退休。
如果想要快速累積財富唯一的就是從商 三百六十五行業行行出狀元膽看你的膽識及企圖心。新創事業成功率為仟分之五遠大於中樂透的機率。


photo  from  website 


從商者要有夢想,從夢想發啟,富有想像不等同天馬行空,在明確的目標下儘情發揮想像力 ,筆者就成功的從商者特質整理如下 :



1: 做常人之不敢做的事Tesla Elon Musk
2: 有勇氣走出第一步,這一步不關失敗或成功己是從商的分水
3: 比週邊人要拼,愛拼才知行不行
4: 不冒險就是最大的冒險。
5: 害怕失敗,就等于拒绝成功。
6: 要想知道成功的味道,就要親口動手做,切忌纸上用兵。

後記: 筆者年少靠專利確實賺了第一桶金 後來創業因本人自知不善於經營故藉價格好是出所有股份。

後來有一段投入資本市場。在房市頗有收獲。重點就是入手價格要合乎投資報酬率。




2019年1月26日 星期六

豬頭管理


喜逢豬年來聊一下豬頭管理



豬頭管理就是管理者把公司視為豬場經營的一種異術 

            哪些是豬頭管理的特徵 就讓我一一例舉說明:

A.    沒方法,亂下指令。失敗了責任往下推。
近期普悠瑪自強號出軌事故就是先例這種A型在華人企業是家常便飯,許多華人喜歡自立創業在沒有掌握企業的精髓核心價值盲目的創業許多華人企業沒幾年就夭折台灣,公司成立一年倒閉率竟能高達90%

B. 脾氣暴躁,沒理由亂飆人。這不需筆者據例各行各業都有這種人當上主管之後就忘了換位思考 展現魄力不是靠亂飆人是要靠明確的決策。

           C. 只溝沒交際的對談模式。當上主管,畢竟都有其幾把刷子成功背後就是主觀意識的包袱 在太平盛世也許可以平平安安的渡過。當熊市來時因真實訊息無法上達而失去了競爭力台灣的HxC就是如此窘境。

D. 好大喜功忽略風險。賠了公司也迫得同仁另謀生計。多年前BxxQ 併購Siemens 手機部門就是大敗筆。

E.一意孤行 缺乏整體的思路及系統性評估造成打掉一切重新來過。
筆者曾任職的公司用一個大框架框住了多元思考在缺乏事前摸擬之下一意孤行造成資源分配不均及成效不彰。




在華人企業你要死命必達(Hard work) 或著聰明行事(Smart work) 端看你的智慧(Insight) 。如果你只有一份工作或專長者也只能順著豬頭管理展示忠誠度死命必達。如果你是有才華者相信自己聰明行事做對的決擇必嚐成功的果實。

後記: 人非聖賢縱觀全球也找不到一位十全十美的管理者。從筆者的經歷來檢討在不同階段就該扮演好其角色。

首先出錯時要即時的檢討自已不能找任何理由來硬拗。
其次是動態的洞察同仁的需求及謹慎求證以建立你在領導統御的權威。
記得組織不能發揮其原來使命。其主因來自管理者在佈局無法先摸擬其金、木、水、火、土等五行是否均等。
當發現或聽到負評時應立刻調整其權重以求完美拼圖。

       

2019年1月24日 星期四

如何成功提案



研發資源建置與配置Part_2

今天我們談一下產品經理如何成功提案,

所謂台上一分鐘,台下十年功!需要備下述基本功。


成功提案首要重點是內容, 口條清晰及表達能力次重要。

成功提案的內容需含5W1H:

1.What 開宗明義點出提案方向。例如從消費者的趨勢來定位新産品」、「由客戶新需求提案延伸産品或全新産品」。

2. Why 說明自己為什麼會提這個想法對公司,消費者的優劣。此部分是提案的關鍵因素,若你提出來的理由契合公司的願景提案被埋單的機會就大幅提升,工業界來自客戶建廠或維運的需求,故與客戶闗係很重要 消費巿場來自趨勢,如 2019 CES 消費展 ,LG在展會堆了一台膠囊式啤酒製造機,其看好市場越來越多自製精嚷啤酒需求,仿膠囊咖啡機推出膠囊式啤酒製造機。

3. WhenWhereWho 此提案希望在何時、何地推出,預計的進度與參與者為何。

4. How 最後,才是提案的執行方法與細節。




提案者在debate 過程中,只少需表達三個詮釋以利提案成功:


1.呈現真實數據而非虚幻,說明本提案對公司,客戶等面向的助益,成功的銷售來自雙贏。

2.善用企業內部成功案例佐證,以利提案成功機率。


3.從財務面的角度設想,讓投資者或決策主管瞭解此提案己考量過各式風險評估,不會因失敗影响組織營收。

後記: 筆者於年少時負責全新産品設計協助専案專隊解決了軟硬體的難事包括XY-兩軸向量運動及AutoCAD 指令集的編譯程式成功的開發了國內第一台Plotter
因專案成功上市故我提新案時經營層都會埋單。

2019年1月15日 星期二

如何做好一位產品經理


                                                                                  研發資源建置與配置Part_1

                                       


如何做好一位產品經理,從主計處數據統計,台灣研發投入為GDP 3% 左右,僅次於南韓的GDP 4% 其中75%投資來自民間 ,不過從台灣企業喜歡玩數字來看。我必須要對其實際投入研發總值打的折扣了。



為什麼筆者如此肯定,是因”MIT”產品附加價值偏低且台灣專利數雖然逐年增加但其價值   (被引證的次數及授權費用偏低,遠低於歐美日甚至輸中國大陸)。

是何原因造成如此不上不下的局面。追根究底是台灣企業對於產品規劃及市場調查的項目缺乏多元的資源投入及人才的發展。大部分產品經理的種子來自研發人員或技術服務人員。憑著他/她的口條清晰或著外語能力強就把他/她任用為產品經理。學了一些專案管理的課程稍懂得一點皮毛就擔任了專案經理。當伊等缺乏了技術深度及廣度。只是憑著模糊的定義及缺乏廣義的冼滌[1]之下就定義了産品的規格。故産品上市不叫好,日復一日。惡性循環。最終由品牌轉成代工或代設計生產(OEM/ODM)



如何做好一位產品經理,筆者的建議是產品經理永遠是一面Mirror

面對用戶時,產品經理是一個傾聽者,反射客戶的需要。
  
面對團隊時,產品經理是一個協調者,照亮團隊的共識。
  
面對挑戰時 ,產品經理是一個先鋒者,保障團隊的安全。

面對失敗時 ,產品經理是一個領導者,感謝團隊的實驗精神。


 [1] 廣義的冼滌是透過多元的腦力激盪法,包括了用戶、製造、設計及客服。透過四體六面廣範討論找出目標市場、售價策略、主力功能、專業團隊、技術差異及專案時程。





2019年1月10日 星期四

人工智慧


再聊人工智慧

                


   筆者於去年聊過了何謂人工智慧(AI) 。當時本人把它視為一套智能的演算法,
 所以我下的標是 Artificial Intelligence = Algorithm Intelligence下結論。

今天用生活的語言來重新塑造一下並分享Artificial Intelligence如何接地氣。

如果沒有資料(Data)人工智慧就無用武之地了,可見資料是人工智慧起步的先決條件。

同業們用未來黒金來說明資料的重要性可見其非同小可。近來各行業用導入AI 來吸引投資者。實際導入AI 的行業目前也只有23%,其中也只有5%應用於廣泛的程式和産品。主要原因是大部份的企業沒有找到獲利模式。不過筆者預期最終AI 會替代軟體鍵盤手(AI eat Software)

什麼是資料(Data),每天用餐吃什麼東西算不算資料,如果你是糖尿病的患者,那你每一天吃什麼食物。那就真的是很重要了,因為吃進來的東西會影響到你的血糖。


所以收集資料是非常重要的。當你收集資料之前你必須要先訂一個可標示化的格式。就依血糖為例,單位就是多少dl含多少克的血糖。故你或他在收集其他的相關的資料時需有一個可標示化的程序。
            

假若使用太多的口語化的文字。臂如說你的情緒是很好,非常好或是其它只能各自表述了。
 故在建立人工智慧之前先定義標示化的格式是非常重要。

可標示化就是一系列涵義。簡言之就是可分類及歸納一串文字,數字或公式等。
 沒有標示化的資料怎能奢求人工智慧呢?









如何接地氣當你我他手中有了可標示化的資料是就是機會未來各行各業尤其傳統産業更有其資料的優勢

如果有人問我如何進入人工智慧我的答案是從標示化資料開始吧!


2019年1月6日 星期日

東方管理新思維


   孫子兵法的軍形第四篇中 孫子曰:昔之善戰者,先為不可勝,以待敵之可勝。其白話文如下善於用兵打仗的人,總是首先創造條件,使自己不被敵人戰勝,然後等待和尋求敵人可能被我戰勝的時機。在職場如戰場的叢林求生法則所謂「知己知彼,百戰百勝」。

華人企業或華人經營的顧問公司內所謂人力發展資源(Human Resource) 的教官們把美國心理學家威廉‧馬斯頓(William Marston)發展的一套便於溝通的DISC 人格特質視為Handbook(求生手册) 。不知是故意忘記了根或是不瞭解華人的溝通方式及語意的深層內函。一味的套用所謂四方位的DDominance)支配型, IInfluence)影響型, SSteadiness)穩定型,CCompliance)謹慎型。


                 
輕者造成華人企業人才流失,重者則失去競爭力。

筆者常引用歷史典故,因不知歷史談何未來。

從老祖宗的教條,基本即木、火、土、金、水五行人格。
五行人格理論,來源於中國傳統文化,是對人認識的一種理論體系,她具有區別於其它人格理論和心理學說的五大優勢:科學性、完備性、系統性、簡約性、實用性。五行人格理論實現了身與心、生理與心理、物質與精神的統一,使心理、意識、精神完全建立在物質基礎之上;它是可以驗證的,知道了一個人身體的五行屬性就可以推斷其性格的五行屬性和心理特征,反過來,知道了一個人性格的五行屬性和心理特征,也能推知其身體的五行屬性、身體特征和健康狀況。
   
如何契合五行與DISC看是否領悟了用三维思考的洞察力。


精選文章

Active Cooler/Warner system with thermoelectric cooler

Cooler 系統包括了 DC/DC Converter, 與主機通界面 , 感测線路 , 風量葉片 ,DC Motor 等 , 控制器感测線路的回饋資料供 PID 運算出最佳控制模式。在系統軟件架構上主要包括四種類型的軟體規劃,分別是資料庫系統 (Database) 、 ...