<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>network / Drkcore</title><link>http://blog.kzfmix.com/network</link><description>Programming, Music, Snowboarding</description><language>ja</language><lastBuildDate>Thu, 17 Nov 2011 09:05:10 +0919</lastBuildDate><item><title>社会ネットワーク分析の基礎</title><link>http://blog.kzfmix.com/entry/1321487603</link><description>&lt;p&gt;ネットワーク分析は楽しいですね。普段は化合物のネットワークとかいじっているんだけど、もう少し見識を広めるために違ったタイプのネットワークの分析手法を勉強してみたくなって本書を読んでみた。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4326601647/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/31W21GTGQVL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;社会ネットワーク分析の基礎―社会的関係資本論にむけて&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    金光 淳&lt;br /&gt;
    勁草書房 / 4935円 ( 2003-12 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;社会ネットワークとは、アクターと呼ばれる行為者としての社会単位が、その意図的・非意図的な相互行為のなかで取り結ぶ社会諸関係の集合である&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;これらをミクロな視点からみていくか、マクロな視点からみていくかだけど、マクロな視点だと個人の特性が失われてしまうので、これはダメらしい。自分の経験では、（ケミストリーを知らない）ケモインフォマティクスのヒトが、個々の化合物をパラメーターで潰してしまって実態とかけ離れたマクロな解釈しかできないのをよく見るので、まぁそうかなとも思う。&lt;/p&gt;
&lt;p&gt;で、よりよい社会像を得るためにどうしたら良いのかということで、社会構造の二重性モデルを使うのが、現代の社会ネットワーク分析らしいです。&lt;/p&gt;
&lt;p&gt;個人的に興味が湧いたのは9章の「弱い紐帯」が重要か、ブリッジが重要かという話題とネットワークは凝集的で閉鎖的がいいのか、離散的で開放的がいいのか？という話題。第三部の「ソーシャル・キャピタル研究：組織論への展開」は読み物として面白かった。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;セイヤーによれば「関係」は形式的なものと実質的なものに分けられる&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;形式的の関係とは「ともに30歳」みたいなもので、実質的な関係の例は「夫婦」&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;ハイパーグラフは個人がグループに所属するような所属関係のネットワークを表すのに利用されたり、重複メンバー関係をモデル化するのに便利&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;これは&lt;a href="http://blog.kzfmix.com/entry/1288478759"&gt;以前教えてもらったときに調べた&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;かなり教科書っぽいので、手を動かしたい場合は「ネットワーク分析 (Rで学ぶデータサイエンス 8) 」のほうが良いかも&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4320019288/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/41VqWWGvOkL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;ネットワーク分析 (Rで学ぶデータサイエンス 8)&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    鈴木 努&lt;br /&gt;
    共立出版 / 3465円 ( 2009-09-25 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;</description><pubDate>Thu, 17 Nov 2011 09:05:10 +0919</pubDate><category>chemoinformatics</category><category>network</category></item><item><title>構造最適化シミュレーションをCytoscapeで</title><link>http://blog.kzfmix.com/entry/1283511161</link><description>&lt;p&gt;以前、おもむろに思いついた&lt;a href="http://blog.kzfmix.com/entry/1268224769"&gt;LeadOptimizationのシミュレーター&lt;/a&gt;で、networkxはgml出力できて&lt;a href="http://www.cytoscape.org/"&gt;Cytoscape&lt;/a&gt;でimportすればいいじゃんということに気づいてヤル気が出た。&lt;/p&gt;

&lt;p&gt;ついでにコードもちょっと直して、活性はpIC50とかそういうレンジにしてみて、μMオーダーから上げていくようにした。&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.kzfmix.com/images/blog/projectsim.png" alt="projectsim" /&gt;&lt;/p&gt;

&lt;p&gt;エッジは世代を表していて、黄色から緑にむけてすすんでいく。ノードの色は活性を表していて黒から赤になるにしたがって活性が向上する。最初の方は活性が振れるけど段々向上していって安定するようにしてみた。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.kzfmix.com/entry/1243153533"&gt;リードホッピングとは選択されなかったより良い未来を選択しなおすこと&lt;/a&gt;であるとするならばそのような希望はLO初期のあたりに存在すると思うのだ。&lt;/p&gt;

&lt;p&gt;以下、書いたコード&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;from random import random
import networkx as nx

class Branch(object):
    """LeadOptimization flow
    potency: pIC50 or such
    weight : range for activity
    """

    count = -1

    @classmethod
    def inc_count(cls):
        cls.count = cls.count + 1
        return cls.count

    @classmethod
    def get_count(cls): return cls.count

    def __init__(self,potency,weight):
        self.id = Branch.inc_count()
        self.potency = potency
        self.weight  = weight
        self.activity = self.potency + self.weight * random()

    def make_child(self,num_childs,potency,weight):
        return [Branch(self.potency + self.weight * (random()-0.5)*2,self.weight * 0.5) for i in range(num_childs)]

if __name__ == "__main__":
    max_comps        = 500 # total compounds
    initial_branches = 1   # number of lead compounds
    lead_potency     = 5   # lead activity
    generation       = 0

    G=nx.Graph()

    heads = [Branch(lead_potency,2) for i in range(initial_branches)]
    map(lambda b: G.add_node(b.id, activity=b.activity),heads)

    while Branch.get_count() &amp;lt; max_comps:
        new_heads = []
        generation += 1
        for branch in heads[:int(2+5*random())]:
            for new_comp in branch.make_child(int(40*random()),branch.potency,branch.weight):
                G.add_node(new_comp.id, activity=new_comp.activity)
                G.add_edge(branch.id, new_comp.id, genneration=generation)
                if new_comp.activity &amp;gt; 7:
                    new_heads.append(new_comp)
        heads = new_heads
        heads.sort(key=lambda x:x.activity)
        heads.reverse()

    nx.write_gml(G,"test.gml")
&lt;/code&gt;&lt;/pre&gt;
</description><pubDate>Sat, 09 Oct 2010 10:14:57 +0919</pubDate><category>chemoinformatics</category><category>Python</category><category>network</category><category>cytoscape</category></item><item><title>igraphを使ってmaximum common substructure(MCS)を求める</title><link>http://blog.kzfmix.com/entry/1282120615</link><description>&lt;p&gt;MCSを求めるには比較したい二つの化合物のModular Productを求めて、それの最大クリーク探索をすればいい。&lt;/p&gt;

&lt;p&gt;Modular Productとは&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;二つのグラフの属性の対応が同じノードが両方共隣接していてエッジの属性が同じ場合&lt;/li&gt;
&lt;li&gt;二つのグラフの属性の対応が同じノードが両方共隣接していない場合&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;にエッジを張ったグラフ。&lt;/p&gt;

&lt;p&gt;これを作ってあとはigraphの最大クリーク探索メソッドで&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import openbabel as ob
from igraph import *

sm1 = 'OCC(N)=O'
sm2 = 'O=CC(N)=O'

obc = ob.OBConversion()
obc.SetInAndOutFormats('smi','smi')

source = ob.OBMol()      
obc.ReadString(source,sm1)
source_atoms = [a for a in ob.OBMolAtomIter(source)]

target = ob.OBMol()      
obc.ReadString(target,sm2)
target_atoms = [a for a in ob.OBMolAtomIter(target)]

pairs = []
for i in range(len(source_atoms)):
    for j in range(len(target_atoms)):
        if source_atoms[i].GetAtomicNum() == target_atoms[j].GetAtomicNum():
            pairs.append((source_atoms[i].GetIdx(),target_atoms[j].GetIdx()))

p = []
for x in range(len(pairs)-1):
    for y in range(x+1,len(pairs)):
        u = pairs[x]
        v = pairs[y]
        if u[0] != v[0] and u[1] != v[1]:
            sb = source.GetBond(u[0],v[0])
            tb = target.GetBond(u[1],v[1])
            if sb != None: sbo = sb.GetBondOrder()
            if tb != None: tbo = tb.GetBondOrder()

            if (sb == None and tb == None) or (sb != None and tb != None and sbo == tbo):
                p.append((pairs.index(u),pairs.index(v)))

g = Graph(p)
mc = g.largest_cliques()
for c in mc:
    print [pairs[i] for i in c]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;実際には&lt;a href="http://en.wikipedia.org/wiki/Line_graph"&gt;line graph&lt;/a&gt;(エッジとノードを入れ替えたグラフ)のModular Productをもとめてクリーク探索したほうが計算量がかなり減るらしい。&lt;/p&gt;

&lt;p&gt;が、今回はやっていない。&lt;/p&gt;

&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1420082922/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/41JKtbonzeL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;Handbook of Chemoinformatics Algorithms (Chapman &amp; Hall/Crc Mathematical and Computational Biology)&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
 &lt;br /&gt;
Chapman &amp; Hall / ￥ 8,895 ()&lt;br /&gt;
通常1～3週間以内に発送&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1607618389/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/417rMAy0i1L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;Chemoinformatics and Computational Chemical Biology (Methods in Molecular Biology)&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
 &lt;br /&gt;
Humana Press / ￥ 14,386 ()&lt;br /&gt;
近日発売　予約可&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;
</description><pubDate>Wed, 18 Aug 2010 18:44:45 +0919</pubDate><category>chemoinformatics</category><category>Python</category><category>network</category><category>igraph</category></item><item><title>LeadOptimizationをシミュレーションしたい</title><link>http://blog.kzfmix.com/entry/1268224769</link><description>&lt;p&gt;ふと、&lt;a href="http://twitter.com/kzfm/status/10254396549"&gt;つぶやいた&lt;/a&gt;。&lt;/p&gt;

&lt;p&gt;例えば&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;プロジェクトで500検体合成&lt;/li&gt;
&lt;li&gt;ひとつの親あたり5-25化合物くらいの子を合成する&lt;/li&gt;
&lt;li&gt;プロジェクトの人員の制限により、一度に10ラインまでしか同時に走らない
&lt;ul&gt;
&lt;li&gt;11番目以降はそれ以降のオプティマイゼーションは行われない&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;その時知りたいことは、&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;{計画、合成、アッセイ、解析}というサイクルは何回まわるのか、&lt;/li&gt;
&lt;li&gt;有望そうな化合物だけど、人的リソースの関係で選択されなかった歴史はどこにあるか？&lt;/li&gt;
&lt;li&gt;バックアップ候補の化合物はどこら辺で現れるか（初期？中期？）&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;あたり。&lt;/p&gt;

&lt;p&gt;現実の系に近づけるために、親化合物にはポテンシャルがあって、近傍探索すると、ポテンシャルの近くで活性が変化するモデル。あと同じライン（ブランチ）を継続して合成すると、ポテンシャル曲線が底に近づくのと、合成もSARに関する知識がついてくるので、活性は上がりやすくなって、かつ変動幅も小さくなるようにweightはだんだん小さくなるようにしてみた。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/usr/bin/env python
# -*- encoding:utf-8 -*-

# kzfm &amp;lt;kerolinq@gmail.com&amp;gt;

from random import random
import networkx as nx
import matplotlib.pyplot as plt


class Branch(object):
    """LeadOptimization flow"""

    count = 0

    @classmethod
    def inc_count(cls):
        cls.count = cls.count + 1
        return cls.count

    @classmethod
    def get_count(cls): return cls.count

    def __cmp__(self, other):
        return cmp(self.act, other.act)

    def __init__(self,potency,weight):
        self.num = Branch.inc_count()
        self.potency = potency
        self.weight  = weight
        self.act = self.potency + self.weight * random()

    def make_child(self,num_childs,potency,weight):
        return [Branch(self.potency + self.weight * random(),self.weight * 0.7) for i in range(num_childs)]

if __name__ == "__main__":
    max_comps        = 500
    initial_branches = 3
    nodesize         = []
    nrange           = []
    erange           = []
    generation       = 1
    heads = [Branch(0.3,1) for i in range(initial_branches)]
    G=nx.Graph()

    for h in heads: 
        nodesize.append(h.act * 30)
        nrange.append(generation)

    while Branch.get_count() &amp;lt; max_comps:
        new_heads = []
        generation += 1
        for branch in heads[:10]:
            for new_comp in branch.make_child(int(5+20*random()),branch.potency,branch.weight):
                nodesize.append(new_comp.act * 30)
                nrange.append(generation)
                erange.append(generation)
                G.add_edge(branch.num,new_comp.num)
                if new_comp.act &amp;gt; 0.75:
                    new_heads.append(new_comp)
        heads = new_heads
        heads.sort()

    nx.draw_spring(G, node_size=nodesize, node_color=nrange, edge_color=erange,alpha=0.7, \
cmap=plt.cm.hot, edge_cmap=plt.cm.hot, with_labels=False)
    plt.savefig("proj.png")
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src="http://www.kzfmix.com/images/blog/proj.png" alt="project" /&gt;&lt;/p&gt;

&lt;p&gt;んーなんかいまいち。一応活性の強弱にあわせてノードのサイズが変わるようにしてみたんだけど、大きさがわからん。&lt;/p&gt;
</description><pubDate>Wed, 10 Mar 2010 21:56:46 +0919</pubDate><category>chemoinformatics</category><category>Python</category><category>network</category><category>matplotlib</category></item><item><title>禁断探索法をpythonで</title><link>http://blog.kzfmix.com/entry/1244981546</link><description>&lt;p&gt;ヒューリスティクスは割と好きだ。スパッととけないものをなんとか現実と折り合いを付けながらよりよい解を見つけるみたいな、なんとも煮え切らない美しさのなさがたまらん。インフォマティクスも似たような香りはする。&lt;/p&gt;

&lt;p&gt;特に、&lt;strong&gt;「シミュレーションできない学問は学問として未成熟である」&lt;/strong&gt;という言葉に従うのであれば、創薬研究は（学際領域）と言われている割には未成熟な学問の組み合わせのために発見的な手法の割合が増えすぎるし、精度の高い予測法の誕生もまだまだ先であろう。というわけで、発見的な探索手法は当分有用だし、学際領域故に融合部分での応用が期待されるため、アルゴリズムとしてきちんと押さえておくと色々役に立つ。&lt;/p&gt;

&lt;p&gt;メタヒューリスティクスの数理の4章はpythonのコードが載っているので、勉強になる。&lt;/p&gt;

&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4320122356/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/51vlKzJt9hL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;メタヒューリスティクスの数理&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
久保 幹雄,J. P. ペドロソ &lt;br /&gt;
共立出版 / ￥ 3,675 ()&lt;br /&gt;
在庫あり。&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;第4章 応用&lt;/li&gt;
&lt;li&gt;4.1 グラフ分割問題&lt;/li&gt;
&lt;li&gt;4.2 最大安定集合問題&lt;/li&gt;
&lt;li&gt;4.3 グラフ彩色問題&lt;/li&gt;
&lt;li&gt;4.4 巡回セールスマン問題&lt;/li&gt;
&lt;li&gt;4.5 2次割当問題&lt;/li&gt;
&lt;li&gt;4.6 多制約ナップサック問題&lt;/li&gt;
&lt;li&gt;4.7 数分割問題&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;4.1のグラフ分割問題をnetworkxで可視化するように書き換えた。&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.kzfmix.com/images/blog/path090614.png" alt="path" /&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import math,random
from sys import maxint as Infinity

def rnd_graph_fast(nnodes, prob):
    nodes = range(nnodes)
    adj = [[] for i in nodes]
    i=1;j=1
    logp = math.log(1.0 - prob)
    while i&amp;lt;nnodes:
        logr = math.log(1.0 - random.random())
        j += 1+int(logr/logp)
        while j&amp;gt;=i and i&amp;lt;nnodes:
            j -= i
            i += 1
        if i&amp;lt;nnodes:
            adj[i].append(j)
            adj[j].append(i)
    return nodes, adj

def construct(nodes):
    sol = [0 for i in nodes]
    for i in range(len(nodes)/2):
        sol[i] = 1
    return sol

def evaluate(nodes, adj, sol):
    cost = 0
    s = [0 for i in nodes]
    d = [0 for i in nodes]
    for i in nodes:
        for j in adj[i]:
            if sol[i] == sol[j]:
                s[i] += 1
            else:
                d[i] += 1
    for i in nodes:
        cost += d[i]
    return cost/2, s, d\

def find_move(part, nodes, adj, sol, s, d, tabu, tabulen, iteration):
    mindelta = Infinity
    istar  = None
    for i in nodes:
        if sol[i] != part:
            if tabu[i] &amp;lt;= iteration:
                delta = s[i] - d[i]
                if delta &amp;lt; mindelta:
                    mindelta = delta 
                    istar = i
    if istar != None:
        return istar, mindelta
    tabu = [0 for i in nodes]
    return find_move(part, nodes , adj, sol, s, d, tabu, tabulen, iteration) 

def move(part, nodes, adj, sol, s, d, tabu, tabulen, iteration):
    i, delta = find_move(part, nodes, adj, sol, s, d, tabu, tabulen, iteration)
    sol[i] = part
    tabu[i] = iteration + tabulen
    s[i], d[i] = d[i], s[i]
    for j in adj[i]:
        if sol[j] != part:
            s[j] -= 1
            d[j] += 1
        else:
            s[j] += 1
            d[j] -= 1
    return delta

def tabu_search(nodes, adj, sol, max_iter, tabulen):
    cost, s, d = evaluate(nodes, adj, sol)
    tabu = [0 for i in nodes]
    bestcost = Infinity
    for it in range(max_iter):
        cost += move(1, nodes, adj, sol, s, d, tabu, tabulen, it)
        cost += move(0, nodes, adj, sol, s, d, tabu, tabulen, it)
        if cost &amp;lt; bestcost:
            bestcost = cost
            bestsol = list(sol)
    return bestsol, bestcost


if __name__ == "__main__":
    import networkx as nx
    import matplotlib.pyplot as plt
    num_nodes = 50
    nodes, adj = rnd_graph_fast(num_nodes,0.3)
    G=nx.Graph()
    for i in range(num_nodes):
        G.add_node(i)
    for i in range(num_nodes-1):
        for j in adj[i]:
            if i &amp;lt; j:
                G.add_edge(i,j)
    pos=nx.spring_layout(G)

    max_iter = 1000
    tabulen = 10
    sol = construct(nodes)
    sol, cost = tabu_search(nodes, adj, sol, max_iter, tabulen)

    rnodelist = []
    bnodelist = []
    for i in range(len(sol)):
        if sol[i] == 1:
            rnodelist.append(i)
        else:
            bnodelist.append(i)
    nx.draw(G,pos,nodelist=rnodelist,node_color='r')
    nx.draw(G,pos,nodelist=bnodelist,node_color='b')
    plt.savefig("path.png")
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;これをちょっと変えてSimulated Annealingにできる。&lt;/p&gt;
</description><pubDate>Tue, 12 Jan 2010 10:34:45 +0919</pubDate><category>Python</category><category>network</category></item><item><title>macbookにgraphviz,pygraphviz,networkxを入れた</title><link>http://blog.kzfmix.com/entry/1243040244</link><description>&lt;p&gt;コンパートメントモデルを書くのにいちいちInkspaceを立ち上げるのもめんどうなのでGraphvizにでも頼るかと思ったらmacbookには入ってなかった。networkxもついでに入れといた。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sudo port install graphviz
sudo easy_install-2.6 pygraphviz
sudo easy_install-2.6 networkx
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;使う&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; import pygraphviz as pgv
&amp;gt;&amp;gt;&amp;gt; d={'1': {'2': None}, '2': {'1': None, '3': None}, '3': {'2': None}}
&amp;gt;&amp;gt;&amp;gt; A=pgv.AGraph(d)
&amp;gt;&amp;gt;&amp;gt; A.layout(prog='dot')
&amp;gt;&amp;gt;&amp;gt; A.draw('pyg.png')
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src="http://www.kzfmix.com/images/blog/pyg.png" alt="test" /&gt;&lt;/p&gt;
</description><pubDate>Sat, 23 May 2009 11:50:48 +0919</pubDate><category>Python</category><category>network</category><category>graph</category></item><item><title>「複雑な世界、単純な法則」を読んだ</title><link>http://blog.kzfmix.com/entry/1228913693</link><description>&lt;p&gt;読み物としてはまぁまぁ面白かったけど。&lt;/p&gt;

&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4794213859/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/51917PXTS5L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;複雑な世界、単純な法則  ネットワーク科学の最前線&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
マーク・ブキャナン &lt;br /&gt;
草思社 / ￥ 2,310 ()&lt;br /&gt;
通常24時間以内に発送&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DLA 拡散律速凝集&lt;/li&gt;
&lt;li&gt;線虫のニューロンネットワークが平等主義なのとその理由&lt;/li&gt;
&lt;li&gt;創発&lt;/li&gt;
&lt;li&gt;弱い絆を欠く集団は潜在的能力を発揮できない&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="http://blog.kzfmix.com/entry/1227789102"&gt;新ネットワーク思考&lt;/a&gt;のほうが面白かったかな。&lt;/p&gt;
</description><pubDate>Thu, 11 Dec 2008 20:59:32 +0919</pubDate><category>network</category></item><item><title>「新ネットワーク思考」を読んだ</title><link>http://blog.kzfmix.com/entry/1227789102</link><description>&lt;p&gt;今、僕の中でグラフブームが来てます。というわけで、バラバシ。&lt;/p&gt;

&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4140807431/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/41RFDNJWY4L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;新ネットワーク思考―世界のしくみを読み解く&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
アルバート・ラズロ・バラバシ &lt;br /&gt;
NHK出版 / ￥ 1,995 ()&lt;br /&gt;
通常24時間以内に発送&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;外の世界とコミュニケーションする能力は、弱い絆に支配されている
&lt;ul&gt;
&lt;li&gt;親しい友人は職を得るにはあまり役立たない場合が多い&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;ネットワークの中で真に中心的な位置につけているのは、多数の大きなクラスターに参加しているノードだ&lt;/li&gt;
&lt;li&gt;ハブはいかに出現するのか？そこにはハブはいくつ存在するのか？&lt;/li&gt;
&lt;li&gt;自然は普通ベキ法則を嫌うものである&lt;/li&gt;
&lt;li&gt;成長しないという仮説は、現実のネットワークにはあてはまらない&lt;/li&gt;
&lt;li&gt;なぜスケールフリーモデルにはハブとベキ法則があらわれるのか？&lt;/li&gt;
&lt;li&gt;スケールフリートポロジーが意味しているのは、ネットワーク形成の各段階で何らかの組織原理が働いている&lt;/li&gt;
&lt;li&gt;スケールフリーモデルで新参者がどうやって成功するか？
&lt;ul&gt;
&lt;li&gt;適応度の導入&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;ウェブや社会ネットワークと量子力学の関係性&lt;/li&gt;
&lt;li&gt;スケールフリーネットワークのがエラー耐性を持つのはトポロジー本来の性質&lt;/li&gt;
&lt;/ul&gt;
</description><pubDate>Thu, 27 Nov 2008 21:32:14 +0919</pubDate><category>network</category></item><item><title>複雑ネットワーク入門</title><link>http://blog.kzfmix.com/entry/1225709775</link><description>&lt;p&gt;&lt;a href="http://blog.kzfmix.com/entry/1225627759"&gt;特にsubgraphの探索とか&lt;/a&gt;勉強したいところなんだけど、軽く脱線気味に。グラフとかネットワークは勉強してて楽しいですのう。&lt;/p&gt;

&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4061557807/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/41bJfoVNmaL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;複雑ネットワーク入門&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
今野 紀雄,井手 勇介 &lt;br /&gt;
講談社 / ￥ 2,520 ()&lt;br /&gt;
通常24時間以内に発送&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;半分くらいはグラフの基本的なことで、ゴルトン・ワトソン木、スモールワールド、スケールフリー、しきい値モデルをさらっと。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;序章でラムゼー数&lt;/li&gt;
&lt;li&gt;クラスター係数
&lt;ul&gt;
&lt;li&gt;いわゆる自分の友人同士が友人である&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;二部グラフ
&lt;ul&gt;
&lt;li&gt;グラフの頂点集合が互いに素な二つの集合に分かれていること&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;ケーリーの定理
&lt;ul&gt;
&lt;li&gt;n個の頂点からなる木の個数はn^(n-2)個&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;ランダムグラフのクラスター係数の期待値は本質的にはp&lt;/li&gt;
&lt;li&gt;ゴルトン・ワトソン過程はマルコフ連鎖&lt;/li&gt;
&lt;li&gt;スモールワールド性
&lt;ul&gt;
&lt;li&gt;少ない平均頂点距離と、大きなクラスター係数のとき&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;NWモデル
&lt;ul&gt;
&lt;li&gt;拡張されたサイクルと、ランダムグラフを重ね合わせたグラフ&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;しきい値モデル
&lt;ul&gt;
&lt;li&gt;次数分布がベキ則に従うことがある。&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;本書には具体的な例はほとんどないので自分で探せということか。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://alpha.mixi.co.jp/blog/?p=144"&gt;mixiのスモールワールド性の検証&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.bic.kyoto-u.ac.jp/takutsu/members/takutsu/bioinfo19c.ppt"&gt;スケールフリーネットワーク（バイオインフォマティクス）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ds9.jaist.ac.jp:8080/ResearchData/summer/2003/presen.ppt"&gt;ランダムグラフ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ja.wikipedia.org/wiki/%E8%A4%87%E9%9B%91%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF"&gt;wikipediaから&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www9.org/w9cdrom/160/160.html"&gt;Graph structure in the web&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cb.k.u-tokyo.ac.jp/cb/coe/arita_20050221.pdf"&gt;代謝ネットワークのシステムバイオロジー&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description><pubDate>Mon, 03 Nov 2008 20:52:23 +0919</pubDate><category>network</category><category>graph</category></item><item><title>GASTON</title><link>http://blog.kzfmix.com/entry/1225542809</link><description>&lt;p&gt;&lt;a href="http://www.liacs.nl/~snijssen/gaston/"&gt;GASTON&lt;/a&gt;が分からなくてお悩み中。参考文献とかから読まないとやっぱダメな感じ。&lt;/p&gt;

&lt;p&gt;TODO:&lt;a href="http://hms.liacs.nl/graphs.html"&gt;ここ&lt;/a&gt;から追いかける&lt;/p&gt;

&lt;p&gt;そのながれで、最短経路の本も読んでおく&lt;/p&gt;

&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4431100113/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/519eAHAds5L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;最短経路の本&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
R. ブランデンベルク,P. グリッツマン &lt;br /&gt;
シュプリンガー・ジャパン株式会社 / ￥ 3,675 ()&lt;br /&gt;
通常24時間以内に発送&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;当分日本酒も無しだなぁ、ということで、昨日吞みきった高砂で当分は家吞み断ちだ。&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.kzfmix.com/images/blog/1225542968.jpg" alt="1225542968" title="" /&gt;&lt;/p&gt;

&lt;p&gt;中国茶用の茶器出したら、U隊長に「珍しいねー(なんかあったの？)」なんて言われてしまった。&lt;/p&gt;
</description><pubDate>Sat, 01 Nov 2008 21:39:58 +0919</pubDate><category>chemoinformatics</category><category>network</category><category>graph</category></item></channel></rss>