拜占庭将军问题
- 格式:docx
- 大小:69.60 KB
- 文档页数:6
拜占庭《士兵法》译注拜占庭《士兵法》译注提要:《士兵法》是拜占庭法律史上一部非常重要的法律文献。
其内容涉及规范中世纪拜占庭帝国军队的纪律以及对士兵和长官违纪的处罚措施。
了解《士兵法》的内容及其与其他拜占庭法律和军事文献的关系,有助于我们研究拜占庭帝国的军队组织和管理、法律沿革,及其对拜占庭文明演进的影响。
自《士兵法》被发现以来,已有多位学者对其内容进行整理和译注。
鉴于文本的条理清晰性与完整性,本译文依照阿什布尔纳所整理的希腊文文本进行�译与注释,希冀可以为国内学者提供一份可参考的中文文本。
关键词:拜占庭法律;士兵法;处罚《军事处罚法》(Πεπ?Σηπαηιωηικ?ν ?πιηιμ?ων),1根据其内容所涉及对象,又被学者们称为《士兵法》(Soldier Law),是中世纪拜占庭帝国时期以希腊文写成的管理军队的一部重要的法律文献。
其主要内容包含整顿军队纪律,对触犯规定的士兵与长官进行处罚的相关措施。
作为一部重要的军事法令,了解和研究该文本的内容和源流,有助于加强对拜占庭军队组织、管理及其对拜占庭文明演进的影响等相关问题的研究。
学者们所发现的《士兵法》文本通常是以附录的形式和其它两部中世纪拜占庭时期的法律文献――《罗得海洋法》(Maritime Code或者Rhodian Sea Law)2和《农业法》(Rural Code 或者Farmer’s Law)3――一起出现在拜占庭伊苏利亚王朝(Isaurian Dynasty)4时期的法典《法律选编》(Ecloga)5的附录中,并与之一起被保存在欧洲的一些古老的图书馆中。
《士兵法》的研究主要包括两个方面:希腊文文本整理和翻译。
《士兵法》的整理始于德国学者林根绍尔(Karl Eduard Zachari? von Lingenthal)。
1865年,他在所编著的《希腊罗马法》(JusGraco-Romanum)第四卷第34章中发布了他的第一个希腊文《士兵法》版本。
专题13.10最短路径(将军饮马)问题(知识梳理与考点分类讲解)第一部分【知识点归纳】【模型一:两定交点型】如图1,直线l和l的异侧两点A.B,在直线l上求作一点P,使PA+PB 最小;图1【模型二:两定一动型】如图2,直线l和l的同侧两点A.B,在直线l上求作一点P,使PA+PB 最小(同侧转化为异侧);图2【模型三:一定两动型】如图3,点P是∠MON内的一点,分别在OM,ON上作点A,B。
使△PAB的周长最小。
图3【模型四:两定两动型】如图4,点P,Q为∠MON内的两点,分别在OM,ON上作点A,B。
使四边形PAQB的周长最小。
图4【模型五:一定两动(垂线段最短)型】如图5,点A是∠MON外的一点,在射线ON上作点P,使PA与点P到射线OM的距离之和最小。
图5【模型六:一定两动,找(作)对称点转化型】如图6,点A是∠MON内的一点,在射线ON 上作点P,使PA与点P到射线OM的距离之和最小。
图6【考点1】两定一动型;【考点2】一定两动(两点之间线段最短)型;【考点3】一定两动(垂线段最短)型;【考点4】两定两动型;【考点5】一定两动(等线段)转化型;.第二部分【题型展示与方法点拨】【考点1】两定一动型;【例1】(23-24八年级上·全国·课后作业)如图,在ABC ∆中,3,4AB AC ==,EF 垂直平分BC ,交AC 于点D ,则ABP 周长的最小值是()A .12B .6C .7D .8【答案】C 【分析】本题主要考查了,轴对称﹣最短路线问题的应用,解此题的关键是找出P 的位置.凡是涉及最短距离的问题,一般要考虑线段的性质定理,结合轴对称变换来解决,根据题意知点B 关于直线EF 的对称点为点C ,故当点P 与点D 重合时,AP BP +的值最小,即可得到ABP 周长最小.解:∵EF 垂直平分BC ,∴点B ,C 关于EF 对称.∴当点P 和点D 重合时,AP BP +的值最小.此时AP BP AC +=,∵3,4AB AC ==,ABP ∴ 周长的最小值是347AP BP AB AB AC ++=+=+=,故选:C .【变式】(23-24八年级上·广东广州·期中)如图,在ABC V 中,1216AB AC ==,,20BC =.将ABC V 沿射线BM 折叠,使点A 与BC 边上的点D 重合,E 为射线BM 上的一个动点,则CDE 周长的最小值.【答案】24【详解】设BM 与AC 的交点为点F ,连接AE ,DF 先根据折叠的性质可得12BD AB ==,DF AF =,DE AE =,BDF BAF ∠=∠,再根据两点之间线段最短可得当点E 与点F 重合时,CDE 周长最小,进而求解即可.解:如图,设BM 与AC 的交点为点F ,连接AE ,DF ,由折叠的性质得:12BD AB ==,DF AF =,DE AE =,BDF BAF ∠=∠,20128CD BC BD ∴=-=-=,CDE ∴ 周长8CD DE CE AE CE =++=++,要使CDE 周长最小,只需AE CE +最小,由两点之间线段最短可知,当点E 与点F 重合时,最小值为AC ,∴CDE 周长为:681624AC +=+=.故答案为:24.【点拨】本题考查了折叠的性质等知识点,熟练掌握折叠的性质是解题关键.【考点2】一定两动(两点之间线段最短)型;【例2】(23-24八年级上·湖北省直辖县级单位·期末)如图,45MON ∠=︒,P 为MON ∠内一点,A 为OM 上一点,B 为ON 上一点,当PAB 的周长取最小值时,APB ∠的度数为()A .45︒B .90︒C .100︒D .135︒【答案】B 【分析】本题主要考查了最短路线问题、四边形的内角和定理、轴对称的性质等知识点,掌握两点之间线段最短的知识画出图形是解题的关键.如图:作P 点关于OM ON 、的对称点A B ''、,连接A B '',此时PAB 的周长最小为A B '',求出A B ''即可.解:如图:作P 点关于OM ON 、的对称点A B ''、,然后连接A B '',∵点A '与点P 关于直线OM 对称,点B '与点P 关于ON 对称,∴A P OM B P ON A A AP B B BP ''''⊥⊥==,,,,∴A APA B BPB ''''∠=∠∠=∠,,∵A P OM B P ON ''⊥⊥,,∴180MON A PB ''∠+∠=︒,∴18045135A PB ''∠=︒-︒=︒,在A B P ''△中,由三角形的内角和定理可知:18013545A B ''∠+∠=︒-︒=︒,∴45A PA BPB ''∠+∠=︒,∴1354590APB ∠=︒-︒=︒.故选:B .【变式】(23-24八年级上·江苏无锡·期中)如图,45AOB ∠=︒,点M N 、分别在射线OA OB 、上,5MN =,15OMN S = ,点P 是直线MN 上的一个动点,点P 关于OA 的对称点为1P ,点P 关于OB 的对称点为2P ,连接1OP 、2OP 、12PP ,当点P 在直线MN 上运动时,则12OPP 面积的最小值是.【考点3】一定两动型(垂线段最短);【例3】(22-23八年级上·湖北武汉·期末)如图,在ABC V 中,3AB =,4BC =,5AC =,AB BC ⊥,点P 、Q 分别是边BC 、AC 上的动点,则AP PQ +的最小值等于()A .4B .245C .5D .275【答案】B 【分析】作A 过于BC 的对称点A ',过点A '作A Q AC '⊥,交AC 于点Q ,交BC 于点P ,根据对称可得:AP PQ A P PQ A Q ''+=+≥,得到当,,A P Q '三点共线时,AP PQ +最小,再根据垂线段最短,得到A Q AC '⊥时,A Q '最小,进行求解即可.解:作A 过于BC 的对称点A ',过点A '作A Q AC '⊥,交AC 于点Q ,交BC 于点P ,【变式】(23-24七年级下·陕西西安·阶段练习)如图,在Rt ABC △中,90ACB ∠=︒,3AC =,4BC =,5AB =,AD 是ABC V 的角平分线,若P Q 、分别是AD 和AC 边上的动点,则PC PQ +的最小值是.AD 是BAC ∠的平分线,1QAD Q AD∴∠=∠在AQD 与1AQ D 中【考点4】两定两动型;【例4】如图,已知24AOB ∠=︒,OP 平分AOB ∠,1OP =,C 在OA 上,D 在OB 上,E 在OP 上.当CP CD DE ++取最小值时,此时PCD ∠的度数为()A .36︒B .48︒C .60︒D .72︒【答案】D 【分析】作点P 关于OA 的对称点P',作点E 关于OB 的对称点'E ,连接'OP 、'PP 、'OE 、'EE 、''P E ,则由轴对称知识可知=''CP CD DE CP CD DE ++++,所以依据垂线段最短知:当''P C D E 、、、在一条直线上,且'''P E OE ⊥时,CP CD DE ++取最小值,根据直角三角形的两锐角互余及三角形外角的性质可以'P C PC =,'E D ED =,'1OP OP ==,=''CP CD DE CP CD DE ++++,'P OE ∠''P C D E 、、、在一条直线上,且''P E ''=9048=42OP E ∠︒-︒︒,'='''=7842CP P OP P OP E ∠∠-∠︒-︒=【答案】44βα-=︒【分析】本题考查轴对称—最短问题、三角形的内角和定理.三角形的外角的性质等知识,解题的关键是灵活运用所学知识解决问题.OQM OQM NQP '∴∠=∠=∠,OPQ ∠∴1(180)2PQN AOB α∠=︒-=∠+∠44βα∴-=︒,故答案为:44βα-=︒.【考点5】一定两动(等线段)转化型;【例5】(20-21八年级上·湖北鄂州·期中)如图,AD 为等腰△ABC 的高,其中∠ACB =50°,AC =BC ,E ,F 分别为线段AD ,AC 上的动点,且AE =CF ,当BF +CE 取最小值时,∠AFB 的度数为()A .75°B .90°C .95°D .105°【答案】C 【分析】先构造△CFH 全等于△AEC ,得到△BCH 是等腰直角三角形且FH=CE ,当FH+BF 最小时,即是BF+CE 最小时,此时求出∠AFB 的度数即可.解:如图,作CH ⊥BC ,且CH=BC ,连接HB ,交AC 于F ,此时△BCH 是等腰直角三角形且FH+BF 最小,∵AC=BC ,∴CH=AC ,∵∠HCB=90°,AD ⊥BC ,∴AD//CH ,∵∠ACB=50°,∴∠ACH=∠CAE=40°,∴△CFH ≌△AEC ,∴FH=CE ,∴FH+BF=CE+BF 最小,此时∠AFB=∠ACB+∠HBC=50°+45°=95°.故选:C .【点拨】本题考查全等三角形的性质和判定、等腰三角形的性质、最短路径问题,关键是作出辅助线,有一定难度.【变式】(23-24七年级下·四川宜宾·期末)在ABC V 中,80CAB ∠=︒,2AB =,3AC =,点E 是边AB 的中点,CAB ∠的角平分线交BC 于点D .作直线AD ,在直线AD 上有一点P ,连结PC 、PE ,则PC PE -的最大值是.∵CAB ∠的角平分线交∴FAP ∠∠=∵AP AP =,∴APF APE ≌∴PF PE =,第三部分【中考链接与拓展延伸】1、直通中考【例1】(2020·湖北·中考真题)如图,D 是等边三角形ABC 外一点.若8,6BD CD ==,连接AD ,则AD 的最大值与最小值的差为.【答案】12【分析】以CD 为边向外作等边三角形CDE ,连接BE ,可证得△ECB ≌△DCA 从而得到BE=AD ,再根据三角形的三边关系即可得出结论.解:如图1,以CD 为边向外作等边三角形CDE ,连接BE ,∵CE=CD ,CB=CA ,∠ECD=∠BCA=60°,∴∠ECB=∠DCA ,∴△ECB ≌△DCA (SAS ),∴BE=AD ,∵DE=CD=6,BD=8,∴8-6<BE<8+6,∴2<BE<14,∴2<AD<14.∴则AD 的最大值与最小值的差为12.故答案为:12【点拨】本题考查三角形全等与三角形的三边关系,解题关键在于添加辅助线构建全等三角形把AD 转化为BE 从而求解,是一道较好的中考题.【例2】(2020·新疆·中考真题)如图,在ABC V 中,90,60,4A B AB ∠=∠=︒=︒,若D 是BC 边上的动点,则2AD DC +的最小值为.在Rt DFC △中,30DCF ∠=︒,12DF DC ∴=,122()2AD DC AD DC +=+2()AD DF =+,∴当A ,D ,F 在同一直线上,即此时,60B ADB ∠=∠=︒,2、拓展延伸【例1】(23-24八年级上·江苏镇江·阶段练习)如图,AC 、BD 在AB 的同侧,点M 为线段AB 中点,2AC =,8BD =,8AB =,若120CMD ∠=︒,则CD 的最大值为()A .18B .16C .14D .12【答案】C 【分析】本题考查等边三角形的判定和性质,两点之间线段最短,解题的关键是学会添加常用辅助线,学会利用两点之间线段最短解决最值问题.如图,作点A 关于CM 的对称点A ',点B 关于DM 的对称点B ',证明'' A MB 为等边三角形,即可解决问题.解:如图,作点A 关于CM 的对称点A ',点B 关于DM 的对称点B ',∵120CMD ∠=︒,∴60∠+∠=︒AMC DMB ,∴60''∠+∠=︒CMA DMB ,∴60''∠=︒A MB ,∵MA MB MA MB ''===,∴'' A MB 为等边三角形∵14CD CA A B B D CA AM BD ''''<++=++=,∴CD 的最大值为14,故选:C .【例2】(22-23八年级上·湖北武汉·期末)如图,锐角ABC V 中,302A BC ∠=︒=,,ABC V 的面积是6,D 、E 、F 分别是三边上的动点,则DEF 周长的最小值是()A .3B .4C .6D .7∴AM AE AN ==,MF =∵BAC BAD DAC ∠=∠+∠∴MAN MAB BAD ∠=∠+∠∴(2MAN BAE EAC ∠=∠+∠。
将军饮马例题
(原创实用版)
目录
1.将军饮马问题的定义和背景
2.将军饮马问题的数学模型
3.将军饮马问题的解决方案
4.将军饮马问题的实际应用
正文
一、将军饮马问题的定义和背景
将军饮马问题是一个古老的数学问题,也被称为骑士巡城问题。
它描述的是一位将军如何在战争期间安排他的马匹饮水,以保证所有的马都能喝到水,且不会被敌人发现。
这个问题最早出现在中国古代的数学著作《孙子算经》中,后来在欧洲也得到了广泛的关注和研究。
二、将军饮马问题的数学模型
将军饮马问题可以用图论来描述。
假设有 n 个马匹和 n 个水源,将军可以在每个水源饮一次马,每匹马必须且只能饮一次水。
将军可以从任意一个水源开始,最后回到起点。
问题转化为找到一条路径,使得每条路径上的水源都被访问一次,且每个水源只被访问一次。
三、将军饮马问题的解决方案
对于将军饮马问题,有一个著名的解决方案,即欧拉回路。
如果图是欧拉回路,那么将军就能保证所有的马都能喝到水。
欧拉回路的判断条件是:所有顶点的度数都是偶数,或者只有一个顶点的度数是奇数。
四、将军饮马问题的实际应用
将军饮马问题在实际生活中有许多应用,比如物流配送、任务分配、
数据中心设计等。
这些问题都可以转化为将军饮马问题,通过寻找欧拉回路,可以得到最优解,提高效率和节省资源。
初中数学将军饮马问题解题技巧
“将军饮马”问题,是初中数学非常重要的数学知识和模型,也是求线段最值问题的最常用数学模型。
初次接触到将军饮马问题,是初一下学期轴对称这一章节。
在接下来的初二初三,将无数次接触到将军饮马问题。
将军饮马问题是一个有故事的数学问题,在这里我就不再重复这个故事了。
我们要掌握将军饮马问题的核心思想,它的核心思想是“折化直”,最终用两点之间线段最短或者垂线段最短来解决问题。
“折化直”是初中数学最重要的一个解题思想,将军饮马,费马点,胡不归,阿氏圆等最值问题,都用到“折化直”的数学转换思想。
折化直的方法有轴对称,平移,构造子母相似三角形,三角函数转换等等,将军饮马问题大都采用的是轴对称来实现“折化直”的目标。
将军饮马问题的数学模型非常多,对于初中生而言,掌握下面十个常见的将军饮马模型(变式)就够了。
下面是我备课时汇总的十个常见的将军饮马模型(反色拍摄),当时用了两课时来上这个内容,这个时间花得是值得的,因为历年中考,将军饮马问题都不会缺席。
将军饮马模型系列之1
将军饮马模型系列之2
将军饮马模型系列之3
将军饮马模型系列之4
我把将军饮马问题进行了简单的分类,和最小问题,差最大问题,架桥选址问题等等。
从动定点数学分为一定两动,两定两动问题等等。
这十种模型也是将军饮马问题最常见的模型,熟练掌握这十种模型,可以应对初中的考试题目了。
当然,不能死记硬背,一定要掌握核心思想,掌握解决问题的思路,才能灵活运用,举一反三。
2020年中考数学压轴题线段和差最值问题汇总---------将军饮马专题古老的数学问题“将军饮马”,“费马点”,“胡不归问题”,“阿氏圆”等都运用了化折为直的数学思想这类问题也是中考试题当中比较难的一类题目,常常出现在填空题压轴题或解答题压轴题中,那么如何破解这类压轴题呢?【问题概述】最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径.算法具体的形式包括:1.定起点的最短路径问题:即已知起始结点,求最短路径的问题.2.确定终点的最短路径问题:与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题.3.定起点终点的最短路径问题:即已知起点和终点,求两结点之间的最短路径.4.全局最短路径问题:求图中所有的最短路径.【问题原型】“将军饮马”,“造桥选址”。
【涉及知识】“两点之间线段最短”,“垂线段最短”,“三角形三边关系”,“轴对称”,“平移”.【出题背景】直线、角、三角形、菱形、矩形、正方形、圆、坐标轴、抛物线等.【解题思路】“化曲为直”题型一:两定一动,偷过敌营。
题型二:两定一动,将军饮马。
例1:如图, AM ⊥EF ,BN ⊥EF ,垂足为M 、N ,MN =12m ,AM =5m ,BN =4m , P 是EF 上任意一点,则PA +PB 的最小值是______m .分析:这是最基本的将军饮马问题,A ,B 是定点,P 是动点,属于两定一动将军饮马型,根据常见的“定点定线作对称”,可作点A 关于EF 的对称点A ’,根据两点之间,线段最短,连接A ’B ,此时A ’P +PB 即为A ’B ,最短.而要求A ’B ,则需要构造直角三角形,利用勾股定理解决. 解答:作点A 关于EF 的对称点A ’,过点A ’作A ’C ⊥BN 的延长线于C .易知A ’M =AM =NC =5m ,BC =9m ,A ’C =MN =12m ,在Rt △A ’BC 中,A ’B =15m ,即PA +PB 的最小值是15m .例2:如图,在等边△ABC 中,AB = 6,AD ⊥BC ,E 是AC 上的一点,M 是AD 上的一点,且AE = 2,求EM+EC 的最小值解:点C 关于直线AD 的对称点是点B ,连接BE ,交AD 于点M ,则ME+MD 最小, 过点B 作BH ⊥AC 于点H ,则EH = AH – AE = 3 – 2 = 1,BH = BC 2 - CH 2 = 62 - 32 = 3 3在直角△BHE 中,BE = BH 2 + HE 2 = (33)2 + 12 = 27DB CD CBP E D C B A E D C B AA (3对应练习题1.如图,在△ABC 中,AC=BC=2,∠ACB=90°,D 是BC 边的中点,E 是AB 边上一动点,则EC+ED 的最小值是 。
将军饮马问题16大模型将军饮马问题源于中国古代的一个寓言故事,讲述的是三位将军跟随他们的军队来到一座河边准备渡河,但只有一条小船,这条小船一次只能搭载两人。
如果将军A和将军B在船上,将军C在岸边,将军C将会受到辱骂,如果将军A和将军C在船上,将军B在岸边,将军B也会受到辱骂,问题是如何让这三位将军都安全地渡河而不受辱骂。
这个问题启发了许多数学家和逻辑学家,有各种不同的解法。
下面将介绍将军饮马问题的16种不同模型。
模型1:最直接的解法最直接的解法是将将军A和将军B一同乘坐小船去对岸,然后将将军A带船返回,将将军C载到对岸。
模型2:穷举法穷举法是一种比较笨拙但可以解决问题的方法,即穷尽所有可能的情况。
这种方法虽然有效,但耗时较长。
模型3:递归法递归法是将问题分解成较小规模的子问题,并逐步解决。
这种方法可以节省时间和精力,但需要较高的逻辑思维能力。
模型4:数学推导法通过数学推导,可以将将军饮马问题转化为数学模型,从而得出解答。
这种方法需要较强的数学功底。
模型5:逻辑推理法逻辑推理法是通过逻辑推理和思维分析,得出解决将军饮马问题的方法。
这种方法强调思维的逻辑性和推理能力。
模型6:图论模型图论是数学的一个分支,可以用来描述将军饮马问题中的交叉关系和路径规划。
通过构建相应的图模型,可以更清晰地解决问题。
模型7:概率模型概率模型是通过概率计算和推测,找出解决将军饮马问题的可能性和概率分布。
这种方法适用于对问题进行全面分析和评估。
模型8:动态规划法动态规划法是针对多阶段决策问题的一种解决方法,可以在问题空间中寻找最优解。
这种方法适用于将军饮马问题的场景。
模型9:模拟法模拟法是通过模拟将军饮马问题的场景,以实验测算的方式找出最佳解决方案。
这种方法可以直观地展示问题的复杂性和解决路径。
模型10:启发式算法启发式算法是通过启发性的思考和优化方法,寻找将军饮马问题的最佳解决方案。
这种方法可以在复杂问题中找到较好的解决途径。
将军饮马(作对称点求最短线段终极版)背景知识:早在古罗马时代,传说亚历山大城有一位精通数学和物理的学者,名叫海伦.一天,一位罗马将军专程去拜访他,向他请教一个百思不得其解的问题.将军每天从军营A出发,先到河边饮马,然后再去河岸同侧的军营B开会,应该怎样走才能使路程最短?这个问题的答案并不难,据说海伦略加思索就解决了它.从此以后,这个被称为“将军饮马”的问题便流传至今.常用知识点:两点之间线段最短,垂线段最短,三角形三边关系,轴对称,平移;解题思路:找对称点,变折线为直线。
常见模型:一、两定点一动点型:如图:在定直线l上找一个动点P,使动点P到两个定点A与B 的距离之和最小,即PA+PB最小。
解题思路:连接AB,与直线的交点为点Q,即此时点P运动到点Q处,最小值为AB.证明:运用三角形三边关系:两边之和大于第三边,当A、P、B三点共线可取等于。
在定直线l上找一个动点P,使动点P到两个定点A与B的距离之和最小,即PA+PB的和最小.解题思路:作定点B关于直线l的对称点C,连接AC,交直线于点Q,当点P运动到点Q,最小值为AC.证明:关键是作其中一个定点的对称点,使得PB=PC,求PA+PB的最小值,即求PA+PC的最小值。
再转化为上述题型。
引申1:此题型也可以求PBPA-值最大。
解题思路:延长AB交直线l于点Q,当点P运动到点Q,PBPA-最大值为AB.证明:三角形任意两边之差小于第三边,当A、B、P三点共线可取等于.(提示:如果两定点不在直线的同侧,可以作其中一个定点关于直线l 的对称点)引申2:此题型也可以求PBPA-值最小。
解题思路:连接AB,作AB的垂直平分线角l于点P.证明:垂直平分线上的点到线段的两端距离相等,可得PA=PB二.两动点一定点型(两动点在角的两边上)如图,在∠MON的内部有一点A,在OM上找一点B,在ON 上找一点C,使得△BAC周长最短.解题思路:作点A关于OM的对称点'A,作点A关于ON的对称点''A,连接'''AA,与OM交于点B,与ON交于点C,连接AB,AC,此△ABC周长最短.证明:两点之间,线段最短变式1:如图:在∠MON的内部有一点A,在OM上找一点B,在ON上找一点C,使得AB+BC最短.解题思路:作点A关于OM的对称点'A,过点'A作CA'⊥ON,交OM 于点B,交ON于点C,即为所求。
起源 拜占庭位于如今的土耳其的伊斯坦布尔,是东罗马帝国的首都。由于当时拜占庭罗马帝国国土辽阔,为了防御目的,因此每个军队都分隔很远,将军与将军之间只能靠信差传消息。 在战争的时候,拜占庭军队内所有将军和副官必需达成一致的共识,决定是否有赢的机会才去攻打敌人的阵营。但是,在军队内有可能存有叛徒和敌军的间谍,左右将军们的决定又扰乱整体军队的秩序。在进行共识时,结果并不代表大多数人的意见。这时候,在已知有成员谋反的情况下,其余忠诚的将军在不受叛徒的影响下如何达成一致的协议,拜占庭问题就此形成。
将军问题 拜占庭将军问题是一个协议问题,拜占庭帝国军队的将军们必须全体一致的决定是否攻击某一支敌军。问题是这些将军在地理上是分隔开来的,并且将军中存在叛徒。叛徒可以任意行动以达到以下目标:欺骗某些将军采取进攻行动;促成一个不是所有将军都同意的决定,如当将军们不希望进攻时促成进攻行动;或者迷惑某些将军,使他们无法做出决定。如果叛徒达到了这些目的之一,则任何攻击行动的结果都是注定要失败的,只有完全达成一致的努力才能获得胜利。 拜占庭假设是对现实世界的模型化,由于硬件错误、网络拥塞或断开以及遭到恶意攻击,计算机和网络可能出现不可预料的行为。拜占庭容错协议必须处理这些失效,并且这些协议还要满足所要解决的问题要求的规范。这些算法通常以其弹性t作为特征,t表示算法可以应付的错误进程数。 很多经典算法问题只有在t中进程的总数。
失效 所谓拜占庭失效指一方向另一方发送消息,另一方没有收到,发送方也无法确认消息确实丢失的情形。 在容错的分布式计算中,拜占庭失效可以是分布式系统中算法执行过程中的任意一个错误。这些错误被统称为“崩溃失效”和“发送与遗漏是失效”。当拜占庭失效发生时,系统可能会做出任何不可预料的反应。 这些任意的失效可以粗略地分成以下几类: 进行算法的另一步时失效,即崩溃失效; 无法正确执行算法的一个步骤; 执行了任意一个非算法指定的步骤 各个步骤由各进程执行,算法就是由这些进程执行的。一个错误的进程是在某个点出现了上述情况的进程。没有出现错误的进程是正确的进程。
解决算法 拜占庭问题的最初描述是:n 个将军被分隔在不同的地方,忠诚的将军希望通过某种协议达成某个命令的一致(比如一起进攻或者一起后退)。但其中一些背叛的将军会通过发送错误的消息阻挠忠诚的将军达成命令上的一致。Lamport 证明了在将军总数大于3m ,背叛者为m 或者更少时,忠诚的将军可以达成命令上的一致。 为了保证上面的需求,必须满足下面两个条件: 1. 每两个忠诚的将军必须收到相同的值 v(i)(v(i)是第i个将军的命令) 2. 如果第i个将军是忠诚的,那么他发送的命令和每个忠诚将军收到的v(i)相同 为了简化以上模型,我们使用一个将军发送命令给多个副官的形式来证明,发送命令的将军称为发令者,接收命令的将军为副官,那么上面的两个条件可以表述为: IC1. 所有忠诚的副官遵守相同的命令 IC2. 如果发出命令的将军是忠诚的,那么所有忠诚的副官遵守司令(发出命令的将军)的命令 特别提示:发送命令的每次只有一个将军,将其命令发送给n-1 个副官。m 代表叛国者的个数,因为将军总数为n,所以副官总数为n-1 个。IC2 中副官遵守实际上是指忠诚的将军能够正确收到忠诚将军的命令消息。
通过口头消息 通过口头消息传递达到一致,如果有m 个叛国将军,则将军们的总数必须为3m+1 个以上。下面是口头消息传递过程中默认的一些条件: A1. 每个被发送的消息都能够被正确的投递 A2. 信息接收者知道是谁发送的消息 A3. 能够知道缺少的消息 A1 和A2 假设了两个将军之间通信没有干扰,既不会有背叛者阻碍消息的发送(截断)也不会有背叛者伪造消息的情况(伪造)。即是每个将军都可以无误地将自己的消息发送给其他每个将军。(下一节中可以不需要这个必要条件) 我们定义口头消息算法OM(m) 。对于所有的非负整数m ,每个发令者通过OM(M) 算法发送命令给n-1 个副官。下面将说明OM(m) 算法在最多有m 个背叛者且总将军数为3m+1 或者更多的情况下可以解决拜占庭将军问题。(考虑到网络应用实际环境,原文使用了收到值代替收到命令,本文不做修改) 算法定义一个函数:majority(com1,com2,…,comn)等于多数派命令。 OM(0)算法 (1)发令者将他的命令发送给每个副官。 (2)每个副官采用他从发令者发来的命令,或者默认使用撤退命令,如果没有收到任何命令。 OM(m)算法 (1)发令者将他的命令发送给每个副官。 (2)对于每个i ,vi 是每个副官i 从发令者收到的命令,如果没有收到命令则为撤退命令。副官i 在OM(m-1) 中作为发令者将vi 发送给另外n-2 个副官。 (3)对于每个i,并且j\neqi,vj 是副官i 从第(2)步中的副官j 发送过来的命令(使用OM(m-1)算法),如果没有收到第(2)步中的副官j 的命令则默认为撤退命令。最后副官i 使用majority(v1,…,vn-1)得到命令。 接下来实际的考虑一个n=4,m=1 的情况: 1. 当副官3 是背叛者,以副官2 为例 第一步发令者执行算法OM(1)将自己的命令发送给三个副官,三个副官都正确地收到了命令。
第二步每个收到命令的副官都作为发令者执行算法OM(0),将自己的命令转发给其余副官,因为副官3是背叛者,所以他给副官2 传递的消息会是假消息。副官2 最后根据majority 函数来决定命令。
这样背叛的副官3 同理也干扰不了忠诚的副官1 和发令者的决定。下面看看如果发令者是背叛者。 2. 发令者是背叛者,其余副官为忠诚的 第一步:发令者向副官发送了不同的命令,实际情况中是一个攻击者向不同方发送了不同的值进行欺骗。 第二步:副官收到命令后,摇身一变为发令者执行OM(0) 向所有的副官发送命令,这样所有副官的到命令会都相同(),这样所有命令都达不到大部分。
[1] 文章接着就证明了OM(m)算法对任意m 都是可以满足,首先引入一个引理(归纳法证明): 引理1:对于任意m 和k ,如果有超过2k+m 个将军和最多k 个背叛者,那么算法OM(m) 满足IC2 (回顾下IC2 指的是,如果将军是忠诚的,所有的副官遵守将军命令)。 证明:当m=0 的时候,OM(0) 在将军是忠诚的时候满足IC2。当m>0 时,首先将军将命令传递给 n-1 个副官,然后每个副官对n-1 个将军执行OM(m-1) 算法。因为假设了n>2k+m(引理中有将军数大于2k+m),所以 n-1 > 2k+(m-1) >= 2k(即每一轮中副官总数不小于背叛者的两倍),这样每轮OM(m-k) 算法中忠诚的副官收到的命令都是majority(v1,v2,...,v(n-1)),其中忠诚副官发送的命令大于或者等于一半。 接着解决拜占庭将军问题。 定理1:对于任意m,如果有超过3m 个将军和最多m 个背叛者,算法OM(m) 满足条件IC1 和条件IC2。 证明:通过m 的归纳法证明,我们通过假设OM(m-1) 成立来证明OM(m) m>0。首先考虑发送命令的将军是忠诚的。那么将引理中k 设为m 则OM(m) 满足IC2 ,IC1 在发令将军是忠诚的情况下也满足。 接着考虑m 个背叛者中有一个是发令者,那最多就只有m-1 个副官是背叛者了,又因为有3m 个将军,所以副官的总数超过3m-1,且有3m-1>3(m-1) 。因此通过归纳法假设 OM(m-1) 满足IC1 和IC2(最多3(m-1) 个将军和最多m-1 个背叛者)。那么任意两个忠诚的副官j 在OM(m-1) 获得相同命令vj,那么在OM(m) 算法中每个忠诚的副官都会收到(v1,v2,...,\v(n-1)),可知满足条件IC1 和IC2。 看完这段证明其实我也挺糊涂的~~~~,画了张图来看看lamport 是怎么证明的:
通过签名消息 签名消息在除了满足口头消息A1-A3 三点要求外还应该满足下面A4: A4 (a)签名不可被伪造,一旦被篡改即可发现 (b)任何人都可以验证将军签名的可靠性 下面定义一个类似于上面majority() 函数的choice() 来决定副官的选择:1.当集合V 只包含了一个元素v ,那么choice(V)=v ;2. choice(o)=RETREAT。 有了上面A4 和choice() 基础我们给出SM(m) 方法: SM(m) 算法 初始化Vi=空集合 (1)将军签署命令并发给每个副官 (2)对于每个副官i : (A)如果副官i 从发令者收到v:0 的消息,且还没有收到其他命令序列,那么: (i)使Vi 为{v} (ii)发送v:0:i 给其他所有副官 (B)如果副官i 收到消息v:0:j1:...:jk 且v 不在集合Vi 中则 (i)添加v 到Vi (ii)如果k(3)对于每个副官i ,当不再收到消息,则遵守命令choive(Vi) 算法的几点说明: 算法第三步并没有说明副官如何判断没有新的消息,可以通过两个解决方法:一是要求每个副官收到消息后要么签名转发该消息,要么发送一个通知他将不