<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.swarma.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%E9%BB%84%E7%A7%8B%E8%8E%89</id>
	<title>集智百科 - 复杂系统|人工智能|复杂科学|复杂网络|自组织 - 用户贡献 [zh-cn]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.swarma.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%E9%BB%84%E7%A7%8B%E8%8E%89"/>
	<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php/%E7%89%B9%E6%AE%8A:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/%E9%BB%84%E7%A7%8B%E8%8E%89"/>
	<updated>2026-11-03T21:04:34Z</updated>
	<subtitle>用户贡献</subtitle>
	<generator>MediaWiki 1.35.0</generator>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17940</id>
		<title>网络效应</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17940"/>
		<updated>2020-11-05T15:33:01Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：/* 网站 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 一、简介 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络效应(network effect)&amp;lt;/font&amp;gt;'''（也称“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络外部性（network externality）&amp;lt;/font&amp;gt;'''”，或“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;需求方规模经济（demand-side economies of scale）&amp;lt;/font&amp;gt;'''”)，是一个经济学和商业方面的术语，用于描述对于一个产品（或服务），每增多一名用户，都会对该产品的其他用户产生新的价值。当网络效应出现时，产品（或服务）的价值，会随着使用该产品（或服务）的人数的增加而增加。&lt;br /&gt;
&lt;br /&gt;
一个经典的例子是电话，越多的人使用电话，对每个电话使用者的价值就越大。一部电话的使用者，本来无意为其他用户创造价值，但当大家都购买电话时，这个行为就产生了正外部性。像微信、微博、Twitter、Facebook 这样的线上社交网络，也是一样，随着更多用户的加入，每个用户获得的价值都在增加。&lt;br /&gt;
&lt;br /&gt;
当网络的价值越来越大，越来越多的人加入时，网络效应还会带来从众效应，从而形成正反馈循环。&lt;br /&gt;
&lt;br /&gt;
网络效应这一表述不仅适用于正向的网络外部性，如电话的案例；消极的网络外部性也可能发生，即用户越多，产品的价值就越低，这种情况通常被称为“拥堵”，例如如交通拥堵或网络拥堵。&lt;br /&gt;
&lt;br /&gt;
== 二、网络效应的起源 ==&lt;br /&gt;
&lt;br /&gt;
网络效应是后专利时代贝尔电话公司的第一任总裁西奥多·韦尔期望获得美国电话服务垄断权的一系列方法中的核心主题。1908 年，当他在贝尔的年报中提出这一概念时，当地和地区电话交换机有 4000 多个，其中大部分最终被并入贝尔系统。&lt;br /&gt;
&lt;br /&gt;
网络效应是由罗伯特·梅特卡夫推广的，称其为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;梅特卡夫定律（Metcalfe's law）&amp;lt;/font&amp;gt;'''。梅特卡夫是以太网的共同发明人之一，也是3Com公司的联合创始人。在销售产品的过程中，梅特卡夫认为，客户要想从网络中获得收益，就需要以太网卡增长到一定的临界值以上，按照梅特卡夫的说法，网络卡销售的原理是：网络的成本与安装的网卡数量成正比，但网络的价值与用户数量的平方成正比。这在代数上表示为成本为 N ，价值为 N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;。虽然这个命题背后的实际数字从来没有确定过，但这个概念使客户可以共享访问昂贵的资源，如磁盘驱动器和打印机，发送电子邮件，并最终访问互联网。&lt;br /&gt;
&lt;br /&gt;
1985-1995年，研究人员 Michael L. Katz、Carl Shapiro、Joseph Farrell 和Garth Saloner 推进了网络效应的经济理论，Rod Beckstrom 在2009年的 BlackHat和 DEF CON会议上提出了描述处于正网络效应状态的网络的数学模型，同时也提出了'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;逆网络效应&amp;lt;/font&amp;gt;'''，并给出了经济模型的定义。&lt;br /&gt;
&lt;br /&gt;
== 三、网络效应的好处 ==&lt;br /&gt;
&lt;br /&gt;
网络效应在达到一定的认购比例后变得显著，称为临界值。在临界值，从商品或服务中获得的价值大于或等于为商品或服务支付的价格。由于商品的价值是由用户群决定的，这就意味着在一定数量的人订阅了服务或购买了商品后，由于价值大于价格，会有更多的人订阅服务或购买商品。&lt;br /&gt;
&lt;br /&gt;
那么，一个关键的商业问题必须是如何在达到临界值之前吸引用户。一种方法是依靠如付款、免费或请求朋友注册等外在的动机。更自然的策略是建立一个没有网络效应的但足够有价值的系统。然后，随着用户数量的增加系统会变得更有价值，继而吸引更广泛的用户群。&lt;br /&gt;
&lt;br /&gt;
超过临界值后用户数量的增加不会无限期地持续下去。到了一定程度后，大多数网络要么拥堵要么饱和，不再吸收用户。&lt;br /&gt;
&lt;br /&gt;
拥堵是由于过度使用而发生的。比如电话网络中，当用户数量低于拥堵点时，每增加一个用户都会给其他每一个用户增加额外的价值。然而，在某些时候，额外用户的增加超过了现有系统的容量。在这一点之后，每增加一个用户都会减少其他每一个用户获得的价值，因为从实际情况来看，每增加一个用户都会增加系统的总负荷，导致信号繁忙、无法获得拨号音、客户服务质量下降。假设拥堵点低于潜在的市场规模，下一个临界点获得的价值将等于付出的代价。如果不提高系统容量，此时网络将停止发展。点对点(P2P)系统是为了在其用户池中分配负载而设计的网络，理论上，这使得P2P网络可以无限扩大规模。基于P2P的电话服务Skype就得益于这种效应，它的增长主要受到市场饱和度的限制。&lt;br /&gt;
&lt;br /&gt;
网络效应通常被误认为是规模经济，但规模经济是由企业规模带来的，而非用户之间的相互操作性造成的。经典规模经济是在生产侧，而网络效应则是在需求侧产生的。&lt;br /&gt;
&lt;br /&gt;
由于网络效应常常与正反馈相关，网络效应与'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;范围经济（Economies of scope）&amp;lt;/font&amp;gt;'''、口碑传播和'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;巴斯扩散模型（Bass Diffusion Model）&amp;lt;/font&amp;gt;'''相关，系统动力学可以作为一种描述这种现象的建模方法。&lt;br /&gt;
&lt;br /&gt;
== 四、技术生命周期 ==&lt;br /&gt;
&lt;br /&gt;
如果一些现有的技术或公司的利益主要基于网络效应，如果在面对如颠覆性的新技术或基于开源标准的竞争等挑战者时，他们开始失去市场份额，那么网络效应给他们带来的利益就会减少，给挑战者带来的利益会增加。&lt;br /&gt;
&lt;br /&gt;
在这一模式中，最终会达到一个临界值，即挑战者的网络效应支配了原在位者的网络效应，在位者被迫加速衰落，挑战者逐渐取代原在位者的地位。&lt;br /&gt;
&lt;br /&gt;
== 五、网络效应带来锁定 ==&lt;br /&gt;
&lt;br /&gt;
因为常常会把用户和供应商锁定在某一个标准上，网络效应也有不好的一面，最常见的例子是微软产品和 QWERTY 键盘。&lt;br /&gt;
&lt;br /&gt;
供应商锁定可以通过开放用户所依赖的标准来缓解，允许各实施方案之间的竞争。然而，这并不能减轻整个行业对标准本身的锁定。事实上，由于现在有多个供应商在降低价格和提高质量，更多的用户可能会采用该标准，从而造成整个行业对该标准的更大锁定。&lt;br /&gt;
&lt;br /&gt;
== 六、网络效应的类型 ==&lt;br /&gt;
&lt;br /&gt;
大体而言，有 2 种网络效应——'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''、'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;间接网络效应&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
=== 直接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
使用量的增加会直接导致其他用户价值的增加。例如，电话系统、传真机、社交网络都意味着用户之间的直接接触。直接网络效应也称为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;同边网络效应(same-side network effect)&amp;lt;/font&amp;gt;'''，一个例子是在线游戏玩家，会从其他在线游戏玩家的参与中获益。&lt;br /&gt;
&lt;br /&gt;
=== 间接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
一种产品或网络使用量的增加，会引起补充产品或网络价值的增加，而补充产品或网络又会增加原产品的价值。补充产品的例子包括软件(如操作系统的Office套件)和DVD(DVD播放器)。这也就是所谓的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;跨边网络效应（cross-side network effect）&amp;lt;/font&amp;gt;'''。Windows和Linux可能不仅争夺用户，而且争夺软件开发商。大多数双边市场或中介市场，都具有间接网络效应的特点。&lt;br /&gt;
&lt;br /&gt;
此外，在分析显示出网络效应的产品时，有两个相关的经济价值来源：&lt;br /&gt;
&lt;br /&gt;
=== 内在价值===&lt;br /&gt;
&lt;br /&gt;
从使用产品中获得价值。&lt;br /&gt;
&lt;br /&gt;
=== 网络价值===&lt;br /&gt;
&lt;br /&gt;
从别人对产品的使用中获得价值。&lt;br /&gt;
&lt;br /&gt;
== 七、负网络外部性 ==&lt;br /&gt;
&lt;br /&gt;
数学意义上的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''，是指与网络效应相比，具有负效应的网络外部性。正的网络外部性会造成正反馈和指数增长，负的网络外部性会造成负反馈和指数衰减。在自然界中，负网络外部性是拉向平衡的力量，是稳定的原因，代表着使系统受到约束的物理限制。&lt;br /&gt;
&lt;br /&gt;
拥堵是随着使用网络的人越来越多导致网络的效率降低，同时降低了已经使用网络的人的价值。交通拥堵、网络带宽有限，都表现出负的网络外部性。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;布雷斯悖论 (Braess’s paradox) &amp;lt;/font&amp;gt;'''表明，增加网络中的路径会对网络的性能产生负面影响。&lt;br /&gt;
&lt;br /&gt;
== 八、互操作性/协同工作能力 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性（Interoperability）&amp;lt;/font&amp;gt;'''是指不同的计算机系统、网络、操作系统和应用程序一起工作并共享信息的能力，具有扩大网络的作用，从而增加网络对消费者的外部价值。互操作性主要是通过增加潜在的连接来实现的，其次是通过吸引新的参与者加入网络。互操作性的其他好处包括减少不确定性、减少锁定、商品化和基于价格的竞争。&lt;br /&gt;
&lt;br /&gt;
互操作性可以通过标准化或其他合作来实现。参与促进互操作性的公司往往面临着紧张关系，因为既要与竞争者合作以扩大产品的潜在市场，又要彼此之间争夺市场份额。&lt;br /&gt;
&lt;br /&gt;
== 九、开源标准 vs 封闭标准 ==&lt;br /&gt;
&lt;br /&gt;
在通信和信息技术中，开源标准和接口往往是通过多家公司的参与而制定的，他们制定开源标准，往往也是互利的。但是，如果有关的通信协议或接口是封闭的标准，网络效应就会使控制这些标准的公司，具有垄断能力。&lt;br /&gt;
&lt;br /&gt;
计算机专业人士普遍认为，微软公司是通过这些手段来维持其垄断地位的。可以看到，微软公司将网络效应发挥到极致的一种方法叫做拥抱、延伸和消灭。&lt;br /&gt;
&lt;br /&gt;
Mirabilis 是一家以色列的创业公司，它是即时通讯（IM）的先驱，被美国在线收购。通过免费赠送他们的 ICQ 产品，并防止他们的客户端软件与其他产品之间的互操作性，他们得以暂时主导了即时通讯的市场。由于网络效应，新的即时通讯用户选择使用 Mirabilis 系统（并加入其庞大的用户网络）比使用竞争系统获得的价值要大得多。作为那个时代的典型，该公司在出售公司之前从未试图从其主导地位中获得利润。&lt;br /&gt;
&lt;br /&gt;
== 十、案例 ==&lt;br /&gt;
&lt;br /&gt;
=== 金融交易所 ===&lt;br /&gt;
&lt;br /&gt;
证券交易所和衍生品交易所具有网络效应的特点。市场流动性是决定证券买卖交易成本的主要因素，因为在购买价格与出售同一证券的价格之间存在着买卖差价。随着交易所的买卖双方数量的增加，流动性增加、交易成本降低，这样就会吸引更多的买家和卖家来到交易所。&lt;br /&gt;
&lt;br /&gt;
金融交易所的网络优势，明显体现在新成立的交易所，很难脱离主导交易所。例如，尽管 Eurex US 启动了相同期货合约的交易，但芝加哥期货交易所仍然保持了美国国债期货交易的压倒性优势。同样，尽管受到了 Euronext.Liffe 的挑战，芝加哥商业交易所也保持了在欧洲债券利率期货交易中的主导地位。&lt;br /&gt;
&lt;br /&gt;
=== 软件 ===&lt;br /&gt;
&lt;br /&gt;
计算机软件市场上存在着非常强大的网络效应。&lt;br /&gt;
&lt;br /&gt;
对许多人来说，选择办公套件的首要考虑因素包括：学会该办公套件对潜在雇主的价值有多大，以及该软件与其他用户的互动情况如何。也就是说，由于学习使用一个办公套件需要花费很多时间，用户希望将这些时间投入到学习办公套件上，使他们对潜在的雇主和客户最具吸引力。同样，在决定购买哪款办公套件时，雇主们也要考虑是否能寻找到会操作的员工。&lt;br /&gt;
&lt;br /&gt;
2007 年，苹果发布了 iPhone，随后是 App store 应用商店。大多数 iPhone 应用非常依赖 iPhone 已经存在的强大的网络效应。这样软件应用能够以非常有限的市场营销预算，迅速增长人气并传播到庞大的用户群。&lt;br /&gt;
&lt;br /&gt;
免费增值的商业模式也具有网络效应，发布一个免费版本让用户不限制使用，然后对高级功能收费来作为主要收入来源。&lt;br /&gt;
&lt;br /&gt;
=== 网站 ===&lt;br /&gt;
&lt;br /&gt;
许多网站都得益于网络效应。&lt;br /&gt;
一个例子是网络市场和交易所。例如如果拍卖没有竞争性，eBay 就不会成为一个特别有用的网站。随着 eBay 上用户数量的增长，拍卖会的竞争越来越激烈，推高了物品的竞价价格。这使得在 eBay 上出售物品更有价值并将更多的卖家带到 eBay 上。反过来，由于供应量的增加又促使价格下降，供应量的增加为 eBay 带来了更多的买家。从本质上讲，随着 eBay 用户数量的增加、价格下降、供给增加，越来越多的人发现这个网站是有用的。&lt;br /&gt;
&lt;br /&gt;
20世纪90年代末，一些网络公司的商业模式基于网络效应。这些公司的经营理念是，当一个新的市场出现时，如果这个市场包含着强烈的网络效应，公司应该更关心市场份额的增长而不是马上变得有利可图。其理由是，市场份额将决定哪家公司能够制定技术和营销标准并使这些公司获得先发优势。&lt;br /&gt;
&lt;br /&gt;
社交网站就是很好的例子。在社交网站上注册的人越多，网站对其注册者越有用。&lt;br /&gt;
&lt;br /&gt;
Alexa互联网使用的技术是跟踪用户的网络浏览模式，因此 Alexa 的相关网站结果会随着更多用户使用该技术而提高。Alexa的网络严重依赖少量的浏览器软件关系，这使得该网络更容易受到竞争者的影响。&lt;br /&gt;
&lt;br /&gt;
谷歌也试图通过其 Google AdSense 服务，在广告业务中创造网络效应。 Google AdSense 在许多小型网站（如博客）上投放广告，利用 Google 的技术来确定哪些广告与哪些博客相关。因此，该服务的目的似乎是作为一个交易场所，为许多广告商与许多小网站（如博客）进行匹配。一般来说，Google AdSense 能够接触到的博客越多，就会吸引更多的广告商，以此类推，使网络对所有参与者更有价值。&lt;br /&gt;
&lt;br /&gt;
相比之下，一个新闻网站的价值，主要与文章的质量成正比而不是与其他使用网站的人数成正比。&lt;br /&gt;
&lt;br /&gt;
同样，第一代搜索网站也没有经历什么网络效应，因为网站的价值是基于搜索结果的价值。一旦用户认为 Google 的搜索结果更胜一筹，Google 便不费吹灰之力就从雅虎手中赢得了用户。&lt;br /&gt;
&lt;br /&gt;
=== 铁路轨距 ===&lt;br /&gt;
&lt;br /&gt;
在最初的轨距选择和轨距转换决策中存在强烈的网络效应。&lt;br /&gt;
&lt;br /&gt;
即使在放置不与任何其他线路连接的孤立钢轨时，轨道层通常也会选择一个标准轨距，这样他们就可以使用现成的机车车辆。&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;虽然少数厂家生产的机车车辆可以适应不同轨距，但大多数厂家生产的机车车（内容不完整）&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
== 词条编辑日志 ==&lt;br /&gt;
&lt;br /&gt;
* 200818 润悟翻译自 wikipedia https://en.wikipedia.org/wiki/Network_effect&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17938</id>
		<title>网络效应</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17938"/>
		<updated>2020-11-05T15:29:03Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：/* 软件 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 一、简介 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络效应(network effect)&amp;lt;/font&amp;gt;'''（也称“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络外部性（network externality）&amp;lt;/font&amp;gt;'''”，或“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;需求方规模经济（demand-side economies of scale）&amp;lt;/font&amp;gt;'''”)，是一个经济学和商业方面的术语，用于描述对于一个产品（或服务），每增多一名用户，都会对该产品的其他用户产生新的价值。当网络效应出现时，产品（或服务）的价值，会随着使用该产品（或服务）的人数的增加而增加。&lt;br /&gt;
&lt;br /&gt;
一个经典的例子是电话，越多的人使用电话，对每个电话使用者的价值就越大。一部电话的使用者，本来无意为其他用户创造价值，但当大家都购买电话时，这个行为就产生了正外部性。像微信、微博、Twitter、Facebook 这样的线上社交网络，也是一样，随着更多用户的加入，每个用户获得的价值都在增加。&lt;br /&gt;
&lt;br /&gt;
当网络的价值越来越大，越来越多的人加入时，网络效应还会带来从众效应，从而形成正反馈循环。&lt;br /&gt;
&lt;br /&gt;
网络效应这一表述不仅适用于正向的网络外部性，如电话的案例；消极的网络外部性也可能发生，即用户越多，产品的价值就越低，这种情况通常被称为“拥堵”，例如如交通拥堵或网络拥堵。&lt;br /&gt;
&lt;br /&gt;
== 二、网络效应的起源 ==&lt;br /&gt;
&lt;br /&gt;
网络效应是后专利时代贝尔电话公司的第一任总裁西奥多·韦尔期望获得美国电话服务垄断权的一系列方法中的核心主题。1908 年，当他在贝尔的年报中提出这一概念时，当地和地区电话交换机有 4000 多个，其中大部分最终被并入贝尔系统。&lt;br /&gt;
&lt;br /&gt;
网络效应是由罗伯特·梅特卡夫推广的，称其为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;梅特卡夫定律（Metcalfe's law）&amp;lt;/font&amp;gt;'''。梅特卡夫是以太网的共同发明人之一，也是3Com公司的联合创始人。在销售产品的过程中，梅特卡夫认为，客户要想从网络中获得收益，就需要以太网卡增长到一定的临界值以上，按照梅特卡夫的说法，网络卡销售的原理是：网络的成本与安装的网卡数量成正比，但网络的价值与用户数量的平方成正比。这在代数上表示为成本为 N ，价值为 N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;。虽然这个命题背后的实际数字从来没有确定过，但这个概念使客户可以共享访问昂贵的资源，如磁盘驱动器和打印机，发送电子邮件，并最终访问互联网。&lt;br /&gt;
&lt;br /&gt;
1985-1995年，研究人员 Michael L. Katz、Carl Shapiro、Joseph Farrell 和Garth Saloner 推进了网络效应的经济理论，Rod Beckstrom 在2009年的 BlackHat和 DEF CON会议上提出了描述处于正网络效应状态的网络的数学模型，同时也提出了'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;逆网络效应&amp;lt;/font&amp;gt;'''，并给出了经济模型的定义。&lt;br /&gt;
&lt;br /&gt;
== 三、网络效应的好处 ==&lt;br /&gt;
&lt;br /&gt;
网络效应在达到一定的认购比例后变得显著，称为临界值。在临界值，从商品或服务中获得的价值大于或等于为商品或服务支付的价格。由于商品的价值是由用户群决定的，这就意味着在一定数量的人订阅了服务或购买了商品后，由于价值大于价格，会有更多的人订阅服务或购买商品。&lt;br /&gt;
&lt;br /&gt;
那么，一个关键的商业问题必须是如何在达到临界值之前吸引用户。一种方法是依靠如付款、免费或请求朋友注册等外在的动机。更自然的策略是建立一个没有网络效应的但足够有价值的系统。然后，随着用户数量的增加系统会变得更有价值，继而吸引更广泛的用户群。&lt;br /&gt;
&lt;br /&gt;
超过临界值后用户数量的增加不会无限期地持续下去。到了一定程度后，大多数网络要么拥堵要么饱和，不再吸收用户。&lt;br /&gt;
&lt;br /&gt;
拥堵是由于过度使用而发生的。比如电话网络中，当用户数量低于拥堵点时，每增加一个用户都会给其他每一个用户增加额外的价值。然而，在某些时候，额外用户的增加超过了现有系统的容量。在这一点之后，每增加一个用户都会减少其他每一个用户获得的价值，因为从实际情况来看，每增加一个用户都会增加系统的总负荷，导致信号繁忙、无法获得拨号音、客户服务质量下降。假设拥堵点低于潜在的市场规模，下一个临界点获得的价值将等于付出的代价。如果不提高系统容量，此时网络将停止发展。点对点(P2P)系统是为了在其用户池中分配负载而设计的网络，理论上，这使得P2P网络可以无限扩大规模。基于P2P的电话服务Skype就得益于这种效应，它的增长主要受到市场饱和度的限制。&lt;br /&gt;
&lt;br /&gt;
网络效应通常被误认为是规模经济，但规模经济是由企业规模带来的，而非用户之间的相互操作性造成的。经典规模经济是在生产侧，而网络效应则是在需求侧产生的。&lt;br /&gt;
&lt;br /&gt;
由于网络效应常常与正反馈相关，网络效应与'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;范围经济（Economies of scope）&amp;lt;/font&amp;gt;'''、口碑传播和'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;巴斯扩散模型（Bass Diffusion Model）&amp;lt;/font&amp;gt;'''相关，系统动力学可以作为一种描述这种现象的建模方法。&lt;br /&gt;
&lt;br /&gt;
== 四、技术生命周期 ==&lt;br /&gt;
&lt;br /&gt;
如果一些现有的技术或公司的利益主要基于网络效应，如果在面对如颠覆性的新技术或基于开源标准的竞争等挑战者时，他们开始失去市场份额，那么网络效应给他们带来的利益就会减少，给挑战者带来的利益会增加。&lt;br /&gt;
&lt;br /&gt;
在这一模式中，最终会达到一个临界值，即挑战者的网络效应支配了原在位者的网络效应，在位者被迫加速衰落，挑战者逐渐取代原在位者的地位。&lt;br /&gt;
&lt;br /&gt;
== 五、网络效应带来锁定 ==&lt;br /&gt;
&lt;br /&gt;
因为常常会把用户和供应商锁定在某一个标准上，网络效应也有不好的一面，最常见的例子是微软产品和 QWERTY 键盘。&lt;br /&gt;
&lt;br /&gt;
供应商锁定可以通过开放用户所依赖的标准来缓解，允许各实施方案之间的竞争。然而，这并不能减轻整个行业对标准本身的锁定。事实上，由于现在有多个供应商在降低价格和提高质量，更多的用户可能会采用该标准，从而造成整个行业对该标准的更大锁定。&lt;br /&gt;
&lt;br /&gt;
== 六、网络效应的类型 ==&lt;br /&gt;
&lt;br /&gt;
大体而言，有 2 种网络效应——'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''、'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;间接网络效应&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
=== 直接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
使用量的增加会直接导致其他用户价值的增加。例如，电话系统、传真机、社交网络都意味着用户之间的直接接触。直接网络效应也称为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;同边网络效应(same-side network effect)&amp;lt;/font&amp;gt;'''，一个例子是在线游戏玩家，会从其他在线游戏玩家的参与中获益。&lt;br /&gt;
&lt;br /&gt;
=== 间接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
一种产品或网络使用量的增加，会引起补充产品或网络价值的增加，而补充产品或网络又会增加原产品的价值。补充产品的例子包括软件(如操作系统的Office套件)和DVD(DVD播放器)。这也就是所谓的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;跨边网络效应（cross-side network effect）&amp;lt;/font&amp;gt;'''。Windows和Linux可能不仅争夺用户，而且争夺软件开发商。大多数双边市场或中介市场，都具有间接网络效应的特点。&lt;br /&gt;
&lt;br /&gt;
此外，在分析显示出网络效应的产品时，有两个相关的经济价值来源：&lt;br /&gt;
&lt;br /&gt;
=== 内在价值===&lt;br /&gt;
&lt;br /&gt;
从使用产品中获得价值。&lt;br /&gt;
&lt;br /&gt;
=== 网络价值===&lt;br /&gt;
&lt;br /&gt;
从别人对产品的使用中获得价值。&lt;br /&gt;
&lt;br /&gt;
== 七、负网络外部性 ==&lt;br /&gt;
&lt;br /&gt;
数学意义上的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''，是指与网络效应相比，具有负效应的网络外部性。正的网络外部性会造成正反馈和指数增长，负的网络外部性会造成负反馈和指数衰减。在自然界中，负网络外部性是拉向平衡的力量，是稳定的原因，代表着使系统受到约束的物理限制。&lt;br /&gt;
&lt;br /&gt;
拥堵是随着使用网络的人越来越多导致网络的效率降低，同时降低了已经使用网络的人的价值。交通拥堵、网络带宽有限，都表现出负的网络外部性。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;布雷斯悖论 (Braess’s paradox) &amp;lt;/font&amp;gt;'''表明，增加网络中的路径会对网络的性能产生负面影响。&lt;br /&gt;
&lt;br /&gt;
== 八、互操作性/协同工作能力 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性（Interoperability）&amp;lt;/font&amp;gt;'''是指不同的计算机系统、网络、操作系统和应用程序一起工作并共享信息的能力，具有扩大网络的作用，从而增加网络对消费者的外部价值。互操作性主要是通过增加潜在的连接来实现的，其次是通过吸引新的参与者加入网络。互操作性的其他好处包括减少不确定性、减少锁定、商品化和基于价格的竞争。&lt;br /&gt;
&lt;br /&gt;
互操作性可以通过标准化或其他合作来实现。参与促进互操作性的公司往往面临着紧张关系，因为既要与竞争者合作以扩大产品的潜在市场，又要彼此之间争夺市场份额。&lt;br /&gt;
&lt;br /&gt;
== 九、开源标准 vs 封闭标准 ==&lt;br /&gt;
&lt;br /&gt;
在通信和信息技术中，开源标准和接口往往是通过多家公司的参与而制定的，他们制定开源标准，往往也是互利的。但是，如果有关的通信协议或接口是封闭的标准，网络效应就会使控制这些标准的公司，具有垄断能力。&lt;br /&gt;
&lt;br /&gt;
计算机专业人士普遍认为，微软公司是通过这些手段来维持其垄断地位的。可以看到，微软公司将网络效应发挥到极致的一种方法叫做拥抱、延伸和消灭。&lt;br /&gt;
&lt;br /&gt;
Mirabilis 是一家以色列的创业公司，它是即时通讯（IM）的先驱，被美国在线收购。通过免费赠送他们的 ICQ 产品，并防止他们的客户端软件与其他产品之间的互操作性，他们得以暂时主导了即时通讯的市场。由于网络效应，新的即时通讯用户选择使用 Mirabilis 系统（并加入其庞大的用户网络）比使用竞争系统获得的价值要大得多。作为那个时代的典型，该公司在出售公司之前从未试图从其主导地位中获得利润。&lt;br /&gt;
&lt;br /&gt;
== 十、案例 ==&lt;br /&gt;
&lt;br /&gt;
=== 金融交易所 ===&lt;br /&gt;
&lt;br /&gt;
证券交易所和衍生品交易所具有网络效应的特点。市场流动性是决定证券买卖交易成本的主要因素，因为在购买价格与出售同一证券的价格之间存在着买卖差价。随着交易所的买卖双方数量的增加，流动性增加、交易成本降低，这样就会吸引更多的买家和卖家来到交易所。&lt;br /&gt;
&lt;br /&gt;
金融交易所的网络优势，明显体现在新成立的交易所，很难脱离主导交易所。例如，尽管 Eurex US 启动了相同期货合约的交易，但芝加哥期货交易所仍然保持了美国国债期货交易的压倒性优势。同样，尽管受到了 Euronext.Liffe 的挑战，芝加哥商业交易所也保持了在欧洲债券利率期货交易中的主导地位。&lt;br /&gt;
&lt;br /&gt;
=== 软件 ===&lt;br /&gt;
&lt;br /&gt;
计算机软件市场上存在着非常强大的网络效应。&lt;br /&gt;
&lt;br /&gt;
对许多人来说，选择办公套件的首要考虑因素包括：学会该办公套件对潜在雇主的价值有多大，以及该软件与其他用户的互动情况如何。也就是说，由于学习使用一个办公套件需要花费很多时间，用户希望将这些时间投入到学习办公套件上，使他们对潜在的雇主和客户最具吸引力。同样，在决定购买哪款办公套件时，雇主们也要考虑是否能寻找到会操作的员工。&lt;br /&gt;
&lt;br /&gt;
2007 年，苹果发布了 iPhone，随后是 App store 应用商店。大多数 iPhone 应用非常依赖 iPhone 已经存在的强大的网络效应。这样软件应用能够以非常有限的市场营销预算，迅速增长人气并传播到庞大的用户群。&lt;br /&gt;
&lt;br /&gt;
免费增值的商业模式也具有网络效应，发布一个免费版本让用户不限制使用，然后对高级功能收费来作为主要收入来源。&lt;br /&gt;
&lt;br /&gt;
=== 网站 ===&lt;br /&gt;
&lt;br /&gt;
许多网站都得益于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。一个例子是网络市场和交易所。例如，如果拍卖没有竞争性，eBay 就不会成为一个特别有用的网站。随着 eBay 上用户数量的增长，拍卖会的竞争越来越激烈，推高了物品的竞价价格。这使得在 eBay 上出售物品更有价值，并将更多的卖家带到 eBay 上，反过来，由于供应量的增加，又促使价格下降。供应量的增加为 eBay 带来了更多的买家。从本质上讲，随着 eBay 用户数量的增加，价格下降，供给增加，越来越多的人发现这个网站是有用的。&lt;br /&gt;
&lt;br /&gt;
20世纪90年代末，一些网络公司将'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''作为商业模式的理由。这些公司的经营理念是，当一个新的市场出现时，如果这个市场包含着强烈的网络效应，公司应该更关心市场份额的增长，而不是马上变得有利可图。其理由是，市场份额将决定哪家公司能够制定技术和营销标准，并使这些公司获得先发优势。&lt;br /&gt;
&lt;br /&gt;
社交网站就是很好的例子。在社交网站上注册的人越多，网站对其注册者越有用。&lt;br /&gt;
&lt;br /&gt;
Alexa互联网使用的技术是跟踪用户的网络浏览模式，因此 Alexa 的相关网站结果会随着更多用户使用该技术而提高。Alexa的网络严重依赖少量的浏览器软件关系，这使得该网络更容易受到竞争的影响。&lt;br /&gt;
&lt;br /&gt;
谷歌也试图通过其 Google AdSense 服务，在广告业务中创造'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。 Google AdSense 在许多小型网站（如博客）上投放广告，利用 Google 的技术来确定哪些广告与哪些博客相关。因此，该服务的目的似乎是作为一个交易所（或广告网络），为许多广告商与许多小网站（如博客）进行匹配。一般来说，Google AdSense 能够接触到的博客越多，就会吸引更多的广告商，使其成为对更多博客最有吸引力的选择，以此类推，使网络对所有参与者更有价值。&lt;br /&gt;
&lt;br /&gt;
相比之下，一个新闻网站的价值，主要与文章的质量成正比，而不是与其他使用网站的人数成正比。&lt;br /&gt;
&lt;br /&gt;
同样，第一代搜索网站也没有经历什么网络效应，因为网站的价值是基于搜索结果的价值。一旦用户认为 Google 的搜索结果更胜一筹，Google 便不费吹灰之力就从雅虎手中赢得了用户。而一些评论家误以为雅虎品牌的价值（随着更多的人知道雅虎品牌，雅虎品牌的价值确实会增加）是保护其广告业务的网络效应。&lt;br /&gt;
&lt;br /&gt;
=== 铁路轨距 ===&lt;br /&gt;
&lt;br /&gt;
在最初的轨距选择和轨距转换决策中存在强烈的网络效应。&lt;br /&gt;
&lt;br /&gt;
即使在放置不与任何其他线路连接的孤立钢轨时，轨道层通常也会选择一个标准轨距，这样他们就可以使用现成的机车车辆。&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;虽然少数厂家生产的机车车辆可以适应不同轨距，但大多数厂家生产的机车车（内容不完整）&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
== 词条编辑日志 ==&lt;br /&gt;
&lt;br /&gt;
* 200818 润悟翻译自 wikipedia https://en.wikipedia.org/wiki/Network_effect&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17937</id>
		<title>网络效应</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17937"/>
		<updated>2020-11-05T15:26:43Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：/* 金融交易所 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 一、简介 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络效应(network effect)&amp;lt;/font&amp;gt;'''（也称“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络外部性（network externality）&amp;lt;/font&amp;gt;'''”，或“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;需求方规模经济（demand-side economies of scale）&amp;lt;/font&amp;gt;'''”)，是一个经济学和商业方面的术语，用于描述对于一个产品（或服务），每增多一名用户，都会对该产品的其他用户产生新的价值。当网络效应出现时，产品（或服务）的价值，会随着使用该产品（或服务）的人数的增加而增加。&lt;br /&gt;
&lt;br /&gt;
一个经典的例子是电话，越多的人使用电话，对每个电话使用者的价值就越大。一部电话的使用者，本来无意为其他用户创造价值，但当大家都购买电话时，这个行为就产生了正外部性。像微信、微博、Twitter、Facebook 这样的线上社交网络，也是一样，随着更多用户的加入，每个用户获得的价值都在增加。&lt;br /&gt;
&lt;br /&gt;
当网络的价值越来越大，越来越多的人加入时，网络效应还会带来从众效应，从而形成正反馈循环。&lt;br /&gt;
&lt;br /&gt;
网络效应这一表述不仅适用于正向的网络外部性，如电话的案例；消极的网络外部性也可能发生，即用户越多，产品的价值就越低，这种情况通常被称为“拥堵”，例如如交通拥堵或网络拥堵。&lt;br /&gt;
&lt;br /&gt;
== 二、网络效应的起源 ==&lt;br /&gt;
&lt;br /&gt;
网络效应是后专利时代贝尔电话公司的第一任总裁西奥多·韦尔期望获得美国电话服务垄断权的一系列方法中的核心主题。1908 年，当他在贝尔的年报中提出这一概念时，当地和地区电话交换机有 4000 多个，其中大部分最终被并入贝尔系统。&lt;br /&gt;
&lt;br /&gt;
网络效应是由罗伯特·梅特卡夫推广的，称其为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;梅特卡夫定律（Metcalfe's law）&amp;lt;/font&amp;gt;'''。梅特卡夫是以太网的共同发明人之一，也是3Com公司的联合创始人。在销售产品的过程中，梅特卡夫认为，客户要想从网络中获得收益，就需要以太网卡增长到一定的临界值以上，按照梅特卡夫的说法，网络卡销售的原理是：网络的成本与安装的网卡数量成正比，但网络的价值与用户数量的平方成正比。这在代数上表示为成本为 N ，价值为 N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;。虽然这个命题背后的实际数字从来没有确定过，但这个概念使客户可以共享访问昂贵的资源，如磁盘驱动器和打印机，发送电子邮件，并最终访问互联网。&lt;br /&gt;
&lt;br /&gt;
1985-1995年，研究人员 Michael L. Katz、Carl Shapiro、Joseph Farrell 和Garth Saloner 推进了网络效应的经济理论，Rod Beckstrom 在2009年的 BlackHat和 DEF CON会议上提出了描述处于正网络效应状态的网络的数学模型，同时也提出了'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;逆网络效应&amp;lt;/font&amp;gt;'''，并给出了经济模型的定义。&lt;br /&gt;
&lt;br /&gt;
== 三、网络效应的好处 ==&lt;br /&gt;
&lt;br /&gt;
网络效应在达到一定的认购比例后变得显著，称为临界值。在临界值，从商品或服务中获得的价值大于或等于为商品或服务支付的价格。由于商品的价值是由用户群决定的，这就意味着在一定数量的人订阅了服务或购买了商品后，由于价值大于价格，会有更多的人订阅服务或购买商品。&lt;br /&gt;
&lt;br /&gt;
那么，一个关键的商业问题必须是如何在达到临界值之前吸引用户。一种方法是依靠如付款、免费或请求朋友注册等外在的动机。更自然的策略是建立一个没有网络效应的但足够有价值的系统。然后，随着用户数量的增加系统会变得更有价值，继而吸引更广泛的用户群。&lt;br /&gt;
&lt;br /&gt;
超过临界值后用户数量的增加不会无限期地持续下去。到了一定程度后，大多数网络要么拥堵要么饱和，不再吸收用户。&lt;br /&gt;
&lt;br /&gt;
拥堵是由于过度使用而发生的。比如电话网络中，当用户数量低于拥堵点时，每增加一个用户都会给其他每一个用户增加额外的价值。然而，在某些时候，额外用户的增加超过了现有系统的容量。在这一点之后，每增加一个用户都会减少其他每一个用户获得的价值，因为从实际情况来看，每增加一个用户都会增加系统的总负荷，导致信号繁忙、无法获得拨号音、客户服务质量下降。假设拥堵点低于潜在的市场规模，下一个临界点获得的价值将等于付出的代价。如果不提高系统容量，此时网络将停止发展。点对点(P2P)系统是为了在其用户池中分配负载而设计的网络，理论上，这使得P2P网络可以无限扩大规模。基于P2P的电话服务Skype就得益于这种效应，它的增长主要受到市场饱和度的限制。&lt;br /&gt;
&lt;br /&gt;
网络效应通常被误认为是规模经济，但规模经济是由企业规模带来的，而非用户之间的相互操作性造成的。经典规模经济是在生产侧，而网络效应则是在需求侧产生的。&lt;br /&gt;
&lt;br /&gt;
由于网络效应常常与正反馈相关，网络效应与'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;范围经济（Economies of scope）&amp;lt;/font&amp;gt;'''、口碑传播和'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;巴斯扩散模型（Bass Diffusion Model）&amp;lt;/font&amp;gt;'''相关，系统动力学可以作为一种描述这种现象的建模方法。&lt;br /&gt;
&lt;br /&gt;
== 四、技术生命周期 ==&lt;br /&gt;
&lt;br /&gt;
如果一些现有的技术或公司的利益主要基于网络效应，如果在面对如颠覆性的新技术或基于开源标准的竞争等挑战者时，他们开始失去市场份额，那么网络效应给他们带来的利益就会减少，给挑战者带来的利益会增加。&lt;br /&gt;
&lt;br /&gt;
在这一模式中，最终会达到一个临界值，即挑战者的网络效应支配了原在位者的网络效应，在位者被迫加速衰落，挑战者逐渐取代原在位者的地位。&lt;br /&gt;
&lt;br /&gt;
== 五、网络效应带来锁定 ==&lt;br /&gt;
&lt;br /&gt;
因为常常会把用户和供应商锁定在某一个标准上，网络效应也有不好的一面，最常见的例子是微软产品和 QWERTY 键盘。&lt;br /&gt;
&lt;br /&gt;
供应商锁定可以通过开放用户所依赖的标准来缓解，允许各实施方案之间的竞争。然而，这并不能减轻整个行业对标准本身的锁定。事实上，由于现在有多个供应商在降低价格和提高质量，更多的用户可能会采用该标准，从而造成整个行业对该标准的更大锁定。&lt;br /&gt;
&lt;br /&gt;
== 六、网络效应的类型 ==&lt;br /&gt;
&lt;br /&gt;
大体而言，有 2 种网络效应——'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''、'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;间接网络效应&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
=== 直接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
使用量的增加会直接导致其他用户价值的增加。例如，电话系统、传真机、社交网络都意味着用户之间的直接接触。直接网络效应也称为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;同边网络效应(same-side network effect)&amp;lt;/font&amp;gt;'''，一个例子是在线游戏玩家，会从其他在线游戏玩家的参与中获益。&lt;br /&gt;
&lt;br /&gt;
=== 间接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
一种产品或网络使用量的增加，会引起补充产品或网络价值的增加，而补充产品或网络又会增加原产品的价值。补充产品的例子包括软件(如操作系统的Office套件)和DVD(DVD播放器)。这也就是所谓的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;跨边网络效应（cross-side network effect）&amp;lt;/font&amp;gt;'''。Windows和Linux可能不仅争夺用户，而且争夺软件开发商。大多数双边市场或中介市场，都具有间接网络效应的特点。&lt;br /&gt;
&lt;br /&gt;
此外，在分析显示出网络效应的产品时，有两个相关的经济价值来源：&lt;br /&gt;
&lt;br /&gt;
=== 内在价值===&lt;br /&gt;
&lt;br /&gt;
从使用产品中获得价值。&lt;br /&gt;
&lt;br /&gt;
=== 网络价值===&lt;br /&gt;
&lt;br /&gt;
从别人对产品的使用中获得价值。&lt;br /&gt;
&lt;br /&gt;
== 七、负网络外部性 ==&lt;br /&gt;
&lt;br /&gt;
数学意义上的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''，是指与网络效应相比，具有负效应的网络外部性。正的网络外部性会造成正反馈和指数增长，负的网络外部性会造成负反馈和指数衰减。在自然界中，负网络外部性是拉向平衡的力量，是稳定的原因，代表着使系统受到约束的物理限制。&lt;br /&gt;
&lt;br /&gt;
拥堵是随着使用网络的人越来越多导致网络的效率降低，同时降低了已经使用网络的人的价值。交通拥堵、网络带宽有限，都表现出负的网络外部性。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;布雷斯悖论 (Braess’s paradox) &amp;lt;/font&amp;gt;'''表明，增加网络中的路径会对网络的性能产生负面影响。&lt;br /&gt;
&lt;br /&gt;
== 八、互操作性/协同工作能力 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性（Interoperability）&amp;lt;/font&amp;gt;'''是指不同的计算机系统、网络、操作系统和应用程序一起工作并共享信息的能力，具有扩大网络的作用，从而增加网络对消费者的外部价值。互操作性主要是通过增加潜在的连接来实现的，其次是通过吸引新的参与者加入网络。互操作性的其他好处包括减少不确定性、减少锁定、商品化和基于价格的竞争。&lt;br /&gt;
&lt;br /&gt;
互操作性可以通过标准化或其他合作来实现。参与促进互操作性的公司往往面临着紧张关系，因为既要与竞争者合作以扩大产品的潜在市场，又要彼此之间争夺市场份额。&lt;br /&gt;
&lt;br /&gt;
== 九、开源标准 vs 封闭标准 ==&lt;br /&gt;
&lt;br /&gt;
在通信和信息技术中，开源标准和接口往往是通过多家公司的参与而制定的，他们制定开源标准，往往也是互利的。但是，如果有关的通信协议或接口是封闭的标准，网络效应就会使控制这些标准的公司，具有垄断能力。&lt;br /&gt;
&lt;br /&gt;
计算机专业人士普遍认为，微软公司是通过这些手段来维持其垄断地位的。可以看到，微软公司将网络效应发挥到极致的一种方法叫做拥抱、延伸和消灭。&lt;br /&gt;
&lt;br /&gt;
Mirabilis 是一家以色列的创业公司，它是即时通讯（IM）的先驱，被美国在线收购。通过免费赠送他们的 ICQ 产品，并防止他们的客户端软件与其他产品之间的互操作性，他们得以暂时主导了即时通讯的市场。由于网络效应，新的即时通讯用户选择使用 Mirabilis 系统（并加入其庞大的用户网络）比使用竞争系统获得的价值要大得多。作为那个时代的典型，该公司在出售公司之前从未试图从其主导地位中获得利润。&lt;br /&gt;
&lt;br /&gt;
== 十、案例 ==&lt;br /&gt;
&lt;br /&gt;
=== 金融交易所 ===&lt;br /&gt;
&lt;br /&gt;
证券交易所和衍生品交易所具有网络效应的特点。市场流动性是决定证券买卖交易成本的主要因素，因为在购买价格与出售同一证券的价格之间存在着买卖差价。随着交易所的买卖双方数量的增加，流动性增加、交易成本降低，这样就会吸引更多的买家和卖家来到交易所。&lt;br /&gt;
&lt;br /&gt;
金融交易所的网络优势，明显体现在新成立的交易所，很难脱离主导交易所。例如，尽管 Eurex US 启动了相同期货合约的交易，但芝加哥期货交易所仍然保持了美国国债期货交易的压倒性优势。同样，尽管受到了 Euronext.Liffe 的挑战，芝加哥商业交易所也保持了在欧洲债券利率期货交易中的主导地位。&lt;br /&gt;
&lt;br /&gt;
=== 软件 ===&lt;br /&gt;
&lt;br /&gt;
在广泛使用的计算机软件市场上，存在着非常强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
对许多人来说，选择办公套件的首要考虑因素包括：学会该办公套件对潜在雇主的价值有多大，以及该软件与其他用户的互动情况如何。也就是说，由于学习使用一个办公套件需要花费很多时间，用户希望将这些时间投入到学习办公套件上，使他们对潜在的雇主和客户最具吸引力。同样，在决定购买哪款办公套件时，寻找已经培训过的员工也是雇主们的一大顾虑。&lt;br /&gt;
&lt;br /&gt;
2007 年，苹果发布了 iPhone，随后是 App store 应用商店。大多数 iPhone 应用，非常依赖 iPhone 已经存在的强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。这样软件应用能够以非常有限的市场营销预算，迅速地增长人气，并传播到庞大的用户群。&lt;br /&gt;
&lt;br /&gt;
免费增值的商业模式已经发展到利用这些'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''，发布一个免费版本，让用户不限制使用，然后对高级功能收费来作为主要收入来源。&lt;br /&gt;
&lt;br /&gt;
=== 网站 ===&lt;br /&gt;
&lt;br /&gt;
许多网站都得益于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。一个例子是网络市场和交易所。例如，如果拍卖没有竞争性，eBay 就不会成为一个特别有用的网站。随着 eBay 上用户数量的增长，拍卖会的竞争越来越激烈，推高了物品的竞价价格。这使得在 eBay 上出售物品更有价值，并将更多的卖家带到 eBay 上，反过来，由于供应量的增加，又促使价格下降。供应量的增加为 eBay 带来了更多的买家。从本质上讲，随着 eBay 用户数量的增加，价格下降，供给增加，越来越多的人发现这个网站是有用的。&lt;br /&gt;
&lt;br /&gt;
20世纪90年代末，一些网络公司将'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''作为商业模式的理由。这些公司的经营理念是，当一个新的市场出现时，如果这个市场包含着强烈的网络效应，公司应该更关心市场份额的增长，而不是马上变得有利可图。其理由是，市场份额将决定哪家公司能够制定技术和营销标准，并使这些公司获得先发优势。&lt;br /&gt;
&lt;br /&gt;
社交网站就是很好的例子。在社交网站上注册的人越多，网站对其注册者越有用。&lt;br /&gt;
&lt;br /&gt;
Alexa互联网使用的技术是跟踪用户的网络浏览模式，因此 Alexa 的相关网站结果会随着更多用户使用该技术而提高。Alexa的网络严重依赖少量的浏览器软件关系，这使得该网络更容易受到竞争的影响。&lt;br /&gt;
&lt;br /&gt;
谷歌也试图通过其 Google AdSense 服务，在广告业务中创造'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。 Google AdSense 在许多小型网站（如博客）上投放广告，利用 Google 的技术来确定哪些广告与哪些博客相关。因此，该服务的目的似乎是作为一个交易所（或广告网络），为许多广告商与许多小网站（如博客）进行匹配。一般来说，Google AdSense 能够接触到的博客越多，就会吸引更多的广告商，使其成为对更多博客最有吸引力的选择，以此类推，使网络对所有参与者更有价值。&lt;br /&gt;
&lt;br /&gt;
相比之下，一个新闻网站的价值，主要与文章的质量成正比，而不是与其他使用网站的人数成正比。&lt;br /&gt;
&lt;br /&gt;
同样，第一代搜索网站也没有经历什么网络效应，因为网站的价值是基于搜索结果的价值。一旦用户认为 Google 的搜索结果更胜一筹，Google 便不费吹灰之力就从雅虎手中赢得了用户。而一些评论家误以为雅虎品牌的价值（随着更多的人知道雅虎品牌，雅虎品牌的价值确实会增加）是保护其广告业务的网络效应。&lt;br /&gt;
&lt;br /&gt;
=== 铁路轨距 ===&lt;br /&gt;
&lt;br /&gt;
在最初的轨距选择和轨距转换决策中存在强烈的网络效应。&lt;br /&gt;
&lt;br /&gt;
即使在放置不与任何其他线路连接的孤立钢轨时，轨道层通常也会选择一个标准轨距，这样他们就可以使用现成的机车车辆。&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;虽然少数厂家生产的机车车辆可以适应不同轨距，但大多数厂家生产的机车车（内容不完整）&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
== 词条编辑日志 ==&lt;br /&gt;
&lt;br /&gt;
* 200818 润悟翻译自 wikipedia https://en.wikipedia.org/wiki/Network_effect&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17936</id>
		<title>网络效应</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17936"/>
		<updated>2020-11-05T15:25:59Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：/* 铁路轨距 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 一、简介 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络效应(network effect)&amp;lt;/font&amp;gt;'''（也称“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络外部性（network externality）&amp;lt;/font&amp;gt;'''”，或“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;需求方规模经济（demand-side economies of scale）&amp;lt;/font&amp;gt;'''”)，是一个经济学和商业方面的术语，用于描述对于一个产品（或服务），每增多一名用户，都会对该产品的其他用户产生新的价值。当网络效应出现时，产品（或服务）的价值，会随着使用该产品（或服务）的人数的增加而增加。&lt;br /&gt;
&lt;br /&gt;
一个经典的例子是电话，越多的人使用电话，对每个电话使用者的价值就越大。一部电话的使用者，本来无意为其他用户创造价值，但当大家都购买电话时，这个行为就产生了正外部性。像微信、微博、Twitter、Facebook 这样的线上社交网络，也是一样，随着更多用户的加入，每个用户获得的价值都在增加。&lt;br /&gt;
&lt;br /&gt;
当网络的价值越来越大，越来越多的人加入时，网络效应还会带来从众效应，从而形成正反馈循环。&lt;br /&gt;
&lt;br /&gt;
网络效应这一表述不仅适用于正向的网络外部性，如电话的案例；消极的网络外部性也可能发生，即用户越多，产品的价值就越低，这种情况通常被称为“拥堵”，例如如交通拥堵或网络拥堵。&lt;br /&gt;
&lt;br /&gt;
== 二、网络效应的起源 ==&lt;br /&gt;
&lt;br /&gt;
网络效应是后专利时代贝尔电话公司的第一任总裁西奥多·韦尔期望获得美国电话服务垄断权的一系列方法中的核心主题。1908 年，当他在贝尔的年报中提出这一概念时，当地和地区电话交换机有 4000 多个，其中大部分最终被并入贝尔系统。&lt;br /&gt;
&lt;br /&gt;
网络效应是由罗伯特·梅特卡夫推广的，称其为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;梅特卡夫定律（Metcalfe's law）&amp;lt;/font&amp;gt;'''。梅特卡夫是以太网的共同发明人之一，也是3Com公司的联合创始人。在销售产品的过程中，梅特卡夫认为，客户要想从网络中获得收益，就需要以太网卡增长到一定的临界值以上，按照梅特卡夫的说法，网络卡销售的原理是：网络的成本与安装的网卡数量成正比，但网络的价值与用户数量的平方成正比。这在代数上表示为成本为 N ，价值为 N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;。虽然这个命题背后的实际数字从来没有确定过，但这个概念使客户可以共享访问昂贵的资源，如磁盘驱动器和打印机，发送电子邮件，并最终访问互联网。&lt;br /&gt;
&lt;br /&gt;
1985-1995年，研究人员 Michael L. Katz、Carl Shapiro、Joseph Farrell 和Garth Saloner 推进了网络效应的经济理论，Rod Beckstrom 在2009年的 BlackHat和 DEF CON会议上提出了描述处于正网络效应状态的网络的数学模型，同时也提出了'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;逆网络效应&amp;lt;/font&amp;gt;'''，并给出了经济模型的定义。&lt;br /&gt;
&lt;br /&gt;
== 三、网络效应的好处 ==&lt;br /&gt;
&lt;br /&gt;
网络效应在达到一定的认购比例后变得显著，称为临界值。在临界值，从商品或服务中获得的价值大于或等于为商品或服务支付的价格。由于商品的价值是由用户群决定的，这就意味着在一定数量的人订阅了服务或购买了商品后，由于价值大于价格，会有更多的人订阅服务或购买商品。&lt;br /&gt;
&lt;br /&gt;
那么，一个关键的商业问题必须是如何在达到临界值之前吸引用户。一种方法是依靠如付款、免费或请求朋友注册等外在的动机。更自然的策略是建立一个没有网络效应的但足够有价值的系统。然后，随着用户数量的增加系统会变得更有价值，继而吸引更广泛的用户群。&lt;br /&gt;
&lt;br /&gt;
超过临界值后用户数量的增加不会无限期地持续下去。到了一定程度后，大多数网络要么拥堵要么饱和，不再吸收用户。&lt;br /&gt;
&lt;br /&gt;
拥堵是由于过度使用而发生的。比如电话网络中，当用户数量低于拥堵点时，每增加一个用户都会给其他每一个用户增加额外的价值。然而，在某些时候，额外用户的增加超过了现有系统的容量。在这一点之后，每增加一个用户都会减少其他每一个用户获得的价值，因为从实际情况来看，每增加一个用户都会增加系统的总负荷，导致信号繁忙、无法获得拨号音、客户服务质量下降。假设拥堵点低于潜在的市场规模，下一个临界点获得的价值将等于付出的代价。如果不提高系统容量，此时网络将停止发展。点对点(P2P)系统是为了在其用户池中分配负载而设计的网络，理论上，这使得P2P网络可以无限扩大规模。基于P2P的电话服务Skype就得益于这种效应，它的增长主要受到市场饱和度的限制。&lt;br /&gt;
&lt;br /&gt;
网络效应通常被误认为是规模经济，但规模经济是由企业规模带来的，而非用户之间的相互操作性造成的。经典规模经济是在生产侧，而网络效应则是在需求侧产生的。&lt;br /&gt;
&lt;br /&gt;
由于网络效应常常与正反馈相关，网络效应与'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;范围经济（Economies of scope）&amp;lt;/font&amp;gt;'''、口碑传播和'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;巴斯扩散模型（Bass Diffusion Model）&amp;lt;/font&amp;gt;'''相关，系统动力学可以作为一种描述这种现象的建模方法。&lt;br /&gt;
&lt;br /&gt;
== 四、技术生命周期 ==&lt;br /&gt;
&lt;br /&gt;
如果一些现有的技术或公司的利益主要基于网络效应，如果在面对如颠覆性的新技术或基于开源标准的竞争等挑战者时，他们开始失去市场份额，那么网络效应给他们带来的利益就会减少，给挑战者带来的利益会增加。&lt;br /&gt;
&lt;br /&gt;
在这一模式中，最终会达到一个临界值，即挑战者的网络效应支配了原在位者的网络效应，在位者被迫加速衰落，挑战者逐渐取代原在位者的地位。&lt;br /&gt;
&lt;br /&gt;
== 五、网络效应带来锁定 ==&lt;br /&gt;
&lt;br /&gt;
因为常常会把用户和供应商锁定在某一个标准上，网络效应也有不好的一面，最常见的例子是微软产品和 QWERTY 键盘。&lt;br /&gt;
&lt;br /&gt;
供应商锁定可以通过开放用户所依赖的标准来缓解，允许各实施方案之间的竞争。然而，这并不能减轻整个行业对标准本身的锁定。事实上，由于现在有多个供应商在降低价格和提高质量，更多的用户可能会采用该标准，从而造成整个行业对该标准的更大锁定。&lt;br /&gt;
&lt;br /&gt;
== 六、网络效应的类型 ==&lt;br /&gt;
&lt;br /&gt;
大体而言，有 2 种网络效应——'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''、'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;间接网络效应&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
=== 直接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
使用量的增加会直接导致其他用户价值的增加。例如，电话系统、传真机、社交网络都意味着用户之间的直接接触。直接网络效应也称为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;同边网络效应(same-side network effect)&amp;lt;/font&amp;gt;'''，一个例子是在线游戏玩家，会从其他在线游戏玩家的参与中获益。&lt;br /&gt;
&lt;br /&gt;
=== 间接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
一种产品或网络使用量的增加，会引起补充产品或网络价值的增加，而补充产品或网络又会增加原产品的价值。补充产品的例子包括软件(如操作系统的Office套件)和DVD(DVD播放器)。这也就是所谓的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;跨边网络效应（cross-side network effect）&amp;lt;/font&amp;gt;'''。Windows和Linux可能不仅争夺用户，而且争夺软件开发商。大多数双边市场或中介市场，都具有间接网络效应的特点。&lt;br /&gt;
&lt;br /&gt;
此外，在分析显示出网络效应的产品时，有两个相关的经济价值来源：&lt;br /&gt;
&lt;br /&gt;
=== 内在价值===&lt;br /&gt;
&lt;br /&gt;
从使用产品中获得价值。&lt;br /&gt;
&lt;br /&gt;
=== 网络价值===&lt;br /&gt;
&lt;br /&gt;
从别人对产品的使用中获得价值。&lt;br /&gt;
&lt;br /&gt;
== 七、负网络外部性 ==&lt;br /&gt;
&lt;br /&gt;
数学意义上的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''，是指与网络效应相比，具有负效应的网络外部性。正的网络外部性会造成正反馈和指数增长，负的网络外部性会造成负反馈和指数衰减。在自然界中，负网络外部性是拉向平衡的力量，是稳定的原因，代表着使系统受到约束的物理限制。&lt;br /&gt;
&lt;br /&gt;
拥堵是随着使用网络的人越来越多导致网络的效率降低，同时降低了已经使用网络的人的价值。交通拥堵、网络带宽有限，都表现出负的网络外部性。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;布雷斯悖论 (Braess’s paradox) &amp;lt;/font&amp;gt;'''表明，增加网络中的路径会对网络的性能产生负面影响。&lt;br /&gt;
&lt;br /&gt;
== 八、互操作性/协同工作能力 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性（Interoperability）&amp;lt;/font&amp;gt;'''是指不同的计算机系统、网络、操作系统和应用程序一起工作并共享信息的能力，具有扩大网络的作用，从而增加网络对消费者的外部价值。互操作性主要是通过增加潜在的连接来实现的，其次是通过吸引新的参与者加入网络。互操作性的其他好处包括减少不确定性、减少锁定、商品化和基于价格的竞争。&lt;br /&gt;
&lt;br /&gt;
互操作性可以通过标准化或其他合作来实现。参与促进互操作性的公司往往面临着紧张关系，因为既要与竞争者合作以扩大产品的潜在市场，又要彼此之间争夺市场份额。&lt;br /&gt;
&lt;br /&gt;
== 九、开源标准 vs 封闭标准 ==&lt;br /&gt;
&lt;br /&gt;
在通信和信息技术中，开源标准和接口往往是通过多家公司的参与而制定的，他们制定开源标准，往往也是互利的。但是，如果有关的通信协议或接口是封闭的标准，网络效应就会使控制这些标准的公司，具有垄断能力。&lt;br /&gt;
&lt;br /&gt;
计算机专业人士普遍认为，微软公司是通过这些手段来维持其垄断地位的。可以看到，微软公司将网络效应发挥到极致的一种方法叫做拥抱、延伸和消灭。&lt;br /&gt;
&lt;br /&gt;
Mirabilis 是一家以色列的创业公司，它是即时通讯（IM）的先驱，被美国在线收购。通过免费赠送他们的 ICQ 产品，并防止他们的客户端软件与其他产品之间的互操作性，他们得以暂时主导了即时通讯的市场。由于网络效应，新的即时通讯用户选择使用 Mirabilis 系统（并加入其庞大的用户网络）比使用竞争系统获得的价值要大得多。作为那个时代的典型，该公司在出售公司之前从未试图从其主导地位中获得利润。&lt;br /&gt;
&lt;br /&gt;
== 十、案例 ==&lt;br /&gt;
&lt;br /&gt;
=== 金融交易所 ===&lt;br /&gt;
&lt;br /&gt;
证券交易所和衍生品交易所，具有'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的特点。市场流动性是决定证券买卖交易成本的主要因素，因为在购买价格与出售同一证券的价格之间存在着买卖差价。随着交易所的买卖双方数量的增加，流动性增加，交易成本降低。这样就会吸引更多的买家和卖家来到交易所。&lt;br /&gt;
&lt;br /&gt;
金融交易所的网络优势，明显体现在新成立的交易所，很难脱离主导交易所。例如，尽管 Eurex US 启动了相同期货合约的交易，但芝加哥期货交易所仍然保持了美国国债期货交易的压倒性优势。同样，尽管受到了 Euronext.Liffe 的挑战，芝加哥商业交易所也保持了在欧洲债券利率期货交易中的主导地位。&lt;br /&gt;
&lt;br /&gt;
=== 软件 ===&lt;br /&gt;
&lt;br /&gt;
在广泛使用的计算机软件市场上，存在着非常强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
对许多人来说，选择办公套件的首要考虑因素包括：学会该办公套件对潜在雇主的价值有多大，以及该软件与其他用户的互动情况如何。也就是说，由于学习使用一个办公套件需要花费很多时间，用户希望将这些时间投入到学习办公套件上，使他们对潜在的雇主和客户最具吸引力。同样，在决定购买哪款办公套件时，寻找已经培训过的员工也是雇主们的一大顾虑。&lt;br /&gt;
&lt;br /&gt;
2007 年，苹果发布了 iPhone，随后是 App store 应用商店。大多数 iPhone 应用，非常依赖 iPhone 已经存在的强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。这样软件应用能够以非常有限的市场营销预算，迅速地增长人气，并传播到庞大的用户群。&lt;br /&gt;
&lt;br /&gt;
免费增值的商业模式已经发展到利用这些'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''，发布一个免费版本，让用户不限制使用，然后对高级功能收费来作为主要收入来源。&lt;br /&gt;
&lt;br /&gt;
=== 网站 ===&lt;br /&gt;
&lt;br /&gt;
许多网站都得益于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。一个例子是网络市场和交易所。例如，如果拍卖没有竞争性，eBay 就不会成为一个特别有用的网站。随着 eBay 上用户数量的增长，拍卖会的竞争越来越激烈，推高了物品的竞价价格。这使得在 eBay 上出售物品更有价值，并将更多的卖家带到 eBay 上，反过来，由于供应量的增加，又促使价格下降。供应量的增加为 eBay 带来了更多的买家。从本质上讲，随着 eBay 用户数量的增加，价格下降，供给增加，越来越多的人发现这个网站是有用的。&lt;br /&gt;
&lt;br /&gt;
20世纪90年代末，一些网络公司将'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''作为商业模式的理由。这些公司的经营理念是，当一个新的市场出现时，如果这个市场包含着强烈的网络效应，公司应该更关心市场份额的增长，而不是马上变得有利可图。其理由是，市场份额将决定哪家公司能够制定技术和营销标准，并使这些公司获得先发优势。&lt;br /&gt;
&lt;br /&gt;
社交网站就是很好的例子。在社交网站上注册的人越多，网站对其注册者越有用。&lt;br /&gt;
&lt;br /&gt;
Alexa互联网使用的技术是跟踪用户的网络浏览模式，因此 Alexa 的相关网站结果会随着更多用户使用该技术而提高。Alexa的网络严重依赖少量的浏览器软件关系，这使得该网络更容易受到竞争的影响。&lt;br /&gt;
&lt;br /&gt;
谷歌也试图通过其 Google AdSense 服务，在广告业务中创造'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。 Google AdSense 在许多小型网站（如博客）上投放广告，利用 Google 的技术来确定哪些广告与哪些博客相关。因此，该服务的目的似乎是作为一个交易所（或广告网络），为许多广告商与许多小网站（如博客）进行匹配。一般来说，Google AdSense 能够接触到的博客越多，就会吸引更多的广告商，使其成为对更多博客最有吸引力的选择，以此类推，使网络对所有参与者更有价值。&lt;br /&gt;
&lt;br /&gt;
相比之下，一个新闻网站的价值，主要与文章的质量成正比，而不是与其他使用网站的人数成正比。&lt;br /&gt;
&lt;br /&gt;
同样，第一代搜索网站也没有经历什么网络效应，因为网站的价值是基于搜索结果的价值。一旦用户认为 Google 的搜索结果更胜一筹，Google 便不费吹灰之力就从雅虎手中赢得了用户。而一些评论家误以为雅虎品牌的价值（随着更多的人知道雅虎品牌，雅虎品牌的价值确实会增加）是保护其广告业务的网络效应。&lt;br /&gt;
&lt;br /&gt;
=== 铁路轨距 ===&lt;br /&gt;
&lt;br /&gt;
在最初的轨距选择和轨距转换决策中存在强烈的网络效应。&lt;br /&gt;
&lt;br /&gt;
即使在放置不与任何其他线路连接的孤立钢轨时，轨道层通常也会选择一个标准轨距，这样他们就可以使用现成的机车车辆。&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;虽然少数厂家生产的机车车辆可以适应不同轨距，但大多数厂家生产的机车车（内容不完整）&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
== 词条编辑日志 ==&lt;br /&gt;
&lt;br /&gt;
* 200818 润悟翻译自 wikipedia https://en.wikipedia.org/wiki/Network_effect&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17935</id>
		<title>网络效应</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17935"/>
		<updated>2020-11-05T15:25:32Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：/* 八、互操作性/协同工作能力 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 一、简介 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络效应(network effect)&amp;lt;/font&amp;gt;'''（也称“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络外部性（network externality）&amp;lt;/font&amp;gt;'''”，或“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;需求方规模经济（demand-side economies of scale）&amp;lt;/font&amp;gt;'''”)，是一个经济学和商业方面的术语，用于描述对于一个产品（或服务），每增多一名用户，都会对该产品的其他用户产生新的价值。当网络效应出现时，产品（或服务）的价值，会随着使用该产品（或服务）的人数的增加而增加。&lt;br /&gt;
&lt;br /&gt;
一个经典的例子是电话，越多的人使用电话，对每个电话使用者的价值就越大。一部电话的使用者，本来无意为其他用户创造价值，但当大家都购买电话时，这个行为就产生了正外部性。像微信、微博、Twitter、Facebook 这样的线上社交网络，也是一样，随着更多用户的加入，每个用户获得的价值都在增加。&lt;br /&gt;
&lt;br /&gt;
当网络的价值越来越大，越来越多的人加入时，网络效应还会带来从众效应，从而形成正反馈循环。&lt;br /&gt;
&lt;br /&gt;
网络效应这一表述不仅适用于正向的网络外部性，如电话的案例；消极的网络外部性也可能发生，即用户越多，产品的价值就越低，这种情况通常被称为“拥堵”，例如如交通拥堵或网络拥堵。&lt;br /&gt;
&lt;br /&gt;
== 二、网络效应的起源 ==&lt;br /&gt;
&lt;br /&gt;
网络效应是后专利时代贝尔电话公司的第一任总裁西奥多·韦尔期望获得美国电话服务垄断权的一系列方法中的核心主题。1908 年，当他在贝尔的年报中提出这一概念时，当地和地区电话交换机有 4000 多个，其中大部分最终被并入贝尔系统。&lt;br /&gt;
&lt;br /&gt;
网络效应是由罗伯特·梅特卡夫推广的，称其为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;梅特卡夫定律（Metcalfe's law）&amp;lt;/font&amp;gt;'''。梅特卡夫是以太网的共同发明人之一，也是3Com公司的联合创始人。在销售产品的过程中，梅特卡夫认为，客户要想从网络中获得收益，就需要以太网卡增长到一定的临界值以上，按照梅特卡夫的说法，网络卡销售的原理是：网络的成本与安装的网卡数量成正比，但网络的价值与用户数量的平方成正比。这在代数上表示为成本为 N ，价值为 N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;。虽然这个命题背后的实际数字从来没有确定过，但这个概念使客户可以共享访问昂贵的资源，如磁盘驱动器和打印机，发送电子邮件，并最终访问互联网。&lt;br /&gt;
&lt;br /&gt;
1985-1995年，研究人员 Michael L. Katz、Carl Shapiro、Joseph Farrell 和Garth Saloner 推进了网络效应的经济理论，Rod Beckstrom 在2009年的 BlackHat和 DEF CON会议上提出了描述处于正网络效应状态的网络的数学模型，同时也提出了'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;逆网络效应&amp;lt;/font&amp;gt;'''，并给出了经济模型的定义。&lt;br /&gt;
&lt;br /&gt;
== 三、网络效应的好处 ==&lt;br /&gt;
&lt;br /&gt;
网络效应在达到一定的认购比例后变得显著，称为临界值。在临界值，从商品或服务中获得的价值大于或等于为商品或服务支付的价格。由于商品的价值是由用户群决定的，这就意味着在一定数量的人订阅了服务或购买了商品后，由于价值大于价格，会有更多的人订阅服务或购买商品。&lt;br /&gt;
&lt;br /&gt;
那么，一个关键的商业问题必须是如何在达到临界值之前吸引用户。一种方法是依靠如付款、免费或请求朋友注册等外在的动机。更自然的策略是建立一个没有网络效应的但足够有价值的系统。然后，随着用户数量的增加系统会变得更有价值，继而吸引更广泛的用户群。&lt;br /&gt;
&lt;br /&gt;
超过临界值后用户数量的增加不会无限期地持续下去。到了一定程度后，大多数网络要么拥堵要么饱和，不再吸收用户。&lt;br /&gt;
&lt;br /&gt;
拥堵是由于过度使用而发生的。比如电话网络中，当用户数量低于拥堵点时，每增加一个用户都会给其他每一个用户增加额外的价值。然而，在某些时候，额外用户的增加超过了现有系统的容量。在这一点之后，每增加一个用户都会减少其他每一个用户获得的价值，因为从实际情况来看，每增加一个用户都会增加系统的总负荷，导致信号繁忙、无法获得拨号音、客户服务质量下降。假设拥堵点低于潜在的市场规模，下一个临界点获得的价值将等于付出的代价。如果不提高系统容量，此时网络将停止发展。点对点(P2P)系统是为了在其用户池中分配负载而设计的网络，理论上，这使得P2P网络可以无限扩大规模。基于P2P的电话服务Skype就得益于这种效应，它的增长主要受到市场饱和度的限制。&lt;br /&gt;
&lt;br /&gt;
网络效应通常被误认为是规模经济，但规模经济是由企业规模带来的，而非用户之间的相互操作性造成的。经典规模经济是在生产侧，而网络效应则是在需求侧产生的。&lt;br /&gt;
&lt;br /&gt;
由于网络效应常常与正反馈相关，网络效应与'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;范围经济（Economies of scope）&amp;lt;/font&amp;gt;'''、口碑传播和'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;巴斯扩散模型（Bass Diffusion Model）&amp;lt;/font&amp;gt;'''相关，系统动力学可以作为一种描述这种现象的建模方法。&lt;br /&gt;
&lt;br /&gt;
== 四、技术生命周期 ==&lt;br /&gt;
&lt;br /&gt;
如果一些现有的技术或公司的利益主要基于网络效应，如果在面对如颠覆性的新技术或基于开源标准的竞争等挑战者时，他们开始失去市场份额，那么网络效应给他们带来的利益就会减少，给挑战者带来的利益会增加。&lt;br /&gt;
&lt;br /&gt;
在这一模式中，最终会达到一个临界值，即挑战者的网络效应支配了原在位者的网络效应，在位者被迫加速衰落，挑战者逐渐取代原在位者的地位。&lt;br /&gt;
&lt;br /&gt;
== 五、网络效应带来锁定 ==&lt;br /&gt;
&lt;br /&gt;
因为常常会把用户和供应商锁定在某一个标准上，网络效应也有不好的一面，最常见的例子是微软产品和 QWERTY 键盘。&lt;br /&gt;
&lt;br /&gt;
供应商锁定可以通过开放用户所依赖的标准来缓解，允许各实施方案之间的竞争。然而，这并不能减轻整个行业对标准本身的锁定。事实上，由于现在有多个供应商在降低价格和提高质量，更多的用户可能会采用该标准，从而造成整个行业对该标准的更大锁定。&lt;br /&gt;
&lt;br /&gt;
== 六、网络效应的类型 ==&lt;br /&gt;
&lt;br /&gt;
大体而言，有 2 种网络效应——'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''、'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;间接网络效应&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
=== 直接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
使用量的增加会直接导致其他用户价值的增加。例如，电话系统、传真机、社交网络都意味着用户之间的直接接触。直接网络效应也称为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;同边网络效应(same-side network effect)&amp;lt;/font&amp;gt;'''，一个例子是在线游戏玩家，会从其他在线游戏玩家的参与中获益。&lt;br /&gt;
&lt;br /&gt;
=== 间接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
一种产品或网络使用量的增加，会引起补充产品或网络价值的增加，而补充产品或网络又会增加原产品的价值。补充产品的例子包括软件(如操作系统的Office套件)和DVD(DVD播放器)。这也就是所谓的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;跨边网络效应（cross-side network effect）&amp;lt;/font&amp;gt;'''。Windows和Linux可能不仅争夺用户，而且争夺软件开发商。大多数双边市场或中介市场，都具有间接网络效应的特点。&lt;br /&gt;
&lt;br /&gt;
此外，在分析显示出网络效应的产品时，有两个相关的经济价值来源：&lt;br /&gt;
&lt;br /&gt;
=== 内在价值===&lt;br /&gt;
&lt;br /&gt;
从使用产品中获得价值。&lt;br /&gt;
&lt;br /&gt;
=== 网络价值===&lt;br /&gt;
&lt;br /&gt;
从别人对产品的使用中获得价值。&lt;br /&gt;
&lt;br /&gt;
== 七、负网络外部性 ==&lt;br /&gt;
&lt;br /&gt;
数学意义上的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''，是指与网络效应相比，具有负效应的网络外部性。正的网络外部性会造成正反馈和指数增长，负的网络外部性会造成负反馈和指数衰减。在自然界中，负网络外部性是拉向平衡的力量，是稳定的原因，代表着使系统受到约束的物理限制。&lt;br /&gt;
&lt;br /&gt;
拥堵是随着使用网络的人越来越多导致网络的效率降低，同时降低了已经使用网络的人的价值。交通拥堵、网络带宽有限，都表现出负的网络外部性。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;布雷斯悖论 (Braess’s paradox) &amp;lt;/font&amp;gt;'''表明，增加网络中的路径会对网络的性能产生负面影响。&lt;br /&gt;
&lt;br /&gt;
== 八、互操作性/协同工作能力 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性（Interoperability）&amp;lt;/font&amp;gt;'''是指不同的计算机系统、网络、操作系统和应用程序一起工作并共享信息的能力，具有扩大网络的作用，从而增加网络对消费者的外部价值。互操作性主要是通过增加潜在的连接来实现的，其次是通过吸引新的参与者加入网络。互操作性的其他好处包括减少不确定性、减少锁定、商品化和基于价格的竞争。&lt;br /&gt;
&lt;br /&gt;
互操作性可以通过标准化或其他合作来实现。参与促进互操作性的公司往往面临着紧张关系，因为既要与竞争者合作以扩大产品的潜在市场，又要彼此之间争夺市场份额。&lt;br /&gt;
&lt;br /&gt;
== 九、开源标准 vs 封闭标准 ==&lt;br /&gt;
&lt;br /&gt;
在通信和信息技术中，开源标准和接口往往是通过多家公司的参与而制定的，他们制定开源标准，往往也是互利的。但是，如果有关的通信协议或接口是封闭的标准，网络效应就会使控制这些标准的公司，具有垄断能力。&lt;br /&gt;
&lt;br /&gt;
计算机专业人士普遍认为，微软公司是通过这些手段来维持其垄断地位的。可以看到，微软公司将网络效应发挥到极致的一种方法叫做拥抱、延伸和消灭。&lt;br /&gt;
&lt;br /&gt;
Mirabilis 是一家以色列的创业公司，它是即时通讯（IM）的先驱，被美国在线收购。通过免费赠送他们的 ICQ 产品，并防止他们的客户端软件与其他产品之间的互操作性，他们得以暂时主导了即时通讯的市场。由于网络效应，新的即时通讯用户选择使用 Mirabilis 系统（并加入其庞大的用户网络）比使用竞争系统获得的价值要大得多。作为那个时代的典型，该公司在出售公司之前从未试图从其主导地位中获得利润。&lt;br /&gt;
&lt;br /&gt;
== 十、案例 ==&lt;br /&gt;
&lt;br /&gt;
=== 金融交易所 ===&lt;br /&gt;
&lt;br /&gt;
证券交易所和衍生品交易所，具有'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的特点。市场流动性是决定证券买卖交易成本的主要因素，因为在购买价格与出售同一证券的价格之间存在着买卖差价。随着交易所的买卖双方数量的增加，流动性增加，交易成本降低。这样就会吸引更多的买家和卖家来到交易所。&lt;br /&gt;
&lt;br /&gt;
金融交易所的网络优势，明显体现在新成立的交易所，很难脱离主导交易所。例如，尽管 Eurex US 启动了相同期货合约的交易，但芝加哥期货交易所仍然保持了美国国债期货交易的压倒性优势。同样，尽管受到了 Euronext.Liffe 的挑战，芝加哥商业交易所也保持了在欧洲债券利率期货交易中的主导地位。&lt;br /&gt;
&lt;br /&gt;
=== 软件 ===&lt;br /&gt;
&lt;br /&gt;
在广泛使用的计算机软件市场上，存在着非常强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
对许多人来说，选择办公套件的首要考虑因素包括：学会该办公套件对潜在雇主的价值有多大，以及该软件与其他用户的互动情况如何。也就是说，由于学习使用一个办公套件需要花费很多时间，用户希望将这些时间投入到学习办公套件上，使他们对潜在的雇主和客户最具吸引力。同样，在决定购买哪款办公套件时，寻找已经培训过的员工也是雇主们的一大顾虑。&lt;br /&gt;
&lt;br /&gt;
2007 年，苹果发布了 iPhone，随后是 App store 应用商店。大多数 iPhone 应用，非常依赖 iPhone 已经存在的强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。这样软件应用能够以非常有限的市场营销预算，迅速地增长人气，并传播到庞大的用户群。&lt;br /&gt;
&lt;br /&gt;
免费增值的商业模式已经发展到利用这些'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''，发布一个免费版本，让用户不限制使用，然后对高级功能收费来作为主要收入来源。&lt;br /&gt;
&lt;br /&gt;
=== 网站 ===&lt;br /&gt;
&lt;br /&gt;
许多网站都得益于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。一个例子是网络市场和交易所。例如，如果拍卖没有竞争性，eBay 就不会成为一个特别有用的网站。随着 eBay 上用户数量的增长，拍卖会的竞争越来越激烈，推高了物品的竞价价格。这使得在 eBay 上出售物品更有价值，并将更多的卖家带到 eBay 上，反过来，由于供应量的增加，又促使价格下降。供应量的增加为 eBay 带来了更多的买家。从本质上讲，随着 eBay 用户数量的增加，价格下降，供给增加，越来越多的人发现这个网站是有用的。&lt;br /&gt;
&lt;br /&gt;
20世纪90年代末，一些网络公司将'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''作为商业模式的理由。这些公司的经营理念是，当一个新的市场出现时，如果这个市场包含着强烈的网络效应，公司应该更关心市场份额的增长，而不是马上变得有利可图。其理由是，市场份额将决定哪家公司能够制定技术和营销标准，并使这些公司获得先发优势。&lt;br /&gt;
&lt;br /&gt;
社交网站就是很好的例子。在社交网站上注册的人越多，网站对其注册者越有用。&lt;br /&gt;
&lt;br /&gt;
Alexa互联网使用的技术是跟踪用户的网络浏览模式，因此 Alexa 的相关网站结果会随着更多用户使用该技术而提高。Alexa的网络严重依赖少量的浏览器软件关系，这使得该网络更容易受到竞争的影响。&lt;br /&gt;
&lt;br /&gt;
谷歌也试图通过其 Google AdSense 服务，在广告业务中创造'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。 Google AdSense 在许多小型网站（如博客）上投放广告，利用 Google 的技术来确定哪些广告与哪些博客相关。因此，该服务的目的似乎是作为一个交易所（或广告网络），为许多广告商与许多小网站（如博客）进行匹配。一般来说，Google AdSense 能够接触到的博客越多，就会吸引更多的广告商，使其成为对更多博客最有吸引力的选择，以此类推，使网络对所有参与者更有价值。&lt;br /&gt;
&lt;br /&gt;
相比之下，一个新闻网站的价值，主要与文章的质量成正比，而不是与其他使用网站的人数成正比。&lt;br /&gt;
&lt;br /&gt;
同样，第一代搜索网站也没有经历什么网络效应，因为网站的价值是基于搜索结果的价值。一旦用户认为 Google 的搜索结果更胜一筹，Google 便不费吹灰之力就从雅虎手中赢得了用户。而一些评论家误以为雅虎品牌的价值（随着更多的人知道雅虎品牌，雅虎品牌的价值确实会增加）是保护其广告业务的网络效应。&lt;br /&gt;
&lt;br /&gt;
=== 铁路轨距 ===&lt;br /&gt;
&lt;br /&gt;
在最初的轨距选择和轨距转换决策中，存在着强烈的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
即使在放置不与任何其他线路连接的孤立钢轨时，轨道层通常也会选择一个标准轨距，这样他们就可以使用现成的机车车辆。&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;虽然少数厂家生产的机车车辆可以适应不同轨距，但大多数厂家生产的机车车（内容不完整）&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
== 词条编辑日志 ==&lt;br /&gt;
&lt;br /&gt;
* 200818 润悟翻译自 wikipedia https://en.wikipedia.org/wiki/Network_effect&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17934</id>
		<title>网络效应</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17934"/>
		<updated>2020-11-05T15:22:41Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：/* 七、负网络外部性 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 一、简介 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络效应(network effect)&amp;lt;/font&amp;gt;'''（也称“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络外部性（network externality）&amp;lt;/font&amp;gt;'''”，或“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;需求方规模经济（demand-side economies of scale）&amp;lt;/font&amp;gt;'''”)，是一个经济学和商业方面的术语，用于描述对于一个产品（或服务），每增多一名用户，都会对该产品的其他用户产生新的价值。当网络效应出现时，产品（或服务）的价值，会随着使用该产品（或服务）的人数的增加而增加。&lt;br /&gt;
&lt;br /&gt;
一个经典的例子是电话，越多的人使用电话，对每个电话使用者的价值就越大。一部电话的使用者，本来无意为其他用户创造价值，但当大家都购买电话时，这个行为就产生了正外部性。像微信、微博、Twitter、Facebook 这样的线上社交网络，也是一样，随着更多用户的加入，每个用户获得的价值都在增加。&lt;br /&gt;
&lt;br /&gt;
当网络的价值越来越大，越来越多的人加入时，网络效应还会带来从众效应，从而形成正反馈循环。&lt;br /&gt;
&lt;br /&gt;
网络效应这一表述不仅适用于正向的网络外部性，如电话的案例；消极的网络外部性也可能发生，即用户越多，产品的价值就越低，这种情况通常被称为“拥堵”，例如如交通拥堵或网络拥堵。&lt;br /&gt;
&lt;br /&gt;
== 二、网络效应的起源 ==&lt;br /&gt;
&lt;br /&gt;
网络效应是后专利时代贝尔电话公司的第一任总裁西奥多·韦尔期望获得美国电话服务垄断权的一系列方法中的核心主题。1908 年，当他在贝尔的年报中提出这一概念时，当地和地区电话交换机有 4000 多个，其中大部分最终被并入贝尔系统。&lt;br /&gt;
&lt;br /&gt;
网络效应是由罗伯特·梅特卡夫推广的，称其为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;梅特卡夫定律（Metcalfe's law）&amp;lt;/font&amp;gt;'''。梅特卡夫是以太网的共同发明人之一，也是3Com公司的联合创始人。在销售产品的过程中，梅特卡夫认为，客户要想从网络中获得收益，就需要以太网卡增长到一定的临界值以上，按照梅特卡夫的说法，网络卡销售的原理是：网络的成本与安装的网卡数量成正比，但网络的价值与用户数量的平方成正比。这在代数上表示为成本为 N ，价值为 N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;。虽然这个命题背后的实际数字从来没有确定过，但这个概念使客户可以共享访问昂贵的资源，如磁盘驱动器和打印机，发送电子邮件，并最终访问互联网。&lt;br /&gt;
&lt;br /&gt;
1985-1995年，研究人员 Michael L. Katz、Carl Shapiro、Joseph Farrell 和Garth Saloner 推进了网络效应的经济理论，Rod Beckstrom 在2009年的 BlackHat和 DEF CON会议上提出了描述处于正网络效应状态的网络的数学模型，同时也提出了'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;逆网络效应&amp;lt;/font&amp;gt;'''，并给出了经济模型的定义。&lt;br /&gt;
&lt;br /&gt;
== 三、网络效应的好处 ==&lt;br /&gt;
&lt;br /&gt;
网络效应在达到一定的认购比例后变得显著，称为临界值。在临界值，从商品或服务中获得的价值大于或等于为商品或服务支付的价格。由于商品的价值是由用户群决定的，这就意味着在一定数量的人订阅了服务或购买了商品后，由于价值大于价格，会有更多的人订阅服务或购买商品。&lt;br /&gt;
&lt;br /&gt;
那么，一个关键的商业问题必须是如何在达到临界值之前吸引用户。一种方法是依靠如付款、免费或请求朋友注册等外在的动机。更自然的策略是建立一个没有网络效应的但足够有价值的系统。然后，随着用户数量的增加系统会变得更有价值，继而吸引更广泛的用户群。&lt;br /&gt;
&lt;br /&gt;
超过临界值后用户数量的增加不会无限期地持续下去。到了一定程度后，大多数网络要么拥堵要么饱和，不再吸收用户。&lt;br /&gt;
&lt;br /&gt;
拥堵是由于过度使用而发生的。比如电话网络中，当用户数量低于拥堵点时，每增加一个用户都会给其他每一个用户增加额外的价值。然而，在某些时候，额外用户的增加超过了现有系统的容量。在这一点之后，每增加一个用户都会减少其他每一个用户获得的价值，因为从实际情况来看，每增加一个用户都会增加系统的总负荷，导致信号繁忙、无法获得拨号音、客户服务质量下降。假设拥堵点低于潜在的市场规模，下一个临界点获得的价值将等于付出的代价。如果不提高系统容量，此时网络将停止发展。点对点(P2P)系统是为了在其用户池中分配负载而设计的网络，理论上，这使得P2P网络可以无限扩大规模。基于P2P的电话服务Skype就得益于这种效应，它的增长主要受到市场饱和度的限制。&lt;br /&gt;
&lt;br /&gt;
网络效应通常被误认为是规模经济，但规模经济是由企业规模带来的，而非用户之间的相互操作性造成的。经典规模经济是在生产侧，而网络效应则是在需求侧产生的。&lt;br /&gt;
&lt;br /&gt;
由于网络效应常常与正反馈相关，网络效应与'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;范围经济（Economies of scope）&amp;lt;/font&amp;gt;'''、口碑传播和'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;巴斯扩散模型（Bass Diffusion Model）&amp;lt;/font&amp;gt;'''相关，系统动力学可以作为一种描述这种现象的建模方法。&lt;br /&gt;
&lt;br /&gt;
== 四、技术生命周期 ==&lt;br /&gt;
&lt;br /&gt;
如果一些现有的技术或公司的利益主要基于网络效应，如果在面对如颠覆性的新技术或基于开源标准的竞争等挑战者时，他们开始失去市场份额，那么网络效应给他们带来的利益就会减少，给挑战者带来的利益会增加。&lt;br /&gt;
&lt;br /&gt;
在这一模式中，最终会达到一个临界值，即挑战者的网络效应支配了原在位者的网络效应，在位者被迫加速衰落，挑战者逐渐取代原在位者的地位。&lt;br /&gt;
&lt;br /&gt;
== 五、网络效应带来锁定 ==&lt;br /&gt;
&lt;br /&gt;
因为常常会把用户和供应商锁定在某一个标准上，网络效应也有不好的一面，最常见的例子是微软产品和 QWERTY 键盘。&lt;br /&gt;
&lt;br /&gt;
供应商锁定可以通过开放用户所依赖的标准来缓解，允许各实施方案之间的竞争。然而，这并不能减轻整个行业对标准本身的锁定。事实上，由于现在有多个供应商在降低价格和提高质量，更多的用户可能会采用该标准，从而造成整个行业对该标准的更大锁定。&lt;br /&gt;
&lt;br /&gt;
== 六、网络效应的类型 ==&lt;br /&gt;
&lt;br /&gt;
大体而言，有 2 种网络效应——'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''、'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;间接网络效应&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
=== 直接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
使用量的增加会直接导致其他用户价值的增加。例如，电话系统、传真机、社交网络都意味着用户之间的直接接触。直接网络效应也称为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;同边网络效应(same-side network effect)&amp;lt;/font&amp;gt;'''，一个例子是在线游戏玩家，会从其他在线游戏玩家的参与中获益。&lt;br /&gt;
&lt;br /&gt;
=== 间接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
一种产品或网络使用量的增加，会引起补充产品或网络价值的增加，而补充产品或网络又会增加原产品的价值。补充产品的例子包括软件(如操作系统的Office套件)和DVD(DVD播放器)。这也就是所谓的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;跨边网络效应（cross-side network effect）&amp;lt;/font&amp;gt;'''。Windows和Linux可能不仅争夺用户，而且争夺软件开发商。大多数双边市场或中介市场，都具有间接网络效应的特点。&lt;br /&gt;
&lt;br /&gt;
此外，在分析显示出网络效应的产品时，有两个相关的经济价值来源：&lt;br /&gt;
&lt;br /&gt;
=== 内在价值===&lt;br /&gt;
&lt;br /&gt;
从使用产品中获得价值。&lt;br /&gt;
&lt;br /&gt;
=== 网络价值===&lt;br /&gt;
&lt;br /&gt;
从别人对产品的使用中获得价值。&lt;br /&gt;
&lt;br /&gt;
== 七、负网络外部性 ==&lt;br /&gt;
&lt;br /&gt;
数学意义上的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''，是指与网络效应相比，具有负效应的网络外部性。正的网络外部性会造成正反馈和指数增长，负的网络外部性会造成负反馈和指数衰减。在自然界中，负网络外部性是拉向平衡的力量，是稳定的原因，代表着使系统受到约束的物理限制。&lt;br /&gt;
&lt;br /&gt;
拥堵是随着使用网络的人越来越多导致网络的效率降低，同时降低了已经使用网络的人的价值。交通拥堵、网络带宽有限，都表现出负的网络外部性。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;布雷斯悖论 (Braess’s paradox) &amp;lt;/font&amp;gt;'''表明，增加网络中的路径会对网络的性能产生负面影响。&lt;br /&gt;
&lt;br /&gt;
== 八、互操作性/协同工作能力 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''具有使网络扩大的作用，从而增加网络对消费者的外部价值。'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''主要是通过增加潜在的连接来实现的，其次是通过吸引新的参与者加入网络。互操作性的其他好处包括减少不确定性、减少锁定、商品化和基于价格的竞争。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''可以通过标准化或其他合作来实现。参与促进'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''的公司，既要与竞争者合作以扩大产品的潜在市场，又要彼此之间争夺市场份额，他们往往面临着紧张关系。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 九、开源标准 vs 封闭标准 ==&lt;br /&gt;
&lt;br /&gt;
在通信和信息技术中，开源标准和接口往往是通过多家公司的参与而制定的，他们制定开源标准，往往也是互利的。但是，如果有关的通信协议或接口是封闭的标准，网络效应就会使控制这些标准的公司，具有垄断能力。&lt;br /&gt;
&lt;br /&gt;
计算机专业人士普遍认为，微软公司是通过这些手段来维持其垄断地位的。可以看到，微软公司将网络效应发挥到极致的一种方法叫做拥抱、延伸和消灭。&lt;br /&gt;
&lt;br /&gt;
Mirabilis 是一家以色列的创业公司，它是即时通讯（IM）的先驱，被美国在线收购。通过免费赠送他们的 ICQ 产品，并防止他们的客户端软件与其他产品之间的互操作性，他们得以暂时主导了即时通讯的市场。由于网络效应，新的即时通讯用户选择使用 Mirabilis 系统（并加入其庞大的用户网络）比使用竞争系统获得的价值要大得多。作为那个时代的典型，该公司在出售公司之前从未试图从其主导地位中获得利润。&lt;br /&gt;
&lt;br /&gt;
== 十、案例 ==&lt;br /&gt;
&lt;br /&gt;
=== 金融交易所 ===&lt;br /&gt;
&lt;br /&gt;
证券交易所和衍生品交易所，具有'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的特点。市场流动性是决定证券买卖交易成本的主要因素，因为在购买价格与出售同一证券的价格之间存在着买卖差价。随着交易所的买卖双方数量的增加，流动性增加，交易成本降低。这样就会吸引更多的买家和卖家来到交易所。&lt;br /&gt;
&lt;br /&gt;
金融交易所的网络优势，明显体现在新成立的交易所，很难脱离主导交易所。例如，尽管 Eurex US 启动了相同期货合约的交易，但芝加哥期货交易所仍然保持了美国国债期货交易的压倒性优势。同样，尽管受到了 Euronext.Liffe 的挑战，芝加哥商业交易所也保持了在欧洲债券利率期货交易中的主导地位。&lt;br /&gt;
&lt;br /&gt;
=== 软件 ===&lt;br /&gt;
&lt;br /&gt;
在广泛使用的计算机软件市场上，存在着非常强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
对许多人来说，选择办公套件的首要考虑因素包括：学会该办公套件对潜在雇主的价值有多大，以及该软件与其他用户的互动情况如何。也就是说，由于学习使用一个办公套件需要花费很多时间，用户希望将这些时间投入到学习办公套件上，使他们对潜在的雇主和客户最具吸引力。同样，在决定购买哪款办公套件时，寻找已经培训过的员工也是雇主们的一大顾虑。&lt;br /&gt;
&lt;br /&gt;
2007 年，苹果发布了 iPhone，随后是 App store 应用商店。大多数 iPhone 应用，非常依赖 iPhone 已经存在的强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。这样软件应用能够以非常有限的市场营销预算，迅速地增长人气，并传播到庞大的用户群。&lt;br /&gt;
&lt;br /&gt;
免费增值的商业模式已经发展到利用这些'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''，发布一个免费版本，让用户不限制使用，然后对高级功能收费来作为主要收入来源。&lt;br /&gt;
&lt;br /&gt;
=== 网站 ===&lt;br /&gt;
&lt;br /&gt;
许多网站都得益于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。一个例子是网络市场和交易所。例如，如果拍卖没有竞争性，eBay 就不会成为一个特别有用的网站。随着 eBay 上用户数量的增长，拍卖会的竞争越来越激烈，推高了物品的竞价价格。这使得在 eBay 上出售物品更有价值，并将更多的卖家带到 eBay 上，反过来，由于供应量的增加，又促使价格下降。供应量的增加为 eBay 带来了更多的买家。从本质上讲，随着 eBay 用户数量的增加，价格下降，供给增加，越来越多的人发现这个网站是有用的。&lt;br /&gt;
&lt;br /&gt;
20世纪90年代末，一些网络公司将'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''作为商业模式的理由。这些公司的经营理念是，当一个新的市场出现时，如果这个市场包含着强烈的网络效应，公司应该更关心市场份额的增长，而不是马上变得有利可图。其理由是，市场份额将决定哪家公司能够制定技术和营销标准，并使这些公司获得先发优势。&lt;br /&gt;
&lt;br /&gt;
社交网站就是很好的例子。在社交网站上注册的人越多，网站对其注册者越有用。&lt;br /&gt;
&lt;br /&gt;
Alexa互联网使用的技术是跟踪用户的网络浏览模式，因此 Alexa 的相关网站结果会随着更多用户使用该技术而提高。Alexa的网络严重依赖少量的浏览器软件关系，这使得该网络更容易受到竞争的影响。&lt;br /&gt;
&lt;br /&gt;
谷歌也试图通过其 Google AdSense 服务，在广告业务中创造'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。 Google AdSense 在许多小型网站（如博客）上投放广告，利用 Google 的技术来确定哪些广告与哪些博客相关。因此，该服务的目的似乎是作为一个交易所（或广告网络），为许多广告商与许多小网站（如博客）进行匹配。一般来说，Google AdSense 能够接触到的博客越多，就会吸引更多的广告商，使其成为对更多博客最有吸引力的选择，以此类推，使网络对所有参与者更有价值。&lt;br /&gt;
&lt;br /&gt;
相比之下，一个新闻网站的价值，主要与文章的质量成正比，而不是与其他使用网站的人数成正比。&lt;br /&gt;
&lt;br /&gt;
同样，第一代搜索网站也没有经历什么网络效应，因为网站的价值是基于搜索结果的价值。一旦用户认为 Google 的搜索结果更胜一筹，Google 便不费吹灰之力就从雅虎手中赢得了用户。而一些评论家误以为雅虎品牌的价值（随着更多的人知道雅虎品牌，雅虎品牌的价值确实会增加）是保护其广告业务的网络效应。&lt;br /&gt;
&lt;br /&gt;
=== 铁路轨距 ===&lt;br /&gt;
&lt;br /&gt;
在最初的轨距选择和轨距转换决策中，存在着强烈的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
即使在放置不与任何其他线路连接的孤立钢轨时，轨道层通常也会选择一个标准轨距，这样他们就可以使用现成的机车车辆。&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;虽然少数厂家生产的机车车辆可以适应不同轨距，但大多数厂家生产的机车车（内容不完整）&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
== 词条编辑日志 ==&lt;br /&gt;
&lt;br /&gt;
* 200818 润悟翻译自 wikipedia https://en.wikipedia.org/wiki/Network_effect&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17933</id>
		<title>网络效应</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17933"/>
		<updated>2020-11-05T15:18:41Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：/* 直接网络效应 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 一、简介 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络效应(network effect)&amp;lt;/font&amp;gt;'''（也称“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络外部性（network externality）&amp;lt;/font&amp;gt;'''”，或“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;需求方规模经济（demand-side economies of scale）&amp;lt;/font&amp;gt;'''”)，是一个经济学和商业方面的术语，用于描述对于一个产品（或服务），每增多一名用户，都会对该产品的其他用户产生新的价值。当网络效应出现时，产品（或服务）的价值，会随着使用该产品（或服务）的人数的增加而增加。&lt;br /&gt;
&lt;br /&gt;
一个经典的例子是电话，越多的人使用电话，对每个电话使用者的价值就越大。一部电话的使用者，本来无意为其他用户创造价值，但当大家都购买电话时，这个行为就产生了正外部性。像微信、微博、Twitter、Facebook 这样的线上社交网络，也是一样，随着更多用户的加入，每个用户获得的价值都在增加。&lt;br /&gt;
&lt;br /&gt;
当网络的价值越来越大，越来越多的人加入时，网络效应还会带来从众效应，从而形成正反馈循环。&lt;br /&gt;
&lt;br /&gt;
网络效应这一表述不仅适用于正向的网络外部性，如电话的案例；消极的网络外部性也可能发生，即用户越多，产品的价值就越低，这种情况通常被称为“拥堵”，例如如交通拥堵或网络拥堵。&lt;br /&gt;
&lt;br /&gt;
== 二、网络效应的起源 ==&lt;br /&gt;
&lt;br /&gt;
网络效应是后专利时代贝尔电话公司的第一任总裁西奥多·韦尔期望获得美国电话服务垄断权的一系列方法中的核心主题。1908 年，当他在贝尔的年报中提出这一概念时，当地和地区电话交换机有 4000 多个，其中大部分最终被并入贝尔系统。&lt;br /&gt;
&lt;br /&gt;
网络效应是由罗伯特·梅特卡夫推广的，称其为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;梅特卡夫定律（Metcalfe's law）&amp;lt;/font&amp;gt;'''。梅特卡夫是以太网的共同发明人之一，也是3Com公司的联合创始人。在销售产品的过程中，梅特卡夫认为，客户要想从网络中获得收益，就需要以太网卡增长到一定的临界值以上，按照梅特卡夫的说法，网络卡销售的原理是：网络的成本与安装的网卡数量成正比，但网络的价值与用户数量的平方成正比。这在代数上表示为成本为 N ，价值为 N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;。虽然这个命题背后的实际数字从来没有确定过，但这个概念使客户可以共享访问昂贵的资源，如磁盘驱动器和打印机，发送电子邮件，并最终访问互联网。&lt;br /&gt;
&lt;br /&gt;
1985-1995年，研究人员 Michael L. Katz、Carl Shapiro、Joseph Farrell 和Garth Saloner 推进了网络效应的经济理论，Rod Beckstrom 在2009年的 BlackHat和 DEF CON会议上提出了描述处于正网络效应状态的网络的数学模型，同时也提出了'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;逆网络效应&amp;lt;/font&amp;gt;'''，并给出了经济模型的定义。&lt;br /&gt;
&lt;br /&gt;
== 三、网络效应的好处 ==&lt;br /&gt;
&lt;br /&gt;
网络效应在达到一定的认购比例后变得显著，称为临界值。在临界值，从商品或服务中获得的价值大于或等于为商品或服务支付的价格。由于商品的价值是由用户群决定的，这就意味着在一定数量的人订阅了服务或购买了商品后，由于价值大于价格，会有更多的人订阅服务或购买商品。&lt;br /&gt;
&lt;br /&gt;
那么，一个关键的商业问题必须是如何在达到临界值之前吸引用户。一种方法是依靠如付款、免费或请求朋友注册等外在的动机。更自然的策略是建立一个没有网络效应的但足够有价值的系统。然后，随着用户数量的增加系统会变得更有价值，继而吸引更广泛的用户群。&lt;br /&gt;
&lt;br /&gt;
超过临界值后用户数量的增加不会无限期地持续下去。到了一定程度后，大多数网络要么拥堵要么饱和，不再吸收用户。&lt;br /&gt;
&lt;br /&gt;
拥堵是由于过度使用而发生的。比如电话网络中，当用户数量低于拥堵点时，每增加一个用户都会给其他每一个用户增加额外的价值。然而，在某些时候，额外用户的增加超过了现有系统的容量。在这一点之后，每增加一个用户都会减少其他每一个用户获得的价值，因为从实际情况来看，每增加一个用户都会增加系统的总负荷，导致信号繁忙、无法获得拨号音、客户服务质量下降。假设拥堵点低于潜在的市场规模，下一个临界点获得的价值将等于付出的代价。如果不提高系统容量，此时网络将停止发展。点对点(P2P)系统是为了在其用户池中分配负载而设计的网络，理论上，这使得P2P网络可以无限扩大规模。基于P2P的电话服务Skype就得益于这种效应，它的增长主要受到市场饱和度的限制。&lt;br /&gt;
&lt;br /&gt;
网络效应通常被误认为是规模经济，但规模经济是由企业规模带来的，而非用户之间的相互操作性造成的。经典规模经济是在生产侧，而网络效应则是在需求侧产生的。&lt;br /&gt;
&lt;br /&gt;
由于网络效应常常与正反馈相关，网络效应与'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;范围经济（Economies of scope）&amp;lt;/font&amp;gt;'''、口碑传播和'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;巴斯扩散模型（Bass Diffusion Model）&amp;lt;/font&amp;gt;'''相关，系统动力学可以作为一种描述这种现象的建模方法。&lt;br /&gt;
&lt;br /&gt;
== 四、技术生命周期 ==&lt;br /&gt;
&lt;br /&gt;
如果一些现有的技术或公司的利益主要基于网络效应，如果在面对如颠覆性的新技术或基于开源标准的竞争等挑战者时，他们开始失去市场份额，那么网络效应给他们带来的利益就会减少，给挑战者带来的利益会增加。&lt;br /&gt;
&lt;br /&gt;
在这一模式中，最终会达到一个临界值，即挑战者的网络效应支配了原在位者的网络效应，在位者被迫加速衰落，挑战者逐渐取代原在位者的地位。&lt;br /&gt;
&lt;br /&gt;
== 五、网络效应带来锁定 ==&lt;br /&gt;
&lt;br /&gt;
因为常常会把用户和供应商锁定在某一个标准上，网络效应也有不好的一面，最常见的例子是微软产品和 QWERTY 键盘。&lt;br /&gt;
&lt;br /&gt;
供应商锁定可以通过开放用户所依赖的标准来缓解，允许各实施方案之间的竞争。然而，这并不能减轻整个行业对标准本身的锁定。事实上，由于现在有多个供应商在降低价格和提高质量，更多的用户可能会采用该标准，从而造成整个行业对该标准的更大锁定。&lt;br /&gt;
&lt;br /&gt;
== 六、网络效应的类型 ==&lt;br /&gt;
&lt;br /&gt;
大体而言，有 2 种网络效应——'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''、'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;间接网络效应&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
=== 直接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
使用量的增加会直接导致其他用户价值的增加。例如，电话系统、传真机、社交网络都意味着用户之间的直接接触。直接网络效应也称为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;同边网络效应(same-side network effect)&amp;lt;/font&amp;gt;'''，一个例子是在线游戏玩家，会从其他在线游戏玩家的参与中获益。&lt;br /&gt;
&lt;br /&gt;
=== 间接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
一种产品或网络使用量的增加，会引起补充产品或网络价值的增加，而补充产品或网络又会增加原产品的价值。补充产品的例子包括软件(如操作系统的Office套件)和DVD(DVD播放器)。这也就是所谓的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;跨边网络效应（cross-side network effect）&amp;lt;/font&amp;gt;'''。Windows和Linux可能不仅争夺用户，而且争夺软件开发商。大多数双边市场或中介市场，都具有间接网络效应的特点。&lt;br /&gt;
&lt;br /&gt;
此外，在分析显示出网络效应的产品时，有两个相关的经济价值来源：&lt;br /&gt;
&lt;br /&gt;
=== 内在价值===&lt;br /&gt;
&lt;br /&gt;
从使用产品中获得价值。&lt;br /&gt;
&lt;br /&gt;
=== 网络价值===&lt;br /&gt;
&lt;br /&gt;
从别人对产品的使用中获得价值。&lt;br /&gt;
&lt;br /&gt;
== 七、负网络外部性 ==&lt;br /&gt;
&lt;br /&gt;
数学意义上的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''，是指与正常（正）网络效应相比，具有负效应的网络外部性。正的网络外部性（网络效应）会造成正反馈和指数增长，负的网络外部性会造成负反馈和指数衰减。在自然界中，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''是拉向平衡的力量，是稳定的原因，代表着使系统受到约束的物理限制。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;拥堵&amp;lt;/font&amp;gt;'''的发生，是随着使用网络的人越来越多，网络的效率就会降低，这就降低了已经使用网络的人的价值。使高速公路超载的交通拥堵、带宽有限的连接上的网络拥堵，都表现出负的网络外部性。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;布雷斯悖论 (Braess’s paradox) &amp;lt;/font&amp;gt;'''表明，增加网络中的路径，会对网络的性能产生负面影响。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 八、互操作性/协同工作能力 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''具有使网络扩大的作用，从而增加网络对消费者的外部价值。'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''主要是通过增加潜在的连接来实现的，其次是通过吸引新的参与者加入网络。互操作性的其他好处包括减少不确定性、减少锁定、商品化和基于价格的竞争。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''可以通过标准化或其他合作来实现。参与促进'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''的公司，既要与竞争者合作以扩大产品的潜在市场，又要彼此之间争夺市场份额，他们往往面临着紧张关系。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 九、开源标准 vs 封闭标准 ==&lt;br /&gt;
&lt;br /&gt;
在通信和信息技术中，开源标准和接口往往是通过多家公司的参与而制定的，他们制定开源标准，往往也是互利的。但是，如果有关的通信协议或接口是封闭的标准，网络效应就会使控制这些标准的公司，具有垄断能力。&lt;br /&gt;
&lt;br /&gt;
计算机专业人士普遍认为，微软公司是通过这些手段来维持其垄断地位的。可以看到，微软公司将网络效应发挥到极致的一种方法叫做拥抱、延伸和消灭。&lt;br /&gt;
&lt;br /&gt;
Mirabilis 是一家以色列的创业公司，它是即时通讯（IM）的先驱，被美国在线收购。通过免费赠送他们的 ICQ 产品，并防止他们的客户端软件与其他产品之间的互操作性，他们得以暂时主导了即时通讯的市场。由于网络效应，新的即时通讯用户选择使用 Mirabilis 系统（并加入其庞大的用户网络）比使用竞争系统获得的价值要大得多。作为那个时代的典型，该公司在出售公司之前从未试图从其主导地位中获得利润。&lt;br /&gt;
&lt;br /&gt;
== 十、案例 ==&lt;br /&gt;
&lt;br /&gt;
=== 金融交易所 ===&lt;br /&gt;
&lt;br /&gt;
证券交易所和衍生品交易所，具有'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的特点。市场流动性是决定证券买卖交易成本的主要因素，因为在购买价格与出售同一证券的价格之间存在着买卖差价。随着交易所的买卖双方数量的增加，流动性增加，交易成本降低。这样就会吸引更多的买家和卖家来到交易所。&lt;br /&gt;
&lt;br /&gt;
金融交易所的网络优势，明显体现在新成立的交易所，很难脱离主导交易所。例如，尽管 Eurex US 启动了相同期货合约的交易，但芝加哥期货交易所仍然保持了美国国债期货交易的压倒性优势。同样，尽管受到了 Euronext.Liffe 的挑战，芝加哥商业交易所也保持了在欧洲债券利率期货交易中的主导地位。&lt;br /&gt;
&lt;br /&gt;
=== 软件 ===&lt;br /&gt;
&lt;br /&gt;
在广泛使用的计算机软件市场上，存在着非常强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
对许多人来说，选择办公套件的首要考虑因素包括：学会该办公套件对潜在雇主的价值有多大，以及该软件与其他用户的互动情况如何。也就是说，由于学习使用一个办公套件需要花费很多时间，用户希望将这些时间投入到学习办公套件上，使他们对潜在的雇主和客户最具吸引力。同样，在决定购买哪款办公套件时，寻找已经培训过的员工也是雇主们的一大顾虑。&lt;br /&gt;
&lt;br /&gt;
2007 年，苹果发布了 iPhone，随后是 App store 应用商店。大多数 iPhone 应用，非常依赖 iPhone 已经存在的强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。这样软件应用能够以非常有限的市场营销预算，迅速地增长人气，并传播到庞大的用户群。&lt;br /&gt;
&lt;br /&gt;
免费增值的商业模式已经发展到利用这些'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''，发布一个免费版本，让用户不限制使用，然后对高级功能收费来作为主要收入来源。&lt;br /&gt;
&lt;br /&gt;
=== 网站 ===&lt;br /&gt;
&lt;br /&gt;
许多网站都得益于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。一个例子是网络市场和交易所。例如，如果拍卖没有竞争性，eBay 就不会成为一个特别有用的网站。随着 eBay 上用户数量的增长，拍卖会的竞争越来越激烈，推高了物品的竞价价格。这使得在 eBay 上出售物品更有价值，并将更多的卖家带到 eBay 上，反过来，由于供应量的增加，又促使价格下降。供应量的增加为 eBay 带来了更多的买家。从本质上讲，随着 eBay 用户数量的增加，价格下降，供给增加，越来越多的人发现这个网站是有用的。&lt;br /&gt;
&lt;br /&gt;
20世纪90年代末，一些网络公司将'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''作为商业模式的理由。这些公司的经营理念是，当一个新的市场出现时，如果这个市场包含着强烈的网络效应，公司应该更关心市场份额的增长，而不是马上变得有利可图。其理由是，市场份额将决定哪家公司能够制定技术和营销标准，并使这些公司获得先发优势。&lt;br /&gt;
&lt;br /&gt;
社交网站就是很好的例子。在社交网站上注册的人越多，网站对其注册者越有用。&lt;br /&gt;
&lt;br /&gt;
Alexa互联网使用的技术是跟踪用户的网络浏览模式，因此 Alexa 的相关网站结果会随着更多用户使用该技术而提高。Alexa的网络严重依赖少量的浏览器软件关系，这使得该网络更容易受到竞争的影响。&lt;br /&gt;
&lt;br /&gt;
谷歌也试图通过其 Google AdSense 服务，在广告业务中创造'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。 Google AdSense 在许多小型网站（如博客）上投放广告，利用 Google 的技术来确定哪些广告与哪些博客相关。因此，该服务的目的似乎是作为一个交易所（或广告网络），为许多广告商与许多小网站（如博客）进行匹配。一般来说，Google AdSense 能够接触到的博客越多，就会吸引更多的广告商，使其成为对更多博客最有吸引力的选择，以此类推，使网络对所有参与者更有价值。&lt;br /&gt;
&lt;br /&gt;
相比之下，一个新闻网站的价值，主要与文章的质量成正比，而不是与其他使用网站的人数成正比。&lt;br /&gt;
&lt;br /&gt;
同样，第一代搜索网站也没有经历什么网络效应，因为网站的价值是基于搜索结果的价值。一旦用户认为 Google 的搜索结果更胜一筹，Google 便不费吹灰之力就从雅虎手中赢得了用户。而一些评论家误以为雅虎品牌的价值（随着更多的人知道雅虎品牌，雅虎品牌的价值确实会增加）是保护其广告业务的网络效应。&lt;br /&gt;
&lt;br /&gt;
=== 铁路轨距 ===&lt;br /&gt;
&lt;br /&gt;
在最初的轨距选择和轨距转换决策中，存在着强烈的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
即使在放置不与任何其他线路连接的孤立钢轨时，轨道层通常也会选择一个标准轨距，这样他们就可以使用现成的机车车辆。&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;虽然少数厂家生产的机车车辆可以适应不同轨距，但大多数厂家生产的机车车（内容不完整）&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
== 词条编辑日志 ==&lt;br /&gt;
&lt;br /&gt;
* 200818 润悟翻译自 wikipedia https://en.wikipedia.org/wiki/Network_effect&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17932</id>
		<title>网络效应</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17932"/>
		<updated>2020-11-05T15:18:13Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：/* 直接网络效应 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 一、简介 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络效应(network effect)&amp;lt;/font&amp;gt;'''（也称“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络外部性（network externality）&amp;lt;/font&amp;gt;'''”，或“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;需求方规模经济（demand-side economies of scale）&amp;lt;/font&amp;gt;'''”)，是一个经济学和商业方面的术语，用于描述对于一个产品（或服务），每增多一名用户，都会对该产品的其他用户产生新的价值。当网络效应出现时，产品（或服务）的价值，会随着使用该产品（或服务）的人数的增加而增加。&lt;br /&gt;
&lt;br /&gt;
一个经典的例子是电话，越多的人使用电话，对每个电话使用者的价值就越大。一部电话的使用者，本来无意为其他用户创造价值，但当大家都购买电话时，这个行为就产生了正外部性。像微信、微博、Twitter、Facebook 这样的线上社交网络，也是一样，随着更多用户的加入，每个用户获得的价值都在增加。&lt;br /&gt;
&lt;br /&gt;
当网络的价值越来越大，越来越多的人加入时，网络效应还会带来从众效应，从而形成正反馈循环。&lt;br /&gt;
&lt;br /&gt;
网络效应这一表述不仅适用于正向的网络外部性，如电话的案例；消极的网络外部性也可能发生，即用户越多，产品的价值就越低，这种情况通常被称为“拥堵”，例如如交通拥堵或网络拥堵。&lt;br /&gt;
&lt;br /&gt;
== 二、网络效应的起源 ==&lt;br /&gt;
&lt;br /&gt;
网络效应是后专利时代贝尔电话公司的第一任总裁西奥多·韦尔期望获得美国电话服务垄断权的一系列方法中的核心主题。1908 年，当他在贝尔的年报中提出这一概念时，当地和地区电话交换机有 4000 多个，其中大部分最终被并入贝尔系统。&lt;br /&gt;
&lt;br /&gt;
网络效应是由罗伯特·梅特卡夫推广的，称其为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;梅特卡夫定律（Metcalfe's law）&amp;lt;/font&amp;gt;'''。梅特卡夫是以太网的共同发明人之一，也是3Com公司的联合创始人。在销售产品的过程中，梅特卡夫认为，客户要想从网络中获得收益，就需要以太网卡增长到一定的临界值以上，按照梅特卡夫的说法，网络卡销售的原理是：网络的成本与安装的网卡数量成正比，但网络的价值与用户数量的平方成正比。这在代数上表示为成本为 N ，价值为 N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;。虽然这个命题背后的实际数字从来没有确定过，但这个概念使客户可以共享访问昂贵的资源，如磁盘驱动器和打印机，发送电子邮件，并最终访问互联网。&lt;br /&gt;
&lt;br /&gt;
1985-1995年，研究人员 Michael L. Katz、Carl Shapiro、Joseph Farrell 和Garth Saloner 推进了网络效应的经济理论，Rod Beckstrom 在2009年的 BlackHat和 DEF CON会议上提出了描述处于正网络效应状态的网络的数学模型，同时也提出了'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;逆网络效应&amp;lt;/font&amp;gt;'''，并给出了经济模型的定义。&lt;br /&gt;
&lt;br /&gt;
== 三、网络效应的好处 ==&lt;br /&gt;
&lt;br /&gt;
网络效应在达到一定的认购比例后变得显著，称为临界值。在临界值，从商品或服务中获得的价值大于或等于为商品或服务支付的价格。由于商品的价值是由用户群决定的，这就意味着在一定数量的人订阅了服务或购买了商品后，由于价值大于价格，会有更多的人订阅服务或购买商品。&lt;br /&gt;
&lt;br /&gt;
那么，一个关键的商业问题必须是如何在达到临界值之前吸引用户。一种方法是依靠如付款、免费或请求朋友注册等外在的动机。更自然的策略是建立一个没有网络效应的但足够有价值的系统。然后，随着用户数量的增加系统会变得更有价值，继而吸引更广泛的用户群。&lt;br /&gt;
&lt;br /&gt;
超过临界值后用户数量的增加不会无限期地持续下去。到了一定程度后，大多数网络要么拥堵要么饱和，不再吸收用户。&lt;br /&gt;
&lt;br /&gt;
拥堵是由于过度使用而发生的。比如电话网络中，当用户数量低于拥堵点时，每增加一个用户都会给其他每一个用户增加额外的价值。然而，在某些时候，额外用户的增加超过了现有系统的容量。在这一点之后，每增加一个用户都会减少其他每一个用户获得的价值，因为从实际情况来看，每增加一个用户都会增加系统的总负荷，导致信号繁忙、无法获得拨号音、客户服务质量下降。假设拥堵点低于潜在的市场规模，下一个临界点获得的价值将等于付出的代价。如果不提高系统容量，此时网络将停止发展。点对点(P2P)系统是为了在其用户池中分配负载而设计的网络，理论上，这使得P2P网络可以无限扩大规模。基于P2P的电话服务Skype就得益于这种效应，它的增长主要受到市场饱和度的限制。&lt;br /&gt;
&lt;br /&gt;
网络效应通常被误认为是规模经济，但规模经济是由企业规模带来的，而非用户之间的相互操作性造成的。经典规模经济是在生产侧，而网络效应则是在需求侧产生的。&lt;br /&gt;
&lt;br /&gt;
由于网络效应常常与正反馈相关，网络效应与'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;范围经济（Economies of scope）&amp;lt;/font&amp;gt;'''、口碑传播和'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;巴斯扩散模型（Bass Diffusion Model）&amp;lt;/font&amp;gt;'''相关，系统动力学可以作为一种描述这种现象的建模方法。&lt;br /&gt;
&lt;br /&gt;
== 四、技术生命周期 ==&lt;br /&gt;
&lt;br /&gt;
如果一些现有的技术或公司的利益主要基于网络效应，如果在面对如颠覆性的新技术或基于开源标准的竞争等挑战者时，他们开始失去市场份额，那么网络效应给他们带来的利益就会减少，给挑战者带来的利益会增加。&lt;br /&gt;
&lt;br /&gt;
在这一模式中，最终会达到一个临界值，即挑战者的网络效应支配了原在位者的网络效应，在位者被迫加速衰落，挑战者逐渐取代原在位者的地位。&lt;br /&gt;
&lt;br /&gt;
== 五、网络效应带来锁定 ==&lt;br /&gt;
&lt;br /&gt;
因为常常会把用户和供应商锁定在某一个标准上，网络效应也有不好的一面，最常见的例子是微软产品和 QWERTY 键盘。&lt;br /&gt;
&lt;br /&gt;
供应商锁定可以通过开放用户所依赖的标准来缓解，允许各实施方案之间的竞争。然而，这并不能减轻整个行业对标准本身的锁定。事实上，由于现在有多个供应商在降低价格和提高质量，更多的用户可能会采用该标准，从而造成整个行业对该标准的更大锁定。&lt;br /&gt;
&lt;br /&gt;
== 六、网络效应的类型 ==&lt;br /&gt;
&lt;br /&gt;
大体而言，有 2 种网络效应——'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''、'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;间接网络效应&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
=== 直接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
使用量的增加会直接导致其他用户价值的增加。例如，电话系统、传真机、社交网络都意味着用户之间的直接接触。直接网络效应也称为''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;同边网络效应(same-side network effect)&amp;lt;/font&amp;gt;'''，一个例子是在线游戏玩家，会从其他在线游戏玩家的参与中获益。&lt;br /&gt;
&lt;br /&gt;
=== 间接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
一种产品或网络使用量的增加，会引起补充产品或网络价值的增加，而补充产品或网络又会增加原产品的价值。补充产品的例子包括软件(如操作系统的Office套件)和DVD(DVD播放器)。这也就是所谓的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;跨边网络效应（cross-side network effect）&amp;lt;/font&amp;gt;'''。Windows和Linux可能不仅争夺用户，而且争夺软件开发商。大多数双边市场或中介市场，都具有间接网络效应的特点。&lt;br /&gt;
&lt;br /&gt;
此外，在分析显示出网络效应的产品时，有两个相关的经济价值来源：&lt;br /&gt;
&lt;br /&gt;
=== 内在价值===&lt;br /&gt;
&lt;br /&gt;
从使用产品中获得价值。&lt;br /&gt;
&lt;br /&gt;
=== 网络价值===&lt;br /&gt;
&lt;br /&gt;
从别人对产品的使用中获得价值。&lt;br /&gt;
&lt;br /&gt;
== 七、负网络外部性 ==&lt;br /&gt;
&lt;br /&gt;
数学意义上的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''，是指与正常（正）网络效应相比，具有负效应的网络外部性。正的网络外部性（网络效应）会造成正反馈和指数增长，负的网络外部性会造成负反馈和指数衰减。在自然界中，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''是拉向平衡的力量，是稳定的原因，代表着使系统受到约束的物理限制。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;拥堵&amp;lt;/font&amp;gt;'''的发生，是随着使用网络的人越来越多，网络的效率就会降低，这就降低了已经使用网络的人的价值。使高速公路超载的交通拥堵、带宽有限的连接上的网络拥堵，都表现出负的网络外部性。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;布雷斯悖论 (Braess’s paradox) &amp;lt;/font&amp;gt;'''表明，增加网络中的路径，会对网络的性能产生负面影响。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 八、互操作性/协同工作能力 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''具有使网络扩大的作用，从而增加网络对消费者的外部价值。'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''主要是通过增加潜在的连接来实现的，其次是通过吸引新的参与者加入网络。互操作性的其他好处包括减少不确定性、减少锁定、商品化和基于价格的竞争。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''可以通过标准化或其他合作来实现。参与促进'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''的公司，既要与竞争者合作以扩大产品的潜在市场，又要彼此之间争夺市场份额，他们往往面临着紧张关系。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 九、开源标准 vs 封闭标准 ==&lt;br /&gt;
&lt;br /&gt;
在通信和信息技术中，开源标准和接口往往是通过多家公司的参与而制定的，他们制定开源标准，往往也是互利的。但是，如果有关的通信协议或接口是封闭的标准，网络效应就会使控制这些标准的公司，具有垄断能力。&lt;br /&gt;
&lt;br /&gt;
计算机专业人士普遍认为，微软公司是通过这些手段来维持其垄断地位的。可以看到，微软公司将网络效应发挥到极致的一种方法叫做拥抱、延伸和消灭。&lt;br /&gt;
&lt;br /&gt;
Mirabilis 是一家以色列的创业公司，它是即时通讯（IM）的先驱，被美国在线收购。通过免费赠送他们的 ICQ 产品，并防止他们的客户端软件与其他产品之间的互操作性，他们得以暂时主导了即时通讯的市场。由于网络效应，新的即时通讯用户选择使用 Mirabilis 系统（并加入其庞大的用户网络）比使用竞争系统获得的价值要大得多。作为那个时代的典型，该公司在出售公司之前从未试图从其主导地位中获得利润。&lt;br /&gt;
&lt;br /&gt;
== 十、案例 ==&lt;br /&gt;
&lt;br /&gt;
=== 金融交易所 ===&lt;br /&gt;
&lt;br /&gt;
证券交易所和衍生品交易所，具有'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的特点。市场流动性是决定证券买卖交易成本的主要因素，因为在购买价格与出售同一证券的价格之间存在着买卖差价。随着交易所的买卖双方数量的增加，流动性增加，交易成本降低。这样就会吸引更多的买家和卖家来到交易所。&lt;br /&gt;
&lt;br /&gt;
金融交易所的网络优势，明显体现在新成立的交易所，很难脱离主导交易所。例如，尽管 Eurex US 启动了相同期货合约的交易，但芝加哥期货交易所仍然保持了美国国债期货交易的压倒性优势。同样，尽管受到了 Euronext.Liffe 的挑战，芝加哥商业交易所也保持了在欧洲债券利率期货交易中的主导地位。&lt;br /&gt;
&lt;br /&gt;
=== 软件 ===&lt;br /&gt;
&lt;br /&gt;
在广泛使用的计算机软件市场上，存在着非常强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
对许多人来说，选择办公套件的首要考虑因素包括：学会该办公套件对潜在雇主的价值有多大，以及该软件与其他用户的互动情况如何。也就是说，由于学习使用一个办公套件需要花费很多时间，用户希望将这些时间投入到学习办公套件上，使他们对潜在的雇主和客户最具吸引力。同样，在决定购买哪款办公套件时，寻找已经培训过的员工也是雇主们的一大顾虑。&lt;br /&gt;
&lt;br /&gt;
2007 年，苹果发布了 iPhone，随后是 App store 应用商店。大多数 iPhone 应用，非常依赖 iPhone 已经存在的强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。这样软件应用能够以非常有限的市场营销预算，迅速地增长人气，并传播到庞大的用户群。&lt;br /&gt;
&lt;br /&gt;
免费增值的商业模式已经发展到利用这些'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''，发布一个免费版本，让用户不限制使用，然后对高级功能收费来作为主要收入来源。&lt;br /&gt;
&lt;br /&gt;
=== 网站 ===&lt;br /&gt;
&lt;br /&gt;
许多网站都得益于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。一个例子是网络市场和交易所。例如，如果拍卖没有竞争性，eBay 就不会成为一个特别有用的网站。随着 eBay 上用户数量的增长，拍卖会的竞争越来越激烈，推高了物品的竞价价格。这使得在 eBay 上出售物品更有价值，并将更多的卖家带到 eBay 上，反过来，由于供应量的增加，又促使价格下降。供应量的增加为 eBay 带来了更多的买家。从本质上讲，随着 eBay 用户数量的增加，价格下降，供给增加，越来越多的人发现这个网站是有用的。&lt;br /&gt;
&lt;br /&gt;
20世纪90年代末，一些网络公司将'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''作为商业模式的理由。这些公司的经营理念是，当一个新的市场出现时，如果这个市场包含着强烈的网络效应，公司应该更关心市场份额的增长，而不是马上变得有利可图。其理由是，市场份额将决定哪家公司能够制定技术和营销标准，并使这些公司获得先发优势。&lt;br /&gt;
&lt;br /&gt;
社交网站就是很好的例子。在社交网站上注册的人越多，网站对其注册者越有用。&lt;br /&gt;
&lt;br /&gt;
Alexa互联网使用的技术是跟踪用户的网络浏览模式，因此 Alexa 的相关网站结果会随着更多用户使用该技术而提高。Alexa的网络严重依赖少量的浏览器软件关系，这使得该网络更容易受到竞争的影响。&lt;br /&gt;
&lt;br /&gt;
谷歌也试图通过其 Google AdSense 服务，在广告业务中创造'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。 Google AdSense 在许多小型网站（如博客）上投放广告，利用 Google 的技术来确定哪些广告与哪些博客相关。因此，该服务的目的似乎是作为一个交易所（或广告网络），为许多广告商与许多小网站（如博客）进行匹配。一般来说，Google AdSense 能够接触到的博客越多，就会吸引更多的广告商，使其成为对更多博客最有吸引力的选择，以此类推，使网络对所有参与者更有价值。&lt;br /&gt;
&lt;br /&gt;
相比之下，一个新闻网站的价值，主要与文章的质量成正比，而不是与其他使用网站的人数成正比。&lt;br /&gt;
&lt;br /&gt;
同样，第一代搜索网站也没有经历什么网络效应，因为网站的价值是基于搜索结果的价值。一旦用户认为 Google 的搜索结果更胜一筹，Google 便不费吹灰之力就从雅虎手中赢得了用户。而一些评论家误以为雅虎品牌的价值（随着更多的人知道雅虎品牌，雅虎品牌的价值确实会增加）是保护其广告业务的网络效应。&lt;br /&gt;
&lt;br /&gt;
=== 铁路轨距 ===&lt;br /&gt;
&lt;br /&gt;
在最初的轨距选择和轨距转换决策中，存在着强烈的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
即使在放置不与任何其他线路连接的孤立钢轨时，轨道层通常也会选择一个标准轨距，这样他们就可以使用现成的机车车辆。&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;虽然少数厂家生产的机车车辆可以适应不同轨距，但大多数厂家生产的机车车（内容不完整）&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
== 词条编辑日志 ==&lt;br /&gt;
&lt;br /&gt;
* 200818 润悟翻译自 wikipedia https://en.wikipedia.org/wiki/Network_effect&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17931</id>
		<title>网络效应</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17931"/>
		<updated>2020-11-05T15:17:41Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：/* 六、网络效应的类型 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 一、简介 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络效应(network effect)&amp;lt;/font&amp;gt;'''（也称“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络外部性（network externality）&amp;lt;/font&amp;gt;'''”，或“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;需求方规模经济（demand-side economies of scale）&amp;lt;/font&amp;gt;'''”)，是一个经济学和商业方面的术语，用于描述对于一个产品（或服务），每增多一名用户，都会对该产品的其他用户产生新的价值。当网络效应出现时，产品（或服务）的价值，会随着使用该产品（或服务）的人数的增加而增加。&lt;br /&gt;
&lt;br /&gt;
一个经典的例子是电话，越多的人使用电话，对每个电话使用者的价值就越大。一部电话的使用者，本来无意为其他用户创造价值，但当大家都购买电话时，这个行为就产生了正外部性。像微信、微博、Twitter、Facebook 这样的线上社交网络，也是一样，随着更多用户的加入，每个用户获得的价值都在增加。&lt;br /&gt;
&lt;br /&gt;
当网络的价值越来越大，越来越多的人加入时，网络效应还会带来从众效应，从而形成正反馈循环。&lt;br /&gt;
&lt;br /&gt;
网络效应这一表述不仅适用于正向的网络外部性，如电话的案例；消极的网络外部性也可能发生，即用户越多，产品的价值就越低，这种情况通常被称为“拥堵”，例如如交通拥堵或网络拥堵。&lt;br /&gt;
&lt;br /&gt;
== 二、网络效应的起源 ==&lt;br /&gt;
&lt;br /&gt;
网络效应是后专利时代贝尔电话公司的第一任总裁西奥多·韦尔期望获得美国电话服务垄断权的一系列方法中的核心主题。1908 年，当他在贝尔的年报中提出这一概念时，当地和地区电话交换机有 4000 多个，其中大部分最终被并入贝尔系统。&lt;br /&gt;
&lt;br /&gt;
网络效应是由罗伯特·梅特卡夫推广的，称其为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;梅特卡夫定律（Metcalfe's law）&amp;lt;/font&amp;gt;'''。梅特卡夫是以太网的共同发明人之一，也是3Com公司的联合创始人。在销售产品的过程中，梅特卡夫认为，客户要想从网络中获得收益，就需要以太网卡增长到一定的临界值以上，按照梅特卡夫的说法，网络卡销售的原理是：网络的成本与安装的网卡数量成正比，但网络的价值与用户数量的平方成正比。这在代数上表示为成本为 N ，价值为 N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;。虽然这个命题背后的实际数字从来没有确定过，但这个概念使客户可以共享访问昂贵的资源，如磁盘驱动器和打印机，发送电子邮件，并最终访问互联网。&lt;br /&gt;
&lt;br /&gt;
1985-1995年，研究人员 Michael L. Katz、Carl Shapiro、Joseph Farrell 和Garth Saloner 推进了网络效应的经济理论，Rod Beckstrom 在2009年的 BlackHat和 DEF CON会议上提出了描述处于正网络效应状态的网络的数学模型，同时也提出了'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;逆网络效应&amp;lt;/font&amp;gt;'''，并给出了经济模型的定义。&lt;br /&gt;
&lt;br /&gt;
== 三、网络效应的好处 ==&lt;br /&gt;
&lt;br /&gt;
网络效应在达到一定的认购比例后变得显著，称为临界值。在临界值，从商品或服务中获得的价值大于或等于为商品或服务支付的价格。由于商品的价值是由用户群决定的，这就意味着在一定数量的人订阅了服务或购买了商品后，由于价值大于价格，会有更多的人订阅服务或购买商品。&lt;br /&gt;
&lt;br /&gt;
那么，一个关键的商业问题必须是如何在达到临界值之前吸引用户。一种方法是依靠如付款、免费或请求朋友注册等外在的动机。更自然的策略是建立一个没有网络效应的但足够有价值的系统。然后，随着用户数量的增加系统会变得更有价值，继而吸引更广泛的用户群。&lt;br /&gt;
&lt;br /&gt;
超过临界值后用户数量的增加不会无限期地持续下去。到了一定程度后，大多数网络要么拥堵要么饱和，不再吸收用户。&lt;br /&gt;
&lt;br /&gt;
拥堵是由于过度使用而发生的。比如电话网络中，当用户数量低于拥堵点时，每增加一个用户都会给其他每一个用户增加额外的价值。然而，在某些时候，额外用户的增加超过了现有系统的容量。在这一点之后，每增加一个用户都会减少其他每一个用户获得的价值，因为从实际情况来看，每增加一个用户都会增加系统的总负荷，导致信号繁忙、无法获得拨号音、客户服务质量下降。假设拥堵点低于潜在的市场规模，下一个临界点获得的价值将等于付出的代价。如果不提高系统容量，此时网络将停止发展。点对点(P2P)系统是为了在其用户池中分配负载而设计的网络，理论上，这使得P2P网络可以无限扩大规模。基于P2P的电话服务Skype就得益于这种效应，它的增长主要受到市场饱和度的限制。&lt;br /&gt;
&lt;br /&gt;
网络效应通常被误认为是规模经济，但规模经济是由企业规模带来的，而非用户之间的相互操作性造成的。经典规模经济是在生产侧，而网络效应则是在需求侧产生的。&lt;br /&gt;
&lt;br /&gt;
由于网络效应常常与正反馈相关，网络效应与'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;范围经济（Economies of scope）&amp;lt;/font&amp;gt;'''、口碑传播和'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;巴斯扩散模型（Bass Diffusion Model）&amp;lt;/font&amp;gt;'''相关，系统动力学可以作为一种描述这种现象的建模方法。&lt;br /&gt;
&lt;br /&gt;
== 四、技术生命周期 ==&lt;br /&gt;
&lt;br /&gt;
如果一些现有的技术或公司的利益主要基于网络效应，如果在面对如颠覆性的新技术或基于开源标准的竞争等挑战者时，他们开始失去市场份额，那么网络效应给他们带来的利益就会减少，给挑战者带来的利益会增加。&lt;br /&gt;
&lt;br /&gt;
在这一模式中，最终会达到一个临界值，即挑战者的网络效应支配了原在位者的网络效应，在位者被迫加速衰落，挑战者逐渐取代原在位者的地位。&lt;br /&gt;
&lt;br /&gt;
== 五、网络效应带来锁定 ==&lt;br /&gt;
&lt;br /&gt;
因为常常会把用户和供应商锁定在某一个标准上，网络效应也有不好的一面，最常见的例子是微软产品和 QWERTY 键盘。&lt;br /&gt;
&lt;br /&gt;
供应商锁定可以通过开放用户所依赖的标准来缓解，允许各实施方案之间的竞争。然而，这并不能减轻整个行业对标准本身的锁定。事实上，由于现在有多个供应商在降低价格和提高质量，更多的用户可能会采用该标准，从而造成整个行业对该标准的更大锁定。&lt;br /&gt;
&lt;br /&gt;
== 六、网络效应的类型 ==&lt;br /&gt;
&lt;br /&gt;
大体而言，有 2 种网络效应——'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''、'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;间接网络效应&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
=== 直接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
使用量的增加会直接导致其他用户价值的增加。例如，电话系统、传真机、社交网络都意味着用户之间的直接接触。'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''称为''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;同边网络效应(same-side network effect)&amp;lt;/font&amp;gt;'''，一个例子是在线游戏玩家，会从其他在线游戏玩家的参与中获益。&lt;br /&gt;
&lt;br /&gt;
=== 间接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
一种产品或网络使用量的增加，会引起补充产品或网络价值的增加，而补充产品或网络又会增加原产品的价值。补充产品的例子包括软件(如操作系统的Office套件)和DVD(DVD播放器)。这也就是所谓的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;跨边网络效应（cross-side network effect）&amp;lt;/font&amp;gt;'''。Windows和Linux可能不仅争夺用户，而且争夺软件开发商。大多数双边市场或中介市场，都具有间接网络效应的特点。&lt;br /&gt;
&lt;br /&gt;
此外，在分析显示出网络效应的产品时，有两个相关的经济价值来源：&lt;br /&gt;
&lt;br /&gt;
=== 内在价值===&lt;br /&gt;
&lt;br /&gt;
从使用产品中获得价值。&lt;br /&gt;
&lt;br /&gt;
=== 网络价值===&lt;br /&gt;
&lt;br /&gt;
从别人对产品的使用中获得价值。&lt;br /&gt;
&lt;br /&gt;
== 七、负网络外部性 ==&lt;br /&gt;
&lt;br /&gt;
数学意义上的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''，是指与正常（正）网络效应相比，具有负效应的网络外部性。正的网络外部性（网络效应）会造成正反馈和指数增长，负的网络外部性会造成负反馈和指数衰减。在自然界中，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''是拉向平衡的力量，是稳定的原因，代表着使系统受到约束的物理限制。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;拥堵&amp;lt;/font&amp;gt;'''的发生，是随着使用网络的人越来越多，网络的效率就会降低，这就降低了已经使用网络的人的价值。使高速公路超载的交通拥堵、带宽有限的连接上的网络拥堵，都表现出负的网络外部性。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;布雷斯悖论 (Braess’s paradox) &amp;lt;/font&amp;gt;'''表明，增加网络中的路径，会对网络的性能产生负面影响。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 八、互操作性/协同工作能力 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''具有使网络扩大的作用，从而增加网络对消费者的外部价值。'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''主要是通过增加潜在的连接来实现的，其次是通过吸引新的参与者加入网络。互操作性的其他好处包括减少不确定性、减少锁定、商品化和基于价格的竞争。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''可以通过标准化或其他合作来实现。参与促进'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''的公司，既要与竞争者合作以扩大产品的潜在市场，又要彼此之间争夺市场份额，他们往往面临着紧张关系。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 九、开源标准 vs 封闭标准 ==&lt;br /&gt;
&lt;br /&gt;
在通信和信息技术中，开源标准和接口往往是通过多家公司的参与而制定的，他们制定开源标准，往往也是互利的。但是，如果有关的通信协议或接口是封闭的标准，网络效应就会使控制这些标准的公司，具有垄断能力。&lt;br /&gt;
&lt;br /&gt;
计算机专业人士普遍认为，微软公司是通过这些手段来维持其垄断地位的。可以看到，微软公司将网络效应发挥到极致的一种方法叫做拥抱、延伸和消灭。&lt;br /&gt;
&lt;br /&gt;
Mirabilis 是一家以色列的创业公司，它是即时通讯（IM）的先驱，被美国在线收购。通过免费赠送他们的 ICQ 产品，并防止他们的客户端软件与其他产品之间的互操作性，他们得以暂时主导了即时通讯的市场。由于网络效应，新的即时通讯用户选择使用 Mirabilis 系统（并加入其庞大的用户网络）比使用竞争系统获得的价值要大得多。作为那个时代的典型，该公司在出售公司之前从未试图从其主导地位中获得利润。&lt;br /&gt;
&lt;br /&gt;
== 十、案例 ==&lt;br /&gt;
&lt;br /&gt;
=== 金融交易所 ===&lt;br /&gt;
&lt;br /&gt;
证券交易所和衍生品交易所，具有'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的特点。市场流动性是决定证券买卖交易成本的主要因素，因为在购买价格与出售同一证券的价格之间存在着买卖差价。随着交易所的买卖双方数量的增加，流动性增加，交易成本降低。这样就会吸引更多的买家和卖家来到交易所。&lt;br /&gt;
&lt;br /&gt;
金融交易所的网络优势，明显体现在新成立的交易所，很难脱离主导交易所。例如，尽管 Eurex US 启动了相同期货合约的交易，但芝加哥期货交易所仍然保持了美国国债期货交易的压倒性优势。同样，尽管受到了 Euronext.Liffe 的挑战，芝加哥商业交易所也保持了在欧洲债券利率期货交易中的主导地位。&lt;br /&gt;
&lt;br /&gt;
=== 软件 ===&lt;br /&gt;
&lt;br /&gt;
在广泛使用的计算机软件市场上，存在着非常强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
对许多人来说，选择办公套件的首要考虑因素包括：学会该办公套件对潜在雇主的价值有多大，以及该软件与其他用户的互动情况如何。也就是说，由于学习使用一个办公套件需要花费很多时间，用户希望将这些时间投入到学习办公套件上，使他们对潜在的雇主和客户最具吸引力。同样，在决定购买哪款办公套件时，寻找已经培训过的员工也是雇主们的一大顾虑。&lt;br /&gt;
&lt;br /&gt;
2007 年，苹果发布了 iPhone，随后是 App store 应用商店。大多数 iPhone 应用，非常依赖 iPhone 已经存在的强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。这样软件应用能够以非常有限的市场营销预算，迅速地增长人气，并传播到庞大的用户群。&lt;br /&gt;
&lt;br /&gt;
免费增值的商业模式已经发展到利用这些'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''，发布一个免费版本，让用户不限制使用，然后对高级功能收费来作为主要收入来源。&lt;br /&gt;
&lt;br /&gt;
=== 网站 ===&lt;br /&gt;
&lt;br /&gt;
许多网站都得益于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。一个例子是网络市场和交易所。例如，如果拍卖没有竞争性，eBay 就不会成为一个特别有用的网站。随着 eBay 上用户数量的增长，拍卖会的竞争越来越激烈，推高了物品的竞价价格。这使得在 eBay 上出售物品更有价值，并将更多的卖家带到 eBay 上，反过来，由于供应量的增加，又促使价格下降。供应量的增加为 eBay 带来了更多的买家。从本质上讲，随着 eBay 用户数量的增加，价格下降，供给增加，越来越多的人发现这个网站是有用的。&lt;br /&gt;
&lt;br /&gt;
20世纪90年代末，一些网络公司将'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''作为商业模式的理由。这些公司的经营理念是，当一个新的市场出现时，如果这个市场包含着强烈的网络效应，公司应该更关心市场份额的增长，而不是马上变得有利可图。其理由是，市场份额将决定哪家公司能够制定技术和营销标准，并使这些公司获得先发优势。&lt;br /&gt;
&lt;br /&gt;
社交网站就是很好的例子。在社交网站上注册的人越多，网站对其注册者越有用。&lt;br /&gt;
&lt;br /&gt;
Alexa互联网使用的技术是跟踪用户的网络浏览模式，因此 Alexa 的相关网站结果会随着更多用户使用该技术而提高。Alexa的网络严重依赖少量的浏览器软件关系，这使得该网络更容易受到竞争的影响。&lt;br /&gt;
&lt;br /&gt;
谷歌也试图通过其 Google AdSense 服务，在广告业务中创造'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。 Google AdSense 在许多小型网站（如博客）上投放广告，利用 Google 的技术来确定哪些广告与哪些博客相关。因此，该服务的目的似乎是作为一个交易所（或广告网络），为许多广告商与许多小网站（如博客）进行匹配。一般来说，Google AdSense 能够接触到的博客越多，就会吸引更多的广告商，使其成为对更多博客最有吸引力的选择，以此类推，使网络对所有参与者更有价值。&lt;br /&gt;
&lt;br /&gt;
相比之下，一个新闻网站的价值，主要与文章的质量成正比，而不是与其他使用网站的人数成正比。&lt;br /&gt;
&lt;br /&gt;
同样，第一代搜索网站也没有经历什么网络效应，因为网站的价值是基于搜索结果的价值。一旦用户认为 Google 的搜索结果更胜一筹，Google 便不费吹灰之力就从雅虎手中赢得了用户。而一些评论家误以为雅虎品牌的价值（随着更多的人知道雅虎品牌，雅虎品牌的价值确实会增加）是保护其广告业务的网络效应。&lt;br /&gt;
&lt;br /&gt;
=== 铁路轨距 ===&lt;br /&gt;
&lt;br /&gt;
在最初的轨距选择和轨距转换决策中，存在着强烈的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
即使在放置不与任何其他线路连接的孤立钢轨时，轨道层通常也会选择一个标准轨距，这样他们就可以使用现成的机车车辆。&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;虽然少数厂家生产的机车车辆可以适应不同轨距，但大多数厂家生产的机车车（内容不完整）&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
== 词条编辑日志 ==&lt;br /&gt;
&lt;br /&gt;
* 200818 润悟翻译自 wikipedia https://en.wikipedia.org/wiki/Network_effect&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17930</id>
		<title>网络效应</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17930"/>
		<updated>2020-11-05T15:13:15Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：/* 五、网络效应带来锁定 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 一、简介 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络效应(network effect)&amp;lt;/font&amp;gt;'''（也称“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络外部性（network externality）&amp;lt;/font&amp;gt;'''”，或“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;需求方规模经济（demand-side economies of scale）&amp;lt;/font&amp;gt;'''”)，是一个经济学和商业方面的术语，用于描述对于一个产品（或服务），每增多一名用户，都会对该产品的其他用户产生新的价值。当网络效应出现时，产品（或服务）的价值，会随着使用该产品（或服务）的人数的增加而增加。&lt;br /&gt;
&lt;br /&gt;
一个经典的例子是电话，越多的人使用电话，对每个电话使用者的价值就越大。一部电话的使用者，本来无意为其他用户创造价值，但当大家都购买电话时，这个行为就产生了正外部性。像微信、微博、Twitter、Facebook 这样的线上社交网络，也是一样，随着更多用户的加入，每个用户获得的价值都在增加。&lt;br /&gt;
&lt;br /&gt;
当网络的价值越来越大，越来越多的人加入时，网络效应还会带来从众效应，从而形成正反馈循环。&lt;br /&gt;
&lt;br /&gt;
网络效应这一表述不仅适用于正向的网络外部性，如电话的案例；消极的网络外部性也可能发生，即用户越多，产品的价值就越低，这种情况通常被称为“拥堵”，例如如交通拥堵或网络拥堵。&lt;br /&gt;
&lt;br /&gt;
== 二、网络效应的起源 ==&lt;br /&gt;
&lt;br /&gt;
网络效应是后专利时代贝尔电话公司的第一任总裁西奥多·韦尔期望获得美国电话服务垄断权的一系列方法中的核心主题。1908 年，当他在贝尔的年报中提出这一概念时，当地和地区电话交换机有 4000 多个，其中大部分最终被并入贝尔系统。&lt;br /&gt;
&lt;br /&gt;
网络效应是由罗伯特·梅特卡夫推广的，称其为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;梅特卡夫定律（Metcalfe's law）&amp;lt;/font&amp;gt;'''。梅特卡夫是以太网的共同发明人之一，也是3Com公司的联合创始人。在销售产品的过程中，梅特卡夫认为，客户要想从网络中获得收益，就需要以太网卡增长到一定的临界值以上，按照梅特卡夫的说法，网络卡销售的原理是：网络的成本与安装的网卡数量成正比，但网络的价值与用户数量的平方成正比。这在代数上表示为成本为 N ，价值为 N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;。虽然这个命题背后的实际数字从来没有确定过，但这个概念使客户可以共享访问昂贵的资源，如磁盘驱动器和打印机，发送电子邮件，并最终访问互联网。&lt;br /&gt;
&lt;br /&gt;
1985-1995年，研究人员 Michael L. Katz、Carl Shapiro、Joseph Farrell 和Garth Saloner 推进了网络效应的经济理论，Rod Beckstrom 在2009年的 BlackHat和 DEF CON会议上提出了描述处于正网络效应状态的网络的数学模型，同时也提出了'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;逆网络效应&amp;lt;/font&amp;gt;'''，并给出了经济模型的定义。&lt;br /&gt;
&lt;br /&gt;
== 三、网络效应的好处 ==&lt;br /&gt;
&lt;br /&gt;
网络效应在达到一定的认购比例后变得显著，称为临界值。在临界值，从商品或服务中获得的价值大于或等于为商品或服务支付的价格。由于商品的价值是由用户群决定的，这就意味着在一定数量的人订阅了服务或购买了商品后，由于价值大于价格，会有更多的人订阅服务或购买商品。&lt;br /&gt;
&lt;br /&gt;
那么，一个关键的商业问题必须是如何在达到临界值之前吸引用户。一种方法是依靠如付款、免费或请求朋友注册等外在的动机。更自然的策略是建立一个没有网络效应的但足够有价值的系统。然后，随着用户数量的增加系统会变得更有价值，继而吸引更广泛的用户群。&lt;br /&gt;
&lt;br /&gt;
超过临界值后用户数量的增加不会无限期地持续下去。到了一定程度后，大多数网络要么拥堵要么饱和，不再吸收用户。&lt;br /&gt;
&lt;br /&gt;
拥堵是由于过度使用而发生的。比如电话网络中，当用户数量低于拥堵点时，每增加一个用户都会给其他每一个用户增加额外的价值。然而，在某些时候，额外用户的增加超过了现有系统的容量。在这一点之后，每增加一个用户都会减少其他每一个用户获得的价值，因为从实际情况来看，每增加一个用户都会增加系统的总负荷，导致信号繁忙、无法获得拨号音、客户服务质量下降。假设拥堵点低于潜在的市场规模，下一个临界点获得的价值将等于付出的代价。如果不提高系统容量，此时网络将停止发展。点对点(P2P)系统是为了在其用户池中分配负载而设计的网络，理论上，这使得P2P网络可以无限扩大规模。基于P2P的电话服务Skype就得益于这种效应，它的增长主要受到市场饱和度的限制。&lt;br /&gt;
&lt;br /&gt;
网络效应通常被误认为是规模经济，但规模经济是由企业规模带来的，而非用户之间的相互操作性造成的。经典规模经济是在生产侧，而网络效应则是在需求侧产生的。&lt;br /&gt;
&lt;br /&gt;
由于网络效应常常与正反馈相关，网络效应与'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;范围经济（Economies of scope）&amp;lt;/font&amp;gt;'''、口碑传播和'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;巴斯扩散模型（Bass Diffusion Model）&amp;lt;/font&amp;gt;'''相关，系统动力学可以作为一种描述这种现象的建模方法。&lt;br /&gt;
&lt;br /&gt;
== 四、技术生命周期 ==&lt;br /&gt;
&lt;br /&gt;
如果一些现有的技术或公司的利益主要基于网络效应，如果在面对如颠覆性的新技术或基于开源标准的竞争等挑战者时，他们开始失去市场份额，那么网络效应给他们带来的利益就会减少，给挑战者带来的利益会增加。&lt;br /&gt;
&lt;br /&gt;
在这一模式中，最终会达到一个临界值，即挑战者的网络效应支配了原在位者的网络效应，在位者被迫加速衰落，挑战者逐渐取代原在位者的地位。&lt;br /&gt;
&lt;br /&gt;
== 五、网络效应带来锁定 ==&lt;br /&gt;
&lt;br /&gt;
因为常常会把用户和供应商锁定在某一个标准上，网络效应也有不好的一面，最常见的例子是微软产品和 QWERTY 键盘。&lt;br /&gt;
&lt;br /&gt;
供应商锁定可以通过开放用户所依赖的标准来缓解，允许各实施方案之间的竞争。然而，这并不能减轻整个行业对标准本身的锁定。事实上，由于现在有多个供应商在降低价格和提高质量，更多的用户可能会采用该标准，从而造成整个行业对该标准的更大锁定。&lt;br /&gt;
&lt;br /&gt;
== 六、网络效应的类型 ==&lt;br /&gt;
&lt;br /&gt;
大体而言，有 2 种网络效应——'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''、'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;间接网络效应&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
=== 直接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
使用量的增加会直接导致其他用户价值的增加。例如，电话系统、传真机、社交网络，都意味着用户之间的直接接触。'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''称为''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;同侧网络效应&amp;lt;/font&amp;gt;'''。一个例子是在线游戏玩家，会从其他在线游戏玩家的参与中获益。&lt;br /&gt;
&lt;br /&gt;
=== 间接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
一种产品或网络使用量的增加，会引起补充产品或网络价值的增加，而补充产品或网络又会增加原产品的价值。补充产品的例子包括软件(如操作系统的Office套件)和DVD(DVD播放器)。这也就是所谓的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;跨边网络效应&amp;lt;/font&amp;gt;'''。Windows和Linux可能不仅争夺用户，而且争夺软件开发商。大多数双边市场（或平台中介市场），都具有'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;间接网络效应&amp;lt;/font&amp;gt;'''的特点。&lt;br /&gt;
&lt;br /&gt;
此外，在分析显示出'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的产品时，有两个相关的经济价值来源：&lt;br /&gt;
&lt;br /&gt;
=== 内在价值===&lt;br /&gt;
&lt;br /&gt;
从使用产品中获得价值。&lt;br /&gt;
&lt;br /&gt;
=== 网络价值===&lt;br /&gt;
&lt;br /&gt;
从别人对产品的使用中获得价值。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 七、负网络外部性 ==&lt;br /&gt;
&lt;br /&gt;
数学意义上的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''，是指与正常（正）网络效应相比，具有负效应的网络外部性。正的网络外部性（网络效应）会造成正反馈和指数增长，负的网络外部性会造成负反馈和指数衰减。在自然界中，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''是拉向平衡的力量，是稳定的原因，代表着使系统受到约束的物理限制。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;拥堵&amp;lt;/font&amp;gt;'''的发生，是随着使用网络的人越来越多，网络的效率就会降低，这就降低了已经使用网络的人的价值。使高速公路超载的交通拥堵、带宽有限的连接上的网络拥堵，都表现出负的网络外部性。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;布雷斯悖论 (Braess’s paradox) &amp;lt;/font&amp;gt;'''表明，增加网络中的路径，会对网络的性能产生负面影响。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 八、互操作性/协同工作能力 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''具有使网络扩大的作用，从而增加网络对消费者的外部价值。'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''主要是通过增加潜在的连接来实现的，其次是通过吸引新的参与者加入网络。互操作性的其他好处包括减少不确定性、减少锁定、商品化和基于价格的竞争。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''可以通过标准化或其他合作来实现。参与促进'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''的公司，既要与竞争者合作以扩大产品的潜在市场，又要彼此之间争夺市场份额，他们往往面临着紧张关系。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 九、开源标准 vs 封闭标准 ==&lt;br /&gt;
&lt;br /&gt;
在通信和信息技术中，开源标准和接口往往是通过多家公司的参与而制定的，他们制定开源标准，往往也是互利的。但是，如果有关的通信协议或接口是封闭的标准，网络效应就会使控制这些标准的公司，具有垄断能力。&lt;br /&gt;
&lt;br /&gt;
计算机专业人士普遍认为，微软公司是通过这些手段来维持其垄断地位的。可以看到，微软公司将网络效应发挥到极致的一种方法叫做拥抱、延伸和消灭。&lt;br /&gt;
&lt;br /&gt;
Mirabilis 是一家以色列的创业公司，它是即时通讯（IM）的先驱，被美国在线收购。通过免费赠送他们的 ICQ 产品，并防止他们的客户端软件与其他产品之间的互操作性，他们得以暂时主导了即时通讯的市场。由于网络效应，新的即时通讯用户选择使用 Mirabilis 系统（并加入其庞大的用户网络）比使用竞争系统获得的价值要大得多。作为那个时代的典型，该公司在出售公司之前从未试图从其主导地位中获得利润。&lt;br /&gt;
&lt;br /&gt;
== 十、案例 ==&lt;br /&gt;
&lt;br /&gt;
=== 金融交易所 ===&lt;br /&gt;
&lt;br /&gt;
证券交易所和衍生品交易所，具有'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的特点。市场流动性是决定证券买卖交易成本的主要因素，因为在购买价格与出售同一证券的价格之间存在着买卖差价。随着交易所的买卖双方数量的增加，流动性增加，交易成本降低。这样就会吸引更多的买家和卖家来到交易所。&lt;br /&gt;
&lt;br /&gt;
金融交易所的网络优势，明显体现在新成立的交易所，很难脱离主导交易所。例如，尽管 Eurex US 启动了相同期货合约的交易，但芝加哥期货交易所仍然保持了美国国债期货交易的压倒性优势。同样，尽管受到了 Euronext.Liffe 的挑战，芝加哥商业交易所也保持了在欧洲债券利率期货交易中的主导地位。&lt;br /&gt;
&lt;br /&gt;
=== 软件 ===&lt;br /&gt;
&lt;br /&gt;
在广泛使用的计算机软件市场上，存在着非常强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
对许多人来说，选择办公套件的首要考虑因素包括：学会该办公套件对潜在雇主的价值有多大，以及该软件与其他用户的互动情况如何。也就是说，由于学习使用一个办公套件需要花费很多时间，用户希望将这些时间投入到学习办公套件上，使他们对潜在的雇主和客户最具吸引力。同样，在决定购买哪款办公套件时，寻找已经培训过的员工也是雇主们的一大顾虑。&lt;br /&gt;
&lt;br /&gt;
2007 年，苹果发布了 iPhone，随后是 App store 应用商店。大多数 iPhone 应用，非常依赖 iPhone 已经存在的强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。这样软件应用能够以非常有限的市场营销预算，迅速地增长人气，并传播到庞大的用户群。&lt;br /&gt;
&lt;br /&gt;
免费增值的商业模式已经发展到利用这些'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''，发布一个免费版本，让用户不限制使用，然后对高级功能收费来作为主要收入来源。&lt;br /&gt;
&lt;br /&gt;
=== 网站 ===&lt;br /&gt;
&lt;br /&gt;
许多网站都得益于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。一个例子是网络市场和交易所。例如，如果拍卖没有竞争性，eBay 就不会成为一个特别有用的网站。随着 eBay 上用户数量的增长，拍卖会的竞争越来越激烈，推高了物品的竞价价格。这使得在 eBay 上出售物品更有价值，并将更多的卖家带到 eBay 上，反过来，由于供应量的增加，又促使价格下降。供应量的增加为 eBay 带来了更多的买家。从本质上讲，随着 eBay 用户数量的增加，价格下降，供给增加，越来越多的人发现这个网站是有用的。&lt;br /&gt;
&lt;br /&gt;
20世纪90年代末，一些网络公司将'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''作为商业模式的理由。这些公司的经营理念是，当一个新的市场出现时，如果这个市场包含着强烈的网络效应，公司应该更关心市场份额的增长，而不是马上变得有利可图。其理由是，市场份额将决定哪家公司能够制定技术和营销标准，并使这些公司获得先发优势。&lt;br /&gt;
&lt;br /&gt;
社交网站就是很好的例子。在社交网站上注册的人越多，网站对其注册者越有用。&lt;br /&gt;
&lt;br /&gt;
Alexa互联网使用的技术是跟踪用户的网络浏览模式，因此 Alexa 的相关网站结果会随着更多用户使用该技术而提高。Alexa的网络严重依赖少量的浏览器软件关系，这使得该网络更容易受到竞争的影响。&lt;br /&gt;
&lt;br /&gt;
谷歌也试图通过其 Google AdSense 服务，在广告业务中创造'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。 Google AdSense 在许多小型网站（如博客）上投放广告，利用 Google 的技术来确定哪些广告与哪些博客相关。因此，该服务的目的似乎是作为一个交易所（或广告网络），为许多广告商与许多小网站（如博客）进行匹配。一般来说，Google AdSense 能够接触到的博客越多，就会吸引更多的广告商，使其成为对更多博客最有吸引力的选择，以此类推，使网络对所有参与者更有价值。&lt;br /&gt;
&lt;br /&gt;
相比之下，一个新闻网站的价值，主要与文章的质量成正比，而不是与其他使用网站的人数成正比。&lt;br /&gt;
&lt;br /&gt;
同样，第一代搜索网站也没有经历什么网络效应，因为网站的价值是基于搜索结果的价值。一旦用户认为 Google 的搜索结果更胜一筹，Google 便不费吹灰之力就从雅虎手中赢得了用户。而一些评论家误以为雅虎品牌的价值（随着更多的人知道雅虎品牌，雅虎品牌的价值确实会增加）是保护其广告业务的网络效应。&lt;br /&gt;
&lt;br /&gt;
=== 铁路轨距 ===&lt;br /&gt;
&lt;br /&gt;
在最初的轨距选择和轨距转换决策中，存在着强烈的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
即使在放置不与任何其他线路连接的孤立钢轨时，轨道层通常也会选择一个标准轨距，这样他们就可以使用现成的机车车辆。&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;虽然少数厂家生产的机车车辆可以适应不同轨距，但大多数厂家生产的机车车（内容不完整）&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
== 词条编辑日志 ==&lt;br /&gt;
&lt;br /&gt;
* 200818 润悟翻译自 wikipedia https://en.wikipedia.org/wiki/Network_effect&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17929</id>
		<title>网络效应</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17929"/>
		<updated>2020-11-05T15:10:03Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：/* 四、技术生命周期 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 一、简介 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络效应(network effect)&amp;lt;/font&amp;gt;'''（也称“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络外部性（network externality）&amp;lt;/font&amp;gt;'''”，或“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;需求方规模经济（demand-side economies of scale）&amp;lt;/font&amp;gt;'''”)，是一个经济学和商业方面的术语，用于描述对于一个产品（或服务），每增多一名用户，都会对该产品的其他用户产生新的价值。当网络效应出现时，产品（或服务）的价值，会随着使用该产品（或服务）的人数的增加而增加。&lt;br /&gt;
&lt;br /&gt;
一个经典的例子是电话，越多的人使用电话，对每个电话使用者的价值就越大。一部电话的使用者，本来无意为其他用户创造价值，但当大家都购买电话时，这个行为就产生了正外部性。像微信、微博、Twitter、Facebook 这样的线上社交网络，也是一样，随着更多用户的加入，每个用户获得的价值都在增加。&lt;br /&gt;
&lt;br /&gt;
当网络的价值越来越大，越来越多的人加入时，网络效应还会带来从众效应，从而形成正反馈循环。&lt;br /&gt;
&lt;br /&gt;
网络效应这一表述不仅适用于正向的网络外部性，如电话的案例；消极的网络外部性也可能发生，即用户越多，产品的价值就越低，这种情况通常被称为“拥堵”，例如如交通拥堵或网络拥堵。&lt;br /&gt;
&lt;br /&gt;
== 二、网络效应的起源 ==&lt;br /&gt;
&lt;br /&gt;
网络效应是后专利时代贝尔电话公司的第一任总裁西奥多·韦尔期望获得美国电话服务垄断权的一系列方法中的核心主题。1908 年，当他在贝尔的年报中提出这一概念时，当地和地区电话交换机有 4000 多个，其中大部分最终被并入贝尔系统。&lt;br /&gt;
&lt;br /&gt;
网络效应是由罗伯特·梅特卡夫推广的，称其为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;梅特卡夫定律（Metcalfe's law）&amp;lt;/font&amp;gt;'''。梅特卡夫是以太网的共同发明人之一，也是3Com公司的联合创始人。在销售产品的过程中，梅特卡夫认为，客户要想从网络中获得收益，就需要以太网卡增长到一定的临界值以上，按照梅特卡夫的说法，网络卡销售的原理是：网络的成本与安装的网卡数量成正比，但网络的价值与用户数量的平方成正比。这在代数上表示为成本为 N ，价值为 N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;。虽然这个命题背后的实际数字从来没有确定过，但这个概念使客户可以共享访问昂贵的资源，如磁盘驱动器和打印机，发送电子邮件，并最终访问互联网。&lt;br /&gt;
&lt;br /&gt;
1985-1995年，研究人员 Michael L. Katz、Carl Shapiro、Joseph Farrell 和Garth Saloner 推进了网络效应的经济理论，Rod Beckstrom 在2009年的 BlackHat和 DEF CON会议上提出了描述处于正网络效应状态的网络的数学模型，同时也提出了'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;逆网络效应&amp;lt;/font&amp;gt;'''，并给出了经济模型的定义。&lt;br /&gt;
&lt;br /&gt;
== 三、网络效应的好处 ==&lt;br /&gt;
&lt;br /&gt;
网络效应在达到一定的认购比例后变得显著，称为临界值。在临界值，从商品或服务中获得的价值大于或等于为商品或服务支付的价格。由于商品的价值是由用户群决定的，这就意味着在一定数量的人订阅了服务或购买了商品后，由于价值大于价格，会有更多的人订阅服务或购买商品。&lt;br /&gt;
&lt;br /&gt;
那么，一个关键的商业问题必须是如何在达到临界值之前吸引用户。一种方法是依靠如付款、免费或请求朋友注册等外在的动机。更自然的策略是建立一个没有网络效应的但足够有价值的系统。然后，随着用户数量的增加系统会变得更有价值，继而吸引更广泛的用户群。&lt;br /&gt;
&lt;br /&gt;
超过临界值后用户数量的增加不会无限期地持续下去。到了一定程度后，大多数网络要么拥堵要么饱和，不再吸收用户。&lt;br /&gt;
&lt;br /&gt;
拥堵是由于过度使用而发生的。比如电话网络中，当用户数量低于拥堵点时，每增加一个用户都会给其他每一个用户增加额外的价值。然而，在某些时候，额外用户的增加超过了现有系统的容量。在这一点之后，每增加一个用户都会减少其他每一个用户获得的价值，因为从实际情况来看，每增加一个用户都会增加系统的总负荷，导致信号繁忙、无法获得拨号音、客户服务质量下降。假设拥堵点低于潜在的市场规模，下一个临界点获得的价值将等于付出的代价。如果不提高系统容量，此时网络将停止发展。点对点(P2P)系统是为了在其用户池中分配负载而设计的网络，理论上，这使得P2P网络可以无限扩大规模。基于P2P的电话服务Skype就得益于这种效应，它的增长主要受到市场饱和度的限制。&lt;br /&gt;
&lt;br /&gt;
网络效应通常被误认为是规模经济，但规模经济是由企业规模带来的，而非用户之间的相互操作性造成的。经典规模经济是在生产侧，而网络效应则是在需求侧产生的。&lt;br /&gt;
&lt;br /&gt;
由于网络效应常常与正反馈相关，网络效应与'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;范围经济（Economies of scope）&amp;lt;/font&amp;gt;'''、口碑传播和'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;巴斯扩散模型（Bass Diffusion Model）&amp;lt;/font&amp;gt;'''相关，系统动力学可以作为一种描述这种现象的建模方法。&lt;br /&gt;
&lt;br /&gt;
== 四、技术生命周期 ==&lt;br /&gt;
&lt;br /&gt;
如果一些现有的技术或公司的利益主要基于网络效应，如果在面对如颠覆性的新技术或基于开源标准的竞争等挑战者时，他们开始失去市场份额，那么网络效应给他们带来的利益就会减少，给挑战者带来的利益会增加。&lt;br /&gt;
&lt;br /&gt;
在这一模式中，最终会达到一个临界值，即挑战者的网络效应支配了原在位者的网络效应，在位者被迫加速衰落，挑战者逐渐取代原在位者的地位。&lt;br /&gt;
&lt;br /&gt;
== 五、网络效应带来锁定 ==&lt;br /&gt;
&lt;br /&gt;
因为常常会把用户和供应商锁定在某一个标准上，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''也有臭名昭著的一面，最常见的例子是微软产品和 QWERTY 键盘。&lt;br /&gt;
&lt;br /&gt;
供应商锁定可以通过开放用户所依赖的标准来缓解，允许各实施方案之间的竞争。然而，这并不能减轻整个行业对标准本身的锁定。事实上，由于现在有多个供应商在降低价格和提高质量，更多的用户可能会采用该标准，从而造成整个行业对该标准的更大锁定。&lt;br /&gt;
&lt;br /&gt;
== 六、网络效应的类型 ==&lt;br /&gt;
&lt;br /&gt;
大体而言，有 2 种网络效应——'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''、'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;间接网络效应&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
=== 直接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
使用量的增加会直接导致其他用户价值的增加。例如，电话系统、传真机、社交网络，都意味着用户之间的直接接触。'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''称为''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;同侧网络效应&amp;lt;/font&amp;gt;'''。一个例子是在线游戏玩家，会从其他在线游戏玩家的参与中获益。&lt;br /&gt;
&lt;br /&gt;
=== 间接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
一种产品或网络使用量的增加，会引起补充产品或网络价值的增加，而补充产品或网络又会增加原产品的价值。补充产品的例子包括软件(如操作系统的Office套件)和DVD(DVD播放器)。这也就是所谓的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;跨边网络效应&amp;lt;/font&amp;gt;'''。Windows和Linux可能不仅争夺用户，而且争夺软件开发商。大多数双边市场（或平台中介市场），都具有'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;间接网络效应&amp;lt;/font&amp;gt;'''的特点。&lt;br /&gt;
&lt;br /&gt;
此外，在分析显示出'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的产品时，有两个相关的经济价值来源：&lt;br /&gt;
&lt;br /&gt;
=== 内在价值===&lt;br /&gt;
&lt;br /&gt;
从使用产品中获得价值。&lt;br /&gt;
&lt;br /&gt;
=== 网络价值===&lt;br /&gt;
&lt;br /&gt;
从别人对产品的使用中获得价值。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 七、负网络外部性 ==&lt;br /&gt;
&lt;br /&gt;
数学意义上的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''，是指与正常（正）网络效应相比，具有负效应的网络外部性。正的网络外部性（网络效应）会造成正反馈和指数增长，负的网络外部性会造成负反馈和指数衰减。在自然界中，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''是拉向平衡的力量，是稳定的原因，代表着使系统受到约束的物理限制。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;拥堵&amp;lt;/font&amp;gt;'''的发生，是随着使用网络的人越来越多，网络的效率就会降低，这就降低了已经使用网络的人的价值。使高速公路超载的交通拥堵、带宽有限的连接上的网络拥堵，都表现出负的网络外部性。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;布雷斯悖论 (Braess’s paradox) &amp;lt;/font&amp;gt;'''表明，增加网络中的路径，会对网络的性能产生负面影响。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 八、互操作性/协同工作能力 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''具有使网络扩大的作用，从而增加网络对消费者的外部价值。'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''主要是通过增加潜在的连接来实现的，其次是通过吸引新的参与者加入网络。互操作性的其他好处包括减少不确定性、减少锁定、商品化和基于价格的竞争。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''可以通过标准化或其他合作来实现。参与促进'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''的公司，既要与竞争者合作以扩大产品的潜在市场，又要彼此之间争夺市场份额，他们往往面临着紧张关系。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 九、开源标准 vs 封闭标准 ==&lt;br /&gt;
&lt;br /&gt;
在通信和信息技术中，开源标准和接口往往是通过多家公司的参与而制定的，他们制定开源标准，往往也是互利的。但是，如果有关的通信协议或接口是封闭的标准，网络效应就会使控制这些标准的公司，具有垄断能力。&lt;br /&gt;
&lt;br /&gt;
计算机专业人士普遍认为，微软公司是通过这些手段来维持其垄断地位的。可以看到，微软公司将网络效应发挥到极致的一种方法叫做拥抱、延伸和消灭。&lt;br /&gt;
&lt;br /&gt;
Mirabilis 是一家以色列的创业公司，它是即时通讯（IM）的先驱，被美国在线收购。通过免费赠送他们的 ICQ 产品，并防止他们的客户端软件与其他产品之间的互操作性，他们得以暂时主导了即时通讯的市场。由于网络效应，新的即时通讯用户选择使用 Mirabilis 系统（并加入其庞大的用户网络）比使用竞争系统获得的价值要大得多。作为那个时代的典型，该公司在出售公司之前从未试图从其主导地位中获得利润。&lt;br /&gt;
&lt;br /&gt;
== 十、案例 ==&lt;br /&gt;
&lt;br /&gt;
=== 金融交易所 ===&lt;br /&gt;
&lt;br /&gt;
证券交易所和衍生品交易所，具有'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的特点。市场流动性是决定证券买卖交易成本的主要因素，因为在购买价格与出售同一证券的价格之间存在着买卖差价。随着交易所的买卖双方数量的增加，流动性增加，交易成本降低。这样就会吸引更多的买家和卖家来到交易所。&lt;br /&gt;
&lt;br /&gt;
金融交易所的网络优势，明显体现在新成立的交易所，很难脱离主导交易所。例如，尽管 Eurex US 启动了相同期货合约的交易，但芝加哥期货交易所仍然保持了美国国债期货交易的压倒性优势。同样，尽管受到了 Euronext.Liffe 的挑战，芝加哥商业交易所也保持了在欧洲债券利率期货交易中的主导地位。&lt;br /&gt;
&lt;br /&gt;
=== 软件 ===&lt;br /&gt;
&lt;br /&gt;
在广泛使用的计算机软件市场上，存在着非常强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
对许多人来说，选择办公套件的首要考虑因素包括：学会该办公套件对潜在雇主的价值有多大，以及该软件与其他用户的互动情况如何。也就是说，由于学习使用一个办公套件需要花费很多时间，用户希望将这些时间投入到学习办公套件上，使他们对潜在的雇主和客户最具吸引力。同样，在决定购买哪款办公套件时，寻找已经培训过的员工也是雇主们的一大顾虑。&lt;br /&gt;
&lt;br /&gt;
2007 年，苹果发布了 iPhone，随后是 App store 应用商店。大多数 iPhone 应用，非常依赖 iPhone 已经存在的强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。这样软件应用能够以非常有限的市场营销预算，迅速地增长人气，并传播到庞大的用户群。&lt;br /&gt;
&lt;br /&gt;
免费增值的商业模式已经发展到利用这些'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''，发布一个免费版本，让用户不限制使用，然后对高级功能收费来作为主要收入来源。&lt;br /&gt;
&lt;br /&gt;
=== 网站 ===&lt;br /&gt;
&lt;br /&gt;
许多网站都得益于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。一个例子是网络市场和交易所。例如，如果拍卖没有竞争性，eBay 就不会成为一个特别有用的网站。随着 eBay 上用户数量的增长，拍卖会的竞争越来越激烈，推高了物品的竞价价格。这使得在 eBay 上出售物品更有价值，并将更多的卖家带到 eBay 上，反过来，由于供应量的增加，又促使价格下降。供应量的增加为 eBay 带来了更多的买家。从本质上讲，随着 eBay 用户数量的增加，价格下降，供给增加，越来越多的人发现这个网站是有用的。&lt;br /&gt;
&lt;br /&gt;
20世纪90年代末，一些网络公司将'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''作为商业模式的理由。这些公司的经营理念是，当一个新的市场出现时，如果这个市场包含着强烈的网络效应，公司应该更关心市场份额的增长，而不是马上变得有利可图。其理由是，市场份额将决定哪家公司能够制定技术和营销标准，并使这些公司获得先发优势。&lt;br /&gt;
&lt;br /&gt;
社交网站就是很好的例子。在社交网站上注册的人越多，网站对其注册者越有用。&lt;br /&gt;
&lt;br /&gt;
Alexa互联网使用的技术是跟踪用户的网络浏览模式，因此 Alexa 的相关网站结果会随着更多用户使用该技术而提高。Alexa的网络严重依赖少量的浏览器软件关系，这使得该网络更容易受到竞争的影响。&lt;br /&gt;
&lt;br /&gt;
谷歌也试图通过其 Google AdSense 服务，在广告业务中创造'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。 Google AdSense 在许多小型网站（如博客）上投放广告，利用 Google 的技术来确定哪些广告与哪些博客相关。因此，该服务的目的似乎是作为一个交易所（或广告网络），为许多广告商与许多小网站（如博客）进行匹配。一般来说，Google AdSense 能够接触到的博客越多，就会吸引更多的广告商，使其成为对更多博客最有吸引力的选择，以此类推，使网络对所有参与者更有价值。&lt;br /&gt;
&lt;br /&gt;
相比之下，一个新闻网站的价值，主要与文章的质量成正比，而不是与其他使用网站的人数成正比。&lt;br /&gt;
&lt;br /&gt;
同样，第一代搜索网站也没有经历什么网络效应，因为网站的价值是基于搜索结果的价值。一旦用户认为 Google 的搜索结果更胜一筹，Google 便不费吹灰之力就从雅虎手中赢得了用户。而一些评论家误以为雅虎品牌的价值（随着更多的人知道雅虎品牌，雅虎品牌的价值确实会增加）是保护其广告业务的网络效应。&lt;br /&gt;
&lt;br /&gt;
=== 铁路轨距 ===&lt;br /&gt;
&lt;br /&gt;
在最初的轨距选择和轨距转换决策中，存在着强烈的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
即使在放置不与任何其他线路连接的孤立钢轨时，轨道层通常也会选择一个标准轨距，这样他们就可以使用现成的机车车辆。&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;虽然少数厂家生产的机车车辆可以适应不同轨距，但大多数厂家生产的机车车（内容不完整）&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
== 词条编辑日志 ==&lt;br /&gt;
&lt;br /&gt;
* 200818 润悟翻译自 wikipedia https://en.wikipedia.org/wiki/Network_effect&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17928</id>
		<title>网络效应</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17928"/>
		<updated>2020-11-05T15:07:23Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：/* 三、网络效应的好处 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 一、简介 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络效应(network effect)&amp;lt;/font&amp;gt;'''（也称“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络外部性（network externality）&amp;lt;/font&amp;gt;'''”，或“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;需求方规模经济（demand-side economies of scale）&amp;lt;/font&amp;gt;'''”)，是一个经济学和商业方面的术语，用于描述对于一个产品（或服务），每增多一名用户，都会对该产品的其他用户产生新的价值。当网络效应出现时，产品（或服务）的价值，会随着使用该产品（或服务）的人数的增加而增加。&lt;br /&gt;
&lt;br /&gt;
一个经典的例子是电话，越多的人使用电话，对每个电话使用者的价值就越大。一部电话的使用者，本来无意为其他用户创造价值，但当大家都购买电话时，这个行为就产生了正外部性。像微信、微博、Twitter、Facebook 这样的线上社交网络，也是一样，随着更多用户的加入，每个用户获得的价值都在增加。&lt;br /&gt;
&lt;br /&gt;
当网络的价值越来越大，越来越多的人加入时，网络效应还会带来从众效应，从而形成正反馈循环。&lt;br /&gt;
&lt;br /&gt;
网络效应这一表述不仅适用于正向的网络外部性，如电话的案例；消极的网络外部性也可能发生，即用户越多，产品的价值就越低，这种情况通常被称为“拥堵”，例如如交通拥堵或网络拥堵。&lt;br /&gt;
&lt;br /&gt;
== 二、网络效应的起源 ==&lt;br /&gt;
&lt;br /&gt;
网络效应是后专利时代贝尔电话公司的第一任总裁西奥多·韦尔期望获得美国电话服务垄断权的一系列方法中的核心主题。1908 年，当他在贝尔的年报中提出这一概念时，当地和地区电话交换机有 4000 多个，其中大部分最终被并入贝尔系统。&lt;br /&gt;
&lt;br /&gt;
网络效应是由罗伯特·梅特卡夫推广的，称其为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;梅特卡夫定律（Metcalfe's law）&amp;lt;/font&amp;gt;'''。梅特卡夫是以太网的共同发明人之一，也是3Com公司的联合创始人。在销售产品的过程中，梅特卡夫认为，客户要想从网络中获得收益，就需要以太网卡增长到一定的临界值以上，按照梅特卡夫的说法，网络卡销售的原理是：网络的成本与安装的网卡数量成正比，但网络的价值与用户数量的平方成正比。这在代数上表示为成本为 N ，价值为 N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;。虽然这个命题背后的实际数字从来没有确定过，但这个概念使客户可以共享访问昂贵的资源，如磁盘驱动器和打印机，发送电子邮件，并最终访问互联网。&lt;br /&gt;
&lt;br /&gt;
1985-1995年，研究人员 Michael L. Katz、Carl Shapiro、Joseph Farrell 和Garth Saloner 推进了网络效应的经济理论，Rod Beckstrom 在2009年的 BlackHat和 DEF CON会议上提出了描述处于正网络效应状态的网络的数学模型，同时也提出了'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;逆网络效应&amp;lt;/font&amp;gt;'''，并给出了经济模型的定义。&lt;br /&gt;
&lt;br /&gt;
== 三、网络效应的好处 ==&lt;br /&gt;
&lt;br /&gt;
网络效应在达到一定的认购比例后变得显著，称为临界值。在临界值，从商品或服务中获得的价值大于或等于为商品或服务支付的价格。由于商品的价值是由用户群决定的，这就意味着在一定数量的人订阅了服务或购买了商品后，由于价值大于价格，会有更多的人订阅服务或购买商品。&lt;br /&gt;
&lt;br /&gt;
那么，一个关键的商业问题必须是如何在达到临界值之前吸引用户。一种方法是依靠如付款、免费或请求朋友注册等外在的动机。更自然的策略是建立一个没有网络效应的但足够有价值的系统。然后，随着用户数量的增加系统会变得更有价值，继而吸引更广泛的用户群。&lt;br /&gt;
&lt;br /&gt;
超过临界值后用户数量的增加不会无限期地持续下去。到了一定程度后，大多数网络要么拥堵要么饱和，不再吸收用户。&lt;br /&gt;
&lt;br /&gt;
拥堵是由于过度使用而发生的。比如电话网络中，当用户数量低于拥堵点时，每增加一个用户都会给其他每一个用户增加额外的价值。然而，在某些时候，额外用户的增加超过了现有系统的容量。在这一点之后，每增加一个用户都会减少其他每一个用户获得的价值，因为从实际情况来看，每增加一个用户都会增加系统的总负荷，导致信号繁忙、无法获得拨号音、客户服务质量下降。假设拥堵点低于潜在的市场规模，下一个临界点获得的价值将等于付出的代价。如果不提高系统容量，此时网络将停止发展。点对点(P2P)系统是为了在其用户池中分配负载而设计的网络，理论上，这使得P2P网络可以无限扩大规模。基于P2P的电话服务Skype就得益于这种效应，它的增长主要受到市场饱和度的限制。&lt;br /&gt;
&lt;br /&gt;
网络效应通常被误认为是规模经济，但规模经济是由企业规模带来的，而非用户之间的相互操作性造成的。经典规模经济是在生产侧，而网络效应则是在需求侧产生的。&lt;br /&gt;
&lt;br /&gt;
由于网络效应常常与正反馈相关，网络效应与'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;范围经济（Economies of scope）&amp;lt;/font&amp;gt;'''、口碑传播和'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;巴斯扩散模型（Bass Diffusion Model）&amp;lt;/font&amp;gt;'''相关，系统动力学可以作为一种描述这种现象的建模方法。&lt;br /&gt;
&lt;br /&gt;
== 四、技术生命周期 ==&lt;br /&gt;
&lt;br /&gt;
如果一些现有的技术或公司的利益，主要是基于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的，在面对挑战者时（如颠覆性的新技术，或基于开源标准的竞争），如果他们开始失去市场份额，那么'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''给他们带来的利益就会减少，给挑战者带来的利益会增加。&lt;br /&gt;
&lt;br /&gt;
在这一模式中，最终会达到一个临界点，即挑战者的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''支配了原在位者的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''，在位者被迫加速衰落，而挑战者则取代了在位者的原有地位。&lt;br /&gt;
&lt;br /&gt;
== 五、网络效应带来锁定 ==&lt;br /&gt;
&lt;br /&gt;
因为常常会把用户和供应商锁定在某一个标准上，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''也有臭名昭著的一面，最常见的例子是微软产品和 QWERTY 键盘。&lt;br /&gt;
&lt;br /&gt;
供应商锁定可以通过开放用户所依赖的标准来缓解，允许各实施方案之间的竞争。然而，这并不能减轻整个行业对标准本身的锁定。事实上，由于现在有多个供应商在降低价格和提高质量，更多的用户可能会采用该标准，从而造成整个行业对该标准的更大锁定。&lt;br /&gt;
&lt;br /&gt;
== 六、网络效应的类型 ==&lt;br /&gt;
&lt;br /&gt;
大体而言，有 2 种网络效应——'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''、'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;间接网络效应&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
=== 直接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
使用量的增加会直接导致其他用户价值的增加。例如，电话系统、传真机、社交网络，都意味着用户之间的直接接触。'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''称为''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;同侧网络效应&amp;lt;/font&amp;gt;'''。一个例子是在线游戏玩家，会从其他在线游戏玩家的参与中获益。&lt;br /&gt;
&lt;br /&gt;
=== 间接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
一种产品或网络使用量的增加，会引起补充产品或网络价值的增加，而补充产品或网络又会增加原产品的价值。补充产品的例子包括软件(如操作系统的Office套件)和DVD(DVD播放器)。这也就是所谓的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;跨边网络效应&amp;lt;/font&amp;gt;'''。Windows和Linux可能不仅争夺用户，而且争夺软件开发商。大多数双边市场（或平台中介市场），都具有'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;间接网络效应&amp;lt;/font&amp;gt;'''的特点。&lt;br /&gt;
&lt;br /&gt;
此外，在分析显示出'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的产品时，有两个相关的经济价值来源：&lt;br /&gt;
&lt;br /&gt;
=== 内在价值===&lt;br /&gt;
&lt;br /&gt;
从使用产品中获得价值。&lt;br /&gt;
&lt;br /&gt;
=== 网络价值===&lt;br /&gt;
&lt;br /&gt;
从别人对产品的使用中获得价值。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 七、负网络外部性 ==&lt;br /&gt;
&lt;br /&gt;
数学意义上的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''，是指与正常（正）网络效应相比，具有负效应的网络外部性。正的网络外部性（网络效应）会造成正反馈和指数增长，负的网络外部性会造成负反馈和指数衰减。在自然界中，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''是拉向平衡的力量，是稳定的原因，代表着使系统受到约束的物理限制。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;拥堵&amp;lt;/font&amp;gt;'''的发生，是随着使用网络的人越来越多，网络的效率就会降低，这就降低了已经使用网络的人的价值。使高速公路超载的交通拥堵、带宽有限的连接上的网络拥堵，都表现出负的网络外部性。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;布雷斯悖论 (Braess’s paradox) &amp;lt;/font&amp;gt;'''表明，增加网络中的路径，会对网络的性能产生负面影响。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 八、互操作性/协同工作能力 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''具有使网络扩大的作用，从而增加网络对消费者的外部价值。'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''主要是通过增加潜在的连接来实现的，其次是通过吸引新的参与者加入网络。互操作性的其他好处包括减少不确定性、减少锁定、商品化和基于价格的竞争。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''可以通过标准化或其他合作来实现。参与促进'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''的公司，既要与竞争者合作以扩大产品的潜在市场，又要彼此之间争夺市场份额，他们往往面临着紧张关系。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 九、开源标准 vs 封闭标准 ==&lt;br /&gt;
&lt;br /&gt;
在通信和信息技术中，开源标准和接口往往是通过多家公司的参与而制定的，他们制定开源标准，往往也是互利的。但是，如果有关的通信协议或接口是封闭的标准，网络效应就会使控制这些标准的公司，具有垄断能力。&lt;br /&gt;
&lt;br /&gt;
计算机专业人士普遍认为，微软公司是通过这些手段来维持其垄断地位的。可以看到，微软公司将网络效应发挥到极致的一种方法叫做拥抱、延伸和消灭。&lt;br /&gt;
&lt;br /&gt;
Mirabilis 是一家以色列的创业公司，它是即时通讯（IM）的先驱，被美国在线收购。通过免费赠送他们的 ICQ 产品，并防止他们的客户端软件与其他产品之间的互操作性，他们得以暂时主导了即时通讯的市场。由于网络效应，新的即时通讯用户选择使用 Mirabilis 系统（并加入其庞大的用户网络）比使用竞争系统获得的价值要大得多。作为那个时代的典型，该公司在出售公司之前从未试图从其主导地位中获得利润。&lt;br /&gt;
&lt;br /&gt;
== 十、案例 ==&lt;br /&gt;
&lt;br /&gt;
=== 金融交易所 ===&lt;br /&gt;
&lt;br /&gt;
证券交易所和衍生品交易所，具有'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的特点。市场流动性是决定证券买卖交易成本的主要因素，因为在购买价格与出售同一证券的价格之间存在着买卖差价。随着交易所的买卖双方数量的增加，流动性增加，交易成本降低。这样就会吸引更多的买家和卖家来到交易所。&lt;br /&gt;
&lt;br /&gt;
金融交易所的网络优势，明显体现在新成立的交易所，很难脱离主导交易所。例如，尽管 Eurex US 启动了相同期货合约的交易，但芝加哥期货交易所仍然保持了美国国债期货交易的压倒性优势。同样，尽管受到了 Euronext.Liffe 的挑战，芝加哥商业交易所也保持了在欧洲债券利率期货交易中的主导地位。&lt;br /&gt;
&lt;br /&gt;
=== 软件 ===&lt;br /&gt;
&lt;br /&gt;
在广泛使用的计算机软件市场上，存在着非常强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
对许多人来说，选择办公套件的首要考虑因素包括：学会该办公套件对潜在雇主的价值有多大，以及该软件与其他用户的互动情况如何。也就是说，由于学习使用一个办公套件需要花费很多时间，用户希望将这些时间投入到学习办公套件上，使他们对潜在的雇主和客户最具吸引力。同样，在决定购买哪款办公套件时，寻找已经培训过的员工也是雇主们的一大顾虑。&lt;br /&gt;
&lt;br /&gt;
2007 年，苹果发布了 iPhone，随后是 App store 应用商店。大多数 iPhone 应用，非常依赖 iPhone 已经存在的强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。这样软件应用能够以非常有限的市场营销预算，迅速地增长人气，并传播到庞大的用户群。&lt;br /&gt;
&lt;br /&gt;
免费增值的商业模式已经发展到利用这些'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''，发布一个免费版本，让用户不限制使用，然后对高级功能收费来作为主要收入来源。&lt;br /&gt;
&lt;br /&gt;
=== 网站 ===&lt;br /&gt;
&lt;br /&gt;
许多网站都得益于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。一个例子是网络市场和交易所。例如，如果拍卖没有竞争性，eBay 就不会成为一个特别有用的网站。随着 eBay 上用户数量的增长，拍卖会的竞争越来越激烈，推高了物品的竞价价格。这使得在 eBay 上出售物品更有价值，并将更多的卖家带到 eBay 上，反过来，由于供应量的增加，又促使价格下降。供应量的增加为 eBay 带来了更多的买家。从本质上讲，随着 eBay 用户数量的增加，价格下降，供给增加，越来越多的人发现这个网站是有用的。&lt;br /&gt;
&lt;br /&gt;
20世纪90年代末，一些网络公司将'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''作为商业模式的理由。这些公司的经营理念是，当一个新的市场出现时，如果这个市场包含着强烈的网络效应，公司应该更关心市场份额的增长，而不是马上变得有利可图。其理由是，市场份额将决定哪家公司能够制定技术和营销标准，并使这些公司获得先发优势。&lt;br /&gt;
&lt;br /&gt;
社交网站就是很好的例子。在社交网站上注册的人越多，网站对其注册者越有用。&lt;br /&gt;
&lt;br /&gt;
Alexa互联网使用的技术是跟踪用户的网络浏览模式，因此 Alexa 的相关网站结果会随着更多用户使用该技术而提高。Alexa的网络严重依赖少量的浏览器软件关系，这使得该网络更容易受到竞争的影响。&lt;br /&gt;
&lt;br /&gt;
谷歌也试图通过其 Google AdSense 服务，在广告业务中创造'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。 Google AdSense 在许多小型网站（如博客）上投放广告，利用 Google 的技术来确定哪些广告与哪些博客相关。因此，该服务的目的似乎是作为一个交易所（或广告网络），为许多广告商与许多小网站（如博客）进行匹配。一般来说，Google AdSense 能够接触到的博客越多，就会吸引更多的广告商，使其成为对更多博客最有吸引力的选择，以此类推，使网络对所有参与者更有价值。&lt;br /&gt;
&lt;br /&gt;
相比之下，一个新闻网站的价值，主要与文章的质量成正比，而不是与其他使用网站的人数成正比。&lt;br /&gt;
&lt;br /&gt;
同样，第一代搜索网站也没有经历什么网络效应，因为网站的价值是基于搜索结果的价值。一旦用户认为 Google 的搜索结果更胜一筹，Google 便不费吹灰之力就从雅虎手中赢得了用户。而一些评论家误以为雅虎品牌的价值（随着更多的人知道雅虎品牌，雅虎品牌的价值确实会增加）是保护其广告业务的网络效应。&lt;br /&gt;
&lt;br /&gt;
=== 铁路轨距 ===&lt;br /&gt;
&lt;br /&gt;
在最初的轨距选择和轨距转换决策中，存在着强烈的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
即使在放置不与任何其他线路连接的孤立钢轨时，轨道层通常也会选择一个标准轨距，这样他们就可以使用现成的机车车辆。&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;虽然少数厂家生产的机车车辆可以适应不同轨距，但大多数厂家生产的机车车（内容不完整）&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
== 词条编辑日志 ==&lt;br /&gt;
&lt;br /&gt;
* 200818 润悟翻译自 wikipedia https://en.wikipedia.org/wiki/Network_effect&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17927</id>
		<title>网络效应</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17927"/>
		<updated>2020-11-05T14:53:41Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：/* 二、网络效应的起源 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 一、简介 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络效应(network effect)&amp;lt;/font&amp;gt;'''（也称“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络外部性（network externality）&amp;lt;/font&amp;gt;'''”，或“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;需求方规模经济（demand-side economies of scale）&amp;lt;/font&amp;gt;'''”)，是一个经济学和商业方面的术语，用于描述对于一个产品（或服务），每增多一名用户，都会对该产品的其他用户产生新的价值。当网络效应出现时，产品（或服务）的价值，会随着使用该产品（或服务）的人数的增加而增加。&lt;br /&gt;
&lt;br /&gt;
一个经典的例子是电话，越多的人使用电话，对每个电话使用者的价值就越大。一部电话的使用者，本来无意为其他用户创造价值，但当大家都购买电话时，这个行为就产生了正外部性。像微信、微博、Twitter、Facebook 这样的线上社交网络，也是一样，随着更多用户的加入，每个用户获得的价值都在增加。&lt;br /&gt;
&lt;br /&gt;
当网络的价值越来越大，越来越多的人加入时，网络效应还会带来从众效应，从而形成正反馈循环。&lt;br /&gt;
&lt;br /&gt;
网络效应这一表述不仅适用于正向的网络外部性，如电话的案例；消极的网络外部性也可能发生，即用户越多，产品的价值就越低，这种情况通常被称为“拥堵”，例如如交通拥堵或网络拥堵。&lt;br /&gt;
&lt;br /&gt;
== 二、网络效应的起源 ==&lt;br /&gt;
&lt;br /&gt;
网络效应是后专利时代贝尔电话公司的第一任总裁西奥多·韦尔期望获得美国电话服务垄断权的一系列方法中的核心主题。1908 年，当他在贝尔的年报中提出这一概念时，当地和地区电话交换机有 4000 多个，其中大部分最终被并入贝尔系统。&lt;br /&gt;
&lt;br /&gt;
网络效应是由罗伯特·梅特卡夫推广的，称其为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;梅特卡夫定律（Metcalfe's law）&amp;lt;/font&amp;gt;'''。梅特卡夫是以太网的共同发明人之一，也是3Com公司的联合创始人。在销售产品的过程中，梅特卡夫认为，客户要想从网络中获得收益，就需要以太网卡增长到一定的临界值以上，按照梅特卡夫的说法，网络卡销售的原理是：网络的成本与安装的网卡数量成正比，但网络的价值与用户数量的平方成正比。这在代数上表示为成本为 N ，价值为 N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;。虽然这个命题背后的实际数字从来没有确定过，但这个概念使客户可以共享访问昂贵的资源，如磁盘驱动器和打印机，发送电子邮件，并最终访问互联网。&lt;br /&gt;
&lt;br /&gt;
1985-1995年，研究人员 Michael L. Katz、Carl Shapiro、Joseph Farrell 和Garth Saloner 推进了网络效应的经济理论，Rod Beckstrom 在2009年的 BlackHat和 DEF CON会议上提出了描述处于正网络效应状态的网络的数学模型，同时也提出了'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;逆网络效应&amp;lt;/font&amp;gt;'''，并给出了经济模型的定义。&lt;br /&gt;
&lt;br /&gt;
== 三、网络效应的好处 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''在达到一定的认购比例后变得显著，称为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;临界质量&amp;lt;/font&amp;gt;'''。在临界质量点，从商品或服务中获得的价值大于或等于为商品或服务支付的价格。由于商品的价值是由用户群决定的，这就意味着在一定数量的人订阅了服务或购买了商品后，由于价值大于价格，会有更多的人订阅服务或购买商品。&lt;br /&gt;
&lt;br /&gt;
那么，一个关键的商业问题必须是如何在达到'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;临界质量&amp;lt;/font&amp;gt;'''之前吸引用户。一种方法是依靠外在的动机，如付款、免费或请求朋友注册。更自然的策略是建立一个没有'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的但足够有价值的系统，至少对早期采用者来说是这样。然后，随着用户数量的增加，系统会变得更有价值，能够吸引更广泛的用户群。&lt;br /&gt;
&lt;br /&gt;
超过'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;临界质量&amp;lt;/font&amp;gt;'''后，用户数量的增加一般不能无限期地持续下去。到了一定程度后，大多数网络要么'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;拥堵&amp;lt;/font&amp;gt;'''，要么饱和，不再吸收用户。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;拥堵&amp;lt;/font&amp;gt;'''是由于过度使用而发生的。适用的比喻是电话网络。当用户数量低于拥堵点时，每增加一个用户都会给其他每一个用户增加额外的价值。然而，在某些时候，额外用户的增加超过了现有系统的容量。在这一点之后，每增加一个用户都会减少其他每一个用户获得的价值。从实际情况来看，每增加一个用户都会增加系统的总负荷，导致信号繁忙、无法获得拨号音、客户支持不力。假设拥塞点低于潜在的市场规模，下一个临界点就是获得的价值又等于付出的代价。如果不提高系统容量，此时网络将停止发展。点对点(P2P)系统是为了在其用户池中分配负载而设计的网络。理论上，这使得P2P网络可以无限扩大规模。基于P2P的电话服务Skype就得益于这种效应，它的增长主要受到市场饱和度的限制。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''通常被误认为是'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;规模经济&amp;lt;/font&amp;gt;'''，但'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;规模经济&amp;lt;/font&amp;gt;'''是由企业规模带来的，而非用户之间的相互操作性造成的。为了帮助澄清两者的区别，人们讲需求侧与供给侧的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;规模经济&amp;lt;/font&amp;gt;'''。经典的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;规模经济&amp;lt;/font&amp;gt;'''是在生产侧，而'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''则是在需求侧产生的。&lt;br /&gt;
&lt;br /&gt;
由于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''常常与正反馈相关，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''也容易被误认为是'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;范围经济&amp;lt;/font&amp;gt;'''，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;系统动力学&amp;lt;/font&amp;gt;'''可以作为一种建模方法来描述这种现象。'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;口碑传播&amp;lt;/font&amp;gt;'''和'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;巴斯扩散模型&amp;lt;/font&amp;gt;'''也有可能适用。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 四、技术生命周期 ==&lt;br /&gt;
&lt;br /&gt;
如果一些现有的技术或公司的利益，主要是基于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的，在面对挑战者时（如颠覆性的新技术，或基于开源标准的竞争），如果他们开始失去市场份额，那么'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''给他们带来的利益就会减少，给挑战者带来的利益会增加。&lt;br /&gt;
&lt;br /&gt;
在这一模式中，最终会达到一个临界点，即挑战者的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''支配了原在位者的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''，在位者被迫加速衰落，而挑战者则取代了在位者的原有地位。&lt;br /&gt;
&lt;br /&gt;
== 五、网络效应带来锁定 ==&lt;br /&gt;
&lt;br /&gt;
因为常常会把用户和供应商锁定在某一个标准上，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''也有臭名昭著的一面，最常见的例子是微软产品和 QWERTY 键盘。&lt;br /&gt;
&lt;br /&gt;
供应商锁定可以通过开放用户所依赖的标准来缓解，允许各实施方案之间的竞争。然而，这并不能减轻整个行业对标准本身的锁定。事实上，由于现在有多个供应商在降低价格和提高质量，更多的用户可能会采用该标准，从而造成整个行业对该标准的更大锁定。&lt;br /&gt;
&lt;br /&gt;
== 六、网络效应的类型 ==&lt;br /&gt;
&lt;br /&gt;
大体而言，有 2 种网络效应——'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''、'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;间接网络效应&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
=== 直接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
使用量的增加会直接导致其他用户价值的增加。例如，电话系统、传真机、社交网络，都意味着用户之间的直接接触。'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''称为''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;同侧网络效应&amp;lt;/font&amp;gt;'''。一个例子是在线游戏玩家，会从其他在线游戏玩家的参与中获益。&lt;br /&gt;
&lt;br /&gt;
=== 间接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
一种产品或网络使用量的增加，会引起补充产品或网络价值的增加，而补充产品或网络又会增加原产品的价值。补充产品的例子包括软件(如操作系统的Office套件)和DVD(DVD播放器)。这也就是所谓的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;跨边网络效应&amp;lt;/font&amp;gt;'''。Windows和Linux可能不仅争夺用户，而且争夺软件开发商。大多数双边市场（或平台中介市场），都具有'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;间接网络效应&amp;lt;/font&amp;gt;'''的特点。&lt;br /&gt;
&lt;br /&gt;
此外，在分析显示出'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的产品时，有两个相关的经济价值来源：&lt;br /&gt;
&lt;br /&gt;
=== 内在价值===&lt;br /&gt;
&lt;br /&gt;
从使用产品中获得价值。&lt;br /&gt;
&lt;br /&gt;
=== 网络价值===&lt;br /&gt;
&lt;br /&gt;
从别人对产品的使用中获得价值。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 七、负网络外部性 ==&lt;br /&gt;
&lt;br /&gt;
数学意义上的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''，是指与正常（正）网络效应相比，具有负效应的网络外部性。正的网络外部性（网络效应）会造成正反馈和指数增长，负的网络外部性会造成负反馈和指数衰减。在自然界中，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''是拉向平衡的力量，是稳定的原因，代表着使系统受到约束的物理限制。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;拥堵&amp;lt;/font&amp;gt;'''的发生，是随着使用网络的人越来越多，网络的效率就会降低，这就降低了已经使用网络的人的价值。使高速公路超载的交通拥堵、带宽有限的连接上的网络拥堵，都表现出负的网络外部性。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;布雷斯悖论 (Braess’s paradox) &amp;lt;/font&amp;gt;'''表明，增加网络中的路径，会对网络的性能产生负面影响。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 八、互操作性/协同工作能力 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''具有使网络扩大的作用，从而增加网络对消费者的外部价值。'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''主要是通过增加潜在的连接来实现的，其次是通过吸引新的参与者加入网络。互操作性的其他好处包括减少不确定性、减少锁定、商品化和基于价格的竞争。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''可以通过标准化或其他合作来实现。参与促进'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''的公司，既要与竞争者合作以扩大产品的潜在市场，又要彼此之间争夺市场份额，他们往往面临着紧张关系。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 九、开源标准 vs 封闭标准 ==&lt;br /&gt;
&lt;br /&gt;
在通信和信息技术中，开源标准和接口往往是通过多家公司的参与而制定的，他们制定开源标准，往往也是互利的。但是，如果有关的通信协议或接口是封闭的标准，网络效应就会使控制这些标准的公司，具有垄断能力。&lt;br /&gt;
&lt;br /&gt;
计算机专业人士普遍认为，微软公司是通过这些手段来维持其垄断地位的。可以看到，微软公司将网络效应发挥到极致的一种方法叫做拥抱、延伸和消灭。&lt;br /&gt;
&lt;br /&gt;
Mirabilis 是一家以色列的创业公司，它是即时通讯（IM）的先驱，被美国在线收购。通过免费赠送他们的 ICQ 产品，并防止他们的客户端软件与其他产品之间的互操作性，他们得以暂时主导了即时通讯的市场。由于网络效应，新的即时通讯用户选择使用 Mirabilis 系统（并加入其庞大的用户网络）比使用竞争系统获得的价值要大得多。作为那个时代的典型，该公司在出售公司之前从未试图从其主导地位中获得利润。&lt;br /&gt;
&lt;br /&gt;
== 十、案例 ==&lt;br /&gt;
&lt;br /&gt;
=== 金融交易所 ===&lt;br /&gt;
&lt;br /&gt;
证券交易所和衍生品交易所，具有'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的特点。市场流动性是决定证券买卖交易成本的主要因素，因为在购买价格与出售同一证券的价格之间存在着买卖差价。随着交易所的买卖双方数量的增加，流动性增加，交易成本降低。这样就会吸引更多的买家和卖家来到交易所。&lt;br /&gt;
&lt;br /&gt;
金融交易所的网络优势，明显体现在新成立的交易所，很难脱离主导交易所。例如，尽管 Eurex US 启动了相同期货合约的交易，但芝加哥期货交易所仍然保持了美国国债期货交易的压倒性优势。同样，尽管受到了 Euronext.Liffe 的挑战，芝加哥商业交易所也保持了在欧洲债券利率期货交易中的主导地位。&lt;br /&gt;
&lt;br /&gt;
=== 软件 ===&lt;br /&gt;
&lt;br /&gt;
在广泛使用的计算机软件市场上，存在着非常强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
对许多人来说，选择办公套件的首要考虑因素包括：学会该办公套件对潜在雇主的价值有多大，以及该软件与其他用户的互动情况如何。也就是说，由于学习使用一个办公套件需要花费很多时间，用户希望将这些时间投入到学习办公套件上，使他们对潜在的雇主和客户最具吸引力。同样，在决定购买哪款办公套件时，寻找已经培训过的员工也是雇主们的一大顾虑。&lt;br /&gt;
&lt;br /&gt;
2007 年，苹果发布了 iPhone，随后是 App store 应用商店。大多数 iPhone 应用，非常依赖 iPhone 已经存在的强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。这样软件应用能够以非常有限的市场营销预算，迅速地增长人气，并传播到庞大的用户群。&lt;br /&gt;
&lt;br /&gt;
免费增值的商业模式已经发展到利用这些'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''，发布一个免费版本，让用户不限制使用，然后对高级功能收费来作为主要收入来源。&lt;br /&gt;
&lt;br /&gt;
=== 网站 ===&lt;br /&gt;
&lt;br /&gt;
许多网站都得益于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。一个例子是网络市场和交易所。例如，如果拍卖没有竞争性，eBay 就不会成为一个特别有用的网站。随着 eBay 上用户数量的增长，拍卖会的竞争越来越激烈，推高了物品的竞价价格。这使得在 eBay 上出售物品更有价值，并将更多的卖家带到 eBay 上，反过来，由于供应量的增加，又促使价格下降。供应量的增加为 eBay 带来了更多的买家。从本质上讲，随着 eBay 用户数量的增加，价格下降，供给增加，越来越多的人发现这个网站是有用的。&lt;br /&gt;
&lt;br /&gt;
20世纪90年代末，一些网络公司将'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''作为商业模式的理由。这些公司的经营理念是，当一个新的市场出现时，如果这个市场包含着强烈的网络效应，公司应该更关心市场份额的增长，而不是马上变得有利可图。其理由是，市场份额将决定哪家公司能够制定技术和营销标准，并使这些公司获得先发优势。&lt;br /&gt;
&lt;br /&gt;
社交网站就是很好的例子。在社交网站上注册的人越多，网站对其注册者越有用。&lt;br /&gt;
&lt;br /&gt;
Alexa互联网使用的技术是跟踪用户的网络浏览模式，因此 Alexa 的相关网站结果会随着更多用户使用该技术而提高。Alexa的网络严重依赖少量的浏览器软件关系，这使得该网络更容易受到竞争的影响。&lt;br /&gt;
&lt;br /&gt;
谷歌也试图通过其 Google AdSense 服务，在广告业务中创造'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。 Google AdSense 在许多小型网站（如博客）上投放广告，利用 Google 的技术来确定哪些广告与哪些博客相关。因此，该服务的目的似乎是作为一个交易所（或广告网络），为许多广告商与许多小网站（如博客）进行匹配。一般来说，Google AdSense 能够接触到的博客越多，就会吸引更多的广告商，使其成为对更多博客最有吸引力的选择，以此类推，使网络对所有参与者更有价值。&lt;br /&gt;
&lt;br /&gt;
相比之下，一个新闻网站的价值，主要与文章的质量成正比，而不是与其他使用网站的人数成正比。&lt;br /&gt;
&lt;br /&gt;
同样，第一代搜索网站也没有经历什么网络效应，因为网站的价值是基于搜索结果的价值。一旦用户认为 Google 的搜索结果更胜一筹，Google 便不费吹灰之力就从雅虎手中赢得了用户。而一些评论家误以为雅虎品牌的价值（随着更多的人知道雅虎品牌，雅虎品牌的价值确实会增加）是保护其广告业务的网络效应。&lt;br /&gt;
&lt;br /&gt;
=== 铁路轨距 ===&lt;br /&gt;
&lt;br /&gt;
在最初的轨距选择和轨距转换决策中，存在着强烈的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
即使在放置不与任何其他线路连接的孤立钢轨时，轨道层通常也会选择一个标准轨距，这样他们就可以使用现成的机车车辆。&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;虽然少数厂家生产的机车车辆可以适应不同轨距，但大多数厂家生产的机车车（内容不完整）&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
== 词条编辑日志 ==&lt;br /&gt;
&lt;br /&gt;
* 200818 润悟翻译自 wikipedia https://en.wikipedia.org/wiki/Network_effect&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17926</id>
		<title>网络效应</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=17926"/>
		<updated>2020-11-05T14:48:10Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：/* 一、简介 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 一、简介 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络效应(network effect)&amp;lt;/font&amp;gt;'''（也称“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络外部性（network externality）&amp;lt;/font&amp;gt;'''”，或“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;需求方规模经济（demand-side economies of scale）&amp;lt;/font&amp;gt;'''”)，是一个经济学和商业方面的术语，用于描述对于一个产品（或服务），每增多一名用户，都会对该产品的其他用户产生新的价值。当网络效应出现时，产品（或服务）的价值，会随着使用该产品（或服务）的人数的增加而增加。&lt;br /&gt;
&lt;br /&gt;
一个经典的例子是电话，越多的人使用电话，对每个电话使用者的价值就越大。一部电话的使用者，本来无意为其他用户创造价值，但当大家都购买电话时，这个行为就产生了正外部性。像微信、微博、Twitter、Facebook 这样的线上社交网络，也是一样，随着更多用户的加入，每个用户获得的价值都在增加。&lt;br /&gt;
&lt;br /&gt;
当网络的价值越来越大，越来越多的人加入时，网络效应还会带来从众效应，从而形成正反馈循环。&lt;br /&gt;
&lt;br /&gt;
网络效应这一表述不仅适用于正向的网络外部性，如电话的案例；消极的网络外部性也可能发生，即用户越多，产品的价值就越低，这种情况通常被称为“拥堵”，例如如交通拥堵或网络拥堵。&lt;br /&gt;
&lt;br /&gt;
== 二、网络效应的起源 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''是西奥多·韦尔（后专利时代贝尔电话公司的第一任总裁）期望获得美国电话服务垄断权的一系列方法中的核心主题。1908 年，当他在贝尔的年报中提出这一概念时，当地和地区电话交换机有 4000 多个，其中大部分最终被并入贝尔系统。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''是由罗伯特·梅特卡夫推广的，称其为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;梅特卡夫定律&amp;lt;/font&amp;gt;'''。梅特卡夫是以太网的共同发明人之一，也是3Com公司的联合创始人。在销售产品的过程中，梅特卡夫认为，客户要想从网络中获得收益，就需要以太网卡增长到一定的临界质量以上，按照梅特卡夫的说法，网络卡销售的原理是：网络的成本与安装的网卡数量成正比，但网络的价值与用户数量的平方成正比。这在代数上表示为成本为 N ，价值为 N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;。虽然这个命题背后的实际数字从来没有确定过，但这个概念使客户可以共享访问昂贵的资源，如磁盘驱动器和打印机，发送电子邮件，并最终访问互联网。&lt;br /&gt;
&lt;br /&gt;
1985年至1995年，研究人员 Michael L. Katz、Carl Shapiro、Joseph Farrell 和Garth Saloner 对'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的经济理论进行了重大的推进，作者、高科技企业家 Rod Beckstrom 在2009年的 BlackHat和 Defcon 会议上提出了描述处于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;正网络效应&amp;lt;/font&amp;gt;'''状态的网络的数学模型，同时也提出了'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;逆网络效应&amp;lt;/font&amp;gt;'''，并给出了经济模型的定义。&lt;br /&gt;
&lt;br /&gt;
== 三、网络效应的好处 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''在达到一定的认购比例后变得显著，称为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;临界质量&amp;lt;/font&amp;gt;'''。在临界质量点，从商品或服务中获得的价值大于或等于为商品或服务支付的价格。由于商品的价值是由用户群决定的，这就意味着在一定数量的人订阅了服务或购买了商品后，由于价值大于价格，会有更多的人订阅服务或购买商品。&lt;br /&gt;
&lt;br /&gt;
那么，一个关键的商业问题必须是如何在达到'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;临界质量&amp;lt;/font&amp;gt;'''之前吸引用户。一种方法是依靠外在的动机，如付款、免费或请求朋友注册。更自然的策略是建立一个没有'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的但足够有价值的系统，至少对早期采用者来说是这样。然后，随着用户数量的增加，系统会变得更有价值，能够吸引更广泛的用户群。&lt;br /&gt;
&lt;br /&gt;
超过'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;临界质量&amp;lt;/font&amp;gt;'''后，用户数量的增加一般不能无限期地持续下去。到了一定程度后，大多数网络要么'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;拥堵&amp;lt;/font&amp;gt;'''，要么饱和，不再吸收用户。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;拥堵&amp;lt;/font&amp;gt;'''是由于过度使用而发生的。适用的比喻是电话网络。当用户数量低于拥堵点时，每增加一个用户都会给其他每一个用户增加额外的价值。然而，在某些时候，额外用户的增加超过了现有系统的容量。在这一点之后，每增加一个用户都会减少其他每一个用户获得的价值。从实际情况来看，每增加一个用户都会增加系统的总负荷，导致信号繁忙、无法获得拨号音、客户支持不力。假设拥塞点低于潜在的市场规模，下一个临界点就是获得的价值又等于付出的代价。如果不提高系统容量，此时网络将停止发展。点对点(P2P)系统是为了在其用户池中分配负载而设计的网络。理论上，这使得P2P网络可以无限扩大规模。基于P2P的电话服务Skype就得益于这种效应，它的增长主要受到市场饱和度的限制。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''通常被误认为是'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;规模经济&amp;lt;/font&amp;gt;'''，但'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;规模经济&amp;lt;/font&amp;gt;'''是由企业规模带来的，而非用户之间的相互操作性造成的。为了帮助澄清两者的区别，人们讲需求侧与供给侧的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;规模经济&amp;lt;/font&amp;gt;'''。经典的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;规模经济&amp;lt;/font&amp;gt;'''是在生产侧，而'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''则是在需求侧产生的。&lt;br /&gt;
&lt;br /&gt;
由于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''常常与正反馈相关，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''也容易被误认为是'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;范围经济&amp;lt;/font&amp;gt;'''，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;系统动力学&amp;lt;/font&amp;gt;'''可以作为一种建模方法来描述这种现象。'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;口碑传播&amp;lt;/font&amp;gt;'''和'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;巴斯扩散模型&amp;lt;/font&amp;gt;'''也有可能适用。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 四、技术生命周期 ==&lt;br /&gt;
&lt;br /&gt;
如果一些现有的技术或公司的利益，主要是基于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的，在面对挑战者时（如颠覆性的新技术，或基于开源标准的竞争），如果他们开始失去市场份额，那么'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''给他们带来的利益就会减少，给挑战者带来的利益会增加。&lt;br /&gt;
&lt;br /&gt;
在这一模式中，最终会达到一个临界点，即挑战者的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''支配了原在位者的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''，在位者被迫加速衰落，而挑战者则取代了在位者的原有地位。&lt;br /&gt;
&lt;br /&gt;
== 五、网络效应带来锁定 ==&lt;br /&gt;
&lt;br /&gt;
因为常常会把用户和供应商锁定在某一个标准上，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''也有臭名昭著的一面，最常见的例子是微软产品和 QWERTY 键盘。&lt;br /&gt;
&lt;br /&gt;
供应商锁定可以通过开放用户所依赖的标准来缓解，允许各实施方案之间的竞争。然而，这并不能减轻整个行业对标准本身的锁定。事实上，由于现在有多个供应商在降低价格和提高质量，更多的用户可能会采用该标准，从而造成整个行业对该标准的更大锁定。&lt;br /&gt;
&lt;br /&gt;
== 六、网络效应的类型 ==&lt;br /&gt;
&lt;br /&gt;
大体而言，有 2 种网络效应——'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''、'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;间接网络效应&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
=== 直接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
使用量的增加会直接导致其他用户价值的增加。例如，电话系统、传真机、社交网络，都意味着用户之间的直接接触。'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''称为''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;同侧网络效应&amp;lt;/font&amp;gt;'''。一个例子是在线游戏玩家，会从其他在线游戏玩家的参与中获益。&lt;br /&gt;
&lt;br /&gt;
=== 间接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
一种产品或网络使用量的增加，会引起补充产品或网络价值的增加，而补充产品或网络又会增加原产品的价值。补充产品的例子包括软件(如操作系统的Office套件)和DVD(DVD播放器)。这也就是所谓的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;跨边网络效应&amp;lt;/font&amp;gt;'''。Windows和Linux可能不仅争夺用户，而且争夺软件开发商。大多数双边市场（或平台中介市场），都具有'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;间接网络效应&amp;lt;/font&amp;gt;'''的特点。&lt;br /&gt;
&lt;br /&gt;
此外，在分析显示出'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的产品时，有两个相关的经济价值来源：&lt;br /&gt;
&lt;br /&gt;
=== 内在价值===&lt;br /&gt;
&lt;br /&gt;
从使用产品中获得价值。&lt;br /&gt;
&lt;br /&gt;
=== 网络价值===&lt;br /&gt;
&lt;br /&gt;
从别人对产品的使用中获得价值。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 七、负网络外部性 ==&lt;br /&gt;
&lt;br /&gt;
数学意义上的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''，是指与正常（正）网络效应相比，具有负效应的网络外部性。正的网络外部性（网络效应）会造成正反馈和指数增长，负的网络外部性会造成负反馈和指数衰减。在自然界中，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''是拉向平衡的力量，是稳定的原因，代表着使系统受到约束的物理限制。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;拥堵&amp;lt;/font&amp;gt;'''的发生，是随着使用网络的人越来越多，网络的效率就会降低，这就降低了已经使用网络的人的价值。使高速公路超载的交通拥堵、带宽有限的连接上的网络拥堵，都表现出负的网络外部性。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;布雷斯悖论 (Braess’s paradox) &amp;lt;/font&amp;gt;'''表明，增加网络中的路径，会对网络的性能产生负面影响。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 八、互操作性/协同工作能力 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''具有使网络扩大的作用，从而增加网络对消费者的外部价值。'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''主要是通过增加潜在的连接来实现的，其次是通过吸引新的参与者加入网络。互操作性的其他好处包括减少不确定性、减少锁定、商品化和基于价格的竞争。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''可以通过标准化或其他合作来实现。参与促进'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''的公司，既要与竞争者合作以扩大产品的潜在市场，又要彼此之间争夺市场份额，他们往往面临着紧张关系。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 九、开源标准 vs 封闭标准 ==&lt;br /&gt;
&lt;br /&gt;
在通信和信息技术中，开源标准和接口往往是通过多家公司的参与而制定的，他们制定开源标准，往往也是互利的。但是，如果有关的通信协议或接口是封闭的标准，网络效应就会使控制这些标准的公司，具有垄断能力。&lt;br /&gt;
&lt;br /&gt;
计算机专业人士普遍认为，微软公司是通过这些手段来维持其垄断地位的。可以看到，微软公司将网络效应发挥到极致的一种方法叫做拥抱、延伸和消灭。&lt;br /&gt;
&lt;br /&gt;
Mirabilis 是一家以色列的创业公司，它是即时通讯（IM）的先驱，被美国在线收购。通过免费赠送他们的 ICQ 产品，并防止他们的客户端软件与其他产品之间的互操作性，他们得以暂时主导了即时通讯的市场。由于网络效应，新的即时通讯用户选择使用 Mirabilis 系统（并加入其庞大的用户网络）比使用竞争系统获得的价值要大得多。作为那个时代的典型，该公司在出售公司之前从未试图从其主导地位中获得利润。&lt;br /&gt;
&lt;br /&gt;
== 十、案例 ==&lt;br /&gt;
&lt;br /&gt;
=== 金融交易所 ===&lt;br /&gt;
&lt;br /&gt;
证券交易所和衍生品交易所，具有'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的特点。市场流动性是决定证券买卖交易成本的主要因素，因为在购买价格与出售同一证券的价格之间存在着买卖差价。随着交易所的买卖双方数量的增加，流动性增加，交易成本降低。这样就会吸引更多的买家和卖家来到交易所。&lt;br /&gt;
&lt;br /&gt;
金融交易所的网络优势，明显体现在新成立的交易所，很难脱离主导交易所。例如，尽管 Eurex US 启动了相同期货合约的交易，但芝加哥期货交易所仍然保持了美国国债期货交易的压倒性优势。同样，尽管受到了 Euronext.Liffe 的挑战，芝加哥商业交易所也保持了在欧洲债券利率期货交易中的主导地位。&lt;br /&gt;
&lt;br /&gt;
=== 软件 ===&lt;br /&gt;
&lt;br /&gt;
在广泛使用的计算机软件市场上，存在着非常强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
对许多人来说，选择办公套件的首要考虑因素包括：学会该办公套件对潜在雇主的价值有多大，以及该软件与其他用户的互动情况如何。也就是说，由于学习使用一个办公套件需要花费很多时间，用户希望将这些时间投入到学习办公套件上，使他们对潜在的雇主和客户最具吸引力。同样，在决定购买哪款办公套件时，寻找已经培训过的员工也是雇主们的一大顾虑。&lt;br /&gt;
&lt;br /&gt;
2007 年，苹果发布了 iPhone，随后是 App store 应用商店。大多数 iPhone 应用，非常依赖 iPhone 已经存在的强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。这样软件应用能够以非常有限的市场营销预算，迅速地增长人气，并传播到庞大的用户群。&lt;br /&gt;
&lt;br /&gt;
免费增值的商业模式已经发展到利用这些'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''，发布一个免费版本，让用户不限制使用，然后对高级功能收费来作为主要收入来源。&lt;br /&gt;
&lt;br /&gt;
=== 网站 ===&lt;br /&gt;
&lt;br /&gt;
许多网站都得益于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。一个例子是网络市场和交易所。例如，如果拍卖没有竞争性，eBay 就不会成为一个特别有用的网站。随着 eBay 上用户数量的增长，拍卖会的竞争越来越激烈，推高了物品的竞价价格。这使得在 eBay 上出售物品更有价值，并将更多的卖家带到 eBay 上，反过来，由于供应量的增加，又促使价格下降。供应量的增加为 eBay 带来了更多的买家。从本质上讲，随着 eBay 用户数量的增加，价格下降，供给增加，越来越多的人发现这个网站是有用的。&lt;br /&gt;
&lt;br /&gt;
20世纪90年代末，一些网络公司将'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''作为商业模式的理由。这些公司的经营理念是，当一个新的市场出现时，如果这个市场包含着强烈的网络效应，公司应该更关心市场份额的增长，而不是马上变得有利可图。其理由是，市场份额将决定哪家公司能够制定技术和营销标准，并使这些公司获得先发优势。&lt;br /&gt;
&lt;br /&gt;
社交网站就是很好的例子。在社交网站上注册的人越多，网站对其注册者越有用。&lt;br /&gt;
&lt;br /&gt;
Alexa互联网使用的技术是跟踪用户的网络浏览模式，因此 Alexa 的相关网站结果会随着更多用户使用该技术而提高。Alexa的网络严重依赖少量的浏览器软件关系，这使得该网络更容易受到竞争的影响。&lt;br /&gt;
&lt;br /&gt;
谷歌也试图通过其 Google AdSense 服务，在广告业务中创造'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。 Google AdSense 在许多小型网站（如博客）上投放广告，利用 Google 的技术来确定哪些广告与哪些博客相关。因此，该服务的目的似乎是作为一个交易所（或广告网络），为许多广告商与许多小网站（如博客）进行匹配。一般来说，Google AdSense 能够接触到的博客越多，就会吸引更多的广告商，使其成为对更多博客最有吸引力的选择，以此类推，使网络对所有参与者更有价值。&lt;br /&gt;
&lt;br /&gt;
相比之下，一个新闻网站的价值，主要与文章的质量成正比，而不是与其他使用网站的人数成正比。&lt;br /&gt;
&lt;br /&gt;
同样，第一代搜索网站也没有经历什么网络效应，因为网站的价值是基于搜索结果的价值。一旦用户认为 Google 的搜索结果更胜一筹，Google 便不费吹灰之力就从雅虎手中赢得了用户。而一些评论家误以为雅虎品牌的价值（随着更多的人知道雅虎品牌，雅虎品牌的价值确实会增加）是保护其广告业务的网络效应。&lt;br /&gt;
&lt;br /&gt;
=== 铁路轨距 ===&lt;br /&gt;
&lt;br /&gt;
在最初的轨距选择和轨距转换决策中，存在着强烈的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
即使在放置不与任何其他线路连接的孤立钢轨时，轨道层通常也会选择一个标准轨距，这样他们就可以使用现成的机车车辆。&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;虽然少数厂家生产的机车车辆可以适应不同轨距，但大多数厂家生产的机车车（内容不完整）&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
== 词条编辑日志 ==&lt;br /&gt;
&lt;br /&gt;
* 200818 润悟翻译自 wikipedia https://en.wikipedia.org/wiki/Network_effect&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=LFR%E7%AE%97%E6%B3%95&amp;diff=16581</id>
		<title>LFR算法</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=LFR%E7%AE%97%E6%B3%95&amp;diff=16581"/>
		<updated>2020-10-22T15:09:38Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：/* The algorithm  算法 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;此词条由袁一博翻译，未经人工整理和审校，带来阅读不便，请见谅。&lt;br /&gt;
&lt;br /&gt;
{{short description|Algorithm}}&lt;br /&gt;
&lt;br /&gt;
{{Network science}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lancichinetti–Fortunato–Radicchi''' '''benchmark''' is an algorithm that generates [[Benchmark (computing)|benchmark]] networks (artificial networks that resemble real-world networks). They have ''a priori'' known [[Community structure|communities]] and are used to compare different community detection methods.&amp;lt;ref&amp;gt;Hua-Wei Shen (2013). &amp;quot;Community Structure of Complex Networks&amp;quot;. Springer Science &amp;amp; Business Media. 11–12.&amp;lt;/ref&amp;gt;  The advantage of the benchmark over other methods is that it accounts for the [[Homogeneity (statistics)|heterogeneity]] in the distributions of [[Vertex (graph theory)|node]] [[Degree (graph theory)|degrees]] and of community sizes.&amp;lt;ref name=&amp;quot;original&amp;quot;&amp;gt;A. Lancichinetti, S. Fortunato, and F. Radicchi.(2008) Benchmark graphs for testing community detection algorithms. Physical Review E, 78. {{ArXiv|0805.4770}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lancichinetti–Fortunato–Radicchi benchmark is an algorithm that generates benchmark networks (artificial networks that resemble real-world networks). They have a priori known communities and are used to compare different community detection methods.  The advantage of the benchmark over other methods is that it accounts for the heterogeneity in the distributions of node degrees and of community sizes.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;兰奇基内蒂-福图纳托-拉迪奇基准程序(Lancichinetti–Fortunato–Radicchi benchmark)&amp;lt;/font&amp;gt;'''是一种生成'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;基准网络（baseline network)&amp;lt;/font&amp;gt;'''(类似于真实世界网络的人工网络)的算法。他们有一个预先已知的社区，用于比较不同的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;社区检测&amp;lt;/font&amp;gt;'''方法。与其他方法相比，基准测试的优点在于它解释了'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;节点度(node degree)&amp;lt;/font&amp;gt;'''分布和'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;社区规模(community sizes)&amp;lt;/font&amp;gt;'''分布的异质性。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The algorithm  算法==&lt;br /&gt;
&lt;br /&gt;
The node degrees and the community sizes are distributed according to a [[power law]], with different exponents. The benchmark assumes that both the degree and the community size have [[Power law distribution|power law distributions]] with different exponents, &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt;, respectively. &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; is the number of nodes and the average degree is &amp;lt;math&amp;gt;\langle k \rangle&amp;lt;/math&amp;gt;. There is a mixing parameter &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, which is the average fraction of neighboring nodes of a node that do not belong to any community that the benchmark node belongs to.  This parameter controls the fraction of edges that are between communities.&amp;lt;ref name=&amp;quot;original&amp;quot;/&amp;gt; Thus, it reflects the amount of noise in the network. At the extremes, when &amp;lt;math&amp;gt;\mu = 0&amp;lt;/math&amp;gt; all links are within community links, if &amp;lt;math&amp;gt; \mu = 1 &amp;lt;/math&amp;gt; all links are between nodes belonging to different communities.&amp;lt;ref&amp;gt;Twan van Laarhoven and Elena Marchiori (2013). &amp;quot;Network community detection with edge classifiers trained on LFR graphs&amp;quot;. https://www.cs.ru.nl/~elenam/paper-learning-community.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The node degrees and the community sizes are distributed according to a power law, with different exponents. The benchmark assumes that both the degree and the community size have power law distributions with different exponents, &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt;, respectively. &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; is the number of nodes and the average degree is &amp;lt;math&amp;gt;\langle k \rangle&amp;lt;/math&amp;gt;. There is a mixing parameter &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, which is the average fraction of neighboring nodes of a node that do not belong to any community that the benchmark node belongs to.  This parameter controls the fraction of edges that are between communities.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;节点度(node degree)&amp;lt;/font&amp;gt;'''和'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;社区规模(community sizes)&amp;lt;/font&amp;gt;'''按幂律分布，但指数不同。基准测试假设'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;节点度(node degree)&amp;lt;/font&amp;gt;'''和'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;社区规模(community sizes)&amp;lt;/font&amp;gt;'''都具有不同指数的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;幂律分布(power law distribution)&amp;lt;/font&amp;gt;'''，分别为'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''和'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''。'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''是节点的数量，平均度为'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''。混合参数'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''是一个节点的相邻节点的平均比例，这些相邻节点不属于基准节点所属的任何社区。这个参数控制着社区之间的边缘比例。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One can generate the benchmark network using the following steps.&lt;br /&gt;
&lt;br /&gt;
One can generate the benchmark network using the following steps.&lt;br /&gt;
&lt;br /&gt;
可以通过以下步骤生成基准网络。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Step 1:'''&amp;lt;/big&amp;gt; Generate a network with nodes following a power law distribution with exponent &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; and choose extremes of the distribution &amp;lt;math&amp;gt; k_{\min} &amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt; k_{\max} &amp;lt;/math&amp;gt; to get desired average degree is &amp;lt;math&amp;gt;\langle k\rangle&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Step 1:&amp;lt;/big&amp;gt; Generate a network with nodes following a power law distribution with exponent &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; and choose extremes of the distribution &amp;lt;math&amp;gt; k_{\min} &amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt; k_{\max} &amp;lt;/math&amp;gt; to get desired average degree is &amp;lt;math&amp;gt;\langle k\rangle&amp;lt;/math&amp;gt;.&lt;br /&gt;
  --[[用户:粲兰|袁一博]]（[[用户讨论:粲兰|讨论]]）“to get desired average degree is”中的“is”怀疑是原文的误输入，因为它完全违背正确的英语语法。&lt;br /&gt;
&lt;br /&gt;
&amp;lt; 大 &amp;gt; 步骤1: &amp;lt;/big &amp;gt; 生成一个网络，其节点遵循指数为'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''的幂律分布，并选择分布的极值'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''和'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''来获得期望平均度'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Step 2:'''&amp;lt;/big&amp;gt; &amp;lt;math&amp;gt;(1 - \mu)&amp;lt;/math&amp;gt; fraction of links of every node is with nodes of the same community, while fraction &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; is with the other nodes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Step 2:&amp;lt;/big&amp;gt; &amp;lt;math&amp;gt;(1 - \mu)&amp;lt;/math&amp;gt; fraction of links of every node is with nodes of the same community, while fraction &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; is with the other nodes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt; 大 &amp;gt; 步骤2: &amp;lt;/big &amp;gt;每个节点的'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''链接部分与同一社区的节点相同，而'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''部分与其他节点相同。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Step 3:'''&amp;lt;/big&amp;gt; Generate community sizes from a power law distribution with exponent &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt;. The sum of all sizes must be equal to &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;. The minimal and maximal community sizes &amp;lt;math&amp;gt; s_{\min} &amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt; s_{\max} &amp;lt;/math&amp;gt; must satisfy the definition of community so that every non-isolated node is in at least in one community:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Step 3:&amp;lt;/big&amp;gt; Generate community sizes from a power law distribution with exponent &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt;. The sum of all sizes must be equal to &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;. The minimal and maximal community sizes &amp;lt;math&amp;gt; s_{\min} &amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt; s_{\max} &amp;lt;/math&amp;gt; must satisfy the definition of community so that every non-isolated node is in at least in one community:&lt;br /&gt;
&lt;br /&gt;
&amp;lt; big &amp;gt; 步骤3: &amp;lt;/big &amp;gt; 根据指数为'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''的幂律分布生成'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;社区规模(community sizes)&amp;lt;/font&amp;gt;'''。所有规模大小的和必须等于'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''。最小和最大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;社区规模(community sizes)&amp;lt;/font&amp;gt;''' '''&amp;lt;font&amp;gt;color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''必须满足社区的定义，这样每个非孤立的节点至少存在于一个群落中:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt; s_{\min} &amp;gt; k_{\min} &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; s_{\min} &amp;gt; k_{\min} &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[ math &amp;gt; s _ { min } &amp;gt; k _ { min }&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt; s_{\max} &amp;gt; k_{\max} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; s_{\max} &amp;gt; k_{\max} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[数学][数学]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Step 4:'''&amp;lt;/big&amp;gt; Initially, no nodes are assigned to communities. Then, each node is randomly assigned to a community. As long as the number of neighboring nodes within the community does not exceed the community size a new node is added to the community, otherwise stays out. In the following iterations the “homeless” node is randomly assigned to some community. If that community is complete, i.e. the size is exhausted, a randomly selected node of that community must be unlinked. Stop the iteration when all the communities are complete and all the nodes belong to at least one community.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Step 4:&amp;lt;/big&amp;gt; Initially, no nodes are assigned to communities. Then, each node is randomly assigned to a community. As long as the number of neighboring nodes within the community does not exceed the community size a new node is added to the community, otherwise stays out. In the following iterations the “homeless” node is randomly assigned to some community. If that community is complete, i.e. the size is exhausted, a randomly selected node of that community must be unlinked. Stop the iteration when all the communities are complete and all the nodes belong to at least one community.&lt;br /&gt;
&lt;br /&gt;
&amp;lt; big &amp;gt; 步骤4: &amp;lt;/big &amp;gt; 最初，没有为任何社区分配任何节点。然后，每个节点被随机分配到一个社区。只要社区内相邻节点的数量不超过'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;社区规模(community sizes)&amp;lt;/font&amp;gt;'''，就会向社区添加一个新节点，否则就不会添加。在接下来的迭代中，无归属的节点被随机分配给某个社区。如果该社区是完备的，即规模已经用尽，必须随机选择社区中的一个节点并断开其链接。当所有社区都完备且所有节点都至少属于一个社区时停止迭代。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Step 5:'''&amp;lt;/big&amp;gt; Implement rewiring of nodes keeping the same node degrees but only affecting the fraction of internal and external links such that the number of links outside the community for each node is approximately equal to the mixing parameter &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;.&amp;lt;ref name=&amp;quot;original&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Step 5:&amp;lt;/big&amp;gt; Implement rewiring of nodes keeping the same node degrees but only affecting the fraction of internal and external links such that the number of links outside the community for each node is approximately equal to the mixing parameter &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt; big &amp;gt; 步骤5: &amp;lt;/big &amp;gt; 对节点重新布线，保持相同的节点度，但只影响内部和外部链接，使得每个节点在社区外的链接数量约等于混合参数'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
==Testing  调试==&lt;br /&gt;
&lt;br /&gt;
Consider a [[Partition of a set|partition]] into communities that do not overlap. The communities of randomly chosen nodes in each iteration follow a &amp;lt;math&amp;gt;p(C)&amp;lt;/math&amp;gt; distribution that represents the probability that a randomly picked node is from the community &amp;lt;math&amp;gt;C&amp;lt;/math&amp;gt;. Consider a partition of the same network that was predicted by some community finding algorithm and has &amp;lt;math&amp;gt;p(C_2)&amp;lt;/math&amp;gt; distribution. The benchmark partition has &amp;lt;math&amp;gt;p(C_1)&amp;lt;/math&amp;gt; distribution.&lt;br /&gt;
&lt;br /&gt;
Consider a partition into communities that do not overlap. The communities of randomly chosen nodes in each iteration follow a &amp;lt;math&amp;gt;p(C)&amp;lt;/math&amp;gt; distribution that represents the probability that a randomly picked node is from the community &amp;lt;math&amp;gt;C&amp;lt;/math&amp;gt;. Consider a partition of the same network that was predicted by some community finding algorithm and has &amp;lt;math&amp;gt;p(C_2)&amp;lt;/math&amp;gt; distribution. The benchmark partition has &amp;lt;math&amp;gt;p(C_1)&amp;lt;/math&amp;gt; distribution.&lt;br /&gt;
&lt;br /&gt;
考虑社区的一个不重叠分割。每次迭代中随机选择的节点的社区遵循一个'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''分布，这个分布表示随机选择的节点来自社区'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''的概率。考虑同一个网络的一个分割，这个分割由一些社区搜索算法预测得出，并且具有'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''分布。基准分割具有'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''分布。&lt;br /&gt;
&lt;br /&gt;
The joint distribution is &amp;lt;math&amp;gt;p(C_1, C_2)&amp;lt;/math&amp;gt;. The similarity of these two partitions is captured by the normalized [[mutual information]].&lt;br /&gt;
&lt;br /&gt;
The joint distribution is &amp;lt;math&amp;gt;p(C_1, C_2)&amp;lt;/math&amp;gt;. The similarity of these two partitions is captured by the normalized mutual information.&lt;br /&gt;
&lt;br /&gt;
联合分布为'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''。这两个分割的相似性可以通过'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;归一化互信息&amp;lt;/font&amp;gt;'''得到。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt; I_n = \frac{\sum_{C_1,C_2} p(C_1,C_2) \log_2 \frac{p(C_1,C_2)}{p(C_1)p(C_2)} }{\frac 1 2 H(\{p(C_1)\}) + \frac 1 2 H(\{p(C_2)\})} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; I_n = \frac{\sum_{C_1,C_2} p(C_1,C_2) \log_2 \frac{p(C_1,C_2)}{p(C_1)p(C_2)} }{\frac 1 2 H(\{p(C_1)\}) + \frac 1 2 H(\{p(C_2)\})} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt; math &amp;gt; i _ n = frac { sum _ { c _ 1，c _ 2} p (c _ 1，c _ 2) log _ 2 frac { p (c _ 1，c _ 2)}{ p (c _ 1) p (c _ 2)}{ frac _ 12 h ({ p (c _ 1)}}) + frac 12 h ({ p (c _ 2)}}} &amp;lt;/math &amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If  &amp;lt;math&amp;gt; I_n=1 &amp;lt;/math&amp;gt; the benchmark and the detected partitions are identical, and if &amp;lt;math&amp;gt; I_n=0 &amp;lt;/math&amp;gt; then they are independent of each other.&amp;lt;ref&amp;gt;Barabasi, A.-L. (2014). &amp;quot;Network Science&amp;quot;. Chapter 9: Communities.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If  &amp;lt;math&amp;gt; I_n=1 &amp;lt;/math&amp;gt; the benchmark and the detected partitions are identical, and if &amp;lt;math&amp;gt; I_n=0 &amp;lt;/math&amp;gt; then they are independent of each other.&lt;br /&gt;
&lt;br /&gt;
如果'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''基准和检测到的分割是相同的，并且如果'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''，那么它们彼此独立。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References  参考文献==&lt;br /&gt;
&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Lancichinetti-Fortunato-Radicchi benchmark}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Algorithms]]&lt;br /&gt;
&lt;br /&gt;
Category:Algorithms&lt;br /&gt;
&lt;br /&gt;
类别: 算法&lt;br /&gt;
&lt;br /&gt;
[[Category:Random graphs]]&lt;br /&gt;
&lt;br /&gt;
Category:Random graphs&lt;br /&gt;
&lt;br /&gt;
类别: 随机图&lt;br /&gt;
&lt;br /&gt;
[[Category:Benchmarks (computing)]]&lt;br /&gt;
&lt;br /&gt;
Category:Benchmarks (computing)&lt;br /&gt;
&lt;br /&gt;
类别: 基准(计算)&lt;br /&gt;
&lt;br /&gt;
[[Category:Statistical methods]]&lt;br /&gt;
&lt;br /&gt;
Category:Statistical methods&lt;br /&gt;
&lt;br /&gt;
类别: 统计方法&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;This page was moved from [[wikipedia:en:Lancichinetti–Fortunato–Radicchi benchmark]]. Its edit history can be viewed at [[LFR算法/edithistory]]&amp;lt;/small&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:待整理页面]]&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=LFR%E7%AE%97%E6%B3%95&amp;diff=16580</id>
		<title>LFR算法</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=LFR%E7%AE%97%E6%B3%95&amp;diff=16580"/>
		<updated>2020-10-22T15:05:58Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;此词条由袁一博翻译，未经人工整理和审校，带来阅读不便，请见谅。&lt;br /&gt;
&lt;br /&gt;
{{short description|Algorithm}}&lt;br /&gt;
&lt;br /&gt;
{{Network science}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Lancichinetti–Fortunato–Radicchi''' '''benchmark''' is an algorithm that generates [[Benchmark (computing)|benchmark]] networks (artificial networks that resemble real-world networks). They have ''a priori'' known [[Community structure|communities]] and are used to compare different community detection methods.&amp;lt;ref&amp;gt;Hua-Wei Shen (2013). &amp;quot;Community Structure of Complex Networks&amp;quot;. Springer Science &amp;amp; Business Media. 11–12.&amp;lt;/ref&amp;gt;  The advantage of the benchmark over other methods is that it accounts for the [[Homogeneity (statistics)|heterogeneity]] in the distributions of [[Vertex (graph theory)|node]] [[Degree (graph theory)|degrees]] and of community sizes.&amp;lt;ref name=&amp;quot;original&amp;quot;&amp;gt;A. Lancichinetti, S. Fortunato, and F. Radicchi.(2008) Benchmark graphs for testing community detection algorithms. Physical Review E, 78. {{ArXiv|0805.4770}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lancichinetti–Fortunato–Radicchi benchmark is an algorithm that generates benchmark networks (artificial networks that resemble real-world networks). They have a priori known communities and are used to compare different community detection methods.  The advantage of the benchmark over other methods is that it accounts for the heterogeneity in the distributions of node degrees and of community sizes.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;兰奇基内蒂-福图纳托-拉迪奇基准程序(Lancichinetti–Fortunato–Radicchi benchmark)&amp;lt;/font&amp;gt;'''是一种生成'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;基准网络（baseline network)&amp;lt;/font&amp;gt;'''(类似于真实世界网络的人工网络)的算法。他们有一个预先已知的社区，用于比较不同的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;社区检测&amp;lt;/font&amp;gt;'''方法。与其他方法相比，基准测试的优点在于它解释了'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;节点度(node degree)&amp;lt;/font&amp;gt;'''分布和'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;社区规模(community sizes)&amp;lt;/font&amp;gt;'''分布的异质性。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==The algorithm  算法==&lt;br /&gt;
&lt;br /&gt;
The node degrees and the community sizes are distributed according to a [[power law]], with different exponents. The benchmark assumes that both the degree and the community size have [[Power law distribution|power law distributions]] with different exponents, &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt;, respectively. &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; is the number of nodes and the average degree is &amp;lt;math&amp;gt;\langle k \rangle&amp;lt;/math&amp;gt;. There is a mixing parameter &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, which is the average fraction of neighboring nodes of a node that do not belong to any community that the benchmark node belongs to.  This parameter controls the fraction of edges that are between communities.&amp;lt;ref name=&amp;quot;original&amp;quot;/&amp;gt; Thus, it reflects the amount of noise in the network. At the extremes, when &amp;lt;math&amp;gt;\mu = 0&amp;lt;/math&amp;gt; all links are within community links, if &amp;lt;math&amp;gt; \mu = 1 &amp;lt;/math&amp;gt; all links are between nodes belonging to different communities.&amp;lt;ref&amp;gt;Twan van Laarhoven and Elena Marchiori (2013). &amp;quot;Network community detection with edge classifiers trained on LFR graphs&amp;quot;. https://www.cs.ru.nl/~elenam/paper-learning-community.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The node degrees and the community sizes are distributed according to a power law, with different exponents. The benchmark assumes that both the degree and the community size have power law distributions with different exponents, &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt;, respectively. &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; is the number of nodes and the average degree is &amp;lt;math&amp;gt;\langle k \rangle&amp;lt;/math&amp;gt;. There is a mixing parameter &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;, which is the average fraction of neighboring nodes of a node that do not belong to any community that the benchmark node belongs to.  This parameter controls the fraction of edges that are between communities.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;节点度(node degree)&amp;lt;/font&amp;gt;'''和'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;社区规模(community sizes)&amp;lt;/font&amp;gt;'''按幂律分布，但指数不同。基准测试假设'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;度(node degree)&amp;lt;/font&amp;gt;'''和'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;社区规模(community sizes)&amp;lt;/font&amp;gt;'''都具有不同指数的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;幂律分布(power law distribution)&amp;lt;/font&amp;gt;'''，分别为'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''和'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''。'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''是节点的数量，平均度为'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''。混合参数'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''是一个节点的相邻节点的平均比例，这些相邻节点不属于基准节点所属的任何社区。这个参数控制着社区之间的边缘比例。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One can generate the benchmark network using the following steps.&lt;br /&gt;
&lt;br /&gt;
One can generate the benchmark network using the following steps.&lt;br /&gt;
&lt;br /&gt;
可以通过以下步骤生成基准网络。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Step 1:'''&amp;lt;/big&amp;gt; Generate a network with nodes following a power law distribution with exponent &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; and choose extremes of the distribution &amp;lt;math&amp;gt; k_{\min} &amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt; k_{\max} &amp;lt;/math&amp;gt; to get desired average degree is &amp;lt;math&amp;gt;\langle k\rangle&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Step 1:&amp;lt;/big&amp;gt; Generate a network with nodes following a power law distribution with exponent &amp;lt;math&amp;gt;\gamma&amp;lt;/math&amp;gt; and choose extremes of the distribution &amp;lt;math&amp;gt; k_{\min} &amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt; k_{\max} &amp;lt;/math&amp;gt; to get desired average degree is &amp;lt;math&amp;gt;\langle k\rangle&amp;lt;/math&amp;gt;.&lt;br /&gt;
  --[[用户:粲兰|袁一博]]（[[用户讨论:粲兰|讨论]]）“to get desired average degree is”中的“is”怀疑是原文的误输入，因为它完全违背正确的英语语法。&lt;br /&gt;
&lt;br /&gt;
&amp;lt; 大 &amp;gt; 步骤1: &amp;lt;/big &amp;gt; 生成一个网络，其节点遵循指数为'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''的幂律分布，并选择分布的极值'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''和'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''来获得期望平均度'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Step 2:'''&amp;lt;/big&amp;gt; &amp;lt;math&amp;gt;(1 - \mu)&amp;lt;/math&amp;gt; fraction of links of every node is with nodes of the same community, while fraction &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; is with the other nodes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Step 2:&amp;lt;/big&amp;gt; &amp;lt;math&amp;gt;(1 - \mu)&amp;lt;/math&amp;gt; fraction of links of every node is with nodes of the same community, while fraction &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; is with the other nodes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt; 大 &amp;gt; 步骤2: &amp;lt;/big &amp;gt;每个节点的'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''链接部分与同一社区的节点相同，而'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''部分与其他节点相同。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Step 3:'''&amp;lt;/big&amp;gt; Generate community sizes from a power law distribution with exponent &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt;. The sum of all sizes must be equal to &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;. The minimal and maximal community sizes &amp;lt;math&amp;gt; s_{\min} &amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt; s_{\max} &amp;lt;/math&amp;gt; must satisfy the definition of community so that every non-isolated node is in at least in one community:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Step 3:&amp;lt;/big&amp;gt; Generate community sizes from a power law distribution with exponent &amp;lt;math&amp;gt;\beta&amp;lt;/math&amp;gt;. The sum of all sizes must be equal to &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;. The minimal and maximal community sizes &amp;lt;math&amp;gt; s_{\min} &amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt; s_{\max} &amp;lt;/math&amp;gt; must satisfy the definition of community so that every non-isolated node is in at least in one community:&lt;br /&gt;
&lt;br /&gt;
&amp;lt; big &amp;gt; 步骤3: &amp;lt;/big &amp;gt; 根据指数为'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''的幂律分布生成'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;社区规模(community sizes)&amp;lt;/font&amp;gt;'''。所有规模大小的和必须等于'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''。最小和最大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;社区规模(community sizes)&amp;lt;/font&amp;gt;''''''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''必须满足社区的定义，这样每个非孤立的节点至少存在于一个群落中:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt; s_{\min} &amp;gt; k_{\min} &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; s_{\min} &amp;gt; k_{\min} &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[ math &amp;gt; s _ { min } &amp;gt; k _ { min }&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt; s_{\max} &amp;gt; k_{\max} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; s_{\max} &amp;gt; k_{\max} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[数学][数学]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Step 4:'''&amp;lt;/big&amp;gt; Initially, no nodes are assigned to communities. Then, each node is randomly assigned to a community. As long as the number of neighboring nodes within the community does not exceed the community size a new node is added to the community, otherwise stays out. In the following iterations the “homeless” node is randomly assigned to some community. If that community is complete, i.e. the size is exhausted, a randomly selected node of that community must be unlinked. Stop the iteration when all the communities are complete and all the nodes belong to at least one community.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Step 4:&amp;lt;/big&amp;gt; Initially, no nodes are assigned to communities. Then, each node is randomly assigned to a community. As long as the number of neighboring nodes within the community does not exceed the community size a new node is added to the community, otherwise stays out. In the following iterations the “homeless” node is randomly assigned to some community. If that community is complete, i.e. the size is exhausted, a randomly selected node of that community must be unlinked. Stop the iteration when all the communities are complete and all the nodes belong to at least one community.&lt;br /&gt;
&lt;br /&gt;
&amp;lt; big &amp;gt; 步骤4: &amp;lt;/big &amp;gt; 最初，没有为任何社区分配任何节点。然后，每个节点被随机分配到一个社区。只要社区内相邻节点的数量不超过'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;社区规模(community sizes)&amp;lt;/font&amp;gt;'''，就会向社区添加一个新节点，否则就不会添加。在接下来的迭代中，无归属的节点被随机分配给某个社区。如果该社区是完备的，即规模已经用尽，必须随机选择社区中的一个节点并断开其链接。当所有社区都完备且所有节点都至少属于一个社区时停止迭代。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''Step 5:'''&amp;lt;/big&amp;gt; Implement rewiring of nodes keeping the same node degrees but only affecting the fraction of internal and external links such that the number of links outside the community for each node is approximately equal to the mixing parameter &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;.&amp;lt;ref name=&amp;quot;original&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Step 5:&amp;lt;/big&amp;gt; Implement rewiring of nodes keeping the same node degrees but only affecting the fraction of internal and external links such that the number of links outside the community for each node is approximately equal to the mixing parameter &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt; big &amp;gt; 步骤5: &amp;lt;/big &amp;gt; 对节点重新布线，保持相同的节点度，但只影响内部和外部链接，使得每个节点在社区外的链接数量约等于混合参数'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Testing  调试==&lt;br /&gt;
&lt;br /&gt;
Consider a [[Partition of a set|partition]] into communities that do not overlap. The communities of randomly chosen nodes in each iteration follow a &amp;lt;math&amp;gt;p(C)&amp;lt;/math&amp;gt; distribution that represents the probability that a randomly picked node is from the community &amp;lt;math&amp;gt;C&amp;lt;/math&amp;gt;. Consider a partition of the same network that was predicted by some community finding algorithm and has &amp;lt;math&amp;gt;p(C_2)&amp;lt;/math&amp;gt; distribution. The benchmark partition has &amp;lt;math&amp;gt;p(C_1)&amp;lt;/math&amp;gt; distribution.&lt;br /&gt;
&lt;br /&gt;
Consider a partition into communities that do not overlap. The communities of randomly chosen nodes in each iteration follow a &amp;lt;math&amp;gt;p(C)&amp;lt;/math&amp;gt; distribution that represents the probability that a randomly picked node is from the community &amp;lt;math&amp;gt;C&amp;lt;/math&amp;gt;. Consider a partition of the same network that was predicted by some community finding algorithm and has &amp;lt;math&amp;gt;p(C_2)&amp;lt;/math&amp;gt; distribution. The benchmark partition has &amp;lt;math&amp;gt;p(C_1)&amp;lt;/math&amp;gt; distribution.&lt;br /&gt;
&lt;br /&gt;
考虑社区的一个不重叠分割。每次迭代中随机选择的节点的社区遵循一个'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''分布，这个分布表示随机选择的节点来自社区'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''的概率。考虑同一个网络的一个分割，这个分割由一些社区搜索算法预测得出，并且具有'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''分布。基准分割具有'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''分布。&lt;br /&gt;
&lt;br /&gt;
The joint distribution is &amp;lt;math&amp;gt;p(C_1, C_2)&amp;lt;/math&amp;gt;. The similarity of these two partitions is captured by the normalized [[mutual information]].&lt;br /&gt;
&lt;br /&gt;
The joint distribution is &amp;lt;math&amp;gt;p(C_1, C_2)&amp;lt;/math&amp;gt;. The similarity of these two partitions is captured by the normalized mutual information.&lt;br /&gt;
&lt;br /&gt;
联合分布为'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''。这两个分割的相似性可以通过'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;归一化互信息&amp;lt;/font&amp;gt;'''得到。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt; I_n = \frac{\sum_{C_1,C_2} p(C_1,C_2) \log_2 \frac{p(C_1,C_2)}{p(C_1)p(C_2)} }{\frac 1 2 H(\{p(C_1)\}) + \frac 1 2 H(\{p(C_2)\})} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;math&amp;gt; I_n = \frac{\sum_{C_1,C_2} p(C_1,C_2) \log_2 \frac{p(C_1,C_2)}{p(C_1)p(C_2)} }{\frac 1 2 H(\{p(C_1)\}) + \frac 1 2 H(\{p(C_2)\})} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt; math &amp;gt; i _ n = frac { sum _ { c _ 1，c _ 2} p (c _ 1，c _ 2) log _ 2 frac { p (c _ 1，c _ 2)}{ p (c _ 1) p (c _ 2)}{ frac _ 12 h ({ p (c _ 1)}}) + frac 12 h ({ p (c _ 2)}}} &amp;lt;/math &amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If  &amp;lt;math&amp;gt; I_n=1 &amp;lt;/math&amp;gt; the benchmark and the detected partitions are identical, and if &amp;lt;math&amp;gt; I_n=0 &amp;lt;/math&amp;gt; then they are independent of each other.&amp;lt;ref&amp;gt;Barabasi, A.-L. (2014). &amp;quot;Network Science&amp;quot;. Chapter 9: Communities.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If  &amp;lt;math&amp;gt; I_n=1 &amp;lt;/math&amp;gt; the benchmark and the detected partitions are identical, and if &amp;lt;math&amp;gt; I_n=0 &amp;lt;/math&amp;gt; then they are independent of each other.&lt;br /&gt;
&lt;br /&gt;
如果'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''基准和检测到的分割是相同的，并且如果'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;此处需插入公式&amp;lt;/font&amp;gt;'''，那么它们彼此独立。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References  参考文献==&lt;br /&gt;
&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Lancichinetti-Fortunato-Radicchi benchmark}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Algorithms]]&lt;br /&gt;
&lt;br /&gt;
Category:Algorithms&lt;br /&gt;
&lt;br /&gt;
类别: 算法&lt;br /&gt;
&lt;br /&gt;
[[Category:Random graphs]]&lt;br /&gt;
&lt;br /&gt;
Category:Random graphs&lt;br /&gt;
&lt;br /&gt;
类别: 随机图&lt;br /&gt;
&lt;br /&gt;
[[Category:Benchmarks (computing)]]&lt;br /&gt;
&lt;br /&gt;
Category:Benchmarks (computing)&lt;br /&gt;
&lt;br /&gt;
类别: 基准(计算)&lt;br /&gt;
&lt;br /&gt;
[[Category:Statistical methods]]&lt;br /&gt;
&lt;br /&gt;
Category:Statistical methods&lt;br /&gt;
&lt;br /&gt;
类别: 统计方法&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;This page was moved from [[wikipedia:en:Lancichinetti–Fortunato–Radicchi benchmark]]. Its edit history can be viewed at [[LFR算法/edithistory]]&amp;lt;/small&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:待整理页面]]&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=16579</id>
		<title>网络效应</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=16579"/>
		<updated>2020-10-22T14:37:56Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 一、简介 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络效应&amp;lt;/font&amp;gt;'''（也称“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络外部性&amp;lt;/font&amp;gt;'''”，或“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;需求方规模经济&amp;lt;/font&amp;gt;'''”)，是一个经济学和商业方面的术语，用于描述对于一个产品（或服务），每增多一名用户，都会对该产品的其他用户产生新的价值。当'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络效应&amp;lt;/font&amp;gt;'''出现时，产品（或服务）的价值，会随着使用该产品（或服务）的人数的增加而增加。&lt;br /&gt;
&lt;br /&gt;
一个经典的例子是电话，越多的人使用电话，对每个电话使用者的价值就越大。一部电话的使用者，本来无意为其他用户创造价值，但当大家都购买电话时，这个行为就产生了正外部性。像微信、微博、Twitter、Facebook 这样的线上社交网络，也是一样，随着更多用户的加入，每个用户获得的价值都在增加。&lt;br /&gt;
&lt;br /&gt;
当网络的价值越来越大，越来越多的人加入时，网络效应还会带来从众效应，从而形成正反馈循环。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''这一表述不仅适用于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;正向的网络外部性&amp;lt;/font&amp;gt;'''，如电话的案例；'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;消极的网络外部性&amp;lt;/font&amp;gt;'''也可能发生，即用户越多，产品的价值就越低，这种情况通常被称为 '''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;拥堵&amp;lt;/font&amp;gt;'''，例如如交通拥堵或网络拥堵。&lt;br /&gt;
&lt;br /&gt;
== 二、网络效应的起源 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''是西奥多·韦尔（后专利时代贝尔电话公司的第一任总裁）期望获得美国电话服务垄断权的一系列方法中的核心主题。1908 年，当他在贝尔的年报中提出这一概念时，当地和地区电话交换机有 4000 多个，其中大部分最终被并入贝尔系统。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''是由罗伯特·梅特卡夫推广的，称其为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;梅特卡夫定律&amp;lt;/font&amp;gt;'''。梅特卡夫是以太网的共同发明人之一，也是3Com公司的联合创始人。在销售产品的过程中，梅特卡夫认为，客户要想从网络中获得收益，就需要以太网卡增长到一定的临界质量以上，按照梅特卡夫的说法，网络卡销售的原理是：网络的成本与安装的网卡数量成正比，但网络的价值与用户数量的平方成正比。这在代数上表示为成本为 N ，价值为 N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;。虽然这个命题背后的实际数字从来没有确定过，但这个概念使客户可以共享访问昂贵的资源，如磁盘驱动器和打印机，发送电子邮件，并最终访问互联网。&lt;br /&gt;
&lt;br /&gt;
1985年至1995年，研究人员 Michael L. Katz、Carl Shapiro、Joseph Farrell 和Garth Saloner 对'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的经济理论进行了重大的推进，作者、高科技企业家 Rod Beckstrom 在2009年的 BlackHat和 Defcon 会议上提出了描述处于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;正网络效应&amp;lt;/font&amp;gt;'''状态的网络的数学模型，同时也提出了'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;逆网络效应&amp;lt;/font&amp;gt;'''，并给出了经济模型的定义。&lt;br /&gt;
&lt;br /&gt;
== 三、网络效应的好处 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''在达到一定的认购比例后变得显著，称为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;临界质量&amp;lt;/font&amp;gt;'''。在临界质量点，从商品或服务中获得的价值大于或等于为商品或服务支付的价格。由于商品的价值是由用户群决定的，这就意味着在一定数量的人订阅了服务或购买了商品后，由于价值大于价格，会有更多的人订阅服务或购买商品。&lt;br /&gt;
&lt;br /&gt;
那么，一个关键的商业问题必须是如何在达到'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;临界质量&amp;lt;/font&amp;gt;'''之前吸引用户。一种方法是依靠外在的动机，如付款、免费或请求朋友注册。更自然的策略是建立一个没有'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的但足够有价值的系统，至少对早期采用者来说是这样。然后，随着用户数量的增加，系统会变得更有价值，能够吸引更广泛的用户群。&lt;br /&gt;
&lt;br /&gt;
超过'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;临界质量&amp;lt;/font&amp;gt;'''后，用户数量的增加一般不能无限期地持续下去。到了一定程度后，大多数网络要么'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;拥堵&amp;lt;/font&amp;gt;'''，要么饱和，不再吸收用户。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;拥堵&amp;lt;/font&amp;gt;'''是由于过度使用而发生的。适用的比喻是电话网络。当用户数量低于拥堵点时，每增加一个用户都会给其他每一个用户增加额外的价值。然而，在某些时候，额外用户的增加超过了现有系统的容量。在这一点之后，每增加一个用户都会减少其他每一个用户获得的价值。从实际情况来看，每增加一个用户都会增加系统的总负荷，导致信号繁忙、无法获得拨号音、客户支持不力。假设拥塞点低于潜在的市场规模，下一个临界点就是获得的价值又等于付出的代价。如果不提高系统容量，此时网络将停止发展。点对点(P2P)系统是为了在其用户池中分配负载而设计的网络。理论上，这使得P2P网络可以无限扩大规模。基于P2P的电话服务Skype就得益于这种效应，它的增长主要受到市场饱和度的限制。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''通常被误认为是'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;规模经济&amp;lt;/font&amp;gt;'''，但'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;规模经济&amp;lt;/font&amp;gt;'''是由企业规模带来的，而非用户之间的相互操作性造成的。为了帮助澄清两者的区别，人们讲需求侧与供给侧的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;规模经济&amp;lt;/font&amp;gt;'''。经典的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;规模经济&amp;lt;/font&amp;gt;'''是在生产侧，而'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''则是在需求侧产生的。&lt;br /&gt;
&lt;br /&gt;
由于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''常常与正反馈相关，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''也容易被误认为是'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;范围经济&amp;lt;/font&amp;gt;'''，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;系统动力学&amp;lt;/font&amp;gt;'''可以作为一种建模方法来描述这种现象。'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;口碑传播&amp;lt;/font&amp;gt;'''和'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;巴斯扩散模型&amp;lt;/font&amp;gt;'''也有可能适用。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 四、技术生命周期 ==&lt;br /&gt;
&lt;br /&gt;
如果一些现有的技术或公司的利益，主要是基于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的，在面对挑战者时（如颠覆性的新技术，或基于开源标准的竞争），如果他们开始失去市场份额，那么'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''给他们带来的利益就会减少，给挑战者带来的利益会增加。&lt;br /&gt;
&lt;br /&gt;
在这一模式中，最终会达到一个临界点，即挑战者的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''支配了原在位者的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''，在位者被迫加速衰落，而挑战者则取代了在位者的原有地位。&lt;br /&gt;
&lt;br /&gt;
== 五、网络效应带来锁定 ==&lt;br /&gt;
&lt;br /&gt;
因为常常会把用户和供应商锁定在某一个标准上，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''也有臭名昭著的一面，最常见的例子是微软产品和 QWERTY 键盘。&lt;br /&gt;
&lt;br /&gt;
供应商锁定可以通过开放用户所依赖的标准来缓解，允许各实施方案之间的竞争。然而，这并不能减轻整个行业对标准本身的锁定。事实上，由于现在有多个供应商在降低价格和提高质量，更多的用户可能会采用该标准，从而造成整个行业对该标准的更大锁定。&lt;br /&gt;
&lt;br /&gt;
== 六、网络效应的类型 ==&lt;br /&gt;
&lt;br /&gt;
大体而言，有 2 种网络效应——'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''、'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;间接网络效应&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
=== 直接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
使用量的增加会直接导致其他用户价值的增加。例如，电话系统、传真机、社交网络，都意味着用户之间的直接接触。'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;直接网络效应&amp;lt;/font&amp;gt;'''称为''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;同侧网络效应&amp;lt;/font&amp;gt;'''。一个例子是在线游戏玩家，会从其他在线游戏玩家的参与中获益。&lt;br /&gt;
&lt;br /&gt;
=== 间接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
一种产品或网络使用量的增加，会引起补充产品或网络价值的增加，而补充产品或网络又会增加原产品的价值。补充产品的例子包括软件(如操作系统的Office套件)和DVD(DVD播放器)。这也就是所谓的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;跨边网络效应&amp;lt;/font&amp;gt;'''。Windows和Linux可能不仅争夺用户，而且争夺软件开发商。大多数双边市场（或平台中介市场），都具有'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;间接网络效应&amp;lt;/font&amp;gt;'''的特点。&lt;br /&gt;
&lt;br /&gt;
此外，在分析显示出'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的产品时，有两个相关的经济价值来源：&lt;br /&gt;
&lt;br /&gt;
=== 内在价值===&lt;br /&gt;
&lt;br /&gt;
从使用产品中获得价值。&lt;br /&gt;
&lt;br /&gt;
=== 网络价值===&lt;br /&gt;
&lt;br /&gt;
从别人对产品的使用中获得价值。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 七、负网络外部性 ==&lt;br /&gt;
&lt;br /&gt;
数学意义上的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''，是指与正常（正）网络效应相比，具有负效应的网络外部性。正的网络外部性（网络效应）会造成正反馈和指数增长，负的网络外部性会造成负反馈和指数衰减。在自然界中，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;负网络外部性&amp;lt;/font&amp;gt;'''是拉向平衡的力量，是稳定的原因，代表着使系统受到约束的物理限制。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;拥堵&amp;lt;/font&amp;gt;'''的发生，是随着使用网络的人越来越多，网络的效率就会降低，这就降低了已经使用网络的人的价值。使高速公路超载的交通拥堵、带宽有限的连接上的网络拥堵，都表现出负的网络外部性。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;布雷斯悖论 (Braess’s paradox) &amp;lt;/font&amp;gt;'''表明，增加网络中的路径，会对网络的性能产生负面影响。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 八、互操作性/协同工作能力 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''具有使网络扩大的作用，从而增加网络对消费者的外部价值。'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''主要是通过增加潜在的连接来实现的，其次是通过吸引新的参与者加入网络。互操作性的其他好处包括减少不确定性、减少锁定、商品化和基于价格的竞争。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''可以通过标准化或其他合作来实现。参与促进'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;互操作性&amp;lt;/font&amp;gt;'''的公司，既要与竞争者合作以扩大产品的潜在市场，又要彼此之间争夺市场份额，他们往往面临着紧张关系。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 九、开源标准 vs 封闭标准 ==&lt;br /&gt;
&lt;br /&gt;
在通信和信息技术中，开源标准和接口往往是通过多家公司的参与而制定的，他们制定开源标准，往往也是互利的。但是，如果有关的通信协议或接口是封闭的标准，网络效应就会使控制这些标准的公司，具有垄断能力。&lt;br /&gt;
&lt;br /&gt;
计算机专业人士普遍认为，微软公司是通过这些手段来维持其垄断地位的。可以看到，微软公司将网络效应发挥到极致的一种方法叫做拥抱、延伸和消灭。&lt;br /&gt;
&lt;br /&gt;
Mirabilis 是一家以色列的创业公司，它是即时通讯（IM）的先驱，被美国在线收购。通过免费赠送他们的 ICQ 产品，并防止他们的客户端软件与其他产品之间的互操作性，他们得以暂时主导了即时通讯的市场。由于网络效应，新的即时通讯用户选择使用 Mirabilis 系统（并加入其庞大的用户网络）比使用竞争系统获得的价值要大得多。作为那个时代的典型，该公司在出售公司之前从未试图从其主导地位中获得利润。&lt;br /&gt;
&lt;br /&gt;
== 十、案例 ==&lt;br /&gt;
&lt;br /&gt;
=== 金融交易所 ===&lt;br /&gt;
&lt;br /&gt;
证券交易所和衍生品交易所，具有'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''的特点。市场流动性是决定证券买卖交易成本的主要因素，因为在购买价格与出售同一证券的价格之间存在着买卖差价。随着交易所的买卖双方数量的增加，流动性增加，交易成本降低。这样就会吸引更多的买家和卖家来到交易所。&lt;br /&gt;
&lt;br /&gt;
金融交易所的网络优势，明显体现在新成立的交易所，很难脱离主导交易所。例如，尽管 Eurex US 启动了相同期货合约的交易，但芝加哥期货交易所仍然保持了美国国债期货交易的压倒性优势。同样，尽管受到了 Euronext.Liffe 的挑战，芝加哥商业交易所也保持了在欧洲债券利率期货交易中的主导地位。&lt;br /&gt;
&lt;br /&gt;
=== 软件 ===&lt;br /&gt;
&lt;br /&gt;
在广泛使用的计算机软件市场上，存在着非常强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
对许多人来说，选择办公套件的首要考虑因素包括：学会该办公套件对潜在雇主的价值有多大，以及该软件与其他用户的互动情况如何。也就是说，由于学习使用一个办公套件需要花费很多时间，用户希望将这些时间投入到学习办公套件上，使他们对潜在的雇主和客户最具吸引力。同样，在决定购买哪款办公套件时，寻找已经培训过的员工也是雇主们的一大顾虑。&lt;br /&gt;
&lt;br /&gt;
2007 年，苹果发布了 iPhone，随后是 App store 应用商店。大多数 iPhone 应用，非常依赖 iPhone 已经存在的强大的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。这样软件应用能够以非常有限的市场营销预算，迅速地增长人气，并传播到庞大的用户群。&lt;br /&gt;
&lt;br /&gt;
免费增值的商业模式已经发展到利用这些'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''，发布一个免费版本，让用户不限制使用，然后对高级功能收费来作为主要收入来源。&lt;br /&gt;
&lt;br /&gt;
=== 网站 ===&lt;br /&gt;
&lt;br /&gt;
许多网站都得益于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。一个例子是网络市场和交易所。例如，如果拍卖没有竞争性，eBay 就不会成为一个特别有用的网站。随着 eBay 上用户数量的增长，拍卖会的竞争越来越激烈，推高了物品的竞价价格。这使得在 eBay 上出售物品更有价值，并将更多的卖家带到 eBay 上，反过来，由于供应量的增加，又促使价格下降。供应量的增加为 eBay 带来了更多的买家。从本质上讲，随着 eBay 用户数量的增加，价格下降，供给增加，越来越多的人发现这个网站是有用的。&lt;br /&gt;
&lt;br /&gt;
20世纪90年代末，一些网络公司将'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''作为商业模式的理由。这些公司的经营理念是，当一个新的市场出现时，如果这个市场包含着强烈的网络效应，公司应该更关心市场份额的增长，而不是马上变得有利可图。其理由是，市场份额将决定哪家公司能够制定技术和营销标准，并使这些公司获得先发优势。&lt;br /&gt;
&lt;br /&gt;
社交网站就是很好的例子。在社交网站上注册的人越多，网站对其注册者越有用。&lt;br /&gt;
&lt;br /&gt;
Alexa互联网使用的技术是跟踪用户的网络浏览模式，因此 Alexa 的相关网站结果会随着更多用户使用该技术而提高。Alexa的网络严重依赖少量的浏览器软件关系，这使得该网络更容易受到竞争的影响。&lt;br /&gt;
&lt;br /&gt;
谷歌也试图通过其 Google AdSense 服务，在广告业务中创造'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。 Google AdSense 在许多小型网站（如博客）上投放广告，利用 Google 的技术来确定哪些广告与哪些博客相关。因此，该服务的目的似乎是作为一个交易所（或广告网络），为许多广告商与许多小网站（如博客）进行匹配。一般来说，Google AdSense 能够接触到的博客越多，就会吸引更多的广告商，使其成为对更多博客最有吸引力的选择，以此类推，使网络对所有参与者更有价值。&lt;br /&gt;
&lt;br /&gt;
相比之下，一个新闻网站的价值，主要与文章的质量成正比，而不是与其他使用网站的人数成正比。&lt;br /&gt;
&lt;br /&gt;
同样，第一代搜索网站也没有经历什么网络效应，因为网站的价值是基于搜索结果的价值。一旦用户认为 Google 的搜索结果更胜一筹，Google 便不费吹灰之力就从雅虎手中赢得了用户。而一些评论家误以为雅虎品牌的价值（随着更多的人知道雅虎品牌，雅虎品牌的价值确实会增加）是保护其广告业务的网络效应。&lt;br /&gt;
&lt;br /&gt;
=== 铁路轨距 ===&lt;br /&gt;
&lt;br /&gt;
在最初的轨距选择和轨距转换决策中，存在着强烈的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;网络效应&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
即使在放置不与任何其他线路连接的孤立钢轨时，轨道层通常也会选择一个标准轨距，这样他们就可以使用现成的机车车辆。&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#32CD32&amp;quot;&amp;gt;虽然少数厂家生产的机车车辆可以适应不同轨距，但大多数厂家生产的机车车（内容不完整）&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
== 词条编辑日志 ==&lt;br /&gt;
&lt;br /&gt;
* 200818 润悟翻译自 wikipedia https://en.wikipedia.org/wiki/Network_effect&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=16578</id>
		<title>网络效应</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E7%BD%91%E7%BB%9C%E6%95%88%E5%BA%94&amp;diff=16578"/>
		<updated>2020-10-22T14:20:32Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：/* 一、简介 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 一、简介 ==&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络效应&amp;lt;/font&amp;gt;'''（也称“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络外部性&amp;lt;/font&amp;gt;'''”，或“'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;需求方规模经济&amp;lt;/font&amp;gt;'''”)，是一个经济学和商业方面的术语，用于描述对于一个产品（或服务），每增多一名用户，都会对该产品的其他用户产生新的价值。当'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络效应&amp;lt;/font&amp;gt;'''出现时，产品（或服务）的价值，会随着使用该产品（或服务）的人数的增加而增加。&lt;br /&gt;
&lt;br /&gt;
一个经典的例子是电话，越多的人使用电话，对每个电话使用者的价值就越大。一部电话的使用者，本来无意为其他用户创造价值，但当大家都购买电话时，这个行为就产生了正外部性。像微信、微博、Twitter、Facebook 这样的线上社交网络，也是一样，随着更多用户的加入，每个用户获得的价值都在增加。&lt;br /&gt;
&lt;br /&gt;
当网络的价值越来越大，越来越多的人加入时，网络效应还会带来从众效应，从而形成正反馈循环。&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 网络效应&amp;lt;/font&amp;gt;'''这一表述不仅适用于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;正向的网络外部性&amp;lt;/font&amp;gt;'''，如电话的案例；'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;消极的网络外部性&amp;lt;/font&amp;gt;'''也可能发生，即用户越多，产品的价值就越低，这种情况通常被称为 '''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;拥堵&amp;lt;/font&amp;gt;'''，例如如交通拥堵或网络拥堵。&lt;br /&gt;
&lt;br /&gt;
== 二、网络效应的起源 ==&lt;br /&gt;
&lt;br /&gt;
网络效应是西奥多·韦尔（后专利时代的贝尔电话公司的第一任总裁），期望获得美国电话服务垄断权的一系列方法中的核心主题。1908 年，当他在贝尔的年报中提出这一概念时，当地和地区电话交换机有 4000 多个，其中大部分最终被并入贝尔系统。&lt;br /&gt;
&lt;br /&gt;
网络效应是由罗伯特·梅特卡夫推广的，称其为「梅特卡夫定律」。梅特卡夫是以太网的共同发明人之一，也是3Com公司的联合创始人。在销售产品的过程中，梅特卡夫认为，客户要想从网络中获得收益，就需要以太网卡增长到一定的临界质量以上，按照梅特卡夫的说法，网络卡销售的原理是：网络的成本与安装的网卡数量成正比，但网络的价值与用户数量的平方成正比。这在代数上表示为成本为 &lt;br /&gt;
N ，价值为 N&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;。虽然这个命题背后的实际数字从来没有确定过，但这个概念使客户可以共享访问昂贵的资源，如磁盘驱动器和打印机，发送电子邮件，并最终访问互联网。&lt;br /&gt;
&lt;br /&gt;
1985年至1995年，研究人员 Michael L. Katz、Carl Shapiro、Joseph Farrell 和Garth Saloner 对网络效应的经济理论进行了重大的推进，作者、高科技企业家 Rod Beckstrom 在2009年的 BlackHa t和 Defcon 会议上提出了描述处于正网络效应状态的网络的数学模型，同时也提出了 “逆网络效应”，并给出了经济模型的定义。&lt;br /&gt;
&lt;br /&gt;
== 三、网络效应的好处 ==&lt;br /&gt;
&lt;br /&gt;
网络效应在达到一定的认购比例后变得显著，称为临界质量。在临界质量点，从商品或服务中获得的价值大于或等于为商品或服务支付的价格。由于商品的价值是由用户群决定的，这就意味着在一定数量的人订阅了服务或购买了商品后，由于价值大于价格，会有更多的人订阅服务或购买商品。&lt;br /&gt;
&lt;br /&gt;
那么，一个关键的商业问题必须是如何在达到临界质量之前吸引用户。一种方法是依靠外在的动机，如付款、免费或请求朋友注册。更自然的策略是建立一个没有网络效应的但足够有价值的系统，至少对早期采用者来说是这样。然后，随着用户数量的增加，系统会变得更有价值，能够吸引更广泛的用户群。&lt;br /&gt;
&lt;br /&gt;
超过临界质量后，用户数量的增加一般不能无限期地持续下去。到了一定程度后，大多数网络要么拥挤，要么饱和，不再吸收用户。&lt;br /&gt;
&lt;br /&gt;
拥堵是由于过度使用而发生的。适用的比喻是电话网络。当用户数量低于拥堵点时，每增加一个用户都会给其他每一个用户增加额外的价值。然而，在某些时候，额外用户的增加超过了现有系统的容量。在这一点之后，每增加一个用户都会减少其他每一个用户获得的价值。从实际情况来看，每增加一个用户都会增加系统的总负荷，导致信号繁忙、无法获得拨号音、客户支持不力。假设拥塞点低于潜在的市场规模，下一个临界点就是获得的价值又等于付出的代价。如果不提高系统容量，此时网络将停止发展。点对点(P2P)系统是为了在其用户池中分配负载而设计的网络。理论上，这使得P2P网络可以无限扩大规模。基于P2P的电话服务Skype就得益于这种效应，它的增长主要受到市场饱和度的限制。&lt;br /&gt;
&lt;br /&gt;
网络效应通常被误认为是规模经济，但规模经济是由企业规模带来的，而非用户之间的相互操作性造成的。为了帮助澄清两者的区别，人们讲需求侧与供给侧的规模经济。经典的规模经济是在生产侧，而网络效应则是在需求侧产生的。&lt;br /&gt;
&lt;br /&gt;
由于网络效应常常与正反馈相关，网络效应也容易被误认为是范围经济，系统动力学可以作为一种建模方法来描述这种现象。口碑传播和巴斯扩散模型也有可能适用。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 四、技术生命周期 ==&lt;br /&gt;
&lt;br /&gt;
如果一些现有的技术或公司的利益，主要是基于网络效应的，在面对挑战者时（如颠覆性的新技术，或基于开源标准的竞争），如果他们开始失去市场份额，那么网络效应给他们带来的利益就会减少，给挑战者的会增加。&lt;br /&gt;
&lt;br /&gt;
在这一模式中，最终会达到一个临界点，即挑战者的网络效应支配了原在位者的网络效应，在位者被迫加速衰落，而挑战者则取代了在位者的原有地位。&lt;br /&gt;
&lt;br /&gt;
== 五、网络效应带来锁定 ==&lt;br /&gt;
&lt;br /&gt;
因为常常会把用户和供应商锁定在某一个标准上，网络效应也有臭名昭著的一面，最常见的例子是微软产品和 QWERTY 键盘。&lt;br /&gt;
&lt;br /&gt;
供应商锁定可以通过开放用户所依赖的标准来缓解，允许各实施方案之间的竞争。然而，这并不能减轻整个行业对标准本身的锁定。事实上，由于现在有多个供应商在降低价格和提高质量，更多的用户可能会采用该标准，从而造成整个行业对该标准的更大锁定。&lt;br /&gt;
&lt;br /&gt;
== 六、网络效应的类型 ==&lt;br /&gt;
&lt;br /&gt;
大体而言，有 2 种网络效应——直接网络效应、间接网络效应&lt;br /&gt;
&lt;br /&gt;
=== 直接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
使用量的增加会直接导致其他用户价值的增加。例如，电话系统、传真机、社交网络，都意味着用户之间的直接接触。直接的网络效应称为同侧网络效应。一个例子是在线游戏玩家，会从其他在线游戏玩家的参与中获益。&lt;br /&gt;
&lt;br /&gt;
=== 间接网络效应 ===&lt;br /&gt;
&lt;br /&gt;
一种产品或网络使用量的增加，会引起补充产品或网络价值的增加，而补充产品或网络又会增加原产品的价值。补充产品的例子包括软件(如操作系统的Office套件)和DVD(DVD播放器)。这也就是所谓的跨边网络效应。Windows和Linux可能不仅争夺用户，而且争夺软件开发商。大多数双边市场（或平台中介市场），都具有间接网络效应的特点。&lt;br /&gt;
&lt;br /&gt;
此外，在分析显示出网络效应的产品时，有两个相关的经济价值来源：&lt;br /&gt;
&lt;br /&gt;
=== 内在价值===&lt;br /&gt;
&lt;br /&gt;
我从使用产品中获得价值&lt;br /&gt;
&lt;br /&gt;
=== 网络价值===&lt;br /&gt;
&lt;br /&gt;
我从别人对产品的使用中获得价值。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 七、负网络外部性 ==&lt;br /&gt;
&lt;br /&gt;
数学意义上的负网络外部性，是指与正常（正）网络效应相比，具有负效应的网络外部性。正的网络外部性（网络效应）会造成正反馈和指数增长，负的网络外部性会造成负反馈和指数衰减。在自然界中，负网络外部性是拉向平衡的力量，是稳定的原因，代表着使系统受到约束的物理限制。&lt;br /&gt;
&lt;br /&gt;
拥堵的发生，是随着使用网络的人越来越多，网络的效率就会降低，这就降低了已经使用网络的人的价值。使高速公路超载的交通拥堵、带宽有限的连接上的网络拥堵，都表现出负的网络外部性。&lt;br /&gt;
&lt;br /&gt;
布雷斯悖论 (Braess’s paradox) 表明，增加网络中的路径，会对网络的性能产生负面影响。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 八、互操作性/协同工作能力 ==&lt;br /&gt;
&lt;br /&gt;
互操作性具有使网络扩大的作用，从而增加网络对消费者的外部价值。互操作性主要是通过增加潜在的连接来实现的，其次是通过吸引新的参与者加入网络。互操作性的其他好处包括减少不确定性、减少锁定、商品化和基于价格的竞争。&lt;br /&gt;
&lt;br /&gt;
互操作性可以通过标准化或其他合作来实现。参与促进互操作性的公司，既要与竞争者合作以扩大产品的潜在市场，又要彼此之间争夺市场份额，他们往往面临着紧张关系。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 九、开源标准 vs 封闭标准 ==&lt;br /&gt;
&lt;br /&gt;
在通信和信息技术中，开源的标准和接口往往是通过多家公司的参与而制定的，他们制定开源标准，往往也是互利的。但是，如果有关的通信协议或接口是封闭的标准，网络效应就会使控制这些标准的公司，具有垄断能力。&lt;br /&gt;
&lt;br /&gt;
计算机专业人士普遍认为，微软公司是通过这些手段来维持其垄断地位的。可以看到，微软公司将网络效应发挥到极致的一种方法叫做拥抱、延伸和消灭。&lt;br /&gt;
&lt;br /&gt;
Mirabilis 是一家以色列的创业公司，它是即时通讯（IM）的先驱，被美国在线收购。通过免费赠送他们的 ICQ 产品，并防止他们的客户端软件与其他产品之间的互操作性，他们得以暂时主导了即时通讯的市场。由于网络效应，新的即时通讯用户选择使用 Mirabilis 系统（并加入其庞大的用户网络）比使用竞争系统获得的价值要大得多。作为那个时代的典型，该公司在出售公司之前从未试图从其主导地位中获得利润。&lt;br /&gt;
&lt;br /&gt;
== 十、案例 ==&lt;br /&gt;
&lt;br /&gt;
=== 金融交易所 ===&lt;br /&gt;
&lt;br /&gt;
证券交易所和衍生品交易所，具有网络效应的特点。市场流动性是决定证券买卖交易成本的主要因素，因为在购买价格与出售同一证券的价格之间存在着买卖差价。随着交易所的买卖双方数量的增加，流动性增加，交易成本降低。这样就会吸引更多的买家和卖家来到交易所。&lt;br /&gt;
&lt;br /&gt;
金融交易所的网络优势，明显体现在新成立的交易所，很难脱离主导交易所。例如，尽管 Eurex US 启动了相同期货合约的交易，但芝加哥期货交易所仍然保持了美国国债期货交易的压倒性优势。同样，尽管受到了 Euronext.Liffe 的挑战，芝加哥商业交易所也保持了在欧洲债券利率期货交易中的主导地位。&lt;br /&gt;
&lt;br /&gt;
=== 软件 ===&lt;br /&gt;
&lt;br /&gt;
在广泛使用的计算机软件市场上，存在着非常强大的网络效应。&lt;br /&gt;
&lt;br /&gt;
对许多人来说，选择办公套件的首要考虑因素包括：学会该办公套件对潜在雇主的价值有多大，以及该软件与其他用户的互动情况如何。也就是说，由于学习使用一个办公套件需要花费很多时间，用户希望将这些时间投入到学习办公套件上，使他们对潜在的雇主和客户最具吸引力。同样，在决定购买哪款办公套件时，寻找已经培训过的员工也是雇主们的一大顾虑。&lt;br /&gt;
&lt;br /&gt;
2007 年，苹果发布了 iPhone，随后是 App store 应用商店。大多数 iPhone 应用，非常依赖 iPhone 已经存在的强大的网络效应。这样软件应用能够以非常有限的市场营销预算，迅速地增长人气，并传播到庞大的用户群。&lt;br /&gt;
&lt;br /&gt;
免费增值的商业模式已经发展到利用这些网络效应，发布一个免费版本，让用户不限制使用，然后对高级功能收费来作为主要收入来源。&lt;br /&gt;
&lt;br /&gt;
=== 网站 ===&lt;br /&gt;
&lt;br /&gt;
许多网站都得益于网络效应。一个例子是网络市场和交易所。例如，如果拍卖没有竞争性，eBay 就不会成为一个特别有用的网站。随着 eBay 上用户数量的增长，拍卖会的竞争越来越激烈，推高了物品的竞价价格。这使得在 eBay 上出售物品更有价值，并将更多的卖家带到 eBay 上，反过来，由于供应量的增加，又促使价格下降。供应量的增加为 eBay 带来了更多的买家。从本质上讲，随着 eBay 用户数量的增加，价格下降，供给增加，越来越多的人发现这个网站是有用的。&lt;br /&gt;
&lt;br /&gt;
20世纪90年代末，一些网络公司将网络效应作为商业模式的理由。这些公司的经营理念是，当一个新的市场出现时，如果这个市场包含着强烈的网络效应，公司应该更关心市场份额的增长，而不是马上变得有利可图。其理由是，市场份额将决定哪家公司能够制定技术和营销标准，并使这些公司获得先发优势。&lt;br /&gt;
&lt;br /&gt;
社交网站就是很好的例子。在社交网站上注册的人越多，网站对其注册者越有用。&lt;br /&gt;
&lt;br /&gt;
Alexa互联网使用的技术是跟踪用户的网络浏览模式，因此 Alexa 的相关网站结果会随着更多用户使用该技术而提高。Alexa的网络严重依赖少量的浏览器软件关系，这使得该网络更容易受到竞争的影响。&lt;br /&gt;
&lt;br /&gt;
谷歌也试图通过其 Google AdSense 服务，在广告业务中创造网络效应。 Google AdSense 在许多小型网站（如博客）上投放广告，利用 Google 的技术来确定哪些广告与哪些博客相关。因此，该服务的目的似乎是作为一个交易所（或广告网络），为许多广告商与许多小网站（如博客）进行匹配。一般来说，Google AdSense 能够接触到的博客越多，就会吸引更多的广告商，使其成为对更多博客最有吸引力的选择，以此类推，使网络对所有参与者更有价值。&lt;br /&gt;
&lt;br /&gt;
相比之下，一个新闻网站的价值，主要与文章的质量成正比，而不是与其他使用网站的人数成正比。&lt;br /&gt;
&lt;br /&gt;
同样，第一代搜索网站也没有经历什么网络效应，因为网站的价值是基于搜索结果的价值。一旦用户认为 Google 的搜索结果更胜一筹，Google 便不费吹灰之力就从雅虎手中赢得了用户。而一些评论家误以为雅虎品牌的价值（随着更多的人知道雅虎品牌，雅虎品牌的价值确实会增加）是保护其广告业务的网络效应。&lt;br /&gt;
&lt;br /&gt;
=== 铁路轨距 ===&lt;br /&gt;
&lt;br /&gt;
在最初的轨距选择和轨距转换决策中，存在着强烈的网络效应。&lt;br /&gt;
&lt;br /&gt;
即使在放置不与任何其他线路连接的孤立钢轨时，轨道层通常也会选择一个标准轨距，这样他们就可以使用现成的机车车辆。虽然少数厂家生产的机车车辆可以适应不同轨距，但大多数厂家生产的机车车&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 词条编辑日志 ==&lt;br /&gt;
&lt;br /&gt;
* 200818 润悟翻译自 wikipedia https://en.wikipedia.org/wiki/Network_effect&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15455</id>
		<title>邻接表</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15455"/>
		<updated>2020-10-16T05:36:45Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;此词条暂由彩云小译翻译，未经人工整理和审校，带来阅读不便，请见谅。&amp;lt;br&amp;gt;&lt;br /&gt;
本词条由信白初步翻译&amp;lt;br&amp;gt;&lt;br /&gt;
{{short description|Data structure representing a graph}}&lt;br /&gt;
&lt;br /&gt;
[[Image:Simple cycle graph.svg|thumb|120px|This undirected cyclic graph can be described by the three unordered lists {{nowrap|{b, c}}}, {{nowrap|{a, c}}}, {{nowrap|{a, b}}}.]]&lt;br /&gt;
&lt;br /&gt;
This undirected cyclic graph can be described by the three unordered lists }, }, }.&lt;br /&gt;
&lt;br /&gt;
图：这个无向循环图可以用三个无序列表来描述。&lt;br /&gt;
  --[[用户:黄秋莉|黄秋莉]]（[[用户讨论:黄秋莉|讨论]]） 【审校】“无向循环图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 无向循环图&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In [[graph theory]] and [[computer science]], an '''adjacency list''' is a collection of unordered lists used to represent a finite [[Graph (discrete mathematics)|graph]]. Each list describes the set of neighbors of a [[Vertex (graph theory)|vertex]] in the graph. This is one of several commonly used representations of [[Graph (abstract data type)|graphs]] for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
In graph theory and computer science, an adjacency list is a collection of unordered lists used to represent a finite graph. Each list describes the set of neighbors of a vertex in the graph. This is one of several commonly used representations of graphs for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
在图论和计算机科学中，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表 Adjacency List &amp;lt;/font&amp;gt;'''是用来表示有限图的无序表的集合。每个列表描述图中一个顶点的邻居集合。这是计算机程序中常用的几种图形表示法之一。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“图论”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;图论&amp;lt;/font&amp;gt;''';“计算机科学”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;计算机科学&amp;lt;/font&amp;gt;'''；“有限图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;有限图&amp;lt;/font&amp;gt;'''；“每个列表描述图中一个顶点的邻居集合。”改为“每个列表描述图中一个顶点的邻域集”。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementation details==&lt;br /&gt;
实施细则&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{ | class = “ wikitable” align = “ right” style = “ width: 18em; ”&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = “3” | 上图中的图表有这样的邻接表示法:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
靠近 b 和 c&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“靠近 b 和 c”改为a | |毗邻| | b，c&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】b | |毗邻| |a，c&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
靠近 a 和 b&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“靠近 a 和 b”改为c | |毗邻| |a，b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
图的邻接表表示法将图中的每个顶点与其邻接顶点或边的集合关联起来。这个基本思想有许多变体，在如何实现顶点和集合之间的关联，如何实现集合，以及是否包括顶点和边还是只包括顶点作为第一类对象，以及什么类型的对象被用来表示顶点和边的细节上都有所不同。&lt;br /&gt;
&lt;br /&gt;
* An implementation suggested by [[Guido van Rossum]] uses a [[hash table]] to associate each vertex in a graph with an [[array data structure|array]] of adjacent vertices. In this representation, a vertex may be represented by any hashable object. There is no explicit representation of edges as objects.&lt;br /&gt;
&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】* 吉多·范罗苏姆（Guido van Rossum）提出一种实现方法：'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;哈希表&amp;lt;/font&amp;gt;'''，将图中的每个顶点与其相邻顶点采用一种'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;数组&amp;lt;/font&amp;gt;'''数据结构表示。在这种表示法中，顶点可以由任何散列对象表示，而连边没有被表示为对象。&lt;br /&gt;
  | author = [[Guido van Rossum]]&lt;br /&gt;
&lt;br /&gt;
  | author = Guido van Rossum&lt;br /&gt;
&lt;br /&gt;
作者: 吉多·范罗苏姆&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】吉多·范罗苏姆（Guido van Rossum）&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
1998年&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
| title = Python Patterns ーー实现图形&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“| title = Python Patterns ーー实现图形”改为“标题 = Python代码 --图形实现”&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| url =  https://www.python.org/doc/essays/graphs/} &amp;lt;/ref &amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Cormen et al. suggest an implementation in which the vertices are represented by index numbers.&lt;br /&gt;
  &lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】Cormen等建议使用'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;顶点索引号&amp;lt;/font&amp;gt;'''对顶点操作 &lt;br /&gt;
  | title = [[Introduction to Algorithms]], Second Edition&lt;br /&gt;
&lt;br /&gt;
  | title = Introduction to Algorithms, Second Edition&lt;br /&gt;
&lt;br /&gt;
算法导论，第二版&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】|标题 = 《算法导论》，第二版&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
| publisher = MIT Press and McGraw-Hill&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】|出版社 =  MIT Press and McGraw-Hill&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
2001年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
| isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
| pages = 527-529 of section 22.1: representation of graphs | name-list-format = vanc&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |author1 = 托马斯·科尔曼 | author2 = 查尔斯·雷瑟尔森 | author3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  |author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
  |authorlink1 = 托马斯·科尔曼&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
  |authorlink2 = 查尔斯·雷瑟尔森&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |authorlink3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a [[singly linked list]] of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a singly linked list of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
 它们的表示使用一个按顶点数索引的数组，其中每个顶点的数组单元格指向该顶点的相邻顶点的单链表。在这种表示中，单链表的节点可以解释为边对象; 然而，它们并不存储关于每条边的完整信息(它们只存储边的两个端点中的一个) ，在'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;无向图 Undirected Graph &amp;lt;/font&amp;gt;'''中，每条边有两个不同的链表节点(边的两个端点中的每个端点的列表中都有一个)。&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
*The [[object oriented]] incidence list structure suggested by Goodrich and Tamassia has special classes of vertex objects and edge objects. Each vertex object has an instance variable pointing to a collection object that lists the neighboring edge objects. In turn, each edge object points to the two vertex objects at its endpoints.&amp;lt;ref name=&amp;quot;A&amp;quot;&amp;gt;{{cite book&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】Goodrich &amp;amp; Tamassia提出的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;面向对象&amp;lt;/font&amp;gt;'''关联列表结构具有特殊类的顶点对象和边对象。每个顶点对象都有一个实例变量，指向列出相邻边对象的集合对象。反过来，每个边对象都指向其端点处的两个顶点对象。&lt;br /&gt;
&lt;br /&gt;
  | author = [[Michael T. Goodrich]] and [[Roberto Tamassia]]&lt;br /&gt;
&lt;br /&gt;
  | author = Michael T. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
  | 作者: Michael t. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
  | title = 算法设计: 基础、分析和互联网示例&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
  | publisher = 约翰威立&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
  | 2002年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
这个版本的邻接表比直接列出相邻顶点的版本使用更多的内存，但是显示边对象的存在操作可以允许它在存储额外的关于边的信息方面有额外的灵活性。&lt;br /&gt;
&lt;br /&gt;
==Operations==&lt;br /&gt;
操作&lt;br /&gt;
&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex ''v'' is proportional to the [[degree (graph theory)|degree]] of ''v''.&lt;br /&gt;
&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex v is proportional to the degree of v.&lt;br /&gt;
&lt;br /&gt;
邻接表数据结构执行的主要操作是列出给定顶点的邻居列表。使用上面详细说明的任何表示方式，都可以在每个邻居的固定时间内执行。换句话说，列出一个顶点 ''v'' 所有邻居的总时间与 ''v'' 的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;度 Degree &amp;lt;/font&amp;gt;'''成正比。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a [[sequential search]] through the neighbors of this vertex. If the neighbors are represented as a sorted array, [[binary search]] may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a sequential search through the neighbors of this vertex. If the neighbors are represented as a sorted array, binary search may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
也可以使用邻接列表来测试两个指定顶点之间是否存在边，但效率不高。在一个邻接表中，每个顶点的邻域都是不排序的，通过对该顶点的邻域进行顺序搜索，可以按照给定两个顶点的最小阶数按时间比例进行边的存在性测试。如果邻域被表示为一个排序数组，则可以使用二进制搜索，时间与次数的对数成正比。&lt;br /&gt;
&lt;br /&gt;
==Trade-offs==&lt;br /&gt;
权衡&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the [[adjacency matrix]], a [[matrix (mathematics)|matrix]] whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a [[sparse graph]] (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the adjacency matrix, a matrix whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a sparse graph (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
邻接表的主要替代方法是'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接矩阵 Adjacency Matrix &amp;lt;/font&amp;gt;'''，该矩阵的行和列按顶点索引，其单元格包含一个布尔值，该值指示与单元格的行和列对应的顶点之间是否存在边。对于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;稀疏图 Sparse Graph &amp;lt;/font&amp;gt;'''（大多数顶点对不是由边连接的图），邻接表比邻接矩阵（存储为二维数组）更节省空间：邻接表的空间使用与图中的边和顶点的数量成正比，而对于以这种方式存储的邻接矩阵，其空间与顶点数的平方成正比。然而，通过使用由顶点对索引的哈希表而不是数组，可以更有效地存储邻接矩阵的空间，从而匹配邻接表的线性空间使用。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“邻接表”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表&amp;lt;/font&amp;gt;'''；“哈希表”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;哈希表&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
邻接表和邻接矩阵之间的另一个显著区别是它们执行操作的效率。在邻接表中，每个顶点的邻居可以有效地列出，在时间上与顶点的程度成正比。在邻接矩阵中，这个操作需要的时间与图中顶点的数量成正比，而顶点的数量可能明显高于度。另一方面，邻接矩阵允许测试两个顶点是否在固定的时间内彼此相邻; 邻接表支持这一操作的速度较慢。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“邻接表”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表&amp;lt;/font&amp;gt;'''；“邻接矩阵”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接矩阵&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==Data structures==&lt;br /&gt;
数据结构&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only {{math|{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where {{math|{{abs|''V''}}}} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;32CD32&amp;quot;&amp;gt;作为一种数据结构，邻接表的主要替代方法是邻接矩阵。因为邻接矩阵中的每个条目只需要一位，所以它可以用非常紧凑的方式表示图，只占用连续空间的 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}字节，其中}}是图的顶点数。除了避免浪费空间，这种紧凑性鼓励访问局部性。&amp;lt;/font&amp;gt;'''For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
--该句空间占用怎么翻译&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】删除英文“For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.”。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】因为邻接矩阵中的每个条目只占一个比特(bit) ，所以它可以用非常紧凑的方式表示，只占用相邻空间的&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}}字节，其中}}是图的顶点数。除了避免占用空间外，这种紧凑性还支持局部引用。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“其中}}是图的顶点数”中的“}}”不清楚是什么&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about {{math|1=2&amp;amp;middot;(32/8){{abs|''E''}} = 8{{abs|''E''}}}} bytes of space, where {{math|{{abs|''E''}}}} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about  = 8}} bytes of space, where }} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
然而，对于一个稀疏的图，邻接表只需要较少的空间，因为它不浪费任何空间来表示边不存在。在32位计算机上使用一个简单的数组实现，一个无向图的邻接表需要大约 = 8}字节的空间，其中}是图的边数。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“其中}是图的边数”中的“}”不清楚是什么&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most {{math|({{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-{{abs|''V''}})/2 ≈ ''V''&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let {{math|1=''d'' = {{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then, {{math|8{{abs|''E''}} &amp;gt; {{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when {{math|{{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when {{math|''d'' &amp;gt; 1/64}}. Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-)/2 ≈ V&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then,  &amp;gt; &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when . Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
注意到一个无向简单图最多可以有 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; -)/2≈ v &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }边，允许循环，我们可以让/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }表示该图的密度。然后，&amp;gt; &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}当/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; &amp;gt; 1/64}时，即邻接表表示比邻接矩阵表示占用更多的空间。因此，图必须足够稀疏，才适合使用邻接表表示。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“无向简单图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;无向简单图&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes {{math|''O''({{abs|''V''}})}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes )}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
除了空间上的权衡，不同的数据结构也有着不同的操作。在邻接表中找到与给定顶点相邻的所有顶点就像读取邻接表一样简单。对于邻接矩阵，必须扫描整行，这需要花费)}的时间。给定的两个顶点之间是否有边可以用邻接矩阵一次确定，并且运行时间与邻接列表中两个顶点的最小度数成正比。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“这需要花费)}的时间”中“)}”不知道是什么内容&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further reading==&lt;br /&gt;
&lt;br /&gt;
* {{cite web&lt;br /&gt;
&lt;br /&gt;
  | author = [[David Eppstein]]&lt;br /&gt;
&lt;br /&gt;
  | author = David Eppstein&lt;br /&gt;
&lt;br /&gt;
作者: David Eppstein&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
1996年&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
161课堂笔记: 图形算法&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
Http://www.ics.uci.edu/~eppstein/161/960201.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
{{commons category|Adjacency list}}&lt;br /&gt;
&lt;br /&gt;
* The [[Boost Graph Library]] implements an efficient [http://www.boost.org/libs/graph adjacency list]&lt;br /&gt;
&lt;br /&gt;
* [http://opendatastructures.org/versions/edition-0.1e/ods-java/12_2_AdjacencyLists_Graph_a.html Open Data Structures, Section 12.2, AdjacencyList: A Graph as a Collection of Lists], [[Pat Morin]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Graph representations}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Graph data structures]]&lt;br /&gt;
&lt;br /&gt;
Category:Graph data structures&lt;br /&gt;
&lt;br /&gt;
类别: 图形数据结构&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;This page was moved from [[wikipedia:en:Adjacency list]]. Its edit history can be viewed at [[邻接矩阵/edithistory]]&amp;lt;/small&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:待整理页面]]&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15454</id>
		<title>邻接表</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15454"/>
		<updated>2020-10-16T05:35:31Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;此词条暂由彩云小译翻译，未经人工整理和审校，带来阅读不便，请见谅。&amp;lt;br&amp;gt;&lt;br /&gt;
本词条由信白初步翻译&amp;lt;br&amp;gt;&lt;br /&gt;
{{short description|Data structure representing a graph}}&lt;br /&gt;
&lt;br /&gt;
[[Image:Simple cycle graph.svg|thumb|120px|This undirected cyclic graph can be described by the three unordered lists {{nowrap|{b, c}}}, {{nowrap|{a, c}}}, {{nowrap|{a, b}}}.]]&lt;br /&gt;
&lt;br /&gt;
This undirected cyclic graph can be described by the three unordered lists }, }, }.&lt;br /&gt;
&lt;br /&gt;
图：这个无向循环图可以用三个无序列表来描述。&lt;br /&gt;
  --[[用户:黄秋莉|黄秋莉]]（[[用户讨论:黄秋莉|讨论]]） 【审校】“无向循环图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 无向循环图&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In [[graph theory]] and [[computer science]], an '''adjacency list''' is a collection of unordered lists used to represent a finite [[Graph (discrete mathematics)|graph]]. Each list describes the set of neighbors of a [[Vertex (graph theory)|vertex]] in the graph. This is one of several commonly used representations of [[Graph (abstract data type)|graphs]] for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
In graph theory and computer science, an adjacency list is a collection of unordered lists used to represent a finite graph. Each list describes the set of neighbors of a vertex in the graph. This is one of several commonly used representations of graphs for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
在图论和计算机科学中，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表 Adjacency List &amp;lt;/font&amp;gt;'''是用来表示有限图的无序表的集合。每个列表描述图中一个顶点的邻居集合。这是计算机程序中常用的几种图形表示法之一。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“图论”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;图论&amp;lt;/font&amp;gt;''';“计算机科学”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;计算机科学&amp;lt;/font&amp;gt;'''；“有限图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;有限图&amp;lt;/font&amp;gt;'''；“每个列表描述图中一个顶点的邻居集合。”改为“每个列表描述图中一个顶点的邻域集”。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementation details==&lt;br /&gt;
实施细则&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{ | class = “ wikitable” align = “ right” style = “ width: 18em; ”&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = “3” | 上图中的图表有这样的邻接表示法:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
靠近 b 和 c&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“靠近 b 和 c”改为a | |毗邻| | b，c&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】b | |毗邻| |a，c&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
靠近 a 和 b&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“靠近 a 和 b”改为c | |毗邻| |a，b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
图的邻接表表示法将图中的每个顶点与其邻接顶点或边的集合关联起来。这个基本思想有许多变体，在如何实现顶点和集合之间的关联，如何实现集合，以及是否包括顶点和边还是只包括顶点作为第一类对象，以及什么类型的对象被用来表示顶点和边的细节上都有所不同。&lt;br /&gt;
&lt;br /&gt;
* An implementation suggested by [[Guido van Rossum]] uses a [[hash table]] to associate each vertex in a graph with an [[array data structure|array]] of adjacent vertices. In this representation, a vertex may be represented by any hashable object. There is no explicit representation of edges as objects.&lt;br /&gt;
&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】* 吉多·范罗苏姆（Guido van Rossum）提出一种实现方法：'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;哈希表&amp;lt;/font&amp;gt;'''，将图中的每个顶点与其相邻顶点采用一种'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;数组&amp;lt;/font&amp;gt;'''数据结构表示。在这种表示法中，顶点可以由任何散列对象表示，而连边没有被表示为对象。&lt;br /&gt;
  | author = [[Guido van Rossum]]&lt;br /&gt;
&lt;br /&gt;
  | author = Guido van Rossum&lt;br /&gt;
&lt;br /&gt;
作者: 吉多·范罗苏姆&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】吉多·范罗苏姆（Guido van Rossum）&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
1998年&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
| title = Python Patterns ーー实现图形&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“| title = Python Patterns ーー实现图形”改为“标题 = Python代码 --图形实现”&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| url =  https://www.python.org/doc/essays/graphs/} &amp;lt;/ref &amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Cormen et al. suggest an implementation in which the vertices are represented by index numbers.&lt;br /&gt;
  &lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】Cormen等建议使用'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;顶点索引号&amp;lt;/font&amp;gt;'''对顶点操作 &lt;br /&gt;
  | title = [[Introduction to Algorithms]], Second Edition&lt;br /&gt;
&lt;br /&gt;
  | title = Introduction to Algorithms, Second Edition&lt;br /&gt;
&lt;br /&gt;
算法导论，第二版&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】|标题 = 《算法导论》，第二版&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
| publisher = MIT Press and McGraw-Hill&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】|出版社 =  MIT Press and McGraw-Hill&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
2001年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
| isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
| pages = 527-529 of section 22.1: representation of graphs | name-list-format = vanc&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |author1 = 托马斯·科尔曼 | author2 = 查尔斯·雷瑟尔森 | author3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  |author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
  |authorlink1 = 托马斯·科尔曼&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
  |authorlink2 = 查尔斯·雷瑟尔森&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |authorlink3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a [[singly linked list]] of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a singly linked list of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
   }}&amp;lt;/ref&amp;gt; 它们的表示使用一个按顶点数索引的数组，其中每个顶点的数组单元格指向该顶点的相邻顶点的单链表。在这种表示中，单链表的节点可以解释为边对象; 然而，它们并不存储关于每条边的完整信息(它们只存储边的两个端点中的一个) ，在'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;无向图 Undirected Graph &amp;lt;/font&amp;gt;'''中，每条边有两个不同的链表节点(边的两个端点中的每个端点的列表中都有一个)。&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
*The [[object oriented]] incidence list structure suggested by Goodrich and Tamassia has special classes of vertex objects and edge objects. Each vertex object has an instance variable pointing to a collection object that lists the neighboring edge objects. In turn, each edge object points to the two vertex objects at its endpoints.&amp;lt;ref name=&amp;quot;A&amp;quot;&amp;gt;{{cite book&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】Goodrich &amp;amp; Tamassia提出的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;面向对象&amp;lt;/font&amp;gt;'''关联列表结构具有特殊类的顶点对象和边对象。每个顶点对象都有一个实例变量，指向列出相邻边对象的集合对象。反过来，每个边对象都指向其端点处的两个顶点对象。&lt;br /&gt;
&lt;br /&gt;
  | author = [[Michael T. Goodrich]] and [[Roberto Tamassia]]&lt;br /&gt;
&lt;br /&gt;
  | author = Michael T. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
  | 作者: Michael t. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
  | title = 算法设计: 基础、分析和互联网示例&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
  | publisher = 约翰威立&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
  | 2002年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
这个版本的邻接表比直接列出相邻顶点的版本使用更多的内存，但是显示边对象的存在操作可以允许它在存储额外的关于边的信息方面有额外的灵活性。&lt;br /&gt;
&lt;br /&gt;
==Operations==&lt;br /&gt;
操作&lt;br /&gt;
&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex ''v'' is proportional to the [[degree (graph theory)|degree]] of ''v''.&lt;br /&gt;
&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex v is proportional to the degree of v.&lt;br /&gt;
&lt;br /&gt;
邻接表数据结构执行的主要操作是列出给定顶点的邻居列表。使用上面详细说明的任何表示方式，都可以在每个邻居的固定时间内执行。换句话说，列出一个顶点 ''v'' 所有邻居的总时间与 ''v'' 的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;度 Degree &amp;lt;/font&amp;gt;'''成正比。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a [[sequential search]] through the neighbors of this vertex. If the neighbors are represented as a sorted array, [[binary search]] may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a sequential search through the neighbors of this vertex. If the neighbors are represented as a sorted array, binary search may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
也可以使用邻接列表来测试两个指定顶点之间是否存在边，但效率不高。在一个邻接表中，每个顶点的邻域都是不排序的，通过对该顶点的邻域进行顺序搜索，可以按照给定两个顶点的最小阶数按时间比例进行边的存在性测试。如果邻域被表示为一个排序数组，则可以使用二进制搜索，时间与次数的对数成正比。&lt;br /&gt;
&lt;br /&gt;
==Trade-offs==&lt;br /&gt;
权衡&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the [[adjacency matrix]], a [[matrix (mathematics)|matrix]] whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a [[sparse graph]] (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the adjacency matrix, a matrix whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a sparse graph (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
邻接表的主要替代方法是'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接矩阵 Adjacency Matrix &amp;lt;/font&amp;gt;'''，该矩阵的行和列按顶点索引，其单元格包含一个布尔值，该值指示与单元格的行和列对应的顶点之间是否存在边。对于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;稀疏图 Sparse Graph &amp;lt;/font&amp;gt;'''（大多数顶点对不是由边连接的图），邻接表比邻接矩阵（存储为二维数组）更节省空间：邻接表的空间使用与图中的边和顶点的数量成正比，而对于以这种方式存储的邻接矩阵，其空间与顶点数的平方成正比。然而，通过使用由顶点对索引的哈希表而不是数组，可以更有效地存储邻接矩阵的空间，从而匹配邻接表的线性空间使用。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“邻接表”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表&amp;lt;/font&amp;gt;'''；“哈希表”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;哈希表&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
邻接表和邻接矩阵之间的另一个显著区别是它们执行操作的效率。在邻接表中，每个顶点的邻居可以有效地列出，在时间上与顶点的程度成正比。在邻接矩阵中，这个操作需要的时间与图中顶点的数量成正比，而顶点的数量可能明显高于度。另一方面，邻接矩阵允许测试两个顶点是否在固定的时间内彼此相邻; 邻接表支持这一操作的速度较慢。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“邻接表”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表&amp;lt;/font&amp;gt;'''；“邻接矩阵”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接矩阵&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==Data structures==&lt;br /&gt;
数据结构&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only {{math|{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where {{math|{{abs|''V''}}}} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;32CD32&amp;quot;&amp;gt;作为一种数据结构，邻接表的主要替代方法是邻接矩阵。因为邻接矩阵中的每个条目只需要一位，所以它可以用非常紧凑的方式表示图，只占用连续空间的 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}字节，其中}}是图的顶点数。除了避免浪费空间，这种紧凑性鼓励访问局部性。&amp;lt;/font&amp;gt;'''For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
--该句空间占用怎么翻译&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】删除英文“For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.”。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】因为邻接矩阵中的每个条目只占一个比特(bit) ，所以它可以用非常紧凑的方式表示，只占用相邻空间的&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}}字节，其中}}是图的顶点数。除了避免占用空间外，这种紧凑性还支持局部引用。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“其中}}是图的顶点数”中的“}}”不清楚是什么&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about {{math|1=2&amp;amp;middot;(32/8){{abs|''E''}} = 8{{abs|''E''}}}} bytes of space, where {{math|{{abs|''E''}}}} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about  = 8}} bytes of space, where }} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
然而，对于一个稀疏的图，邻接表只需要较少的空间，因为它不浪费任何空间来表示边不存在。在32位计算机上使用一个简单的数组实现，一个无向图的邻接表需要大约 = 8}字节的空间，其中}是图的边数。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“其中}是图的边数”中的“}”不清楚是什么&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most {{math|({{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-{{abs|''V''}})/2 ≈ ''V''&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let {{math|1=''d'' = {{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then, {{math|8{{abs|''E''}} &amp;gt; {{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when {{math|{{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when {{math|''d'' &amp;gt; 1/64}}. Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-)/2 ≈ V&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then,  &amp;gt; &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when . Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
注意到一个无向简单图最多可以有 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; -)/2≈ v &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }边，允许循环，我们可以让/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }表示该图的密度。然后，&amp;gt; &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}当/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; &amp;gt; 1/64}时，即邻接表表示比邻接矩阵表示占用更多的空间。因此，图必须足够稀疏，才适合使用邻接表表示。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“无向简单图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;无向简单图&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes {{math|''O''({{abs|''V''}})}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes )}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
除了空间上的权衡，不同的数据结构也有着不同的操作。在邻接表中找到与给定顶点相邻的所有顶点就像读取邻接表一样简单。对于邻接矩阵，必须扫描整行，这需要花费)}的时间。给定的两个顶点之间是否有边可以用邻接矩阵一次确定，并且运行时间与邻接列表中两个顶点的最小度数成正比。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“这需要花费)}的时间”中“)}”不知道是什么内容&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further reading==&lt;br /&gt;
&lt;br /&gt;
* {{cite web&lt;br /&gt;
&lt;br /&gt;
  | author = [[David Eppstein]]&lt;br /&gt;
&lt;br /&gt;
  | author = David Eppstein&lt;br /&gt;
&lt;br /&gt;
作者: David Eppstein&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
1996年&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
161课堂笔记: 图形算法&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
Http://www.ics.uci.edu/~eppstein/161/960201.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
{{commons category|Adjacency list}}&lt;br /&gt;
&lt;br /&gt;
* The [[Boost Graph Library]] implements an efficient [http://www.boost.org/libs/graph adjacency list]&lt;br /&gt;
&lt;br /&gt;
* [http://opendatastructures.org/versions/edition-0.1e/ods-java/12_2_AdjacencyLists_Graph_a.html Open Data Structures, Section 12.2, AdjacencyList: A Graph as a Collection of Lists], [[Pat Morin]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Graph representations}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Graph data structures]]&lt;br /&gt;
&lt;br /&gt;
Category:Graph data structures&lt;br /&gt;
&lt;br /&gt;
类别: 图形数据结构&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;This page was moved from [[wikipedia:en:Adjacency list]]. Its edit history can be viewed at [[邻接矩阵/edithistory]]&amp;lt;/small&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:待整理页面]]&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15447</id>
		<title>邻接表</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15447"/>
		<updated>2020-10-16T04:16:04Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;此词条暂由彩云小译翻译，未经人工整理和审校，带来阅读不便，请见谅。&amp;lt;br&amp;gt;&lt;br /&gt;
本词条由信白初步翻译&amp;lt;br&amp;gt;&lt;br /&gt;
{{short description|Data structure representing a graph}}&lt;br /&gt;
&lt;br /&gt;
[[Image:Simple cycle graph.svg|thumb|120px|This undirected cyclic graph can be described by the three unordered lists {{nowrap|{b, c}}}, {{nowrap|{a, c}}}, {{nowrap|{a, b}}}.]]&lt;br /&gt;
&lt;br /&gt;
This undirected cyclic graph can be described by the three unordered lists }, }, }.&lt;br /&gt;
&lt;br /&gt;
图：这个无向循环图可以用三个无序列表来描述。&lt;br /&gt;
  --[[用户:黄秋莉|黄秋莉]]（[[用户讨论:黄秋莉|讨论]]） 【审校】“无向循环图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 无向循环图&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In [[graph theory]] and [[computer science]], an '''adjacency list''' is a collection of unordered lists used to represent a finite [[Graph (discrete mathematics)|graph]]. Each list describes the set of neighbors of a [[Vertex (graph theory)|vertex]] in the graph. This is one of several commonly used representations of [[Graph (abstract data type)|graphs]] for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
In graph theory and computer science, an adjacency list is a collection of unordered lists used to represent a finite graph. Each list describes the set of neighbors of a vertex in the graph. This is one of several commonly used representations of graphs for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
在图论和计算机科学中，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表 Adjacency List &amp;lt;/font&amp;gt;'''是用来表示有限图的无序表的集合。每个列表描述图中一个顶点的邻居集合。这是计算机程序中常用的几种图形表示法之一。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“图论”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;图论&amp;lt;/font&amp;gt;''';“计算机科学”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;计算机科学&amp;lt;/font&amp;gt;'''；“有限图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;有限图&amp;lt;/font&amp;gt;'''；“每个列表描述图中一个顶点的邻居集合。”改为“每个列表描述图中一个顶点的邻域集”。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementation details==&lt;br /&gt;
实施细则&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{ | class = “ wikitable” align = “ right” style = “ width: 18em; ”&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = “3” | 上图中的图表有这样的邻接表示法:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
靠近 b 和 c&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“靠近 b 和 c”改为a | |毗邻| | b，c&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】b | |毗邻| |a，c&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
靠近 a 和 b&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“靠近 a 和 b”改为c | |毗邻| |a，b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
图的邻接表表示法将图中的每个顶点与其邻接顶点或边的集合关联起来。这个基本思想有许多变体，在如何实现顶点和集合之间的关联，如何实现集合，以及是否包括顶点和边还是只包括顶点作为第一类对象，以及什么类型的对象被用来表示顶点和边的细节上都有所不同。&lt;br /&gt;
&lt;br /&gt;
* An implementation suggested by [[Guido van Rossum]] uses a [[hash table]] to associate each vertex in a graph with an [[array data structure|array]] of adjacent vertices. In this representation, a vertex may be represented by any hashable object. There is no explicit representation of edges as objects.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】* 吉多·范罗苏姆（Guido van Rossum）提出一种实现方法：'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;哈希表&amp;lt;/font&amp;gt;'''，将图中的每个顶点与其相邻顶点采用一种'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;数组&amp;lt;/font&amp;gt;'''数据结构表示。在这种表示法中，顶点可以由任何散列对象表示，而连边没有被表示为对象。&lt;br /&gt;
  | author = [[Guido van Rossum]]&lt;br /&gt;
&lt;br /&gt;
  | author = Guido van Rossum&lt;br /&gt;
&lt;br /&gt;
作者: 吉多·范罗苏姆&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】吉多·范罗苏姆（Guido van Rossum）&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
1998年&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
| title = Python Patterns ーー实现图形&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“| title = Python Patterns ーー实现图形”改为“标题 = Python代码 --图形实现”&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| url =  https://www.python.org/doc/essays/graphs/} &amp;lt;/ref &amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Cormen et al. suggest an implementation in which the vertices are represented by index numbers.&amp;lt;ref&amp;gt;{{cite book&lt;br /&gt;
  &lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】Cormen等建议使用'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;顶点索引号&amp;lt;/font&amp;gt;'''对顶点操作 &lt;br /&gt;
  | title = [[Introduction to Algorithms]], Second Edition&lt;br /&gt;
&lt;br /&gt;
  | title = Introduction to Algorithms, Second Edition&lt;br /&gt;
&lt;br /&gt;
算法导论，第二版&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】|标题 = 《算法导论》，第二版&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
| publisher = MIT Press and McGraw-Hill&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】|出版社 =  MIT Press and McGraw-Hill&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
2001年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
| isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
| pages = 527-529 of section 22.1: representation of graphs | name-list-format = vanc&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |author1 = 托马斯·科尔曼 | author2 = 查尔斯·雷瑟尔森 | author3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  |author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
  |authorlink1 = 托马斯·科尔曼&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
  |authorlink2 = 查尔斯·雷瑟尔森&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |authorlink3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a [[singly linked list]] of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a singly linked list of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
   }}&amp;lt;/ref&amp;gt; 它们的表示使用一个按顶点数索引的数组，其中每个顶点的数组单元格指向该顶点的相邻顶点的单链表。在这种表示中，单链表的节点可以解释为边对象; 然而，它们并不存储关于每条边的完整信息(它们只存储边的两个端点中的一个) ，在'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;无向图 Undirected Graph &amp;lt;/font&amp;gt;'''中，每条边有两个不同的链表节点(边的两个端点中的每个端点的列表中都有一个)。&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
*The [[object oriented]] incidence list structure suggested by Goodrich and Tamassia has special classes of vertex objects and edge objects. Each vertex object has an instance variable pointing to a collection object that lists the neighboring edge objects. In turn, each edge object points to the two vertex objects at its endpoints.&amp;lt;ref name=&amp;quot;A&amp;quot;&amp;gt;{{cite book&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】Goodrich &amp;amp; Tamassia提出的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;面向对象&amp;lt;/font&amp;gt;'''关联列表结构具有特殊类的顶点对象和边对象。每个顶点对象都有一个实例变量，指向列出相邻边对象的集合对象。反过来，每个边对象都指向其端点处的两个顶点对象。&lt;br /&gt;
&lt;br /&gt;
  | author = [[Michael T. Goodrich]] and [[Roberto Tamassia]]&lt;br /&gt;
&lt;br /&gt;
  | author = Michael T. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
  | 作者: Michael t. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
  | title = 算法设计: 基础、分析和互联网示例&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
  | publisher = 约翰威立&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
  | 2002年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
这个版本的邻接表比直接列出相邻顶点的版本使用更多的内存，但是显示边对象的存在操作可以允许它在存储额外的关于边的信息方面有额外的灵活性。&lt;br /&gt;
&lt;br /&gt;
==Operations==&lt;br /&gt;
操作&lt;br /&gt;
&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex ''v'' is proportional to the [[degree (graph theory)|degree]] of ''v''.&lt;br /&gt;
&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex v is proportional to the degree of v.&lt;br /&gt;
&lt;br /&gt;
邻接表数据结构执行的主要操作是列出给定顶点的邻居列表。使用上面详细说明的任何表示方式，都可以在每个邻居的固定时间内执行。换句话说，列出一个顶点 ''v'' 所有邻居的总时间与 ''v'' 的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;度 Degree &amp;lt;/font&amp;gt;'''成正比。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a [[sequential search]] through the neighbors of this vertex. If the neighbors are represented as a sorted array, [[binary search]] may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a sequential search through the neighbors of this vertex. If the neighbors are represented as a sorted array, binary search may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
也可以使用邻接列表来测试两个指定顶点之间是否存在边，但效率不高。在一个邻接表中，每个顶点的邻域都是不排序的，通过对该顶点的邻域进行顺序搜索，可以按照给定两个顶点的最小阶数按时间比例进行边的存在性测试。如果邻域被表示为一个排序数组，则可以使用二进制搜索，时间与次数的对数成正比。&lt;br /&gt;
&lt;br /&gt;
==Trade-offs==&lt;br /&gt;
权衡&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the [[adjacency matrix]], a [[matrix (mathematics)|matrix]] whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a [[sparse graph]] (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the adjacency matrix, a matrix whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a sparse graph (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
邻接表的主要替代方法是'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接矩阵 Adjacency Matrix &amp;lt;/font&amp;gt;'''，该矩阵的行和列按顶点索引，其单元格包含一个布尔值，该值指示与单元格的行和列对应的顶点之间是否存在边。对于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;稀疏图 Sparse Graph &amp;lt;/font&amp;gt;'''（大多数顶点对不是由边连接的图），邻接表比邻接矩阵（存储为二维数组）更节省空间：邻接表的空间使用与图中的边和顶点的数量成正比，而对于以这种方式存储的邻接矩阵，其空间与顶点数的平方成正比。然而，通过使用由顶点对索引的哈希表而不是数组，可以更有效地存储邻接矩阵的空间，从而匹配邻接表的线性空间使用。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“邻接表”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表&amp;lt;/font&amp;gt;'''；“哈希表”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;哈希表&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
邻接表和邻接矩阵之间的另一个显著区别是它们执行操作的效率。在邻接表中，每个顶点的邻居可以有效地列出，在时间上与顶点的程度成正比。在邻接矩阵中，这个操作需要的时间与图中顶点的数量成正比，而顶点的数量可能明显高于度。另一方面，邻接矩阵允许测试两个顶点是否在固定的时间内彼此相邻; 邻接表支持这一操作的速度较慢。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“邻接表”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表&amp;lt;/font&amp;gt;'''；“邻接矩阵”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接矩阵&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==Data structures==&lt;br /&gt;
数据结构&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only {{math|{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where {{math|{{abs|''V''}}}} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;32CD32&amp;quot;&amp;gt;作为一种数据结构，邻接表的主要替代方法是邻接矩阵。因为邻接矩阵中的每个条目只需要一位，所以它可以用非常紧凑的方式表示图，只占用连续空间的 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}字节，其中}}是图的顶点数。除了避免浪费空间，这种紧凑性鼓励访问局部性。&amp;lt;/font&amp;gt;'''For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
--该句空间占用怎么翻译&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】删除英文“For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.”。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】因为邻接矩阵中的每个条目只占一个比特(bit) ，所以它可以用非常紧凑的方式表示，只占用相邻空间的&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}}字节，其中}}是图的顶点数。除了避免占用空间外，这种紧凑性还支持局部引用。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“其中}}是图的顶点数”中的“}}”不清楚是什么&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about {{math|1=2&amp;amp;middot;(32/8){{abs|''E''}} = 8{{abs|''E''}}}} bytes of space, where {{math|{{abs|''E''}}}} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about  = 8}} bytes of space, where }} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
然而，对于一个稀疏的图，邻接表只需要较少的空间，因为它不浪费任何空间来表示边不存在。在32位计算机上使用一个简单的数组实现，一个无向图的邻接表需要大约 = 8}字节的空间，其中}是图的边数。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“其中}是图的边数”中的“}”不清楚是什么&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most {{math|({{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-{{abs|''V''}})/2 ≈ ''V''&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let {{math|1=''d'' = {{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then, {{math|8{{abs|''E''}} &amp;gt; {{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when {{math|{{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when {{math|''d'' &amp;gt; 1/64}}. Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-)/2 ≈ V&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then,  &amp;gt; &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when . Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
注意到一个无向简单图最多可以有 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; -)/2≈ v &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }边，允许循环，我们可以让/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }表示该图的密度。然后，&amp;gt; &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}当/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; &amp;gt; 1/64}时，即邻接表表示比邻接矩阵表示占用更多的空间。因此，图必须足够稀疏，才适合使用邻接表表示。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“无向简单图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;无向简单图&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes {{math|''O''({{abs|''V''}})}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes )}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
除了空间上的权衡，不同的数据结构也有着不同的操作。在邻接表中找到与给定顶点相邻的所有顶点就像读取邻接表一样简单。对于邻接矩阵，必须扫描整行，这需要花费)}的时间。给定的两个顶点之间是否有边可以用邻接矩阵一次确定，并且运行时间与邻接列表中两个顶点的最小度数成正比。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“这需要花费)}的时间”中“)}”不知道是什么内容&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further reading==&lt;br /&gt;
&lt;br /&gt;
* {{cite web&lt;br /&gt;
&lt;br /&gt;
  | author = [[David Eppstein]]&lt;br /&gt;
&lt;br /&gt;
  | author = David Eppstein&lt;br /&gt;
&lt;br /&gt;
作者: David Eppstein&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
1996年&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
161课堂笔记: 图形算法&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
Http://www.ics.uci.edu/~eppstein/161/960201.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
{{commons category|Adjacency list}}&lt;br /&gt;
&lt;br /&gt;
* The [[Boost Graph Library]] implements an efficient [http://www.boost.org/libs/graph adjacency list]&lt;br /&gt;
&lt;br /&gt;
* [http://opendatastructures.org/versions/edition-0.1e/ods-java/12_2_AdjacencyLists_Graph_a.html Open Data Structures, Section 12.2, AdjacencyList: A Graph as a Collection of Lists], [[Pat Morin]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Graph representations}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Graph data structures]]&lt;br /&gt;
&lt;br /&gt;
Category:Graph data structures&lt;br /&gt;
&lt;br /&gt;
类别: 图形数据结构&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;This page was moved from [[wikipedia:en:Adjacency list]]. Its edit history can be viewed at [[邻接矩阵/edithistory]]&amp;lt;/small&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:待整理页面]]&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15446</id>
		<title>邻接表</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15446"/>
		<updated>2020-10-16T04:08:41Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;此词条暂由彩云小译翻译，未经人工整理和审校，带来阅读不便，请见谅。&amp;lt;br&amp;gt;&lt;br /&gt;
本词条由信白初步翻译&amp;lt;br&amp;gt;&lt;br /&gt;
{{short description|Data structure representing a graph}}&lt;br /&gt;
&lt;br /&gt;
[[Image:Simple cycle graph.svg|thumb|120px|This undirected cyclic graph can be described by the three unordered lists {{nowrap|{b, c}}}, {{nowrap|{a, c}}}, {{nowrap|{a, b}}}.]]&lt;br /&gt;
&lt;br /&gt;
This undirected cyclic graph can be described by the three unordered lists }, }, }.&lt;br /&gt;
&lt;br /&gt;
图：这个无向循环图可以用三个无序列表来描述。&lt;br /&gt;
  --[[用户:黄秋莉|黄秋莉]]（[[用户讨论:黄秋莉|讨论]]） 【审校】“无向循环图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 无向循环图&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In [[graph theory]] and [[computer science]], an '''adjacency list''' is a collection of unordered lists used to represent a finite [[Graph (discrete mathematics)|graph]]. Each list describes the set of neighbors of a [[Vertex (graph theory)|vertex]] in the graph. This is one of several commonly used representations of [[Graph (abstract data type)|graphs]] for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
In graph theory and computer science, an adjacency list is a collection of unordered lists used to represent a finite graph. Each list describes the set of neighbors of a vertex in the graph. This is one of several commonly used representations of graphs for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
在图论和计算机科学中，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表 Adjacency List &amp;lt;/font&amp;gt;'''是用来表示有限图的无序表的集合。每个列表描述图中一个顶点的邻居集合。这是计算机程序中常用的几种图形表示法之一。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“图论”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;图论&amp;lt;/font&amp;gt;''';“计算机科学”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;计算机科学&amp;lt;/font&amp;gt;'''；“有限图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;有限图&amp;lt;/font&amp;gt;'''；“每个列表描述图中一个顶点的邻居集合。”改为“每个列表描述图中一个顶点的邻域集”。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementation details==&lt;br /&gt;
实施细则&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{ | class = “ wikitable” align = “ right” style = “ width: 18em; ”&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = “3” | 上图中的图表有这样的邻接表示法:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
靠近 b 和 c&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“靠近 b 和 c”改为a | |毗邻| | b，c&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】b | |毗邻| |a，c&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
靠近 a 和 b&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“靠近 a 和 b”改为c | |毗邻| |a，b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
图的邻接表表示法将图中的每个顶点与其邻接顶点或边的集合关联起来。这个基本思想有许多变体，在如何实现顶点和集合之间的关联，如何实现集合，以及是否包括顶点和边还是只包括顶点作为第一类对象，以及什么类型的对象被用来表示顶点和边的细节上都有所不同。&lt;br /&gt;
&lt;br /&gt;
* An implementation suggested by [[Guido van Rossum]] uses a [[hash table]] to associate each vertex in a graph with an [[array data structure|array]] of adjacent vertices. In this representation, a vertex may be represented by any hashable object. There is no explicit representation of edges as objects.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】* 吉多·范罗苏姆（Guido van Rossum）提出一种实现方法：'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;哈希表&amp;lt;/font&amp;gt;'''，将图中的每个顶点与其相邻顶点采用一种'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;数组&amp;lt;/font&amp;gt;'''数据结构表示。在这种表示法中，顶点可以由任何散列对象表示，而连边没有被表示为对象。&lt;br /&gt;
  | author = [[Guido van Rossum]]&lt;br /&gt;
&lt;br /&gt;
  | author = Guido van Rossum&lt;br /&gt;
&lt;br /&gt;
作者: 吉多·范罗苏姆&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】吉多·范罗苏姆（Guido van Rossum）&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
1998年&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
| title = Python Patterns ーー实现图形&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“| title = Python Patterns ーー实现图形”改为“标题 = Python代码 --图形实现”&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| url =  https://www.python.org/doc/essays/graphs/} &amp;lt;/ref &amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Cormen et al. suggest an implementation in which the vertices are represented by index numbers.&amp;lt;ref&amp;gt;{{cite book&lt;br /&gt;
  &lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】Cormen等建议使用'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;顶点索引号&amp;lt;/font&amp;gt;'''对顶点操作 &lt;br /&gt;
  | title = [[Introduction to Algorithms]], Second Edition&lt;br /&gt;
&lt;br /&gt;
  | title = Introduction to Algorithms, Second Edition&lt;br /&gt;
&lt;br /&gt;
算法导论，第二版&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】|标题 = 《算法导论》，第二版&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
| publisher = MIT Press and McGraw-Hill&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】|出版社 =  MIT Press and McGraw-Hill&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
2001年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
| isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
| pages = 527-529 of section 22.1: representation of graphs | name-list-format = vanc&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |author1 = 托马斯·科尔曼 | author2 = 查尔斯·雷瑟尔森 | author3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  |author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
  |authorlink1 = 托马斯·科尔曼&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
  |authorlink2 = 查尔斯·雷瑟尔森&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |authorlink3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a [[singly linked list]] of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a singly linked list of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
   }}&amp;lt;/ref&amp;gt; 它们的表示使用一个按顶点数索引的数组，其中每个顶点的数组单元格指向该顶点的相邻顶点的单链表。在这种表示中，单链表的节点可以解释为边对象; 然而，它们并不存储关于每条边的完整信息(它们只存储边的两个端点中的一个) ，在'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;无向图 Undirected Graph &amp;lt;/font&amp;gt;'''中，每条边有两个不同的链表节点(边的两个端点中的每个端点的列表中都有一个)。&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
*The [[object oriented]] incidence list structure suggested by Goodrich and Tamassia has special classes of vertex objects and edge objects. Each vertex object has an instance variable pointing to a collection object that lists the neighboring edge objects. In turn, each edge object points to the two vertex objects at its endpoints.&amp;lt;ref name=&amp;quot;A&amp;quot;&amp;gt;{{cite book&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】Goodrich &amp;amp; Tamassia提出的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;面向对象&amp;lt;/font&amp;gt;'''关联列表结构具有特殊类的顶点对象和边对象。每个顶点对象都有一个实例变量，指向列出相邻边对象的集合对象。反过来，每个边对象都指向其端点处的两个顶点对象。&lt;br /&gt;
&lt;br /&gt;
  | author = [[Michael T. Goodrich]] and [[Roberto Tamassia]]&lt;br /&gt;
&lt;br /&gt;
  | author = Michael T. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
  | 作者: Michael t. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
  | title = 算法设计: 基础、分析和互联网示例&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
  | publisher = 约翰威立&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
  | 2002年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
这个版本的邻接表比直接列出相邻顶点的版本使用更多的内存，但是显示边对象的存在操作可以允许它在存储额外的关于边的信息方面有额外的灵活性。&lt;br /&gt;
&lt;br /&gt;
==Operations==&lt;br /&gt;
操作&lt;br /&gt;
&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex ''v'' is proportional to the [[degree (graph theory)|degree]] of ''v''.&lt;br /&gt;
&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex v is proportional to the degree of v.&lt;br /&gt;
&lt;br /&gt;
邻接表数据结构执行的主要操作是列出给定顶点的邻居列表。使用上面详细说明的任何表示方式，都可以在每个邻居的固定时间内执行。换句话说，列出一个顶点 ''v'' 所有邻居的总时间与 ''v'' 的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;度 Degree &amp;lt;/font&amp;gt;'''成正比。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a [[sequential search]] through the neighbors of this vertex. If the neighbors are represented as a sorted array, [[binary search]] may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a sequential search through the neighbors of this vertex. If the neighbors are represented as a sorted array, binary search may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
也可以使用邻接列表来测试两个指定顶点之间是否存在边，但效率不高。在一个邻接表中，每个顶点的邻域都是不排序的，通过对该顶点的邻域进行顺序搜索，可以按照给定两个顶点的最小阶数按时间比例进行边的存在性测试。如果邻域被表示为一个排序数组，则可以使用二进制搜索，时间与次数的对数成正比。&lt;br /&gt;
&lt;br /&gt;
==Trade-offs==&lt;br /&gt;
权衡&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the [[adjacency matrix]], a [[matrix (mathematics)|matrix]] whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a [[sparse graph]] (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the adjacency matrix, a matrix whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a sparse graph (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
邻接表的主要替代方法是'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接矩阵 Adjacency Matrix &amp;lt;/font&amp;gt;'''，该矩阵的行和列按顶点索引，其单元格包含一个布尔值，该值指示与单元格的行和列对应的顶点之间是否存在边。对于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;稀疏图 Sparse Graph &amp;lt;/font&amp;gt;'''（大多数顶点对不是由边连接的图），邻接表比邻接矩阵（存储为二维数组）更节省空间：邻接表的空间使用与图中的边和顶点的数量成正比，而对于以这种方式存储的邻接矩阵，其空间与顶点数的平方成正比。然而，通过使用由顶点对索引的哈希表而不是数组，可以更有效地存储邻接矩阵的空间，从而匹配邻接表的线性空间使用。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“邻接表”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表&amp;lt;/font&amp;gt;'''；“哈希表”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;哈希表&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
邻接表和邻接矩阵之间的另一个显著区别是它们执行操作的效率。在邻接表中，每个顶点的邻居可以有效地列出，在时间上与顶点的程度成正比。在邻接矩阵中，这个操作需要的时间与图中顶点的数量成正比，而顶点的数量可能明显高于度。另一方面，邻接矩阵允许测试两个顶点是否在固定的时间内彼此相邻; 邻接表支持这一操作的速度较慢。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“邻接表”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表&amp;lt;/font&amp;gt;'''；“邻接矩阵”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接矩阵&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==Data structures==&lt;br /&gt;
数据结构&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only {{math|{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where {{math|{{abs|''V''}}}} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;32CD32&amp;quot;&amp;gt;作为一种数据结构，邻接表的主要替代方法是邻接矩阵。因为邻接矩阵中的每个条目只需要一位，所以它可以用非常紧凑的方式表示图，只占用连续空间的 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}字节，其中}}是图的顶点数。除了避免浪费空间，这种紧凑性鼓励访问局部性。&amp;lt;/font&amp;gt;'''For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
--该句空间占用怎么翻译&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】删除英文“For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.”。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】因为邻接矩阵中的每个条目只占一个比特(bit) ，所以它可以用非常紧凑的方式表示，只占用相邻空间的&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}}字节，其中}}是图的顶点数。除了避免占用空间外，这种紧凑性还支持局部引用。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“其中}}是图的顶点数”中的“}}”不清楚是什么&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about {{math|1=2&amp;amp;middot;(32/8){{abs|''E''}} = 8{{abs|''E''}}}} bytes of space, where {{math|{{abs|''E''}}}} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about  = 8}} bytes of space, where }} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
然而，对于一个稀疏的图，邻接表只需要较少的空间，因为它不浪费任何空间来表示边不存在。在32位计算机上使用一个简单的数组实现，一个无向图的邻接表需要大约 = 8}字节的空间，其中}是图的边数。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most {{math|({{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-{{abs|''V''}})/2 ≈ ''V''&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let {{math|1=''d'' = {{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then, {{math|8{{abs|''E''}} &amp;gt; {{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when {{math|{{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when {{math|''d'' &amp;gt; 1/64}}. Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-)/2 ≈ V&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then,  &amp;gt; &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when . Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
注意到一个无向简单图最多可以有 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; -)/2≈ v &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }边，允许循环，我们可以让/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }表示该图的密度。然后，&amp;gt; &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}当/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; &amp;gt; 1/64}时，即邻接表表示比邻接矩阵表示占用更多的空间。因此，图必须足够稀疏，才适合使用邻接表表示。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes {{math|''O''({{abs|''V''}})}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes )}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
除了空间上的权衡，不同的数据结构也有着不同的操作。在邻接表中找到与给定顶点相邻的所有顶点就像读取邻接表一样简单。对于邻接矩阵，必须扫描整行，这需要花费)}的时间。给定的两个顶点之间是否有边可以用邻接矩阵一次确定，并且运行时间与邻接列表中两个顶点的最小度数成正比。&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further reading==&lt;br /&gt;
&lt;br /&gt;
* {{cite web&lt;br /&gt;
&lt;br /&gt;
  | author = [[David Eppstein]]&lt;br /&gt;
&lt;br /&gt;
  | author = David Eppstein&lt;br /&gt;
&lt;br /&gt;
作者: David Eppstein&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
1996年&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
161课堂笔记: 图形算法&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
Http://www.ics.uci.edu/~eppstein/161/960201.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
{{commons category|Adjacency list}}&lt;br /&gt;
&lt;br /&gt;
* The [[Boost Graph Library]] implements an efficient [http://www.boost.org/libs/graph adjacency list]&lt;br /&gt;
&lt;br /&gt;
* [http://opendatastructures.org/versions/edition-0.1e/ods-java/12_2_AdjacencyLists_Graph_a.html Open Data Structures, Section 12.2, AdjacencyList: A Graph as a Collection of Lists], [[Pat Morin]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Graph representations}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Graph data structures]]&lt;br /&gt;
&lt;br /&gt;
Category:Graph data structures&lt;br /&gt;
&lt;br /&gt;
类别: 图形数据结构&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;This page was moved from [[wikipedia:en:Adjacency list]]. Its edit history can be viewed at [[邻接矩阵/edithistory]]&amp;lt;/small&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:待整理页面]]&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15445</id>
		<title>邻接表</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15445"/>
		<updated>2020-10-16T04:06:56Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;此词条暂由彩云小译翻译，未经人工整理和审校，带来阅读不便，请见谅。&amp;lt;br&amp;gt;&lt;br /&gt;
本词条由信白初步翻译&amp;lt;br&amp;gt;&lt;br /&gt;
{{short description|Data structure representing a graph}}&lt;br /&gt;
&lt;br /&gt;
[[Image:Simple cycle graph.svg|thumb|120px|This undirected cyclic graph can be described by the three unordered lists {{nowrap|{b, c}}}, {{nowrap|{a, c}}}, {{nowrap|{a, b}}}.]]&lt;br /&gt;
&lt;br /&gt;
This undirected cyclic graph can be described by the three unordered lists }, }, }.&lt;br /&gt;
&lt;br /&gt;
图：这个无向循环图可以用三个无序列表来描述。&lt;br /&gt;
  --[[用户:黄秋莉|黄秋莉]]（[[用户讨论:黄秋莉|讨论]]） 【审校】“无向循环图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 无向循环图&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In [[graph theory]] and [[computer science]], an '''adjacency list''' is a collection of unordered lists used to represent a finite [[Graph (discrete mathematics)|graph]]. Each list describes the set of neighbors of a [[Vertex (graph theory)|vertex]] in the graph. This is one of several commonly used representations of [[Graph (abstract data type)|graphs]] for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
In graph theory and computer science, an adjacency list is a collection of unordered lists used to represent a finite graph. Each list describes the set of neighbors of a vertex in the graph. This is one of several commonly used representations of graphs for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
在图论和计算机科学中，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表 Adjacency List &amp;lt;/font&amp;gt;'''是用来表示有限图的无序表的集合。每个列表描述图中一个顶点的邻居集合。这是计算机程序中常用的几种图形表示法之一。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“图论”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;图论&amp;lt;/font&amp;gt;''';“计算机科学”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;计算机科学&amp;lt;/font&amp;gt;'''；“有限图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;有限图&amp;lt;/font&amp;gt;'''；“每个列表描述图中一个顶点的邻居集合。”改为“每个列表描述图中一个顶点的邻域集”。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementation details==&lt;br /&gt;
实施细则&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{ | class = “ wikitable” align = “ right” style = “ width: 18em; ”&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = “3” | 上图中的图表有这样的邻接表示法:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
靠近 b 和 c&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“靠近 b 和 c”改为a | |毗邻| | b，c&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】b | |毗邻| |a，c&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
靠近 a 和 b&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“靠近 a 和 b”改为c | |毗邻| |a，b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
图的邻接表表示法将图中的每个顶点与其邻接顶点或边的集合关联起来。这个基本思想有许多变体，在如何实现顶点和集合之间的关联，如何实现集合，以及是否包括顶点和边还是只包括顶点作为第一类对象，以及什么类型的对象被用来表示顶点和边的细节上都有所不同。&lt;br /&gt;
&lt;br /&gt;
* An implementation suggested by [[Guido van Rossum]] uses a [[hash table]] to associate each vertex in a graph with an [[array data structure|array]] of adjacent vertices. In this representation, a vertex may be represented by any hashable object. There is no explicit representation of edges as objects.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】* 吉多·范罗苏姆（Guido van Rossum）提出一种实现方法：'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;哈希表&amp;lt;/font&amp;gt;'''，将图中的每个顶点与其相邻顶点采用一种'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;数组&amp;lt;/font&amp;gt;'''数据结构表示。在这种表示法中，顶点可以由任何散列对象表示，而连边没有被表示为对象。&lt;br /&gt;
  | author = [[Guido van Rossum]]&lt;br /&gt;
&lt;br /&gt;
  | author = Guido van Rossum&lt;br /&gt;
&lt;br /&gt;
作者: 吉多·范罗苏姆&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】吉多·范罗苏姆（Guido van Rossum）&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
1998年&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
| title = Python Patterns ーー实现图形&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“| title = Python Patterns ーー实现图形”改为“标题 = Python代码 --图形实现”&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| url =  https://www.python.org/doc/essays/graphs/} &amp;lt;/ref &amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Cormen et al. suggest an implementation in which the vertices are represented by index numbers.&amp;lt;ref&amp;gt;{{cite book&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】Cormen等建议使用'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;顶点索引号&amp;lt;/font&amp;gt;'''对顶点操作 &lt;br /&gt;
  | title = [[Introduction to Algorithms]], Second Edition&lt;br /&gt;
&lt;br /&gt;
  | title = Introduction to Algorithms, Second Edition&lt;br /&gt;
&lt;br /&gt;
算法导论，第二版&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】|标题 = 《算法导论》，第二版&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
| publisher = MIT Press and McGraw-Hill&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】|出版社 =  MIT Press and McGraw-Hill&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
2001年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
| isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
| pages = 527-529 of section 22.1: representation of graphs | name-list-format = vanc&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |author1 = 托马斯·科尔曼 | author2 = 查尔斯·雷瑟尔森 | author3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  |author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
  |authorlink1 = 托马斯·科尔曼&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
  |authorlink2 = 查尔斯·雷瑟尔森&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |authorlink3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a [[singly linked list]] of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a singly linked list of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
   }}&amp;lt;/ref&amp;gt; 它们的表示使用一个按顶点数索引的数组，其中每个顶点的数组单元格指向该顶点的相邻顶点的单链表。在这种表示中，单链表的节点可以解释为边对象; 然而，它们并不存储关于每条边的完整信息(它们只存储边的两个端点中的一个) ，在'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;无向图 Undirected Graph &amp;lt;/font&amp;gt;'''中，每条边有两个不同的链表节点(边的两个端点中的每个端点的列表中都有一个)。&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
*The [[object oriented]] incidence list structure suggested by Goodrich and Tamassia has special classes of vertex objects and edge objects. Each vertex object has an instance variable pointing to a collection object that lists the neighboring edge objects. In turn, each edge object points to the two vertex objects at its endpoints.&amp;lt;ref name=&amp;quot;A&amp;quot;&amp;gt;{{cite book&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】Goodrich &amp;amp; Tamassia提出的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;面向对象&amp;lt;/font&amp;gt;'''关联列表结构具有特殊类的顶点对象和边对象。每个顶点对象都有一个实例变量，指向列出相邻边对象的集合对象。反过来，每个边对象都指向其端点处的两个顶点对象。&lt;br /&gt;
&lt;br /&gt;
  | author = [[Michael T. Goodrich]] and [[Roberto Tamassia]]&lt;br /&gt;
&lt;br /&gt;
  | author = Michael T. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
  | 作者: Michael t. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
  | title = 算法设计: 基础、分析和互联网示例&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
  | publisher = 约翰威立&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
  | 2002年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
这个版本的邻接表比直接列出相邻顶点的版本使用更多的内存，但是显示边对象的存在操作可以允许它在存储额外的关于边的信息方面有额外的灵活性。&lt;br /&gt;
&lt;br /&gt;
==Operations==&lt;br /&gt;
操作&lt;br /&gt;
&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex ''v'' is proportional to the [[degree (graph theory)|degree]] of ''v''.&lt;br /&gt;
&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex v is proportional to the degree of v.&lt;br /&gt;
&lt;br /&gt;
邻接表数据结构执行的主要操作是列出给定顶点的邻居列表。使用上面详细说明的任何表示方式，都可以在每个邻居的固定时间内执行。换句话说，列出一个顶点 ''v'' 所有邻居的总时间与 ''v'' 的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;度 Degree &amp;lt;/font&amp;gt;'''成正比。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a [[sequential search]] through the neighbors of this vertex. If the neighbors are represented as a sorted array, [[binary search]] may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a sequential search through the neighbors of this vertex. If the neighbors are represented as a sorted array, binary search may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
也可以使用邻接列表来测试两个指定顶点之间是否存在边，但效率不高。在一个邻接表中，每个顶点的邻域都是不排序的，通过对该顶点的邻域进行顺序搜索，可以按照给定两个顶点的最小阶数按时间比例进行边的存在性测试。如果邻域被表示为一个排序数组，则可以使用二进制搜索，时间与次数的对数成正比。&lt;br /&gt;
&lt;br /&gt;
==Trade-offs==&lt;br /&gt;
权衡&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the [[adjacency matrix]], a [[matrix (mathematics)|matrix]] whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a [[sparse graph]] (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the adjacency matrix, a matrix whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a sparse graph (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
邻接表的主要替代方法是'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接矩阵 Adjacency Matrix &amp;lt;/font&amp;gt;'''，该矩阵的行和列按顶点索引，其单元格包含一个布尔值，该值指示与单元格的行和列对应的顶点之间是否存在边。对于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;稀疏图 Sparse Graph &amp;lt;/font&amp;gt;'''（大多数顶点对不是由边连接的图），邻接表比邻接矩阵（存储为二维数组）更节省空间：邻接表的空间使用与图中的边和顶点的数量成正比，而对于以这种方式存储的邻接矩阵，其空间与顶点数的平方成正比。然而，通过使用由顶点对索引的哈希表而不是数组，可以更有效地存储邻接矩阵的空间，从而匹配邻接表的线性空间使用。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“邻接表”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表&amp;lt;/font&amp;gt;'''；“哈希表”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;哈希表&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
邻接表和邻接矩阵之间的另一个显著区别是它们执行操作的效率。在邻接表中，每个顶点的邻居可以有效地列出，在时间上与顶点的程度成正比。在邻接矩阵中，这个操作需要的时间与图中顶点的数量成正比，而顶点的数量可能明显高于度。另一方面，邻接矩阵允许测试两个顶点是否在固定的时间内彼此相邻; 邻接表支持这一操作的速度较慢。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“邻接表”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表&amp;lt;/font&amp;gt;'''；“邻接矩阵”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接矩阵&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==Data structures==&lt;br /&gt;
数据结构&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only {{math|{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where {{math|{{abs|''V''}}}} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;32CD32&amp;quot;&amp;gt;作为一种数据结构，邻接表的主要替代方法是邻接矩阵。因为邻接矩阵中的每个条目只需要一位，所以它可以用非常紧凑的方式表示图，只占用连续空间的 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}字节，其中}}是图的顶点数。除了避免浪费空间，这种紧凑性鼓励访问局部性。&amp;lt;/font&amp;gt;'''For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
--该句空间占用怎么翻译&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】删除英文“For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.”。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】因为邻接矩阵中的每个条目只占一个比特(bit) ，所以它可以用非常紧凑的方式表示，只占用相邻空间的&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}}字节，其中}}是图的顶点数。除了避免占用空间外，这种紧凑性还支持局部引用。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“其中}}是图的顶点数”中的“}}”不清楚是什么&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about {{math|1=2&amp;amp;middot;(32/8){{abs|''E''}} = 8{{abs|''E''}}}} bytes of space, where {{math|{{abs|''E''}}}} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about  = 8}} bytes of space, where }} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
然而，对于一个稀疏的图，邻接表只需要较少的空间，因为它不浪费任何空间来表示边不存在。在32位计算机上使用一个简单的数组实现，一个无向图的邻接表需要大约 = 8}字节的空间，其中}是图的边数。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most {{math|({{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-{{abs|''V''}})/2 ≈ ''V''&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let {{math|1=''d'' = {{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then, {{math|8{{abs|''E''}} &amp;gt; {{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when {{math|{{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when {{math|''d'' &amp;gt; 1/64}}. Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-)/2 ≈ V&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then,  &amp;gt; &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when . Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
注意到一个无向简单图最多可以有 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; -)/2≈ v &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }边，允许循环，我们可以让/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }表示该图的密度。然后，&amp;gt; &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}当/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; &amp;gt; 1/64}时，即邻接表表示比邻接矩阵表示占用更多的空间。因此，图必须足够稀疏，才适合使用邻接表表示。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes {{math|''O''({{abs|''V''}})}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes )}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
除了空间上的权衡，不同的数据结构也有着不同的操作。在邻接表中找到与给定顶点相邻的所有顶点就像读取邻接表一样简单。对于邻接矩阵，必须扫描整行，这需要花费)}的时间。给定的两个顶点之间是否有边可以用邻接矩阵一次确定，并且运行时间与邻接列表中两个顶点的最小度数成正比。&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further reading==&lt;br /&gt;
&lt;br /&gt;
* {{cite web&lt;br /&gt;
&lt;br /&gt;
  | author = [[David Eppstein]]&lt;br /&gt;
&lt;br /&gt;
  | author = David Eppstein&lt;br /&gt;
&lt;br /&gt;
作者: David Eppstein&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
1996年&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
161课堂笔记: 图形算法&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
Http://www.ics.uci.edu/~eppstein/161/960201.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
{{commons category|Adjacency list}}&lt;br /&gt;
&lt;br /&gt;
* The [[Boost Graph Library]] implements an efficient [http://www.boost.org/libs/graph adjacency list]&lt;br /&gt;
&lt;br /&gt;
* [http://opendatastructures.org/versions/edition-0.1e/ods-java/12_2_AdjacencyLists_Graph_a.html Open Data Structures, Section 12.2, AdjacencyList: A Graph as a Collection of Lists], [[Pat Morin]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Graph representations}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Graph data structures]]&lt;br /&gt;
&lt;br /&gt;
Category:Graph data structures&lt;br /&gt;
&lt;br /&gt;
类别: 图形数据结构&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;This page was moved from [[wikipedia:en:Adjacency list]]. Its edit history can be viewed at [[邻接矩阵/edithistory]]&amp;lt;/small&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:待整理页面]]&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15444</id>
		<title>邻接表</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15444"/>
		<updated>2020-10-16T04:05:48Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;此词条暂由彩云小译翻译，未经人工整理和审校，带来阅读不便，请见谅。&amp;lt;br&amp;gt;&lt;br /&gt;
本词条由信白初步翻译&amp;lt;br&amp;gt;&lt;br /&gt;
{{short description|Data structure representing a graph}}&lt;br /&gt;
&lt;br /&gt;
[[Image:Simple cycle graph.svg|thumb|120px|This undirected cyclic graph can be described by the three unordered lists {{nowrap|{b, c}}}, {{nowrap|{a, c}}}, {{nowrap|{a, b}}}.]]&lt;br /&gt;
&lt;br /&gt;
This undirected cyclic graph can be described by the three unordered lists }, }, }.&lt;br /&gt;
&lt;br /&gt;
图：这个无向循环图可以用三个无序列表来描述。&lt;br /&gt;
  --[[用户:黄秋莉|黄秋莉]]（[[用户讨论:黄秋莉|讨论]]） 【审校】“无向循环图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 无向循环图&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In [[graph theory]] and [[computer science]], an '''adjacency list''' is a collection of unordered lists used to represent a finite [[Graph (discrete mathematics)|graph]]. Each list describes the set of neighbors of a [[Vertex (graph theory)|vertex]] in the graph. This is one of several commonly used representations of [[Graph (abstract data type)|graphs]] for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
In graph theory and computer science, an adjacency list is a collection of unordered lists used to represent a finite graph. Each list describes the set of neighbors of a vertex in the graph. This is one of several commonly used representations of graphs for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
在图论和计算机科学中，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表 Adjacency List &amp;lt;/font&amp;gt;'''是用来表示有限图的无序表的集合。每个列表描述图中一个顶点的邻居集合。这是计算机程序中常用的几种图形表示法之一。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“图论”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;图论&amp;lt;/font&amp;gt;''';“计算机科学”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;计算机科学&amp;lt;/font&amp;gt;'''；“有限图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;有限图&amp;lt;/font&amp;gt;'''；“每个列表描述图中一个顶点的邻居集合。”改为“每个列表描述图中一个顶点的邻域集”。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementation details==&lt;br /&gt;
实施细则&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{ | class = “ wikitable” align = “ right” style = “ width: 18em; ”&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = “3” | 上图中的图表有这样的邻接表示法:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
靠近 b 和 c&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“靠近 b 和 c”改为a | |毗邻| | b，c&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】b | |毗邻| |a，c&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
靠近 a 和 b&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“靠近 a 和 b”改为c | |毗邻| |a，b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
图的邻接表表示法将图中的每个顶点与其邻接顶点或边的集合关联起来。这个基本思想有许多变体，在如何实现顶点和集合之间的关联，如何实现集合，以及是否包括顶点和边还是只包括顶点作为第一类对象，以及什么类型的对象被用来表示顶点和边的细节上都有所不同。&lt;br /&gt;
&lt;br /&gt;
* An implementation suggested by [[Guido van Rossum]] uses a [[hash table]] to associate each vertex in a graph with an [[array data structure|array]] of adjacent vertices. In this representation, a vertex may be represented by any hashable object. There is no explicit representation of edges as objects.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】* 吉多·范罗苏姆（Guido van Rossum）提出一种实现方法：'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;哈希表&amp;lt;/font&amp;gt;'''，将图中的每个顶点与其相邻顶点采用一种'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;数组&amp;lt;/font&amp;gt;'''数据结构表示。在这种表示法中，顶点可以由任何散列对象表示，而连边没有被表示为对象。&lt;br /&gt;
  | author = [[Guido van Rossum]]&lt;br /&gt;
&lt;br /&gt;
  | author = Guido van Rossum&lt;br /&gt;
&lt;br /&gt;
作者: 吉多·范罗苏姆&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】吉多·范罗苏姆（Guido van Rossum）&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
1998年&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
| title = Python Patterns ーー实现图形&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“| title = Python Patterns ーー实现图形”改为“标题 = Python代码 --图形实现”&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| url =  https://www.python.org/doc/essays/graphs/} &amp;lt;/ref &amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Cormen et al. suggest an implementation in which the vertices are represented by index numbers.&amp;lt;ref&amp;gt;{{cite book&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】Cormen等建议使用'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;顶点索引号&amp;lt;/font&amp;gt;'''对顶点操作 &lt;br /&gt;
  | title = [[Introduction to Algorithms]], Second Edition&lt;br /&gt;
&lt;br /&gt;
  | title = Introduction to Algorithms, Second Edition&lt;br /&gt;
&lt;br /&gt;
算法导论，第二版&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】|标题 = 《算法导论》，第二版&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
| publisher = MIT Press and McGraw-Hill&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】|出版社 =  MIT Press and McGraw-Hill&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
2001年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
| isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
| pages = 527-529 of section 22.1: representation of graphs | name-list-format = vanc&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |author1 = 托马斯·科尔曼 | author2 = 查尔斯·雷瑟尔森 | author3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  |author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
  |authorlink1 = 托马斯·科尔曼&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
  |authorlink2 = 查尔斯·雷瑟尔森&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |authorlink3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a [[singly linked list]] of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a singly linked list of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/ref &amp;gt; 它们的表示使用一个按顶点数索引的数组，其中每个顶点的数组单元格指向该顶点的相邻顶点的单链表。在这种表示中，单链表的节点可以解释为边对象; 然而，它们并不存储关于每条边的完整信息(它们只存储边的两个端点中的一个) ，在'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;无向图 Undirected Graph &amp;lt;/font&amp;gt;'''中，每条边有两个不同的链表节点(边的两个端点中的每个端点的列表中都有一个)。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】删除“} &amp;lt;/ref &amp;gt;”&lt;br /&gt;
&lt;br /&gt;
*The [[object oriented]] incidence list structure suggested by Goodrich and Tamassia has special classes of vertex objects and edge objects. Each vertex object has an instance variable pointing to a collection object that lists the neighboring edge objects. In turn, each edge object points to the two vertex objects at its endpoints.&amp;lt;ref name=&amp;quot;A&amp;quot;&amp;gt;{{cite book&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】Goodrich &amp;amp; Tamassia提出的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;面向对象&amp;lt;/font&amp;gt;'''关联列表结构具有特殊类的顶点对象和边对象。每个顶点对象都有一个实例变量，指向列出相邻边对象的集合对象。反过来，每个边对象都指向其端点处的两个顶点对象。&lt;br /&gt;
&lt;br /&gt;
  | author = [[Michael T. Goodrich]] and [[Roberto Tamassia]]&lt;br /&gt;
&lt;br /&gt;
  | author = Michael T. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
  | 作者: Michael t. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
  | title = 算法设计: 基础、分析和互联网示例&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
  | publisher = 约翰威立&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
  | 2002年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
这个版本的邻接表比直接列出相邻顶点的版本使用更多的内存，但是显示边对象的存在操作可以允许它在存储额外的关于边的信息方面有额外的灵活性。&lt;br /&gt;
&lt;br /&gt;
==Operations==&lt;br /&gt;
操作&lt;br /&gt;
&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex ''v'' is proportional to the [[degree (graph theory)|degree]] of ''v''.&lt;br /&gt;
&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex v is proportional to the degree of v.&lt;br /&gt;
&lt;br /&gt;
邻接表数据结构执行的主要操作是列出给定顶点的邻居列表。使用上面详细说明的任何表示方式，都可以在每个邻居的固定时间内执行。换句话说，列出一个顶点 ''v'' 所有邻居的总时间与 ''v'' 的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;度 Degree &amp;lt;/font&amp;gt;'''成正比。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a [[sequential search]] through the neighbors of this vertex. If the neighbors are represented as a sorted array, [[binary search]] may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a sequential search through the neighbors of this vertex. If the neighbors are represented as a sorted array, binary search may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
也可以使用邻接列表来测试两个指定顶点之间是否存在边，但效率不高。在一个邻接表中，每个顶点的邻域都是不排序的，通过对该顶点的邻域进行顺序搜索，可以按照给定两个顶点的最小阶数按时间比例进行边的存在性测试。如果邻域被表示为一个排序数组，则可以使用二进制搜索，时间与次数的对数成正比。&lt;br /&gt;
&lt;br /&gt;
==Trade-offs==&lt;br /&gt;
权衡&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the [[adjacency matrix]], a [[matrix (mathematics)|matrix]] whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a [[sparse graph]] (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the adjacency matrix, a matrix whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a sparse graph (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
邻接表的主要替代方法是'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接矩阵 Adjacency Matrix &amp;lt;/font&amp;gt;'''，该矩阵的行和列按顶点索引，其单元格包含一个布尔值，该值指示与单元格的行和列对应的顶点之间是否存在边。对于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;稀疏图 Sparse Graph &amp;lt;/font&amp;gt;'''（大多数顶点对不是由边连接的图），邻接表比邻接矩阵（存储为二维数组）更节省空间：邻接表的空间使用与图中的边和顶点的数量成正比，而对于以这种方式存储的邻接矩阵，其空间与顶点数的平方成正比。然而，通过使用由顶点对索引的哈希表而不是数组，可以更有效地存储邻接矩阵的空间，从而匹配邻接表的线性空间使用。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“邻接表”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表&amp;lt;/font&amp;gt;'''；“哈希表”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;哈希表&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
邻接表和邻接矩阵之间的另一个显著区别是它们执行操作的效率。在邻接表中，每个顶点的邻居可以有效地列出，在时间上与顶点的程度成正比。在邻接矩阵中，这个操作需要的时间与图中顶点的数量成正比，而顶点的数量可能明显高于度。另一方面，邻接矩阵允许测试两个顶点是否在固定的时间内彼此相邻; 邻接表支持这一操作的速度较慢。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“邻接表”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表&amp;lt;/font&amp;gt;'''；“邻接矩阵”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接矩阵&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
==Data structures==&lt;br /&gt;
数据结构&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only {{math|{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where {{math|{{abs|''V''}}}} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;32CD32&amp;quot;&amp;gt;作为一种数据结构，邻接表的主要替代方法是邻接矩阵。因为邻接矩阵中的每个条目只需要一位，所以它可以用非常紧凑的方式表示图，只占用连续空间的 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}字节，其中}}是图的顶点数。除了避免浪费空间，这种紧凑性鼓励访问局部性。&amp;lt;/font&amp;gt;'''For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
--该句空间占用怎么翻译&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】删除英文“For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.”。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】因为邻接矩阵中的每个条目只占一个比特(bit) ，所以它可以用非常紧凑的方式表示，只占用相邻空间的&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}}字节，其中}}是图的顶点数。除了避免占用空间外，这种紧凑性还支持局部引用。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“其中}}是图的顶点数”中的“}}”不清楚是什么&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about {{math|1=2&amp;amp;middot;(32/8){{abs|''E''}} = 8{{abs|''E''}}}} bytes of space, where {{math|{{abs|''E''}}}} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about  = 8}} bytes of space, where }} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
然而，对于一个稀疏的图，邻接表只需要较少的空间，因为它不浪费任何空间来表示边不存在。在32位计算机上使用一个简单的数组实现，一个无向图的邻接表需要大约 = 8}字节的空间，其中}是图的边数。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most {{math|({{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-{{abs|''V''}})/2 ≈ ''V''&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let {{math|1=''d'' = {{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then, {{math|8{{abs|''E''}} &amp;gt; {{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when {{math|{{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when {{math|''d'' &amp;gt; 1/64}}. Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-)/2 ≈ V&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then,  &amp;gt; &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when . Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
注意到一个无向简单图最多可以有 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; -)/2≈ v &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }边，允许循环，我们可以让/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }表示该图的密度。然后，&amp;gt; &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}当/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; &amp;gt; 1/64}时，即邻接表表示比邻接矩阵表示占用更多的空间。因此，图必须足够稀疏，才适合使用邻接表表示。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes {{math|''O''({{abs|''V''}})}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes )}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
除了空间上的权衡，不同的数据结构也有着不同的操作。在邻接表中找到与给定顶点相邻的所有顶点就像读取邻接表一样简单。对于邻接矩阵，必须扫描整行，这需要花费)}的时间。给定的两个顶点之间是否有边可以用邻接矩阵一次确定，并且运行时间与邻接列表中两个顶点的最小度数成正比。&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further reading==&lt;br /&gt;
&lt;br /&gt;
* {{cite web&lt;br /&gt;
&lt;br /&gt;
  | author = [[David Eppstein]]&lt;br /&gt;
&lt;br /&gt;
  | author = David Eppstein&lt;br /&gt;
&lt;br /&gt;
作者: David Eppstein&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
1996年&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
161课堂笔记: 图形算法&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
Http://www.ics.uci.edu/~eppstein/161/960201.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
{{commons category|Adjacency list}}&lt;br /&gt;
&lt;br /&gt;
* The [[Boost Graph Library]] implements an efficient [http://www.boost.org/libs/graph adjacency list]&lt;br /&gt;
&lt;br /&gt;
* [http://opendatastructures.org/versions/edition-0.1e/ods-java/12_2_AdjacencyLists_Graph_a.html Open Data Structures, Section 12.2, AdjacencyList: A Graph as a Collection of Lists], [[Pat Morin]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Graph representations}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Graph data structures]]&lt;br /&gt;
&lt;br /&gt;
Category:Graph data structures&lt;br /&gt;
&lt;br /&gt;
类别: 图形数据结构&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;This page was moved from [[wikipedia:en:Adjacency list]]. Its edit history can be viewed at [[邻接矩阵/edithistory]]&amp;lt;/small&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:待整理页面]]&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15443</id>
		<title>邻接表</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15443"/>
		<updated>2020-10-16T03:51:09Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;此词条暂由彩云小译翻译，未经人工整理和审校，带来阅读不便，请见谅。&amp;lt;br&amp;gt;&lt;br /&gt;
本词条由信白初步翻译&amp;lt;br&amp;gt;&lt;br /&gt;
{{short description|Data structure representing a graph}}&lt;br /&gt;
&lt;br /&gt;
[[Image:Simple cycle graph.svg|thumb|120px|This undirected cyclic graph can be described by the three unordered lists {{nowrap|{b, c}}}, {{nowrap|{a, c}}}, {{nowrap|{a, b}}}.]]&lt;br /&gt;
&lt;br /&gt;
This undirected cyclic graph can be described by the three unordered lists }, }, }.&lt;br /&gt;
&lt;br /&gt;
图：这个无向循环图可以用三个无序列表来描述。&lt;br /&gt;
  --[[用户:黄秋莉|黄秋莉]]（[[用户讨论:黄秋莉|讨论]]） 【审校】“无向循环图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 无向循环图&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In [[graph theory]] and [[computer science]], an '''adjacency list''' is a collection of unordered lists used to represent a finite [[Graph (discrete mathematics)|graph]]. Each list describes the set of neighbors of a [[Vertex (graph theory)|vertex]] in the graph. This is one of several commonly used representations of [[Graph (abstract data type)|graphs]] for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
In graph theory and computer science, an adjacency list is a collection of unordered lists used to represent a finite graph. Each list describes the set of neighbors of a vertex in the graph. This is one of several commonly used representations of graphs for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
在图论和计算机科学中，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表 Adjacency List &amp;lt;/font&amp;gt;'''是用来表示有限图的无序表的集合。每个列表描述图中一个顶点的邻居集合。这是计算机程序中常用的几种图形表示法之一。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“图论”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;图论&amp;lt;/font&amp;gt;''';“计算机科学”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;计算机科学&amp;lt;/font&amp;gt;'''；“有限图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;有限图&amp;lt;/font&amp;gt;'''；“每个列表描述图中一个顶点的邻居集合。”改为“每个列表描述图中一个顶点的邻域集”。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementation details==&lt;br /&gt;
实施细则&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{ | class = “ wikitable” align = “ right” style = “ width: 18em; ”&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = “3” | 上图中的图表有这样的邻接表示法:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
靠近 b 和 c&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“靠近 b 和 c”改为a | |毗邻| | b，c&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】b | |毗邻| |a，c&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
靠近 a 和 b&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“靠近 a 和 b”改为c | |毗邻| |a，b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
图的邻接表表示法将图中的每个顶点与其邻接顶点或边的集合关联起来。这个基本思想有许多变体，在如何实现顶点和集合之间的关联，如何实现集合，以及是否包括顶点和边还是只包括顶点作为第一类对象，以及什么类型的对象被用来表示顶点和边的细节上都有所不同。&lt;br /&gt;
&lt;br /&gt;
* An implementation suggested by [[Guido van Rossum]] uses a [[hash table]] to associate each vertex in a graph with an [[array data structure|array]] of adjacent vertices. In this representation, a vertex may be represented by any hashable object. There is no explicit representation of edges as objects.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】* 吉多·范罗苏姆（Guido van Rossum）提出一种实现方法：'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;哈希表&amp;lt;/font&amp;gt;'''，将图中的每个顶点与其相邻顶点采用一种'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;数组&amp;lt;/font&amp;gt;'''数据结构表示。在这种表示法中，顶点可以由任何散列对象表示，而连边没有被表示为对象。&lt;br /&gt;
  | author = [[Guido van Rossum]]&lt;br /&gt;
&lt;br /&gt;
  | author = Guido van Rossum&lt;br /&gt;
&lt;br /&gt;
作者: 吉多·范罗苏姆&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】吉多·范罗苏姆（Guido van Rossum）&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
1998年&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
| title = Python Patterns ーー实现图形&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“| title = Python Patterns ーー实现图形”改为“标题 = Python代码 --图形实现”&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| url =  https://www.python.org/doc/essays/graphs/} &amp;lt;/ref &amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Cormen et al. suggest an implementation in which the vertices are represented by index numbers.&amp;lt;ref&amp;gt;{{cite book&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】Cormen等建议使用'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;顶点索引号&amp;lt;/font&amp;gt;'''对顶点操作 &lt;br /&gt;
  | title = [[Introduction to Algorithms]], Second Edition&lt;br /&gt;
&lt;br /&gt;
  | title = Introduction to Algorithms, Second Edition&lt;br /&gt;
&lt;br /&gt;
算法导论，第二版&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】|标题 = 《算法导论》，第二版&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
| publisher = MIT Press and McGraw-Hill&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】|出版社 =  MIT Press and McGraw-Hill&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
2001年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
| isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
| pages = 527-529 of section 22.1: representation of graphs | name-list-format = vanc&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |author1 = 托马斯·科尔曼 | author2 = 查尔斯·雷瑟尔森 | author3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  |author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
  |authorlink1 = 托马斯·科尔曼&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
  |authorlink2 = 查尔斯·雷瑟尔森&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |authorlink3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a [[singly linked list]] of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a singly linked list of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/ref &amp;gt; 它们的表示使用一个按顶点数索引的数组，其中每个顶点的数组单元格指向该顶点的相邻顶点的单链表。在这种表示中，单链表的节点可以解释为边对象; 然而，它们并不存储关于每条边的完整信息(它们只存储边的两个端点中的一个) ，在'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;无向图 Undirected Graph &amp;lt;/font&amp;gt;'''中，每条边有两个不同的链表节点(边的两个端点中的每个端点的列表中都有一个)。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】删除“} &amp;lt;/ref &amp;gt;”&lt;br /&gt;
&lt;br /&gt;
*The [[object oriented]] incidence list structure suggested by Goodrich and Tamassia has special classes of vertex objects and edge objects. Each vertex object has an instance variable pointing to a collection object that lists the neighboring edge objects. In turn, each edge object points to the two vertex objects at its endpoints.&amp;lt;ref name=&amp;quot;A&amp;quot;&amp;gt;{{cite book&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】Goodrich &amp;amp; Tamassia提出的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;面向对象&amp;lt;/font&amp;gt;'''关联列表结构具有特殊类的顶点对象和边对象。每个顶点对象都有一个实例变量，指向列出相邻边对象的集合对象。反过来，每个边对象都指向其端点处的两个顶点对象。&lt;br /&gt;
&lt;br /&gt;
  | author = [[Michael T. Goodrich]] and [[Roberto Tamassia]]&lt;br /&gt;
&lt;br /&gt;
  | author = Michael T. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
  | 作者: Michael t. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
  | title = 算法设计: 基础、分析和互联网示例&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
  | publisher = 约翰威立&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
  | 2002年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
  | 这个版本的邻接表比直接列出相邻顶点的版本使用更多的内存，但是显示边对象的存在操作可以允许它在存储额外的关于边的信息方面有额外的灵活性。&lt;br /&gt;
&lt;br /&gt;
==Operations==&lt;br /&gt;
操作&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex ''v'' is proportional to the [[degree (graph theory)|degree]] of ''v''.&lt;br /&gt;
&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex v is proportional to the degree of v.&lt;br /&gt;
&lt;br /&gt;
邻接表数据结构执行的主要操作是列出给定顶点的邻居列表。使用上面详细说明的任何表示方式，都可以在每个邻居的固定时间内执行。换句话说，列出一个顶点 ''v'' 所有邻居的总时间与 ''v'' 的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;度 Degree &amp;lt;/font&amp;gt;'''成正比。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a [[sequential search]] through the neighbors of this vertex. If the neighbors are represented as a sorted array, [[binary search]] may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a sequential search through the neighbors of this vertex. If the neighbors are represented as a sorted array, binary search may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
也可以使用邻接列表来测试两个指定顶点之间是否存在边，但效率不高。在一个邻接表中，每个顶点的邻域都是不排序的，通过对该顶点的邻域进行顺序搜索，可以按照给定两个顶点的最小阶数按时间比例进行边的存在性测试。如果邻域被表示为一个排序数组，则可以使用二进制搜索，时间与次数的对数成正比。&lt;br /&gt;
&lt;br /&gt;
==Trade-offs==&lt;br /&gt;
权衡&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the [[adjacency matrix]], a [[matrix (mathematics)|matrix]] whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a [[sparse graph]] (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the adjacency matrix, a matrix whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a sparse graph (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
邻接表的主要替代方法是'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接矩阵 Adjacency Matrix &amp;lt;/font&amp;gt;'''，该矩阵的行和列按顶点索引，其单元格包含一个布尔值，该值指示与单元格的行和列对应的顶点之间是否存在边。对于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;稀疏图 Sparse Graph &amp;lt;/font&amp;gt;'''（大多数顶点对不是由边连接的图），邻接表比邻接矩阵（存储为二维数组）更节省空间：邻接表的空间使用与图中的边和顶点的数量成正比，而对于以这种方式存储的邻接矩阵，其空间与顶点数的平方成正比。然而，通过使用由顶点对索引的哈希表而不是数组，可以更有效地存储邻接矩阵的空间，从而匹配邻接表的线性空间使用。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
邻接表和邻接矩阵之间的另一个显著区别是它们执行操作的效率。在邻接表中，每个顶点的邻居可以有效地列出，在时间上与顶点的程度成正比。在邻接矩阵中，这个操作需要的时间与图中顶点的数量成正比，而顶点的数量可能明显高于度。另一方面，邻接矩阵允许测试两个顶点是否在固定的时间内彼此相邻; 邻接表支持这一操作的速度较慢。&lt;br /&gt;
&lt;br /&gt;
==Data structures==&lt;br /&gt;
数据结构&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only {{math|{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where {{math|{{abs|''V''}}}} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;32CD32&amp;quot;&amp;gt;作为一种数据结构，邻接表的主要替代方法是邻接矩阵。因为邻接矩阵中的每个条目只需要一位，所以它可以用非常紧凑的方式表示图，只占用连续空间的 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}字节，其中}}是图的顶点数。除了避免浪费空间，这种紧凑性鼓励访问局部性。&amp;lt;/font&amp;gt;'''For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
--该句空间占用怎么翻译&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about {{math|1=2&amp;amp;middot;(32/8){{abs|''E''}} = 8{{abs|''E''}}}} bytes of space, where {{math|{{abs|''E''}}}} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about  = 8}} bytes of space, where }} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
然而，对于一个稀疏的图，邻接表只需要较少的空间，因为它不浪费任何空间来表示边不存在。在32位计算机上使用一个简单的数组实现，一个无向图的邻接表需要大约 = 8}字节的空间，其中}是图的边数。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most {{math|({{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-{{abs|''V''}})/2 ≈ ''V''&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let {{math|1=''d'' = {{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then, {{math|8{{abs|''E''}} &amp;gt; {{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when {{math|{{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when {{math|''d'' &amp;gt; 1/64}}. Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-)/2 ≈ V&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then,  &amp;gt; &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when . Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
注意到一个无向简单图最多可以有 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; -)/2≈ v &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }边，允许循环，我们可以让/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }表示该图的密度。然后，&amp;gt; &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}当/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; &amp;gt; 1/64}时，即邻接表表示比邻接矩阵表示占用更多的空间。因此，图必须足够稀疏，才适合使用邻接表表示。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes {{math|''O''({{abs|''V''}})}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes )}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
除了空间上的权衡，不同的数据结构也有着不同的操作。在邻接表中找到与给定顶点相邻的所有顶点就像读取邻接表一样简单。对于邻接矩阵，必须扫描整行，这需要花费)}的时间。给定的两个顶点之间是否有边可以用邻接矩阵一次确定，并且运行时间与邻接列表中两个顶点的最小度数成正比。&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further reading==&lt;br /&gt;
&lt;br /&gt;
* {{cite web&lt;br /&gt;
&lt;br /&gt;
  | author = [[David Eppstein]]&lt;br /&gt;
&lt;br /&gt;
  | author = David Eppstein&lt;br /&gt;
&lt;br /&gt;
作者: David Eppstein&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
1996年&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
161课堂笔记: 图形算法&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
Http://www.ics.uci.edu/~eppstein/161/960201.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
{{commons category|Adjacency list}}&lt;br /&gt;
&lt;br /&gt;
* The [[Boost Graph Library]] implements an efficient [http://www.boost.org/libs/graph adjacency list]&lt;br /&gt;
&lt;br /&gt;
* [http://opendatastructures.org/versions/edition-0.1e/ods-java/12_2_AdjacencyLists_Graph_a.html Open Data Structures, Section 12.2, AdjacencyList: A Graph as a Collection of Lists], [[Pat Morin]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Graph representations}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Graph data structures]]&lt;br /&gt;
&lt;br /&gt;
Category:Graph data structures&lt;br /&gt;
&lt;br /&gt;
类别: 图形数据结构&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;This page was moved from [[wikipedia:en:Adjacency list]]. Its edit history can be viewed at [[邻接矩阵/edithistory]]&amp;lt;/small&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:待整理页面]]&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15442</id>
		<title>邻接表</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15442"/>
		<updated>2020-10-16T03:38:13Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;此词条暂由彩云小译翻译，未经人工整理和审校，带来阅读不便，请见谅。&amp;lt;br&amp;gt;&lt;br /&gt;
本词条由信白初步翻译&amp;lt;br&amp;gt;&lt;br /&gt;
{{short description|Data structure representing a graph}}&lt;br /&gt;
&lt;br /&gt;
[[Image:Simple cycle graph.svg|thumb|120px|This undirected cyclic graph can be described by the three unordered lists {{nowrap|{b, c}}}, {{nowrap|{a, c}}}, {{nowrap|{a, b}}}.]]&lt;br /&gt;
&lt;br /&gt;
This undirected cyclic graph can be described by the three unordered lists }, }, }.&lt;br /&gt;
&lt;br /&gt;
图：这个无向循环图可以用三个无序列表来描述。&lt;br /&gt;
  --[[用户:黄秋莉|黄秋莉]]（[[用户讨论:黄秋莉|讨论]]） 【审校】“无向循环图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 无向循环图&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In [[graph theory]] and [[computer science]], an '''adjacency list''' is a collection of unordered lists used to represent a finite [[Graph (discrete mathematics)|graph]]. Each list describes the set of neighbors of a [[Vertex (graph theory)|vertex]] in the graph. This is one of several commonly used representations of [[Graph (abstract data type)|graphs]] for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
In graph theory and computer science, an adjacency list is a collection of unordered lists used to represent a finite graph. Each list describes the set of neighbors of a vertex in the graph. This is one of several commonly used representations of graphs for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
在图论和计算机科学中，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表 Adjacency List &amp;lt;/font&amp;gt;'''是用来表示有限图的无序表的集合。每个列表描述图中一个顶点的邻居集合。这是计算机程序中常用的几种图形表示法之一。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“图论”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;图论&amp;lt;/font&amp;gt;''';“计算机科学”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;计算机科学&amp;lt;/font&amp;gt;'''；“有限图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;有限图&amp;lt;/font&amp;gt;'''；“每个列表描述图中一个顶点的邻居集合。”改为“每个列表描述图中一个顶点的邻域集”。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementation details==&lt;br /&gt;
实施细则&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{ | class = “ wikitable” align = “ right” style = “ width: 18em; ”&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = “3” | 上图中的图表有这样的邻接表示法:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
靠近 b 和 c&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“靠近 b 和 c”改为a | |毗邻| | b，c&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】b | |毗邻| |a，c&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
靠近 a 和 b&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“靠近 a 和 b”改为c | |毗邻| |a，b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
图的邻接表表示法将图中的每个顶点与其邻接顶点或边的集合关联起来。这个基本思想有许多变体，在如何实现顶点和集合之间的关联，如何实现集合，以及是否包括顶点和边还是只包括顶点作为第一类对象，以及什么类型的对象被用来表示顶点和边的细节上都有所不同。&lt;br /&gt;
&lt;br /&gt;
* An implementation suggested by [[Guido van Rossum]] uses a [[hash table]] to associate each vertex in a graph with an [[array data structure|array]] of adjacent vertices. In this representation, a vertex may be represented by any hashable object. There is no explicit representation of edges as objects.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】吉多·范罗苏姆（Guido van Rossum）提出一种实现方法：'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;哈希表&amp;lt;/font&amp;gt;'''，将图中的每个顶点与其相邻顶点采用一种'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;数组&amp;lt;/font&amp;gt;'''数据结构表示。在这种表示法中，顶点可以由任何散列对象表示，而连边没有被表示为对象。&lt;br /&gt;
  | author = [[Guido van Rossum]]&lt;br /&gt;
&lt;br /&gt;
  | author = Guido van Rossum&lt;br /&gt;
&lt;br /&gt;
作者: 吉多·范罗苏姆&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】吉多·范罗苏姆（Guido van Rossum）&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
1998年&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
| title = Python Patterns ーー实现图形&lt;br /&gt;
&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| url =  https://www.python.org/doc/essays/graphs/} &amp;lt;/ref &amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Cormen et al. suggest an implementation in which the vertices are represented by index numbers.&amp;lt;ref&amp;gt;{{cite book&lt;br /&gt;
&lt;br /&gt;
  | title = [[Introduction to Algorithms]], Second Edition&lt;br /&gt;
&lt;br /&gt;
  | title = Introduction to Algorithms, Second Edition&lt;br /&gt;
&lt;br /&gt;
算法导论，第二版&lt;br /&gt;
&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
| publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
2001年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
| isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
| pages = 527-529 of section 22.1: representation of graphs | name-list-format = vanc&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
1 = 托马斯·科尔曼 | author2 = 查尔斯·雷瑟尔森 | author3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
1 = 托马斯·科尔曼&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
2 = 查尔斯·雷瑟尔森&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a [[singly linked list]] of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a singly linked list of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/ref &amp;gt; 它们的表示使用一个按顶点数索引的数组，其中每个顶点的数组单元格指向该顶点的相邻顶点的单链表。在这种表示中，单链表的节点可以解释为边对象; 然而，它们并不存储关于每条边的完整信息(它们只存储边的两个端点中的一个) ，在'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;无向图 Undirected Graph &amp;lt;/font&amp;gt;'''中，每条边有两个不同的链表节点(边的两个端点中的每个端点的列表中都有一个)。&lt;br /&gt;
&lt;br /&gt;
*The [[object oriented]] incidence list structure suggested by Goodrich and Tamassia has special classes of vertex objects and edge objects. Each vertex object has an instance variable pointing to a collection object that lists the neighboring edge objects. In turn, each edge object points to the two vertex objects at its endpoints.&amp;lt;ref name=&amp;quot;A&amp;quot;&amp;gt;{{cite book&lt;br /&gt;
&lt;br /&gt;
  | author = [[Michael T. Goodrich]] and [[Roberto Tamassia]]&lt;br /&gt;
&lt;br /&gt;
  | author = Michael T. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
作者: Michael t. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
| title = 算法设计: 基础、分析和互联网示例&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
2012年3月24日 | publisher = 约翰威立&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
2002年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
| isbn = 0-471-38365-1} &amp;lt;/ref &amp;gt; 这个版本的邻接表比直接列出相邻顶点的版本使用更多的内存，但是显示边对象的存在操作可以允许它在存储额外的关于边的信息方面有额外的灵活性。&lt;br /&gt;
&lt;br /&gt;
==Operations==&lt;br /&gt;
操作&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex ''v'' is proportional to the [[degree (graph theory)|degree]] of ''v''.&lt;br /&gt;
&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex v is proportional to the degree of v.&lt;br /&gt;
&lt;br /&gt;
邻接表数据结构执行的主要操作是列出给定顶点的邻居列表。使用上面详细说明的任何表示方式，都可以在每个邻居的固定时间内执行。换句话说，列出一个顶点 ''v'' 所有邻居的总时间与 ''v'' 的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;度 Degree &amp;lt;/font&amp;gt;'''成正比。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a [[sequential search]] through the neighbors of this vertex. If the neighbors are represented as a sorted array, [[binary search]] may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a sequential search through the neighbors of this vertex. If the neighbors are represented as a sorted array, binary search may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
也可以使用邻接列表来测试两个指定顶点之间是否存在边，但效率不高。在一个邻接表中，每个顶点的邻域都是不排序的，通过对该顶点的邻域进行顺序搜索，可以按照给定两个顶点的最小阶数按时间比例进行边的存在性测试。如果邻域被表示为一个排序数组，则可以使用二进制搜索，时间与次数的对数成正比。&lt;br /&gt;
&lt;br /&gt;
==Trade-offs==&lt;br /&gt;
权衡&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the [[adjacency matrix]], a [[matrix (mathematics)|matrix]] whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a [[sparse graph]] (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the adjacency matrix, a matrix whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a sparse graph (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
邻接表的主要替代方法是'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接矩阵 Adjacency Matrix &amp;lt;/font&amp;gt;'''，该矩阵的行和列按顶点索引，其单元格包含一个布尔值，该值指示与单元格的行和列对应的顶点之间是否存在边。对于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;稀疏图 Sparse Graph &amp;lt;/font&amp;gt;'''（大多数顶点对不是由边连接的图），邻接表比邻接矩阵（存储为二维数组）更节省空间：邻接表的空间使用与图中的边和顶点的数量成正比，而对于以这种方式存储的邻接矩阵，其空间与顶点数的平方成正比。然而，通过使用由顶点对索引的哈希表而不是数组，可以更有效地存储邻接矩阵的空间，从而匹配邻接表的线性空间使用。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
邻接表和邻接矩阵之间的另一个显著区别是它们执行操作的效率。在邻接表中，每个顶点的邻居可以有效地列出，在时间上与顶点的程度成正比。在邻接矩阵中，这个操作需要的时间与图中顶点的数量成正比，而顶点的数量可能明显高于度。另一方面，邻接矩阵允许测试两个顶点是否在固定的时间内彼此相邻; 邻接表支持这一操作的速度较慢。&lt;br /&gt;
&lt;br /&gt;
==Data structures==&lt;br /&gt;
数据结构&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only {{math|{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where {{math|{{abs|''V''}}}} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;32CD32&amp;quot;&amp;gt;作为一种数据结构，邻接表的主要替代方法是邻接矩阵。因为邻接矩阵中的每个条目只需要一位，所以它可以用非常紧凑的方式表示图，只占用连续空间的 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}字节，其中}}是图的顶点数。除了避免浪费空间，这种紧凑性鼓励访问局部性。&amp;lt;/font&amp;gt;'''For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
--该句空间占用怎么翻译&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about {{math|1=2&amp;amp;middot;(32/8){{abs|''E''}} = 8{{abs|''E''}}}} bytes of space, where {{math|{{abs|''E''}}}} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about  = 8}} bytes of space, where }} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
然而，对于一个稀疏的图，邻接表只需要较少的空间，因为它不浪费任何空间来表示边不存在。在32位计算机上使用一个简单的数组实现，一个无向图的邻接表需要大约 = 8}字节的空间，其中}是图的边数。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most {{math|({{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-{{abs|''V''}})/2 ≈ ''V''&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let {{math|1=''d'' = {{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then, {{math|8{{abs|''E''}} &amp;gt; {{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when {{math|{{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when {{math|''d'' &amp;gt; 1/64}}. Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-)/2 ≈ V&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then,  &amp;gt; &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when . Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
注意到一个无向简单图最多可以有 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; -)/2≈ v &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }边，允许循环，我们可以让/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }表示该图的密度。然后，&amp;gt; &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}当/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; &amp;gt; 1/64}时，即邻接表表示比邻接矩阵表示占用更多的空间。因此，图必须足够稀疏，才适合使用邻接表表示。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes {{math|''O''({{abs|''V''}})}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes )}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
除了空间上的权衡，不同的数据结构也有着不同的操作。在邻接表中找到与给定顶点相邻的所有顶点就像读取邻接表一样简单。对于邻接矩阵，必须扫描整行，这需要花费)}的时间。给定的两个顶点之间是否有边可以用邻接矩阵一次确定，并且运行时间与邻接列表中两个顶点的最小度数成正比。&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further reading==&lt;br /&gt;
&lt;br /&gt;
* {{cite web&lt;br /&gt;
&lt;br /&gt;
  | author = [[David Eppstein]]&lt;br /&gt;
&lt;br /&gt;
  | author = David Eppstein&lt;br /&gt;
&lt;br /&gt;
作者: David Eppstein&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
1996年&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
161课堂笔记: 图形算法&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
Http://www.ics.uci.edu/~eppstein/161/960201.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
{{commons category|Adjacency list}}&lt;br /&gt;
&lt;br /&gt;
* The [[Boost Graph Library]] implements an efficient [http://www.boost.org/libs/graph adjacency list]&lt;br /&gt;
&lt;br /&gt;
* [http://opendatastructures.org/versions/edition-0.1e/ods-java/12_2_AdjacencyLists_Graph_a.html Open Data Structures, Section 12.2, AdjacencyList: A Graph as a Collection of Lists], [[Pat Morin]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Graph representations}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Graph data structures]]&lt;br /&gt;
&lt;br /&gt;
Category:Graph data structures&lt;br /&gt;
&lt;br /&gt;
类别: 图形数据结构&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;This page was moved from [[wikipedia:en:Adjacency list]]. Its edit history can be viewed at [[邻接矩阵/edithistory]]&amp;lt;/small&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:待整理页面]]&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15441</id>
		<title>邻接表</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15441"/>
		<updated>2020-10-16T03:24:16Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;此词条暂由彩云小译翻译，未经人工整理和审校，带来阅读不便，请见谅。&amp;lt;br&amp;gt;&lt;br /&gt;
本词条由信白初步翻译&amp;lt;br&amp;gt;&lt;br /&gt;
{{short description|Data structure representing a graph}}&lt;br /&gt;
&lt;br /&gt;
[[Image:Simple cycle graph.svg|thumb|120px|This undirected cyclic graph can be described by the three unordered lists {{nowrap|{b, c}}}, {{nowrap|{a, c}}}, {{nowrap|{a, b}}}.]]&lt;br /&gt;
&lt;br /&gt;
This undirected cyclic graph can be described by the three unordered lists }, }, }.&lt;br /&gt;
&lt;br /&gt;
图：这个无向循环图可以用三个无序列表来描述。&lt;br /&gt;
  --[[用户:黄秋莉|黄秋莉]]（[[用户讨论:黄秋莉|讨论]]） 【审校】“无向循环图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 无向循环图&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In [[graph theory]] and [[computer science]], an '''adjacency list''' is a collection of unordered lists used to represent a finite [[Graph (discrete mathematics)|graph]]. Each list describes the set of neighbors of a [[Vertex (graph theory)|vertex]] in the graph. This is one of several commonly used representations of [[Graph (abstract data type)|graphs]] for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
In graph theory and computer science, an adjacency list is a collection of unordered lists used to represent a finite graph. Each list describes the set of neighbors of a vertex in the graph. This is one of several commonly used representations of graphs for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
在图论和计算机科学中，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表 Adjacency List &amp;lt;/font&amp;gt;'''是用来表示有限图的无序表的集合。每个列表描述图中一个顶点的邻居集合。这是计算机程序中常用的几种图形表示法之一。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“图论”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;图论&amp;lt;/font&amp;gt;''';“计算机科学”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;计算机科学&amp;lt;/font&amp;gt;'''；“有限图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;有限图&amp;lt;/font&amp;gt;'''；“每个列表描述图中一个顶点的邻居集合。”改为“每个列表描述图中一个顶点的邻域集”。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementation details==&lt;br /&gt;
实施细则&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{ | class = “ wikitable” align = “ right” style = “ width: 18em; ”&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = “3” | 上图中的图表有这样的邻接表示法:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
靠近 b 和 c&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“靠近 b 和 c”改为a | |毗邻| | b，c&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】b | |毗邻| |a，c&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
靠近 a 和 b&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“靠近 a 和 b”改为c | |毗邻| |a，b&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
图的邻接表表示法将图中的每个顶点与其邻接顶点或边的集合关联起来。这个基本思想有许多变体，在如何实现顶点和集合之间的关联，如何实现集合，以及是否包括顶点和边还是只包括顶点作为第一类对象，以及什么类型的对象被用来表示顶点和边的细节上都有所不同。&lt;br /&gt;
&lt;br /&gt;
* An implementation suggested by [[Guido van Rossum]] uses a [[hash table]] to associate each vertex in a graph with an [[array data structure|array]] of adjacent vertices. In this representation, a vertex may be represented by any hashable object. There is no explicit representation of edges as objects.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
&lt;br /&gt;
  | author = [[Guido van Rossum]]&lt;br /&gt;
&lt;br /&gt;
  | author = Guido van Rossum&lt;br /&gt;
&lt;br /&gt;
作者: 吉多·范罗苏姆&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
1998年&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
| title = Python Patterns ーー实现图形&lt;br /&gt;
&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| url =  https://www.python.org/doc/essays/graphs/} &amp;lt;/ref &amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Cormen et al. suggest an implementation in which the vertices are represented by index numbers.&amp;lt;ref&amp;gt;{{cite book&lt;br /&gt;
&lt;br /&gt;
  | title = [[Introduction to Algorithms]], Second Edition&lt;br /&gt;
&lt;br /&gt;
  | title = Introduction to Algorithms, Second Edition&lt;br /&gt;
&lt;br /&gt;
算法导论，第二版&lt;br /&gt;
&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
| publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
2001年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
| isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
| pages = 527-529 of section 22.1: representation of graphs | name-list-format = vanc&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
1 = 托马斯·科尔曼 | author2 = 查尔斯·雷瑟尔森 | author3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
1 = 托马斯·科尔曼&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
2 = 查尔斯·雷瑟尔森&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a [[singly linked list]] of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a singly linked list of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/ref &amp;gt; 它们的表示使用一个按顶点数索引的数组，其中每个顶点的数组单元格指向该顶点的相邻顶点的单链表。在这种表示中，单链表的节点可以解释为边对象; 然而，它们并不存储关于每条边的完整信息(它们只存储边的两个端点中的一个) ，在'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;无向图 Undirected Graph &amp;lt;/font&amp;gt;'''中，每条边有两个不同的链表节点(边的两个端点中的每个端点的列表中都有一个)。&lt;br /&gt;
&lt;br /&gt;
*The [[object oriented]] incidence list structure suggested by Goodrich and Tamassia has special classes of vertex objects and edge objects. Each vertex object has an instance variable pointing to a collection object that lists the neighboring edge objects. In turn, each edge object points to the two vertex objects at its endpoints.&amp;lt;ref name=&amp;quot;A&amp;quot;&amp;gt;{{cite book&lt;br /&gt;
&lt;br /&gt;
  | author = [[Michael T. Goodrich]] and [[Roberto Tamassia]]&lt;br /&gt;
&lt;br /&gt;
  | author = Michael T. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
作者: Michael t. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
| title = 算法设计: 基础、分析和互联网示例&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
2012年3月24日 | publisher = 约翰威立&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
2002年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
| isbn = 0-471-38365-1} &amp;lt;/ref &amp;gt; 这个版本的邻接表比直接列出相邻顶点的版本使用更多的内存，但是显示边对象的存在操作可以允许它在存储额外的关于边的信息方面有额外的灵活性。&lt;br /&gt;
&lt;br /&gt;
==Operations==&lt;br /&gt;
操作&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex ''v'' is proportional to the [[degree (graph theory)|degree]] of ''v''.&lt;br /&gt;
&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex v is proportional to the degree of v.&lt;br /&gt;
&lt;br /&gt;
邻接表数据结构执行的主要操作是列出给定顶点的邻居列表。使用上面详细说明的任何表示方式，都可以在每个邻居的固定时间内执行。换句话说，列出一个顶点 ''v'' 所有邻居的总时间与 ''v'' 的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;度 Degree &amp;lt;/font&amp;gt;'''成正比。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a [[sequential search]] through the neighbors of this vertex. If the neighbors are represented as a sorted array, [[binary search]] may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a sequential search through the neighbors of this vertex. If the neighbors are represented as a sorted array, binary search may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
也可以使用邻接列表来测试两个指定顶点之间是否存在边，但效率不高。在一个邻接表中，每个顶点的邻域都是不排序的，通过对该顶点的邻域进行顺序搜索，可以按照给定两个顶点的最小阶数按时间比例进行边的存在性测试。如果邻域被表示为一个排序数组，则可以使用二进制搜索，时间与次数的对数成正比。&lt;br /&gt;
&lt;br /&gt;
==Trade-offs==&lt;br /&gt;
权衡&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the [[adjacency matrix]], a [[matrix (mathematics)|matrix]] whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a [[sparse graph]] (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the adjacency matrix, a matrix whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a sparse graph (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
邻接表的主要替代方法是'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接矩阵 Adjacency Matrix &amp;lt;/font&amp;gt;'''，该矩阵的行和列按顶点索引，其单元格包含一个布尔值，该值指示与单元格的行和列对应的顶点之间是否存在边。对于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;稀疏图 Sparse Graph &amp;lt;/font&amp;gt;'''（大多数顶点对不是由边连接的图），邻接表比邻接矩阵（存储为二维数组）更节省空间：邻接表的空间使用与图中的边和顶点的数量成正比，而对于以这种方式存储的邻接矩阵，其空间与顶点数的平方成正比。然而，通过使用由顶点对索引的哈希表而不是数组，可以更有效地存储邻接矩阵的空间，从而匹配邻接表的线性空间使用。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
邻接表和邻接矩阵之间的另一个显著区别是它们执行操作的效率。在邻接表中，每个顶点的邻居可以有效地列出，在时间上与顶点的程度成正比。在邻接矩阵中，这个操作需要的时间与图中顶点的数量成正比，而顶点的数量可能明显高于度。另一方面，邻接矩阵允许测试两个顶点是否在固定的时间内彼此相邻; 邻接表支持这一操作的速度较慢。&lt;br /&gt;
&lt;br /&gt;
==Data structures==&lt;br /&gt;
数据结构&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only {{math|{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where {{math|{{abs|''V''}}}} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;32CD32&amp;quot;&amp;gt;作为一种数据结构，邻接表的主要替代方法是邻接矩阵。因为邻接矩阵中的每个条目只需要一位，所以它可以用非常紧凑的方式表示图，只占用连续空间的 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}字节，其中}}是图的顶点数。除了避免浪费空间，这种紧凑性鼓励访问局部性。&amp;lt;/font&amp;gt;'''For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
--该句空间占用怎么翻译&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about {{math|1=2&amp;amp;middot;(32/8){{abs|''E''}} = 8{{abs|''E''}}}} bytes of space, where {{math|{{abs|''E''}}}} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about  = 8}} bytes of space, where }} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
然而，对于一个稀疏的图，邻接表只需要较少的空间，因为它不浪费任何空间来表示边不存在。在32位计算机上使用一个简单的数组实现，一个无向图的邻接表需要大约 = 8}字节的空间，其中}是图的边数。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most {{math|({{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-{{abs|''V''}})/2 ≈ ''V''&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let {{math|1=''d'' = {{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then, {{math|8{{abs|''E''}} &amp;gt; {{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when {{math|{{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when {{math|''d'' &amp;gt; 1/64}}. Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-)/2 ≈ V&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then,  &amp;gt; &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when . Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
注意到一个无向简单图最多可以有 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; -)/2≈ v &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }边，允许循环，我们可以让/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }表示该图的密度。然后，&amp;gt; &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}当/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; &amp;gt; 1/64}时，即邻接表表示比邻接矩阵表示占用更多的空间。因此，图必须足够稀疏，才适合使用邻接表表示。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes {{math|''O''({{abs|''V''}})}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes )}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
除了空间上的权衡，不同的数据结构也有着不同的操作。在邻接表中找到与给定顶点相邻的所有顶点就像读取邻接表一样简单。对于邻接矩阵，必须扫描整行，这需要花费)}的时间。给定的两个顶点之间是否有边可以用邻接矩阵一次确定，并且运行时间与邻接列表中两个顶点的最小度数成正比。&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further reading==&lt;br /&gt;
&lt;br /&gt;
* {{cite web&lt;br /&gt;
&lt;br /&gt;
  | author = [[David Eppstein]]&lt;br /&gt;
&lt;br /&gt;
  | author = David Eppstein&lt;br /&gt;
&lt;br /&gt;
作者: David Eppstein&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
1996年&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
161课堂笔记: 图形算法&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
Http://www.ics.uci.edu/~eppstein/161/960201.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
{{commons category|Adjacency list}}&lt;br /&gt;
&lt;br /&gt;
* The [[Boost Graph Library]] implements an efficient [http://www.boost.org/libs/graph adjacency list]&lt;br /&gt;
&lt;br /&gt;
* [http://opendatastructures.org/versions/edition-0.1e/ods-java/12_2_AdjacencyLists_Graph_a.html Open Data Structures, Section 12.2, AdjacencyList: A Graph as a Collection of Lists], [[Pat Morin]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Graph representations}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Graph data structures]]&lt;br /&gt;
&lt;br /&gt;
Category:Graph data structures&lt;br /&gt;
&lt;br /&gt;
类别: 图形数据结构&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;This page was moved from [[wikipedia:en:Adjacency list]]. Its edit history can be viewed at [[邻接矩阵/edithistory]]&amp;lt;/small&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:待整理页面]]&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15316</id>
		<title>邻接表</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15316"/>
		<updated>2020-10-15T16:30:00Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;此词条暂由彩云小译翻译，未经人工整理和审校，带来阅读不便，请见谅。&amp;lt;br&amp;gt;&lt;br /&gt;
本词条由信白初步翻译&amp;lt;br&amp;gt;&lt;br /&gt;
{{short description|Data structure representing a graph}}&lt;br /&gt;
&lt;br /&gt;
[[Image:Simple cycle graph.svg|thumb|120px|This undirected cyclic graph can be described by the three unordered lists {{nowrap|{b, c}}}, {{nowrap|{a, c}}}, {{nowrap|{a, b}}}.]]&lt;br /&gt;
&lt;br /&gt;
This undirected cyclic graph can be described by the three unordered lists }, }, }.&lt;br /&gt;
&lt;br /&gt;
图：这个无向循环图可以用三个无序列表来描述。&lt;br /&gt;
  --[[用户:黄秋莉|黄秋莉]]（[[用户讨论:黄秋莉|讨论]]） 【审校】“无向循环图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 无向循环图&amp;lt;/font&amp;gt;'''。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In [[graph theory]] and [[computer science]], an '''adjacency list''' is a collection of unordered lists used to represent a finite [[Graph (discrete mathematics)|graph]]. Each list describes the set of neighbors of a [[Vertex (graph theory)|vertex]] in the graph. This is one of several commonly used representations of [[Graph (abstract data type)|graphs]] for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
In graph theory and computer science, an adjacency list is a collection of unordered lists used to represent a finite graph. Each list describes the set of neighbors of a vertex in the graph. This is one of several commonly used representations of graphs for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
在图论和计算机科学中，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表 Adjacency List &amp;lt;/font&amp;gt;'''是用来表示有限图的无序表的集合。每个列表描述图中一个顶点的邻居集合。这是计算机程序中常用的几种图形表示法之一。&lt;br /&gt;
  --[[用户：黄秋莉|黄秋莉]][[用户讨论：黄秋莉|讨论]]  【审校】“图论”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;图论&amp;lt;/font&amp;gt;''';“计算机科学”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;计算机科学&amp;lt;/font&amp;gt;'''；“有限图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;有限图&amp;lt;/font&amp;gt;'''；“每个列表描述图中一个顶点的邻居集合。”改为“每个列表描述图中一个顶点的邻域集”。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementation details==&lt;br /&gt;
实施细则&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{ | class = “ wikitable” align = “ right” style = “ width: 18em; ”&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = “3” | 上图中的图表有这样的邻接表示法:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
靠近 b 和 c&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
靠近 a 和 c&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
靠近 a 和 b&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
图的邻接表表示法将图中的每个顶点与其邻接顶点或边的集合关联起来。这个基本思想有许多变体，在如何实现顶点和集合之间的关联，如何实现集合，以及是否包括顶点和边还是只包括顶点作为第一类对象，以及什么类型的对象被用来表示顶点和边的细节上都有所不同。&lt;br /&gt;
&lt;br /&gt;
* An implementation suggested by [[Guido van Rossum]] uses a [[hash table]] to associate each vertex in a graph with an [[array data structure|array]] of adjacent vertices. In this representation, a vertex may be represented by any hashable object. There is no explicit representation of edges as objects.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
&lt;br /&gt;
  | author = [[Guido van Rossum]]&lt;br /&gt;
&lt;br /&gt;
  | author = Guido van Rossum&lt;br /&gt;
&lt;br /&gt;
作者: 吉多·范罗苏姆&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
1998年&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
| title = Python Patterns ーー实现图形&lt;br /&gt;
&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| url =  https://www.python.org/doc/essays/graphs/} &amp;lt;/ref &amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Cormen et al. suggest an implementation in which the vertices are represented by index numbers.&amp;lt;ref&amp;gt;{{cite book&lt;br /&gt;
&lt;br /&gt;
  | title = [[Introduction to Algorithms]], Second Edition&lt;br /&gt;
&lt;br /&gt;
  | title = Introduction to Algorithms, Second Edition&lt;br /&gt;
&lt;br /&gt;
算法导论，第二版&lt;br /&gt;
&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
| publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
2001年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
| isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
| pages = 527-529 of section 22.1: representation of graphs | name-list-format = vanc&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
1 = 托马斯·科尔曼 | author2 = 查尔斯·雷瑟尔森 | author3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
1 = 托马斯·科尔曼&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
2 = 查尔斯·雷瑟尔森&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a [[singly linked list]] of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a singly linked list of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/ref &amp;gt; 它们的表示使用一个按顶点数索引的数组，其中每个顶点的数组单元格指向该顶点的相邻顶点的单链表。在这种表示中，单链表的节点可以解释为边对象; 然而，它们并不存储关于每条边的完整信息(它们只存储边的两个端点中的一个) ，在'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;无向图 Undirected Graph &amp;lt;/font&amp;gt;'''中，每条边有两个不同的链表节点(边的两个端点中的每个端点的列表中都有一个)。&lt;br /&gt;
&lt;br /&gt;
*The [[object oriented]] incidence list structure suggested by Goodrich and Tamassia has special classes of vertex objects and edge objects. Each vertex object has an instance variable pointing to a collection object that lists the neighboring edge objects. In turn, each edge object points to the two vertex objects at its endpoints.&amp;lt;ref name=&amp;quot;A&amp;quot;&amp;gt;{{cite book&lt;br /&gt;
&lt;br /&gt;
  | author = [[Michael T. Goodrich]] and [[Roberto Tamassia]]&lt;br /&gt;
&lt;br /&gt;
  | author = Michael T. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
作者: Michael t. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
| title = 算法设计: 基础、分析和互联网示例&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
2012年3月24日 | publisher = 约翰威立&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
2002年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
| isbn = 0-471-38365-1} &amp;lt;/ref &amp;gt; 这个版本的邻接表比直接列出相邻顶点的版本使用更多的内存，但是显示边对象的存在操作可以允许它在存储额外的关于边的信息方面有额外的灵活性。&lt;br /&gt;
&lt;br /&gt;
==Operations==&lt;br /&gt;
操作&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex ''v'' is proportional to the [[degree (graph theory)|degree]] of ''v''.&lt;br /&gt;
&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex v is proportional to the degree of v.&lt;br /&gt;
&lt;br /&gt;
邻接表数据结构执行的主要操作是列出给定顶点的邻居列表。使用上面详细说明的任何表示方式，都可以在每个邻居的固定时间内执行。换句话说，列出一个顶点 ''v'' 所有邻居的总时间与 ''v'' 的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;度 Degree &amp;lt;/font&amp;gt;'''成正比。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a [[sequential search]] through the neighbors of this vertex. If the neighbors are represented as a sorted array, [[binary search]] may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a sequential search through the neighbors of this vertex. If the neighbors are represented as a sorted array, binary search may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
也可以使用邻接列表来测试两个指定顶点之间是否存在边，但效率不高。在一个邻接表中，每个顶点的邻域都是不排序的，通过对该顶点的邻域进行顺序搜索，可以按照给定两个顶点的最小阶数按时间比例进行边的存在性测试。如果邻域被表示为一个排序数组，则可以使用二进制搜索，时间与次数的对数成正比。&lt;br /&gt;
&lt;br /&gt;
==Trade-offs==&lt;br /&gt;
权衡&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the [[adjacency matrix]], a [[matrix (mathematics)|matrix]] whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a [[sparse graph]] (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the adjacency matrix, a matrix whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a sparse graph (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
邻接表的主要替代方法是'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接矩阵 Adjacency Matrix &amp;lt;/font&amp;gt;'''，该矩阵的行和列按顶点索引，其单元格包含一个布尔值，该值指示与单元格的行和列对应的顶点之间是否存在边。对于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;稀疏图 Sparse Graph &amp;lt;/font&amp;gt;'''（大多数顶点对不是由边连接的图），邻接表比邻接矩阵（存储为二维数组）更节省空间：邻接表的空间使用与图中的边和顶点的数量成正比，而对于以这种方式存储的邻接矩阵，其空间与顶点数的平方成正比。然而，通过使用由顶点对索引的哈希表而不是数组，可以更有效地存储邻接矩阵的空间，从而匹配邻接表的线性空间使用。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
邻接表和邻接矩阵之间的另一个显著区别是它们执行操作的效率。在邻接表中，每个顶点的邻居可以有效地列出，在时间上与顶点的程度成正比。在邻接矩阵中，这个操作需要的时间与图中顶点的数量成正比，而顶点的数量可能明显高于度。另一方面，邻接矩阵允许测试两个顶点是否在固定的时间内彼此相邻; 邻接表支持这一操作的速度较慢。&lt;br /&gt;
&lt;br /&gt;
==Data structures==&lt;br /&gt;
数据结构&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only {{math|{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where {{math|{{abs|''V''}}}} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;32CD32&amp;quot;&amp;gt;作为一种数据结构，邻接表的主要替代方法是邻接矩阵。因为邻接矩阵中的每个条目只需要一位，所以它可以用非常紧凑的方式表示图，只占用连续空间的 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}字节，其中}}是图的顶点数。除了避免浪费空间，这种紧凑性鼓励访问局部性。&amp;lt;/font&amp;gt;'''For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
--该句空间占用怎么翻译&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about {{math|1=2&amp;amp;middot;(32/8){{abs|''E''}} = 8{{abs|''E''}}}} bytes of space, where {{math|{{abs|''E''}}}} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about  = 8}} bytes of space, where }} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
然而，对于一个稀疏的图，邻接表只需要较少的空间，因为它不浪费任何空间来表示边不存在。在32位计算机上使用一个简单的数组实现，一个无向图的邻接表需要大约 = 8}字节的空间，其中}是图的边数。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most {{math|({{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-{{abs|''V''}})/2 ≈ ''V''&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let {{math|1=''d'' = {{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then, {{math|8{{abs|''E''}} &amp;gt; {{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when {{math|{{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when {{math|''d'' &amp;gt; 1/64}}. Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-)/2 ≈ V&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then,  &amp;gt; &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when . Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
注意到一个无向简单图最多可以有 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; -)/2≈ v &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }边，允许循环，我们可以让/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }表示该图的密度。然后，&amp;gt; &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}当/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; &amp;gt; 1/64}时，即邻接表表示比邻接矩阵表示占用更多的空间。因此，图必须足够稀疏，才适合使用邻接表表示。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes {{math|''O''({{abs|''V''}})}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes )}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
除了空间上的权衡，不同的数据结构也有着不同的操作。在邻接表中找到与给定顶点相邻的所有顶点就像读取邻接表一样简单。对于邻接矩阵，必须扫描整行，这需要花费)}的时间。给定的两个顶点之间是否有边可以用邻接矩阵一次确定，并且运行时间与邻接列表中两个顶点的最小度数成正比。&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further reading==&lt;br /&gt;
&lt;br /&gt;
* {{cite web&lt;br /&gt;
&lt;br /&gt;
  | author = [[David Eppstein]]&lt;br /&gt;
&lt;br /&gt;
  | author = David Eppstein&lt;br /&gt;
&lt;br /&gt;
作者: David Eppstein&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
1996年&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
161课堂笔记: 图形算法&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
Http://www.ics.uci.edu/~eppstein/161/960201.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
{{commons category|Adjacency list}}&lt;br /&gt;
&lt;br /&gt;
* The [[Boost Graph Library]] implements an efficient [http://www.boost.org/libs/graph adjacency list]&lt;br /&gt;
&lt;br /&gt;
* [http://opendatastructures.org/versions/edition-0.1e/ods-java/12_2_AdjacencyLists_Graph_a.html Open Data Structures, Section 12.2, AdjacencyList: A Graph as a Collection of Lists], [[Pat Morin]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Graph representations}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Graph data structures]]&lt;br /&gt;
&lt;br /&gt;
Category:Graph data structures&lt;br /&gt;
&lt;br /&gt;
类别: 图形数据结构&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;This page was moved from [[wikipedia:en:Adjacency list]]. Its edit history can be viewed at [[邻接矩阵/edithistory]]&amp;lt;/small&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:待整理页面]]&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
	<entry>
		<id>https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15312</id>
		<title>邻接表</title>
		<link rel="alternate" type="text/html" href="https://wiki.swarma.org/index.php?title=%E9%82%BB%E6%8E%A5%E8%A1%A8&amp;diff=15312"/>
		<updated>2020-10-15T16:15:36Z</updated>

		<summary type="html">&lt;p&gt;黄秋莉：&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;此词条暂由彩云小译翻译，未经人工整理和审校，带来阅读不便，请见谅。&amp;lt;br&amp;gt;&lt;br /&gt;
本词条由信白初步翻译&amp;lt;br&amp;gt;&lt;br /&gt;
{{short description|Data structure representing a graph}}&lt;br /&gt;
&lt;br /&gt;
[[Image:Simple cycle graph.svg|thumb|120px|This undirected cyclic graph can be described by the three unordered lists {{nowrap|{b, c}}}, {{nowrap|{a, c}}}, {{nowrap|{a, b}}}.]]&lt;br /&gt;
&lt;br /&gt;
This undirected cyclic graph can be described by the three unordered lists }, }, }.&lt;br /&gt;
&lt;br /&gt;
图：这个无向循环图可以用三个无序列表来描述。&lt;br /&gt;
  --[[用户:黄秋莉|黄秋莉]]（[[用户讨论:黄秋莉|讨论]]） 【审校】“无向循环图”改为'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt; 无向循环图&amp;lt;/font&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In [[graph theory]] and [[computer science]], an '''adjacency list''' is a collection of unordered lists used to represent a finite [[Graph (discrete mathematics)|graph]]. Each list describes the set of neighbors of a [[Vertex (graph theory)|vertex]] in the graph. This is one of several commonly used representations of [[Graph (abstract data type)|graphs]] for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
In graph theory and computer science, an adjacency list is a collection of unordered lists used to represent a finite graph. Each list describes the set of neighbors of a vertex in the graph. This is one of several commonly used representations of graphs for use in computer programs.&lt;br /&gt;
&lt;br /&gt;
在图论和计算机科学中，'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接表 Adjacency List &amp;lt;/font&amp;gt;'''是用来表示有限图的无序表的集合。每个列表描述图中一个顶点的邻居集合。这是计算机程序中常用的几种图形表示法之一。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementation details==&lt;br /&gt;
实施细则&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;width:18em;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{ | class = “ wikitable” align = “ right” style = “ width: 18em; ”&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = &amp;quot;3&amp;quot; | The graph pictured above has this adjacency list representation:&lt;br /&gt;
&lt;br /&gt;
| colspan = “3” | 上图中的图表有这样的邻接表示法:&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
| a || adjacent to || b,c&lt;br /&gt;
&lt;br /&gt;
靠近 b 和 c&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
| b || adjacent to || a,c&lt;br /&gt;
&lt;br /&gt;
靠近 a 和 c&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
| c || adjacent to || a,b&lt;br /&gt;
&lt;br /&gt;
靠近 a 和 b&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
An adjacency list representation for a graph associates each vertex in the graph with the collection of its neighboring vertices or edges. There are many variations of this basic idea, differing in the details of how they implement the association between vertices and collections, in how they implement the collections, in whether they include both vertices and edges or only vertices as first class objects, and in what kinds of objects are used to represent the vertices and edges.&lt;br /&gt;
&lt;br /&gt;
图的邻接表表示法将图中的每个顶点与其邻接顶点或边的集合关联起来。这个基本思想有许多变体，在如何实现顶点和集合之间的关联，如何实现集合，以及是否包括顶点和边还是只包括顶点作为第一类对象，以及什么类型的对象被用来表示顶点和边的细节上都有所不同。&lt;br /&gt;
&lt;br /&gt;
* An implementation suggested by [[Guido van Rossum]] uses a [[hash table]] to associate each vertex in a graph with an [[array data structure|array]] of adjacent vertices. In this representation, a vertex may be represented by any hashable object. There is no explicit representation of edges as objects.&amp;lt;ref&amp;gt;{{cite web&lt;br /&gt;
&lt;br /&gt;
  | author = [[Guido van Rossum]]&lt;br /&gt;
&lt;br /&gt;
  | author = Guido van Rossum&lt;br /&gt;
&lt;br /&gt;
作者: 吉多·范罗苏姆&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
  | year = 1998&lt;br /&gt;
&lt;br /&gt;
1998年&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
  | title = Python Patterns — Implementing Graphs&lt;br /&gt;
&lt;br /&gt;
| title = Python Patterns ーー实现图形&lt;br /&gt;
&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  | url = https://www.python.org/doc/essays/graphs/}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
| url =  https://www.python.org/doc/essays/graphs/} &amp;lt;/ref &amp;gt; &lt;br /&gt;
&lt;br /&gt;
* Cormen et al. suggest an implementation in which the vertices are represented by index numbers.&amp;lt;ref&amp;gt;{{cite book&lt;br /&gt;
&lt;br /&gt;
  | title = [[Introduction to Algorithms]], Second Edition&lt;br /&gt;
&lt;br /&gt;
  | title = Introduction to Algorithms, Second Edition&lt;br /&gt;
&lt;br /&gt;
算法导论，第二版&lt;br /&gt;
&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
  | publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
| publisher = MIT Press and McGraw-Hill&lt;br /&gt;
&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
  | year = 2001&lt;br /&gt;
&lt;br /&gt;
2001年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
| isbn = 0-262-03293-7&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
  | pages = 527–529 of section 22.1: Representations of graphs| name-list-format=vanc&lt;br /&gt;
&lt;br /&gt;
| pages = 527-529 of section 22.1: representation of graphs | name-list-format = vanc&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  |author1 = Thomas H. Cormen|author2 = Charles E. Leiserson| author3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
1 = 托马斯·科尔曼 | author2 = 查尔斯·雷瑟尔森 | author3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | author4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
  | authorlink1 = Thomas H. Cormen&lt;br /&gt;
&lt;br /&gt;
1 = 托马斯·科尔曼&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
  | authorlink2 = Charles E. Leiserson&lt;br /&gt;
&lt;br /&gt;
2 = 查尔斯·雷瑟尔森&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
  | authorlink3 = Ronald L. Rivest&lt;br /&gt;
&lt;br /&gt;
3 = 罗纳德·李维斯特&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  | authorlink4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
4 = Clifford Stein&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a [[singly linked list]] of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
  }}&amp;lt;/ref&amp;gt; Their representation uses an array indexed by vertex number, in which the array cell for each vertex points to a singly linked list of the neighboring vertices of that vertex. In this representation, the nodes of the singly linked list may be interpreted as edge objects; however, they do not store the full information about each edge (they only store one of the two endpoints of the edge) and in undirected graphs there will be two different linked list nodes for each edge (one within the lists for each of the two endpoints of the edge).&lt;br /&gt;
&lt;br /&gt;
} &amp;lt;/ref &amp;gt; 它们的表示使用一个按顶点数索引的数组，其中每个顶点的数组单元格指向该顶点的相邻顶点的单链表。在这种表示中，单链表的节点可以解释为边对象; 然而，它们并不存储关于每条边的完整信息(它们只存储边的两个端点中的一个) ，在'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;无向图 Undirected Graph &amp;lt;/font&amp;gt;'''中，每条边有两个不同的链表节点(边的两个端点中的每个端点的列表中都有一个)。&lt;br /&gt;
&lt;br /&gt;
*The [[object oriented]] incidence list structure suggested by Goodrich and Tamassia has special classes of vertex objects and edge objects. Each vertex object has an instance variable pointing to a collection object that lists the neighboring edge objects. In turn, each edge object points to the two vertex objects at its endpoints.&amp;lt;ref name=&amp;quot;A&amp;quot;&amp;gt;{{cite book&lt;br /&gt;
&lt;br /&gt;
  | author = [[Michael T. Goodrich]] and [[Roberto Tamassia]]&lt;br /&gt;
&lt;br /&gt;
  | author = Michael T. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
作者: Michael t. Goodrich and Roberto Tamassia&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
  | title = Algorithm Design: Foundations, Analysis, and Internet Examples&lt;br /&gt;
&lt;br /&gt;
| title = 算法设计: 基础、分析和互联网示例&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
  | publisher = John Wiley &amp;amp; Sons&lt;br /&gt;
&lt;br /&gt;
2012年3月24日 | publisher = 约翰威立&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
  | year = 2002&lt;br /&gt;
&lt;br /&gt;
2002年&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
  | isbn = 0-471-38365-1}}&amp;lt;/ref&amp;gt; This version of the adjacency list uses more memory than the version in which adjacent vertices are listed directly, but the existence of explicit edge objects allows it extra flexibility in storing additional information about edges.&lt;br /&gt;
&lt;br /&gt;
| isbn = 0-471-38365-1} &amp;lt;/ref &amp;gt; 这个版本的邻接表比直接列出相邻顶点的版本使用更多的内存，但是显示边对象的存在操作可以允许它在存储额外的关于边的信息方面有额外的灵活性。&lt;br /&gt;
&lt;br /&gt;
==Operations==&lt;br /&gt;
操作&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex ''v'' is proportional to the [[degree (graph theory)|degree]] of ''v''.&lt;br /&gt;
&lt;br /&gt;
The main operation performed by the adjacency list data structure is to report a list of the neighbors of a given vertex. Using any of the implementations detailed above, this can be performed in constant time per neighbor. In other words, the total time to report all of the neighbors of a vertex v is proportional to the degree of v.&lt;br /&gt;
&lt;br /&gt;
邻接表数据结构执行的主要操作是列出给定顶点的邻居列表。使用上面详细说明的任何表示方式，都可以在每个邻居的固定时间内执行。换句话说，列出一个顶点 ''v'' 所有邻居的总时间与 ''v'' 的'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;度 Degree &amp;lt;/font&amp;gt;'''成正比。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a [[sequential search]] through the neighbors of this vertex. If the neighbors are represented as a sorted array, [[binary search]] may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
It is also possible, but not as efficient, to use adjacency lists to test whether an edge exists or does not exist between two specified vertices.  In an adjacency list in which the neighbors of each vertex are unsorted, testing for the existence of an edge may be performed in time proportional to the minimum degree of the two given vertices, by using a sequential search through the neighbors of this vertex. If the neighbors are represented as a sorted array, binary search may be used instead, taking time proportional to the logarithm of the degree.&lt;br /&gt;
&lt;br /&gt;
也可以使用邻接列表来测试两个指定顶点之间是否存在边，但效率不高。在一个邻接表中，每个顶点的邻域都是不排序的，通过对该顶点的邻域进行顺序搜索，可以按照给定两个顶点的最小阶数按时间比例进行边的存在性测试。如果邻域被表示为一个排序数组，则可以使用二进制搜索，时间与次数的对数成正比。&lt;br /&gt;
&lt;br /&gt;
==Trade-offs==&lt;br /&gt;
权衡&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the [[adjacency matrix]], a [[matrix (mathematics)|matrix]] whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a [[sparse graph]] (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
The main alternative to the adjacency list is the adjacency matrix, a matrix whose rows and columns are indexed by vertices and whose cells contain a Boolean value that indicates whether an edge is present between the vertices corresponding to the row and column of the cell. For a sparse graph (one in which most pairs of vertices are not connected by edges) an adjacency list is significantly more space-efficient than an adjacency matrix (stored as a two-dimensional array): the space usage of the adjacency list is proportional to the number of edges and vertices in the graph, while for an adjacency matrix stored in this way the space is proportional to the square of the number of vertices. However, it is possible to store adjacency matrices more space-efficiently, matching the linear space usage of an adjacency list, by using a hash table indexed by pairs of vertices rather than an array.&lt;br /&gt;
&lt;br /&gt;
邻接表的主要替代方法是'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;邻接矩阵 Adjacency Matrix &amp;lt;/font&amp;gt;'''，该矩阵的行和列按顶点索引，其单元格包含一个布尔值，该值指示与单元格的行和列对应的顶点之间是否存在边。对于'''&amp;lt;font color=&amp;quot;#ff8000&amp;quot;&amp;gt;稀疏图 Sparse Graph &amp;lt;/font&amp;gt;'''（大多数顶点对不是由边连接的图），邻接表比邻接矩阵（存储为二维数组）更节省空间：邻接表的空间使用与图中的边和顶点的数量成正比，而对于以这种方式存储的邻接矩阵，其空间与顶点数的平方成正比。然而，通过使用由顶点对索引的哈希表而不是数组，可以更有效地存储邻接矩阵的空间，从而匹配邻接表的线性空间使用。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
The other significant difference between adjacency lists and adjacency matrices is in the efficiency of the operations they perform. In an adjacency list, the neighbors of each vertex may be listed efficiently, in time proportional to the degree of the vertex. In an adjacency matrix, this operation takes time proportional to the number of vertices in the graph, which may be significantly higher than the degree. On the other hand, the adjacency matrix allows testing whether two vertices are adjacent to each other in constant time; the adjacency list is slower to support this operation.&lt;br /&gt;
&lt;br /&gt;
邻接表和邻接矩阵之间的另一个显著区别是它们执行操作的效率。在邻接表中，每个顶点的邻居可以有效地列出，在时间上与顶点的程度成正比。在邻接矩阵中，这个操作需要的时间与图中顶点的数量成正比，而顶点的数量可能明显高于度。另一方面，邻接矩阵允许测试两个顶点是否在固定的时间内彼此相邻; 邻接表支持这一操作的速度较慢。&lt;br /&gt;
&lt;br /&gt;
==Data structures==&lt;br /&gt;
数据结构&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only {{math|{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where {{math|{{abs|''V''}}}} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;font color=&amp;quot;32CD32&amp;quot;&amp;gt;作为一种数据结构，邻接表的主要替代方法是邻接矩阵。因为邻接矩阵中的每个条目只需要一位，所以它可以用非常紧凑的方式表示图，只占用连续空间的 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}字节，其中}}是图的顶点数。除了避免浪费空间，这种紧凑性鼓励访问局部性。&amp;lt;/font&amp;gt;'''For use as a data structure, the main alternative to the adjacency list is the adjacency matrix. Because each entry in the adjacency matrix requires only one bit, it can be represented in a very compact way, occupying only &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} bytes of contiguous space, where }} is the number of vertices of the graph. Besides avoiding wasted space, this compactness encourages locality of reference.&lt;br /&gt;
--该句空间占用怎么翻译&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about {{math|1=2&amp;amp;middot;(32/8){{abs|''E''}} = 8{{abs|''E''}}}} bytes of space, where {{math|{{abs|''E''}}}} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
However, for a sparse graph, adjacency lists require less space, because they do not waste any space to represent edges that are not present. Using a naïve array implementation on a 32-bit computer, an adjacency list for an undirected graph requires about  = 8}} bytes of space, where }} is the number of edges of the graph.&lt;br /&gt;
&lt;br /&gt;
然而，对于一个稀疏的图，邻接表只需要较少的空间，因为它不浪费任何空间来表示边不存在。在32位计算机上使用一个简单的数组实现，一个无向图的邻接表需要大约 = 8}字节的空间，其中}是图的边数。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most {{math|({{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-{{abs|''V''}})/2 ≈ ''V''&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let {{math|1=''d'' = {{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then, {{math|8{{abs|''E''}} &amp;gt; {{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when {{math|{{abs|''E''}}/{{abs|''V''}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when {{math|''d'' &amp;gt; 1/64}}. Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
Noting that an undirected simple graph can have at most &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;-)/2 ≈ V&amp;lt;sup&amp;gt; 2&amp;lt;/sup&amp;gt;}} edges, allowing loops, we can let /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}} denote the density of the graph. Then,  &amp;gt; &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/8}} when /&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; &amp;gt; 1/64}}, that is the adjacency list representation occupies more space than the adjacency matrix representation when . Thus a graph must be sparse enough to justify an adjacency list representation.&lt;br /&gt;
&lt;br /&gt;
注意到一个无向简单图最多可以有 &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; -)/2≈ v &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }边，允许循环，我们可以让/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; }表示该图的密度。然后，&amp;gt; &amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt;/8}当/&amp;lt; sup &amp;gt; 2 &amp;lt;/sup &amp;gt; &amp;gt; 1/64}时，即邻接表表示比邻接矩阵表示占用更多的空间。因此，图必须足够稀疏，才适合使用邻接表表示。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes {{math|''O''({{abs|''V''}})}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
Besides the space trade-off, the different data structures also facilitate different operations. Finding all vertices adjacent to a given vertex in an adjacency list is as simple as reading the list. With an adjacency matrix, an entire row must instead be scanned, which takes )}} time. Whether there is an edge between two given vertices can be determined at once with an adjacency matrix, while requiring time proportional to the minimum degree of the two vertices with the adjacency list.&lt;br /&gt;
&lt;br /&gt;
除了空间上的权衡，不同的数据结构也有着不同的操作。在邻接表中找到与给定顶点相邻的所有顶点就像读取邻接表一样简单。对于邻接矩阵，必须扫描整行，这需要花费)}的时间。给定的两个顶点之间是否有边可以用邻接矩阵一次确定，并且运行时间与邻接列表中两个顶点的最小度数成正比。&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Further reading==&lt;br /&gt;
&lt;br /&gt;
* {{cite web&lt;br /&gt;
&lt;br /&gt;
  | author = [[David Eppstein]]&lt;br /&gt;
&lt;br /&gt;
  | author = David Eppstein&lt;br /&gt;
&lt;br /&gt;
作者: David Eppstein&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
  | year = 1996&lt;br /&gt;
&lt;br /&gt;
1996年&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
  | title = ICS 161 Lecture Notes: Graph Algorithms&lt;br /&gt;
&lt;br /&gt;
161课堂笔记: 图形算法&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
  | url = http://www.ics.uci.edu/~eppstein/161/960201.html}}&lt;br /&gt;
&lt;br /&gt;
Http://www.ics.uci.edu/~eppstein/161/960201.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
{{commons category|Adjacency list}}&lt;br /&gt;
&lt;br /&gt;
* The [[Boost Graph Library]] implements an efficient [http://www.boost.org/libs/graph adjacency list]&lt;br /&gt;
&lt;br /&gt;
* [http://opendatastructures.org/versions/edition-0.1e/ods-java/12_2_AdjacencyLists_Graph_a.html Open Data Structures, Section 12.2, AdjacencyList: A Graph as a Collection of Lists], [[Pat Morin]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Graph representations}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Graph data structures]]&lt;br /&gt;
&lt;br /&gt;
Category:Graph data structures&lt;br /&gt;
&lt;br /&gt;
类别: 图形数据结构&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;This page was moved from [[wikipedia:en:Adjacency list]]. Its edit history can be viewed at [[邻接矩阵/edithistory]]&amp;lt;/small&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:待整理页面]]&lt;/div&gt;</summary>
		<author><name>黄秋莉</name></author>
	</entry>
</feed>