设计迭代(共10篇)
设计迭代 篇1
0 Introduction
Commercial aviation is an ultra-safe system[1,2,3].Commercial aircraft flight decks made emergence of many safety-critical factors,induced by internal operations and external environment.The cockpit provides resources and system user-interfaces for flight management and situation awareness.Environment,flight parameters,ATC requests,time pressure as well as other internal and external factors constantly change during the flight.The only things that do not change during the flight are standards and operational goal-for flight safety,efficiency,and comfort reasons.Therefore,flight crews follow Standard Operating Procedure(SOP)to complete tasks and ensure safety.In abnormal situations,such as system malfunction or extreme weather condition,abnormal procedures are typically used for trouble-shooting and recovery.Operational documentation is regularly improved using experience feedback for normal,abnormal,and emergency situations[4].The onboard documents can be categorized into four kinds of documents:flying documents,which are related to all flight operations;systems documents,which include systems′theory,principles,and controls;navigation documents,which are the charts that pilots use on the flight deck;and performance documents,which provide operational data for all flight phases such as takeoff,landing,and go-around[5].
Pilots are familiar with paper-based manuals,which are easy to use,tag,mark,and retain,but difficult to carry.Nobody can permanently remember all procedures and technical knowledge,particularly,under time pressure.Pilots are well-trained on searching and performing procedures under all kinds of situations,sometimes moving from one manual to another manual.For example,in“RA 1+2Fault”(i.e.,Radio Altimeter 1and 2failed)on A320,the summarized procedures combine information from the navigation chapter and flight control chapter(at landing gear extension,flight controls revert to direct law in pitch,as well as in roll)from Flight Crew Operating Manual Volume 1and Volume 3.For the last two decades,the shift from paper to electronic documentation has been discussed,modeled,and partly operationalized[6].Airbus and Boeing are currently improving onboard information systems,for instance,Onboard Information System(OIS)for A380 and Class III of Electronic Flight Bag(EFB)for B787.Note that current documentation is still context-free.However,pilots have to know and understand how to find the right information in the right part of the right manuals.
We claim that electronic documentation,renamed“onboard information system(OIS)”,contributes to improving the perception and comprehension of the current situation,as well as supporting decision-making and action-taking[7].In this paper,we will not demonstrate the full capacity of context-sensitivity compared to current paper-based operational documentation,but will provide a first contribution to the maturity process toward a safer,more efficient,and comfortable context-sensitive OIS.Furthermore,an OIS is no longer only an additional static repository of knowledge,but a real onboard system in its own right,such as on the A380[8].
1 Context-Sensitivity
The Onboard Context-Sensitive Information System(OCSIS)concept was developed on a tablet wirelessly connected to relevant cockpit parameters.OCSIS enables and requires new information formatting(e.g.,the concept of page is no longer relevant).In addition,OCSIS′s internal information is structured with respect to context.
Dey defined“A system is context-aware if it uses context to provide relevant information and/or services to the user,where relevancy depends on the user′s task”[9].Flight tasks(e.g.,cockpit preparation,takeoff,approach,and landing procedures)depend on flight phases.Each flight phase context can be segmented with respect to space and time,as well as normality,abnormality and emergency.More generally,meaningful context patterns must be understood and developed as indices of related useful,clear,and concise operational information[10].Therefore,the OIS should be re-organized and categorized into three levels[11]:
Level 1:Needed for flying.This is a judgment of the“must know”information covering all aspects of aircraft operation,points that the manufacturer has determined to be safety critical[12].
Level 2:Needed for training or testing.This includes philosophy of system design(i.e.,an explanation of why aparticular design alternative was selected);rationale for performing an action(i.e.,an explanation of why aparticular action alternative was selected).
Level 3:Needed for understanding and troubleshooting.This includes how the system works(i.e.,background for those interested in details not needed in day-to-day operation);diagnosis/troubleshooting(i.e.,details for examining subsystem interactions and finding problems whose symptoms are not readily apparent);and expert knowledge not likely needed in flight.
Pilots usually need Level 1information for operations.If they want to know more explanations of actions and reactions of the aircraft and procedures,they can easily refer to Level 2information.Level 3information is used to understand the working principle of the aircraft.
To structure the context and information,we usea high-level procedural knowledge representation,called“interactive blocks”or iBlocks[10],which includes a set of actions,a situation pattern(triggering conditions+context pattern),and post conditions(i.e.,goal+abnormal situations)(Figure 1).Consequently,iBlocks,representing situated procedures,enable incremental updating(i.e.content-wise)and re-structuring(i.e.context-wise).Take the example of the“Flaps Set”procedure in the approach scenario.Its triggering preconditions consist of“Flaps position”(i.e.,visible on the E/WD screen)and“Flaps handle position”(i.e.,visible on the Flaps lever).When the“Flaps position”on E/WD equals to the value of the“Flaps handle position,”then the goal is reached and the pilot can continue to next procedure;otherwise,apop-up window is displayed on OC-SIS to inform about an abnormal situation,and the“Flaps Locked”procedure needs to be executed.
2 Human-Centered Design Approach
A human-in-the-loop simulation(HITLS)is“a modeling framework that requires human interaction.This approach is typically called participatory design.The emergence of HITLS technologies,therefore,enables researchers and practitioners to investigate the complexity of human-involved interactions from a holistic,systems perspective[13]”.
HITLS can provide meaningful and useful user-centered feedback based on human factors metrics(e.g.,situation awareness,workload and usability indices)and user comments(Figure 2).Today,HITLS can be used early on during the design phase.OCSIS has been humancentered designed through a series of HITLSs and improvements toward an acceptable mature version(i.e.,incremental prototype development,test,and modification)[14].HITLS was developed and used on an A320flight deck simulator.
The model typically represents reality in a simplified way.The design of a system is never finished even though at some point,delivery is required.This is why maturity has to be assessed[16].The more OCSIS is being used and tested,the more new cognitive functions emerge and need to be taken into account either in system redesign,system training,or operations support.
From the early stages of design,it is very important to have professional pilots involved to set up a high-level prototype correctly.They help designers to describe stories applicable to the product being developed and how these historical events may be induced during the product operational phase.This is an important role of participatory design.Professional pilots participated in OCSIS design process from the beginning as well as in all testing sessions(i.e.,formative evaluations),providing experience feedback toward improving designs(Figure 3).
3 OCSIS Prototype
OCSIS was applied with Airbus 320information on the iPad.We adopted three information levels structure already described above.Take the Flaps lever set after engine start as an example.The action in cyan requires the pilot to set Flaps lever,which is the Level 1information that pilots need to know at that time(Figure 4).
Level 2information about this action(i.e.,also called“nice to know”)will be shown in white when the pilot selects the solid triangle icon at the beginning of the line.In this example,the pilot can read that,under certain conditions,flaps cannot be set after Engine Start(Figure 5).
Level 2information provides the pilot with useful explanations on Level 1information.Since Level 3information is deeper system knowledge,it is often required that pilots know it by heart.We did not take into account Level 3in current OCSIS development.
The Dynamic Color System(DCS)is designed toenhance the pilot′s perception and comprehension of the current situation.Different colors stand for different meanings that provide the pilot with a direct and swift status of procedures,which are consistent with Airbus′s philosophy.For examples,“Ready to do”actions are in cyan.Once the action is completed and OCSIS can access the related parameters′status,it automatically becomes“green”.In the current version of OCSIS,this kind of automation is done for only the rudder trim and parking brake parameters,which can be detected(i.e.,colors change automatically).In the future,more parameters will be automated.For all other parameters,the pilot marks them“DONE”manually(i.e.,the action line becomes green).The pilot can also postpone an action by selecting the“WAIT”button,and then the action line becomes amber(Figure 6).
“Initial Approach”and“Final approach”were developed for testing normal procedures.“Fuel Leak”and“Flaps Locked”were developed for testing abnormal procedures.Related malfunctions were generated on the flight deck simulator.In both normal and abnormal situations,flight and systems parameters were exchanged between the aircraft simulator and OCSIS.In an abnormal situation such as“Fuel Leak”,OCSIS will immediately inform the pilot by displaying a pop-up information window(Figure 7).Pilots can become aware of the problem through the pop-up window and start following actions.
They can then decide to perform additional procedures,immediately or later.If they choose to do it later,a reminder line(Figure 8)will be displayed at the bottom of the interface,which directs to additional“Fuel Leak”procedures.Therefore,context-sensitivity enables OCSIS to follow pilot′s action execution and awareness of procedure completion.In particular,OCSIS is able to remind action items that could be omitted by the pilot.
4 Formative Evaluations
OCSIS tests were carried out in three steps:
1)Conducting user-system interaction tests:Check if OCSIS could assist pilots easily and effectively;Conduct usability tests and cognitive walkthrough based on feedback from pilots while involved in flight operations[17].
2)Testing OCSIS′s ability of improving situation perception and comprehension:Evaluate OCSIS′s ability of improving situation perception and comprehension;Use an adaptation of SAGAT[18].
3)Finding the best location for OCSIS:Find the best physical location for OCSIS in the cockpit;Test four options;Have pilots fill in questionnaires.
The first test was carried out in August2014at HCDi′s simulator lab.Four pilots with flight experience were chosen as participants.We ran two sessions where pilots were requested to follow a set of procedures.During the first session,they used paper-based manuals.During the second session,they used OCSIS.Sessions were run a few days apart for each participant.The testing was conducted as indicated in Figure 9.
Pilot participants provided excellent feedback not only on assigned 7actions,but also on OCSIS look and feel,assessing display usability criteria(e.g.,color,buttons).Results showed that all pilots understood how to use OCSIS.They all reported that OCSIS was easy to hold and use.Pilots provided feedback on information icons,color,and size,which was used to improve user interaction with OCSIS.Results showed that all pilots,except one who said that size of the items was not big enough,felt com fortable with OCSIS information display and interaction.
Forboth perception and comprehension level of situation awareness,OCSIS failure triggering and automatic feedback were evaluated by pilots in Testing I.Pilots rated 9.5out of 10on failure triggering and 9.4out of 10on automatic feedback.All pilots understood every action in Testing I.
Based on pilots′feedback,OCSIS was incrementally improved on designs,prototype and integration:some of the icons had been changed;grey color was added to represent not applicable part for current situation;and 4optional positions for iPad in the cockpit were suggested by pilots(Figure 10).
The secondtesting was carried out in January 2015at a flight training center in China.22A320pilots participated in the testing,performing as aircrew in A320 simulators.They were divided into two groups:Group A had 12pilots(i.e.,6captains and 6first officers),they were required to come twice to perform the testing,with an interval of a few days between the two sessions(i.e.,session 1 with paper-based documents and session 2 with OCSIS);and Group B had 10pilots(i.e.,5captains and 5first officers)performed the same tasks only with OCSIS.Captains had 11 800flight hours average,and first officers had 1 450flight hours average.
During the testing,we observed in the“Fuel Leak”scenario,pilots easily established the failure and excluded the irrelevant procedures(e.g.,“Fuel imbalance”procedure).In the“Flaps Locked”scenario,OCSIS reduced the chance of wrong calculation of landing distance and approach speed.The results of user-system interaction questionnaires showed that 86%of the pilots understood how to use OCSIS and were satisfied with OCSIS,while 81%of the pilots were satisfied with all user interaction criteria.
For the comprehension level of situation awareness,25%of the pilots had difficulty understanding every action proposed on the QRH;most of them were First Officers.In addition,27.27%of the pilots had difficulty understanding every action proposed on OCSIS in the“Fuel Leak”scenario and 18.18%of the pilots had difficulty understanding every action proposed in OCSIS in the“Flaps Locked”scenario;most of them had English language limitations.
We made improvements to OCSIS based on testing II pilots′feedback on prototype and integration.We included“Engine Shutdown”and“Engine Relight”procedures in the“Fuel Leak”scenario.64%of the pilots preferred the iPad located close to each side-stick(Position 1in Figure 10).Therefore,a flexible arm was set up to hold the iPad near the side-stick on the right side of the simulator(Position 1).This location was tested in Testing III.
Testing III of OCSIS was held in June 2015with six pilot participants,and three additional pilots took Nielsen′s ten Usability Heuristics survey[19],using the same protocols and timelines as Testing I and Testing II.The results of user-system interaction questionnaires showed that every pilot understood and was satisfied with using OCSIS and with OCSIS′s user interaction,as well as the location of OCSIS in the cockpit.For the comprehension level of situation awareness,50%of the pilots understood every action in“Fuel Leak&ENG 1 Shut Down”while 83%of the pilots understood every action in“Flaps Handle Locked.”All the six pilots satisfied with the location of iPad in the simulator.Testing III led to improvements of OCSIS on checklist icons,quick maneuverability to specific procedures/menus instead of scrolling,the color of caution or warning pop-up message window.
5 Discussion
OCSIS was first designed as a piece of software to be used as a tangible interactive system(TIS)onboarda commercial aircraft.The main issue we had to solve was tangibility.Onboard paper-based documentation has been used from the beginning of aviation history and is tangible for pilots to grasp,handle and use.This is physical tangibility,but figurative tangibility should be tested[20].In this case,figurative tangibility is related to pilot′s situation awareness provided by OCSIS.We conducted testing studies based on a first set of methods and tools to assess figurative tangibility.The first three testing studies that were performed showed that this hypothesis was confirmed on a fully equipped cockpit simulator in realistic flight operations scenarios with professional pilots:①The Dynamic Color System provides dynamic situation awareness that increases flexibility of pilots′actions.Flexibility is an important dimension of tangibility[20].②When using OCSIS,pilots may decide to postpone an abnormal procedure and the system is able to remind them at an appropriate time.③Pilots have direct access to the first layer of operational information as well as to the other layers on demand by using OCSIS;this feature provides significant flexibility.④Global checks after each flight phase are possible,which improve flexibility in a high time-pressure situation.Meanwhile,some of the actions cannot be detected by the system,such as the call-out,double check,communication with ATC,or reading information from an instrument.⑤OCSIS connectivity with flight parameters provides useful affordances.⑥OCSIS knows about pilots′actions on cockpit instruments and provides redundant feedback(i.e.,this feature provides an embedded safety-critical cross-check).
6 Conclusion
The current version of OCSIS is a tabletbased application that integrates information that,if paper-based,is physically distributed in several manuals.OCSIS database is organized into meaningful context-sensitive patterns.Usability advantages and capabilities of the tablet have been operationalized in terms of tangibility,familiarity,and maturity of use.This research and HCD effort are based on both participatory design and agile development(i.e.,at the end of each phase,the system is testable in an HITLS environment).This is now typical for the design and development of tangible interactive objects(Boy,2014),and more generally tangible interactive systems(TISs)[20],where the problem is no longer automation but the search for tangibility.Modeling and simulation are very useful to explore possibilities and drawbacks of these TISs.The quality of both simulation capabilities and pilot participants is crucial[14].If the issues traditionally raised by human factors and ergonomics specialists when engineering work is done are now posed at the beginning of the design phase in a virtual world(i.e.,virtual engineering is part of HCD),new kinds of questions would emerge from this practice,that is,tangibility.Representation of context,identification of relevant contextual information,and actual interaction at the right time with the right information are key issues that needed to be further explored and developed.
Consequently,this research effort is not a classical human-factors experiment-based research based on existing systems,but a creative work based on experience and expertise.The goal was the creation of a human-centered system that would be useful and usable by professional pilots on a commercial aircraft flight deck for handling operations safely,efficiently,and comfortably.While this work needs more improvement and maturity,it provides a first account that should be further developed and tested in the near future.
摘要:飞行员使用纸质文件和机载电子设备辅助来执行程序以确保飞行的安全性、有效性和舒适性。机载情景感知信息系统设计用以在正常、非正常以及紧急情况下提供飞行、系统、性能和导航4个方面的操作信息。系统内容是由3层信息结构超链接组织的:必须知道的信息或涉及安全的关键信息(级别1);次要信息(级别2);以及需要理解的信息(级别3)。提出不管是自动显示还是人工选择显示的随情景感知的信息,都应使飞行员更容易在正确的时机获得适当的操作内容。机载情景感知信息系统采用“人在环路(HITL)”模拟,并有多名专业飞行员在模拟机上对该系统进行了测试。第一批的数据结果表明,机载情景感知信息系统的操作信息访问是可用且有用的,并且具有纸质文件所没有的特性。
关键词:人为因素设计,机载信息系统,可触摸式交互系统,商用飞机,电子设备,情景感知
神迭代与灰色用户迭代 篇2
但是,这样的模式显然不是互联网思维,不是因为不够快,而是因为没有用户参与。换言之,这种模式是一种典型的B2C的“埋头生产”模式,而互联网思维应该是一种“抬头看路”的C2B模式。没有用户参与,产品的设计像是一次“独裁式的投票民主”,由技术精英们来决定用户要什么。他们懂技术,但不一定懂用户,不一定接地气。因此,这种和谐的产品是缺乏个性的,缺乏对话的,不会满足用户的个性需求,不会打到用户的心口,不会让用户从“代入”到“爱上”。
要有完美的产品,就必须预留产品迭代的空间。
乔布斯做苹果是一种迭代模式。苹果拥有不逊于微软的工程师团队,但他们是没有投票权的,他们像是乔布斯的手和脚,仅仅是揣测乔布斯神一般的意图,再战战兢兢地提交自己的设计让他虐待!所有的控制权都掌握在乔布斯手中,他把自己打扮成为一个最苛刻的用户,用自己变态的标准来进行产品的内部迭代。传说,乔布斯让工程师开发各类APP,并由他亲自进行测试,只要是点三个键点不到他想要的重点,他就会将这个APP无情地删除,开发者的努力就会付诸东流!换句话说,你满足了他的要求,所有用户都会觉得“WOW”!
我的两个朋友说,乔布斯这个不是互联网思维,而是神思维,我却不这样认为。互联网思维的大逻辑是C2B,乔布斯用自己对于用户的洞察力来进行判断,将迭代的程序放在了企业内部。表面上看,他是神一般地预言了用户的每一种需求,有些设计,用户甚至根本想不到。但实际上,他并不是在猜,而是在敏锐地解读用户内心的诉求,并把这种诉求翻译为了自己的变态迭代标准。所以,我们可以说这种模式是“神的互联网思维”或者说“神迭代”!
雷军们做小米是另一种迭代模式。小米的工程师团队绝对赶不上微软或者苹果,但他们找到了另外一条路,即把用户带入到迭代过程。他们搭建了一个对话的平台,直接听取用户的需求,并把用户的意见放进产品改进。这个模式说得简单,但小米做得有条不紊,这里面是有技巧的。
第一个要点是,他们选择“小点突破”,并不追求复杂的功能,而是抓住少数的功能点进行试错。当发烧友们都来吐槽一个点,那么,你几乎就可以把产品所有的问题找到,变成口碑,横扫市场!
第二个要点是,他们进行“灰度升级”。即使选择了“小点突破”也不能够让所有吐槽一拥而上,这样只会形成混乱,变成另一种“人手一票”,但有的用户,只是为了吐槽而吐槽,或是跟风,他们也许并不了解自己真正想要什么。所以,他们将用户进行分级,最高级的1%用户进行初次测试,修改后是5%的高级用户进行再次测试,而后递推到10%……这样就最大程度上避免了测试中的混乱,其实最初那1%的人,也许就能发现80%的问题,而后,在扩散的测试中,问题越来越少。另外的好处是,这样的模式让高级用户很有成就感和代入感觉,很愿意无私地奉献自己的创意。而这群人一旦代入了自己的情感关注和创意,他们就是最珍贵的种子用户,能够作为意见领袖来引领口碑。相对于乔布斯的模式,他们用一群用户组成了乔布斯,有技巧地把迭代过程放到了产品“初次投用”与“正式推广”之间的“灰色地带”。所以,我们可以说这种模式是“灰色用户迭代”模式。
两种模式难说谁优谁劣,要做“神迭代”,你首先要有“大神”,雷军显然意识到自己不是,所以选择了另一条路。事实上,尽管所有的产品经理都在以乔老爷为目标,但他们都只能做到无限接近这尊“大神”。当然,有“神”的企业是幸运的,他们在“灰色用户迭代”模式之上,有人可以清晰地告诉他们哪些路是错的。毕竟,“灰色用户迭代”也是有成本的!所以,雷军请来了唐沐,他在请神!
[编辑 谢康利]
E-mail:xkl@chinacbr.com
设计迭代 篇3
由于《C语言程序设计》在培养学生程序设计能力方面具有非常重要的作用[1], 许多高校的计算机专业和其它理工类专业都把它作为一门基本的编程语言课程。但是学好《C语言程序设计》是非常困难的事[2,3,4], 特别对初学者来说, 有时写一个简单的程序, 也不知从何下手[8]。因此迫切需要探索新的教学方法, 以帮助学生学好该课程。
已有许多文献对C语言教学方法进行了探讨。杜燕萍等[2]指出了在C语言程序设计中的一些难点内容;林淑玲[3]探讨了C语言程序设计中存在的一些问题, 指出了教学方法的多样性;刘明才等[4]讨论了C语言程序设计考试方法的改革;张敏霞等[5]分析了C语言程序设计课程初学者的特点;孟朝霞[6,7]探讨了C语言程序设计课程教学中思维能力的培养;吴文虎[8]认为对于C语言程序设计初学者来说, 从实际问题形式化为机器能够处理的表达式是一个大难题;Jeannette[9]提出计算思维观点, 认为计算就是抽象的自动化, 计算思维最本质的特征就是通过对问题的抽象建模, 但没有讨论如何依据抽象建模的方法来降低程序设计的学习难度。
针对《C语言程序设计》学习难度较大以及缺乏较好的教学方法来降低初学者的学习难度, 本文提出了迭代抽象的教学方法, 它通过不断迭代问题抽象—抽象自动化—模拟三个步骤的, 最终获得正确的程序;并以循环程序设计为例, 探讨了迭代抽象方法在《C语言程序设计》教学过程中的应用模式。教学实践证明, 该方法能有效帮助学生学好《C语言程序设计》课程。
一、迭代抽象方法原理
抽象就是找出事务的重要特征、过滤或忽略非本质的细节, 从而简化问题的求解。迭代抽象法是先抓住问题的最本质特征, 然后逐步加入问题细节, 最终实现对问题的完全理解。在程序设计中, 迭代抽象法可形象地用图1描述:
在图1中, “抽象分析问题”要求看懂题目意思, 理解题意, 尝试提出问题的数学模型。“写出程序框架”是对前一步思考结果自动化, 即使用选择结构还是循环结构;而选择采用哪种控制结构应该是一个比较直观的问题, 因此, 写出程序框架不仅是可能的, 而且是学生水平可达到的。在写程序框架时, 需要隐藏细节, 因此以“?”表示未知细节, 为这一步的完成降低了难度。后续的步骤就是如何来将这些“?”替换成程序代码。“细节问题抽象”和“抽象自动化”就是针对程序框架的每个“?”提出相应解决方法;“验证是否正确”就是将相应解决方法的代码替换程序框架中的“?”后, 试着人工执行程序, 看是否与要解决的问题相符, 如果相符, 就可以继续下一个关键问题;否则, 要完善相应解决方法, 直到通过验证为止。这样一个一个关键问题地解决, 直到问题中所有关键问题都解决完为止, 此时, 一个完整的程序代码也就已经得到了。
在迭代抽象过程中, 通过对问题的抽象分析, 并采用C语言的三种程序控制结构表示出这种抽象, 从而得到程序的框架。得到程序框架后, 就有了一个思考的范围, 因而, 缩小了问题的规模, 同时学生的学习认知或思维活动就有一个具体的目标。在解决一个个具体的目标时, 还反复地比较判别问题的解法是否正确, 符合一般学习者的思维习惯, 同时也传授了一个判断自己写的程序是否正确的方法, 而不一定要等到运行程序, 发现错误时再来纠正。同时, 在这个不断判断自己加的代码是否正确的过程中, 也强化了学生对代码的理解。因此, 按抽象建模法的方法, 学生的学习过程, 并不仅仅是接受已有结论, 而是一个不断理解问题, 表达问题, 并不断验证表达是否正确的过程。
二、抽象建模法的应用
2.1问题描述
在教学过程中, 讲解完循环结构关键字与语法分析后, 通过例举一些稍微复杂的程序设计的例子, 使学生掌握利用循环结构写程序的方法。例如在教学过程中采用下面的例子来演示循环程序的编程方法:
例:用 公式求π的近似值, 直到发现某一项的绝对值小于10-6为止。
2.2第一次抽象—列出循环结构
为理解题目意思, 将公式右边分拆为一些项:1/1, -1/3, 1/5, -1/7, 1/9, …。试着用变量表示:设分母为n, 则该项为1/n或-1/n, 公式左边也用变量表示:pi。
那么很容易发现, 这是一个将右边各项相加的问题, 类似于1+2+3+…+100的问题, 因此, 是一个求和问题, 因此需要一个累加器 (用sum表示) , 一个计数器 (也就是前面定义的n) 。试着写出程序框架如下:
在对实际问题进行抽象时, 最先需要使用字母代表变化的数据量, 从而得出实际问题的数学模型;然后按照相应数学模型, 得出基本程序框架。如本题经过抽象分析, 得出该题属于累加求和问题, 从而得出程序基本框架:累加。
在程序框架中, 凡是一时不知道如何表达或写出来的都以问号“?”暂时代替, 这些出现问号的地方应该是写程序的难点或关键地方。从上述程序框架来看, 主要问题就是:1) 循环表达式应该如何写?2) 循环体中除了累加, 后面的操作应该做什么?
2.3循环操作的第一次细化--循环条件表达式
题目中有一句“直到发现某一项的绝对值小于10-6为止”, 这一句提示我们循环条件表达式与项的绝对值有关。
为此, 引入新变量term, 表示一个数据项, 不难看出, term=1.0/n或-1.0/n;项的绝对值可用数学函数fabs (term) 求得。
“直到发现某一项的绝对值小于10-6为止”意即在项的绝对值大于或等于10-6时应该继续累加项, 从而得到循环条件表达式为fabs (term) >=1e-6, 其中, 1e-6是10-6在C语言中的科学计数法的表示, 从而可将程序框架修改如下:
2.4循环操作的第二次细化--修改term
查看这些数据项, 1/1, -1/3, 1/5, -1/7, 1/9, …。后一项的分母总是前一项的分母加2, 分子都为1, 符号正负交替出现。
为此, 想到term=1.0/ (n+2) ;将这个表达式代替程序框架中的?, 得到如下程序:
对不对呢?试着执行一下循环:
2) 程序跳到while, 再次计算循环表达式的值, 仍为真, 两次进入循环, sum=1+1/3, 发现符号不对。另外更严重的问题是:在循环体中由于没有修改n的值, 从而term的值也没有被修改, 所以循环将一直执行下去, 变成一个死循环。
为此, 需要在循环体内修改n的值, 将程序修改如下:
再次执行循环, 重点是检查数据项是否会在循环体中改变:
1) n=1, 进入循环, sum=1, n=3, term=1/3;
2) 程序跳到while, 再次计算循环表达式的值, 仍为真, 进入循环, sum=1+1/3, n=5, term=1/5, 从而发现数据项在循环体内被修改。
因此, 最后剩下的问题是如何修改符号, 使正负号交替出现。
2.5循环操作的第三次细化--正负号交替出现
在讲解进行到这一步时, 教师要给出使正负号交替出现的方法, 不需要再花过多的时间来讨论如何做。
为使正负号交替出现, 定义一个整型变量sign=-1, 程序作如下修改:
再次执行程序:
1) n=1, 循环表达式的值为真, 进入循环, sum=1, n=3, term=-1/3, 好象与公式右边符合了;
2) 程序跌到while, 计算循环表达式的值为真, 进入循环, sum=1-1/3, n=5, term=-1/5, 这时又与公式右边不符合了。
为此, 需要将sign进行修改, 以备下次符号再次改变:
再来执行一下程序:
2) 第三次循环时, sum=1-1/3+1/5, n=7, term=-1/7;
3) 再多执行几步, 发现所得各数据项与公式右边完全一样, 因而, 程序应该没有问题了。
最后是完善如输出等语句, 得到完整的程序 (省略) 。
三、比较实验
为将这种新方法与传统的先算法后程序的教学方法作对比, 我在两个班分别采用两种教学方法来讲授C语言循环程序设计。两个班的学生都没有计算机编程经验, 人数也大致差不多, A班52人, B班54人。A班采用抽象建模法讲授, B班采用传统方法讲授。讲解完上述例子后, 布置了相同的上机练习题:
他们可相互讨论, 可课后完成。完成的作业通过一个程序练习在线系统提交。下面是提交结果统计:
从上述数据看, A班提交率为45/52=86.5%, B班提交率为27/54=50%;从提交结果是否正确来看, A班有69%的正确率, B班在提交的人中正确率为48%。
查看提交错误的源代码, A班都正确地选用了循环结构, 循环体操作基本正确, 错误部分主要是循环条件表达式;B班提交错误的源代码中, 循环体操作不正确的有5人, 循环结构选用错误的有3人, 循环条件表达式错误的有4人。
课后与学生沟通, A班未提交代码的学生说, 他们对于循环结构是知道的, 但应该如何写循环体操作不清楚, 或不知道如何写循环条件表达式, 还有些是因为变量定义错误;B班未提交的学生中, 大部分不清楚算法该怎么写, 因而都在写算法这个地方遇到困难, 甚至根本不知道应该如何着手来写这个程序。
四、结束语
现代教学理论强调教学过程中, 学生是主体, 教师为主导。这个主导作用反映在教学活动的组织, 教学内容的安排。为更好地发挥教师的主导作用, 需要按照主体的认知习惯引导主体学习并理解和接受新内容。这实际也是结构主义教学观的要求, 是认知学派的基本原则。皮亚杰认为, 认识既不发端于客体, 也不发端于主体, 而是发端于联系主体、客体的动作 (活动) 之中, 活动的我就在于它是主体、客体的相互作用的过程[8]。中国古代的教学观认为“授人以鱼, 不如授人以渔”, 其实强调地就是将思维的方法传授给学习者。迭代抽象法就是依据学生对编程问题的理解从大的框架逐步深入细节的认识过程安排的, 按照学生对问题由浅入深的认识了解过程, 根据计算思维的基本观点, 逐步得到对问题的可自动化处理的抽象描述, 符合学生的认知习惯, 因而教学内容易于为学生所接受。
这种迭代抽象方法不仅可用于讲授C语言循环程序设计, 也可用于C语言中函数的讲授。只要根据问题类型适当加以调整, 这种教学方法也可用于讲授那些需要进行构造与设计的课程内容, 当然所依据的模板 (如C语言循环程序中的循环控制结构) 也是有所不同的。
摘要:在《C语言程序设计》学习中, “听得懂, 但不会写”是大多数学生遇到的问题。迭代抽象的教学方法首先对实际问题进行抽象建模, 将抽象模型用C语言程序框架表示;然后分析问题, 依次解决抽象表示中的每个关键难点, 并在每步都采用人工执行的方法来验证代码的正确性, 最后得出抽象的自动化处理的描述。教学实践结果表明, 这种方法具有更好地教学效果。
关键词:计算思维,程序设计,循环结构
参考文献
[1]谭浩强.C程序设计 (第四版) [M].北京:清华大学出版社, 2010.6:131-135.
[2]杜燕萍, 乔沛荣.C语言教学方法探讨[J].计算机与现代化, 1998 (03) :32-36.
[3]林淑玲.C语言程序设计教学探讨[J].科技经济市场, 2007 (9) :28-30.
[4]刘明才, 牟连泳, 辛慧杰.C语言程序设计课程教学改革研究[J].中国校外教育 (理论) , 2009 (8) :1170.
[5]张敏霞.程序设计语言课程教学方法改革的探索与实践[J].中国高教研究.2004 (2) :103-105.
[6]孟朝霞.C程序设计课程项目教学改革的问题及思考[J].运城学院学报, 2011 (4) :85-88.
[7]孟朝霞.应用能力为核心的C程序设计课程分层培养教学模式[J].运城学院学报, 2012 (5) :91-93.
[8]吴文虎.我怎么讲好“程序设计基础”这门课.中国大学教学, 2011 (12) :9-12.
在快速迭代中前进 篇4
万千人参与的研发
互联网公司会先做一个简单的产品让用户下载使用,但在每个页面里都会埋一些代码,用户一打开页面,信息就到后台了。用户在这个网页停留了多长时间,页面往下滚动了多少……随着用户鼠标的滚动,数据源源不断地被传递到后台。
当乐视开始研发机顶盒和电视时,这样的互联网技术被引入研发流程。乐视研发人员发现,用户在注册页停留的时间很长。
“我们就知道注册页面有问题了。” 负责研发业务的乐视TV高级副总裁梁军说。原来乐视希望在用户注册时一次性把信息都收集齐,再进入播放页面。但互联网用户最大的要求是先降低门槛,过段时间非要他什么信息再给他发个信息“勾”他。
发现这个问题后,乐视研发人员晚上加了个班,系统被升级了。第二天,用户注册流程就简化了。
“我们就是这样每天、每周、每月小版本、大版本地不断升级。”梁军说,“其实贡献最大的是用户,但用户自己都不知道他们为此做了贡献,因为他只要用就行了——比如,一个应用今天下载了1000个,1个月后发现只有10%的用户在用,企业就得想办法看看它是怎么回事。”
再往后,小米和乐视这样的企业都建立了论坛、微博和微信。互联网公司的老大们、工程师们,每天都泡在论坛和社交网络上与用户交流。乐视还为此建立了一个组织——用户体验中心,任务是把用户从这些渠道中反馈的各种问题列出优先级。那些反映强烈、反映多的问题,优先级自然就高;有时问题太杂的话,也可以发起个网友投票,让用户参与到决策。根据优先级,乐视再列出未来一、两个月公司要推出的产品版本。“你会发现,用户的需求和你的产品之间不断滚动,产品的用户体验和满意度就会在细微之处发生变化。滚动时间足够长的话,产品就越来越符合用户的要求。” 梁军说。
在乐视研发走过的这两年里,梁军发现,用户的反馈是千奇百怪的,除了对产品技术的各种要求外,他们还在意很多企业想不到的细节。
“你也不知道他们哪里有那么多时间,他们会把乐视盒子拆开,拿出电路板告诉你,乐视的板子是绿色的,山寨板子也是绿色的,而小米的板子是深蓝色的,所以小米的质量更好。” 梁军回忆说,“实际上,板子的质量不是颜色决定的,但用户对于好和不好的判断都很感性,他们有自己的参照系。所以,我们也要抛弃过去那些量化测试,让用户给我们找参照系。”后来,乐视立把板子弄成了很有质感的黑色。乐视最新推出的电视,采用了聚碳酸酯透明背板,这样的效果是,内部电源板、智能板、走线、背光驱动板,每个细节都可以清清楚楚地看到。
在加入乐视之前,梁军在联想工作。那时,他接触用户的渠道是代理商和客服中心。“很多信息是在产品上市很久之后你才知道的,而用户购买决策的感觉和状态都在你的体系之外,你可能无法收集到这些信息”。但现在,用户都知道到微博、微信找到一家企业的老大。
“联想集团董事长杨元庆没有微博,和雷军、贾跃亭比起来,他无法体会到天天挨骂的滋味。”梁军说,“未来所有管理者都要习惯用户直接‘修理’你。”用户跟企业之间的距离,也就是眼睛到屏幕的距离。
在B2C研发流程发生深刻改变的同时,离一般消费者较远的B2B研发流程也在悄然改变。
相对来说,B2B业务的受众比一般消费业务要少得多,在某一个业务市场,可能目标客户就几百家,对于一家大企业来说,它的销售和工程师队伍是可以基本覆盖的。
“但我们现在也很看重互联网、社交网络这些互动渠道。我们的一些重要产品需求也来自DELL.COM技术社区、微博或微信。”戴尔大中华区企业解决方案市场部高级经理李毅介绍。戴尔PowerEdge VRTX服务器产品的创意,最早就来自戴尔微博与客户的互动。
“一些中小企业和大型企业分支机构在微博中反映,他们在业务快速发展时,添置和管理IT设备非常麻烦。他们要分别购买服务器、存储和网络设备,这些设备来自不同品牌,管理起来也各自为政,很不方便。而且,这些设备通常就放在他们的办公环境中,很吵。于是,我们根据客户的反馈设计了PowerEdge VRTX服务器,在一个不大的机箱中集成了计算、存储和网络设备,使用统一平台进行管理,工作声音比办公室空调还低。”李毅说,“我们通过网络互动,发现了新商机。”
万千人参与研发的流程还在不断进化。一个例子是,现在用户反馈的很多信息是照片、视频、语音等非结构化的,怎么在海量的非结构化信息中提取有价值的信息?怎么样进一步建立与用户的沟通机制?企业正在不断摸索。
硬件也要快速迭代
以往,很多大陆硬件企业学习的是台湾模式,但现在这个惯性套路被互联网公司打破了。
一般硬件开发的周期通常需要9到12个月甚至两年。但对于互联网业务来说,9到12个月已经发生翻天覆地的变化了,互联网研发不需预见未来三五年,只要考虑用户下个月怎么用就行。
“这是两个齿轮。一个1年转一下,一个1年转上百下。”梁军说,“但是做互联网服务,我们需要把这两个不同思维、不同运作方式的团队捏在一块,虽然很累,但可能可以创造出新的竞争力。”
梁军发现,软件研发一旦开工,真的就没头没尾了。软件团队也要求硬件团队不停地折腾,改这个加那个。但硬件开发还是有刚性周期。为了协调好两者,乐视提出了工厂版本这个节点,截止到工厂,硬件就不能再改了,这是两个团队合作的一个控制点。
现在,梁军把软硬件融合的思路又向前推了一步。在互联网企业,软件可以迭代,硬件也要迭代。
“过去做硬件一般不这么干。但现在硬件项目走到半截需要改,也要咬着牙改。”梁军说,“这个过程是很痛苦的,但现在,硬件已经适应了中途改设计、改思路的方式。只有这样,我们的产品出来才能够保持市场的领先性。”
nlc202309011953
除了加速硬件的迭代外,硬件也要建立为软件服务的思维。过去,如果一家企业做硬件,软件基本上就是陪衬,但现在软件是服务,硬件就是托儿。大众认为苹果是一家硬件设备公司,但其实它的厉害之处是知道怎么做软件和互联网服务。苹果知道软件怎么做才能做到更好。当软件需要做到更好性能时,就买一家芯片公司来配合。在大多数公司,一般还是“硬件就这样了,软件来改”。现在,企业要做的是—软件就这样了,照着这个软件来设计我们的处理器。
为特斯拉汽车提供半导体部件的英飞凌也感受到这家互联网车企带来的冲击力。
“特斯拉是一家特殊的车企。在特斯拉的内部,从开发到生产,只要是战略重点的地方,他们都做到了很好的垂直整合。另外,与传统车企相比,他们新车从设计到投产的速度缩短了25%以上。” 英飞凌科技 (中国)有限公司高级总监及中国区汽车电子业务负责人徐辉说。
和互联网等新型企业合作使英飞凌的研发方法也发生了改变。现在,他们更专注于产品的功能及应用,而非以硬件或机械为中心,这也让他们要改变之前的交流方式和追溯方式,大力加速了产品上市周期。
“我更倾向于这样的观点—软件和硬件不是谁赢谁输的关系,而是相互利用对方的特点来共赢。”李毅说。
据李毅观察,在他工作了10年的服务器领域,以前硬件和软件的开发往往是分开的。硬件开发一代代新平台,不断提高性能,软件开发一个个新版本,不断提供新功能,但在两者的结合上,做得不太够。“现在,业界越来越注重以客户应用所需的工作负载为核心了,看重的是软硬件整体方案的性能,这也推进了软硬件之间更紧密的配合。”他说。
一个明显的例子是,最近这些年,戴尔服务器和SAP的数据库软件就有了更紧密的配合。双方最新推出的基于PowerEdge R920的SAP HANA内存型数据库解决方案,由于CPU和内存技术的发展,使得软件厂商得以改进软件设计,大大提高了效率。以前在针对100亿条数据做一个询问的时间,从两个多小时缩短到了秒级,这就是软硬配合产生的力量。
开源加速新技术引入
在谷歌、Facebook等大型互联网企业的要求下,业界越来越多地使用标准化技术和开源技术,像深入各领域的Linux、手机操作系统安卓、云操作系统OpenStack、大数据领域的Hadoop和网络领域的OpenDaylight......开源技术正处于创新的中心。
对于很多企业来讲,如何利用开源、如何跟上开源社区的脚步是一门崭新的艺术。
以安卓为例,它的版本变化非常快。当你在安卓4.2上刚有个新想法,4.4已经出来了……特别是开源系统在早期发展时,非常不成熟,因此在版本升级中,很多都是根本性的变化。
过去,企业会对开源从底层到上层层层修改。“大家发现这个路子不行。大家慢慢意识到,你花很多精力不断地改安卓,但根本没法跟上安卓的变化。我们不可能比它更超前,唯一的办法就是跟着它的节奏,在它的基础上保持创新。”梁军说。
除了开源技术可以实现快速迭代外,开放技术架构和标准化技术也能让企业快速引入创新,缩短产品研发周期。而为了更快的引入标准化技术,企业需要在这些技术上提升自己的影响力。
传统上,在IT领域,CPU供应商英特尔有一个著名的“Tick-tock”技术开发周期,tick的更新一般每两年一次,tock更新则需要等上四年。可以说,这个“Tick-tock”技术开发周期过去一直驱动着整个IT世界的革新步伐。大型OEM企业,IBM、惠普、戴尔、联想会伴随英特尔的每一个“Tick-tock”周期,开发相应的产品。但在互联网时代,“Tick-tock”周期被彻底打乱了。
“我们现在可以在6个月内推出一些为专门客户定制的服务器。”李毅说。能够这么快推出新产品的重要原因就是,一些标准化技术可以直接从市场上取得,这加快了研发进程。而且,戴尔也投资了这些关键的标准化技术,从而把影响力转化为生产力。
更智能的制造
在研发进程快速迭代的同时,制造流程也变得不同。在乐视电视制造车间,除了后盖以外,全部流水线都是机器人在工作,其中一台机器人是全球首创的“激光切割机器人”。
怎么样让电视外边框没有缝隙,就像苹果产品一样?唯一的办法就是在制造时像苹果一样使用铣床,但全球所有工厂都没有这么大的铣床。后来,大家想到了激光切割技术。
为此,乐视电视的代工厂鸿海集团在全世界找了很多设备制造商,希望去设计这样的机器,可是没人愿意,因为市场上从来没有过这样的需求。最终一家企业答应试一试。设备制造出来了,有房子那么大,不像是加工电视机的,倒像是加工精密设备的,造价好几百万元。
在乐视电视制造现场,人们可以看到:激光切割机器人上的一个激光头先沿着电视周围转一圈,采集数据,然后再换上激光切割头,带着火星在电视周遭“转一圈”,一台台边框无缝的电视机就被制造出来了。
“有人说,互联网企业就是这么追求产品的极致,但实际上,我们这是被用户‘修理’出来的。”梁军说,“用户对互联网产品的挑剔程度,远远大于传统厂商。”
现在,很多互联网公司做硬件产品,愿意采用海外零部件也是这个原因迫使的。“我们要给用户带来最新的刺激感,而这种东西往往是海外部件公司愿意做的。相比之下,国内厂商更愿意做成熟产品。”梁军强调。
除了更智能的制造,还有更智能的供应链管理。
直销模式起家的戴尔,多年来建立了先进的IT供应链系统,这套系统是全球很多企业膜拜的,它保证戴尔在这么多订单、这么多配置和客户需求的情况下,怎么在零库存的前提下及时把产品交付。通过信息流管理物流,利用信息技术全面管理生产过程,每隔20秒就汇集一次订单,订单涉及的各种零组件会实时传递给上游供应商,然后戴尔会按照订单进行生产。
“我们不像传统企业,根据市场需求进行预测,再做计划,批量定制产品。”李毅说,“这大大降低了库存,提升了供应链效率。现在戴尔的库存时间只有7小时。”
设计迭代 篇5
考虑求解线性代数方程组
Ax=b (1)
式 (1) 中, A是N阶非奇阵, b, x是N维向量。
设式 (1) 的一个相容定常迭代法为
x (n+1) =Gx (n) +h, n≥0 (2)
式 (2) 中, G是依赖于A的N阶阵, h 是依赖于A和b的N维向量。
使基本迭代式 (2) 加速收敛的一种常用方法是Chebyshev多项式加速法, 也称Chebyshev半迭代法[5], 下文简称CSI方法, 其计算公式为三项递推形式。
式 (3) 其中, 实数α和β分别为G 的最小和最大特征值的估计值,
式 (3) 为二步非定常迭代, 对式 (3) 加以变形, 可得到等价的一步非定常迭代格式
v (n) =G*nv (n-1) +h*n, n≥1。
其中,
文献[1,2,3]对CSI方法的收敛性作了讨论, 得到一些结果, 在讨论中, 利用了一关键性条件[4]:
当
其中
受此启发, 在CSI方法中, 用ρ代替ρn, 便得到一种二步定常迭代法, 简称SCSI方法[5]。
式 (8) 也可写成等价的一步定常迭代格式
vn=G*vn-1+h*, n≥1
其中,
2G*和G1特征值之间的关系
引理1[6] 实系数二次方程x2-bx+c=0的两个根r1和r2的模小于1的充要条件是
引理2 如果G1的特征值为实数, 则S (G*) <1的充要条件是S (G1) <1。
证明由Williamson定理, 知G*的特征值λ由矩阵族, 其中, η∈SG 1的所有特征值组成的即满足
λ2-ρηλ+ρ-1=0 (10)
由引理1, 知道方程 (10) 根模小于1的充要条件是:
引理3[5] 若矩阵A是相容次序的, 则行列式
的值与α无关, 此处α≠0, 而β为任意数, E和F分别是严格下三角和严格上三角矩阵, D是对角矩阵, 且A=D+E+F。
定理 设G是相容次序的, 则
(1) 若η≠0是G1的p重特征值, 则-η也是G1的p重特征值;
(2) 对于G1的特征值η, 使G*的特征值λ满足
的充要条件是存在G1的某个特征值η, 使λ满足
λ2+ρ-1=λη; (13)
(3) 若λ 是G*的特征值, 则存在G1的一个特征值η, 满足式 (12) 和式 (12) ;
(4) 对于G1的特征值η, 若λ满足式 (12) 和式 (13) 之一, 则λ是G*的一个特征值。
证明 (1) 因G是相容次序的, 所以G1-I也是相容次序的, 由引理3, 在式 (11) 中取β=-η, α分别取为1和-1, 则可得
det (G1-ηI) =det (-G-ηI) = (-1) ndet (G1+ηI) 。
由此可知, G1的特征多项式可以写为
其中ηi (i=1, ..., l) 是G1的非零特征值, 则结论成立。
(2) 若η是G1的特征值, λ满足式 (12) , 则λ显然也满足式 (13) 。反之, 若η是G1的特征值, λ满足式 (13) , 则λ显然也满足式 (12) 或满足
λ2+ρ-1=-λη。
但由 (1) 可知, -η也是G1的特征值, 则结论成立。
(3) 对任意数λ成立
det (G*-λI) =det (λ (λI-G1) - (1-ρ) I) (14)
若λ≠0, 有
因而, 若λ≠0是G*的特征值, 则
(4) 现设η是G1的一个特征值, 若λ≠0满足式 (13) , 则由式 (15) 可得det (G*-λI) =0。
故λ 是G*的特征值;λ≠0满足式 (12) 由 (2) 可得
参考文献
[1]雷秀仁.切比雪夫半迭代的收敛性.数学研究与评论, 1989; (5) :277—280
[2]林建华, 郭广报.半迭代方法的收敛性.厦门大学学报, 2007; (1) :14—17
[3]Buledza AV.Current issues in the development of the theory of itera-tive methods with chebyshev ccceleration.Cybernetics and Systems Analysis, 1992;7, 489—656
[4]Young D M.Iterative solution of large linear systems.New York London:Academic Press, 1971
CORDIC迭代算法研究 篇6
CORDIC[1,2]主要应用于直角坐标与极坐标的数值相互转换,其在特征值,快速傅里叶运算[3]的定点运算[4,5]有重要意义。CORDIC迭代算法的基本原理如图1所示:
初始向量V0逆时针旋转角度θ后得到向量V1,则V0与V1存在数学关系(1):
在实际的工程应用中,所有浮点数据都需要转化为二进制数据在计算机处理,为方便运算取每一次旋转的角度θi正切值为2的倍数,即θi=tan-1(2-i),则迭代运算式可以表示为公式(2):
其中di表示矢量旋转的方向,取-1表示朝逆时针方向旋转,取1表示朝顺时针方向旋转。很多研究已经证明,对于迭代次数大于6的CORDIC运算,基本收敛于一个常数,这样上式的运算在计算机处理中就可以用简单的加法和移位来实现了。简写迭代公式并引入角度分量可以得到公式(3):
其中i=0,1……N-1,N为最大迭代循环数;arctan(2-i)=θ(i),迭代完成后需要在X,Y上分别乘上KN。整个旋转过程可以表示为一系列与旋转角度集相关的角度不断偏摆,从而不断逼近所需旋转角度的循环迭代过程。这样CORDIC算法基本上可以实现数学运算中所需的函数运算。
2 两种模式迭代算法
CORDIC算法最初主要用于平面直角坐标系(X,Y)和极坐标系(R,θ)之间的自由坐标变换,其迭代算法有两种操作模式:旋转模式迭代[6]和向量模式迭代[7]。旋转模式为将极坐标数据转换为直角坐标数据,而向量模式则将直角坐标的数据转换为极坐标数据。
2.1 旋转模式
旋转模式下,设定初始值(X0,Y0)=(R,0),Z0=θ,dn=sign(Zn),,当N→∞时,Zn→0。经过n次迭代后的三个累加器结果
由等式(4)得到极坐标系(R,θ)到平面直角坐标(X,Y)的转换。由于迭代只支持第一象限的转换,为支持四个象限的矢量都能转换到平面直角坐标,需要将初值转换到第一象限。其原则是根据表1进行初值变换,转换到第一象限。
旋转模式迭代流程如图2:首先设置好初始值,随后更新迭代次数n,根据公式更新Xn,Yn,dn以及Zn的值,这里更新Zn的值需要查表法来计算。接着可以根据Zn的值与门限阀值比较,如果Zn小于或者等于门限阀值,则停止迭代。当然这里也可以设置迭代次数,当迭代次数达到设置的值后,强行停止迭代。完成迭代后,Xn与Yn分别乘以Kn,更新得到极坐标对应的数据。
2.2 向量模式
向量模式是将平面直角坐标的数转换为极坐标的数,在向量模式下,首先设定初始值(X0,Y0),Z0=0,,当N→∞时,Yn→0。经过n次迭代后的三个累加器结果
由此得到平面直角坐标(X,Y)到极坐标系(R,θ)的转换。向量模式算法实现流程如图3,同样为在向量模式下支持四个象限的平面直角坐标都能转换到极坐标,当X0<0,需要多重复两次i=0的迭代运算。开始迭代流程如下:首先设置好初始值,随后更新迭代次数n,根据公式更新Xn,Yn,dn以及Zn的值,同样这里更新Zn的值需要查表法来计算。与旋转模式一样在这里更新Zn的值需要查表法来计算。但与旋转模式不一样,向量模式里迭代次数是根据Yn的值与门限阀值比较,如果Yn小于或者等于门限阀值,则停止迭代。当然这里也可以设置迭代次数,当迭代次数达到设置的值后,强行停止迭代。完成迭代后,Xn与Yn分别乘以Kn,更新得到直角坐标对应的数据。
3 仿真与结论分析
在进行CORDIC定点算法仿真前,首先需要建立一个查找表如2(LUT)存储角度值θ(i)。下表以定点位宽N=14为例,在旋转模式下进行不同迭代次数仿真。
CORDIC为移位相加算法,每一次迭代需要两次移位(2-i),一次查找表(查θ(i)),三次加法(di为符号系数)。
对CORDIC算法来说,一个粗略的精度估计为:K位精度需要K次迭代[8]。图4对不同迭代结果的误差进行了对比。从仿真结果可发现,14位精度的定点运算,迭代10次到12次,运算误差都在千分之一以上。而迭代14次或者15次,误差基本都在千分之一以下,且迭代14次与15次性能大部分点重合。因此在保证CORDIC定点性能前提下,最小迭代次数可以选择与精度位数相同的次数进行迭代。
4 结束语
从算法流程可知,快速傅里叶蝶形算法中旋转因子计算中,ROM不直接存储旋转因子的值,而是存储少量的单位旋转角度值,再通过CORDIC流水线循环迭代,得到所需的旋转角度值θ;无需复数乘法器,每步运算可分解为简单的移位、相加来完成;为了保证CORDIC计算精度,需要考虑旋转因子位宽与迭代次数关系,如果迭代次数多大,影响CORDIC运算的复杂度,次数不足,则影响CORDIC运算的精度。本文仿真验证了迭代次数与位宽的关系。当然后续也可以利用门限阀值对迭代性能做进一步研究。
摘要:在实际的工程应用中,经常需要计算角度的三角函数运算,比如计算流水线型快速傅里叶变换处理器蝶形运算中的旋转因子,采用CORDIC迭代加法器,性能与直接采用乘法器相比性能损失很小,但可以大大节约数字面积。CORDIC的定点化运算中,迭代次数是算法的重要指标之一,其关系到算法的复杂度及计算误差。算法迭代次数与要求的数据精度相关,该文将实现CORDIC算法的旋转模式,利用迭代不同次数得到的值与精确值的误差进行比较来确定CORDIC算法需要进行的迭代次数。这样在节约计算量的同时,保证计算精度不受较大影响,从而在节约计算量的前提下保证CORDIC算法的性能。
关键词:CORDIC,定点化算法,旋转模式,向量模式
参考文献
[1]Andraka R.A Survey of Cordic Algorithms for FPGA BasedComputers[C].Proceedings of the ACM/SIGDA 6th Internation-al Symposium on Field Programmable Gate Arrays(FPGA'98),1998.
[2]耿丹.CORDIC算法研究与实现[J].论文与技术报告:2007(S1):39-40.
[3]彭清兵,李方军.基于CORDIC算法的FFT处理器设计[J].工程应用技术与实现,2011(23):208-209.
[4]孙明革,陈靖.CORDIC算法在定点DSP中的应用[J].吉林化工学院学报,2012(5):61-62.
[5]Martin Uhlmann,Keshab K P.A high-speed CORDIC algo-rithm and architecture for DSP application[J].IEEE,2005,52:1-5.
[6]Granado J,Torralba A,Chavez J,et al.Optimization ofCORDIC cells in the backward circular rotation mode[J].AEU-International Journal of Electronics and Communications,2007,61:337-340
[7]王建军,徐力,安鹏.基于CORDIC的频偏估计幅角计算算法[J].技术与方法,2014(7):77-78.
观测迭代的插值滤波算法 篇7
虽然卡尔曼滤波器(KF)能够很好的处理线性滤波问题。然而在现实世界中我们所面对的问题大多是非线性问题。为解决非线性滤波问题,众多学者进行了大量的研究并取得了不少的成果。在众多研究成果中较为典型的算法有扩展卡尔曼滤波器(Extended Kalman filter),Unscented卡尔曼滤波(Unscented Kalman filter),基于Bayes理论的粒子滤波器(Particle filter),和基于Stirling,s内插公式的插值滤波器(DDF)。
EKF简单容易实现特点使其被大量应用到现实工程中,但EKF实现性差,估计精度差的缺点限制了其进一步的应用。PF算法虽然有着较高的跟踪精度但其庞大的计算量和粒子退化问题限制其在现实工程应用。2000年由Magnus Nrgaard等人提出的DDF算法,该算法和EKF相类似:算法简单,容易实现。但与EKF相比DDF采用Stirling插值公式进行线性化处理,避免了求解微分应算过程,在非线性程度较高的系统中DDF的跟踪精度要好于EKF。
但标准DDF算法被应用到初始化误差大或弱观测性条件下的非线性系统,常出现收敛速度慢,稳定性不足及跟踪精度低等问题。为此本文对一阶DDF算法上进行改进。在一阶DDF观测更新过程中加入迭代过程取代近似条件估计用于量测预测数据更新。仿真结果表明该算法在大噪声,及初始误差较大的情况下有着更优的跟踪精度和收敛速度。
1插值滤波器
考虑如下非线性系统∑:
其中xk∈ℜn为n×1状态向量,yk∈ℜm为m×1观测向量。wk∈ℜq为q×1过程噪声,而vk∈ℜr为r×1观测噪声。并假设噪声序列均为高斯白噪声其均值和方差为:
DDF算法和EKF十分的相似,不同的是DDF采用Stirling插值公式对系统进行线性化处理而非泰勒公式,从而避免了求解Jacobin矩阵,在状态数据更新上和EKF完全一样,只是在对协方差进行更新的时候可以采取更为简单的方法:通过更新协方差的平方Cholesky因子来完成。DDF算法如下描述:
计算平方Cholesky因子:
其中Sx为x的协方差0P的平方Cholesky因子,Sw为过程噪声w的协方差Q的平方Cholesky因子,Sv为量测噪声v的协方差R的平方Cholesky因子。
sx,p表示为Sx的第p列,相同的定义其他几个因子则有下面等式:
上述式子中h为一区间长度参数在高斯环境下一般有h=3,xk+1为预测状态向量有下述式子计算得到:
Sx-(k+1)为平方Cholesky因子由(10)进行通过Householder三角变换转换得到:
量测数据更新:
Sv(k+1)也需要进行通过Householder三角变换转换。
则量测和状态的相关矩阵为:
计算增益进行数据更新:
在对协方差更新上注意到式子(9),(10),(12),(13)及(14)之间的关系则在协方差更新中有:
所以使用协方差的平方Cholesky因子(可以由(19)通过Householder三角变换转换得到)更新来取代协方差进行更新可以简化计算。
上述即为DDF算法,详细的推导过程可以参见文献。
2迭代内插滤波器
2.1观测迭代
DDF和EKF一样,在量测预测更新上由ˆy(k|k-1)=g(ˆx(k|k-1),k)得到,这样就由于使用ˆx(k|k-1)来代替x(k)从而无法避免的引入了对观测的误差,同时对非线性量测方程进行内插公式线性化的时候也不可避免的增加了观测的误差。
为了解决上述问题,本文在观测中加入一个迭代过程来取代单纯的近似条件均值估计,用于代替x(k)的xˆk,j通过迭代过程不断的逼近x(k)减小量测预测更新过程的误差,提高算法的鲁棒性及跟踪性能。
式子中的ey,j和ex,j有如下定义
算法通过上述条件不等式来判断xˆk,j是否达到精度要求从而判断是否结束本次迭代。迭代从xˆk,0开始直至满足不等式子要求,或者达到最大迭代次数N结束迭代,进入下一时刻的估计。
2.2 IDDF算法
本算法和DDF算法的最大差别在于量测更新,本算法通过迭代环节减小了量测更新的误差具体如下:
假设系统方程为(1)则:
1.初始化算法参数:j=1,Pk,j=Pk,xˆkj,=xˆk。
2.计算平方Cholesky因子:
3.状态和协方差计算:
4.量测及相关协方差更新:
5.计算增益进行数据更新:
6.定义如下等式:
7.判断是否结束迭代:
如果j≤N下不等式成立,则使j=j+1重复上述算法过程直至不等式不成立或j>N。
8.数据更新:在上述不等式不成立
当不等式于j>N依然成立时取:
上述即为IDDF算法,要注意的是如Sx,j+1等平方Cholesky因子必须要进行Householder三角变换转换。
2.3 IDDF收敛性
假设
由于Pk,j+1,Pk-,j及Pkv,jv为正定,则那么根据(36)式将有
在j=1,2,L<∞下成立。又因为Pk,j+1,Pk-,j的每个元素均有界,所以:
成立。则根据(36),(48)及(49)可以得到:
成立。与(47)矛盾。所以可知假设(47)不成立(50)成立。
假设κk,j→0当j>N时成立,则从(36)及(38)可以知道有:
成立,即说明随着迭代过程,算法是收敛的。和标准DDF算法比较,该算法通过修正量测提高对状态估计的精度,同时在初始化值和最优值相距较远时,算法自动校正状态及协方差矩阵以加快收敛速度。
由于Pk,j+1,Pk-,j及Pkv,jv为正定,则那么根据(36)式将有:
在j=1,2,L<∞下成立。又因为Pk,j+1,Pk-,j的每个元素均有界,所以:
成立。则根据(36),(48)及(49)可以得到:
成立。与(47)矛盾。所以可知假设(47)不成立(50)成立。
假设κk,j→0当j>N时成立,则从(36)及(38)可以知道有:
成立,即说明随着迭代过程,算法是收敛的。和标准DDF算法比较,该算法通过修正量测提高对状态估计的精度,同时在初始化值和最优值相距较远时,算法自动校正状态及协方差矩阵以加快收敛速度。
3仿真实验
假设如下非线性模型:
在上述模型中wk为高斯噪声其方差为Qk=diag⎡⎣0.220.32⎤⎦,时间间隔T=0.2s。xk中的变量分别表示为x方向的位移和速度,y方向的位移和速度。
其中量测包括方向角θk及方向角变化率θ&k,量测方程如下:
其中rk=xk2+yk2,nθk及nθ&k为独立高斯噪声其方差为Rk=diag⎡⎣0.120.82⎤⎦,对上述系统进行M=150独立实验仿真。
均方根误差为:
由下述仿真实验数据可以看出IDDF算法在精度和稳定性上的表现都要比DDF和EKF优秀。
4结论
DDF算法在应对非线性程度高的滤波问题上的不仅在精度上而且在稳定性都要优于EKF。在DDF基础上的改进算法IDDF其精度,稳定性则要好于DDF。IDDF虽然提高了算法的精度及稳定性,但其增加的迭代过程,将加大算法的计算负担。同时对DDF这中改进算法也只适用于高斯噪声的环境,在面对非高斯噪声环境也是无能为力。
摘要:针对非线性跟踪系统中由于弱观测性,大的初始化误差使的系统出现不稳定、跟踪收敛速度慢,鲁棒性能差的问题,本文在内插公式滤波器的基础上提出了基于观测迭代插值滤波器。该算法在插值滤波器基础上,利用观测迭代过程来取代单纯的近似条件估计进行预测,减小观测函数线性化所带来的误差影响具有更精确的状态和协方差估计性能。仿真结果表明该算法在大噪声和大初始化误差条件下拥有比传统算法更高的跟踪精度,和更快的收敛速度。
关键词:非线性滤波,插值滤波器,迭代插值滤波器
参考文献
[1]Kotecha,J.H,Djuric,P.M,Gaussian Particle Filtering[J].IEEE Transactions on Signal Processing.2003.
[2]Julier S J,Uhlmann J K.A New Method for The Nonlinear Transformation of Means and Covariances in Filters and Estimators[J].IEEE Transactions on Automatic Control,2000.
[3]Julier S J,Uhlmann J K.Unscented Filtering and Nonlinear Estimation[J].Proceedings of the IEEE.2004.
[4]袁泽建,郑南宁,贾新春.高斯-厄米特粒子滤波器[J].电子学报.2003.
[5]Ngarrd M,Poulsen N M,Ravn O.New Developments in State Estimation for Nonlinear System[J].Automatica.2000.
肥业大咖谈产品迭代 篇8
新品战略, 一直是复合肥企业的发展常态。从单质肥、复合肥到缓释肥、控释肥, 到水溶肥、液体肥, 再到腐殖酸肥料、中微量元素肥, 肥料市场上产品迭代的速度一直在加快。
回归到使用者的角度, 土壤需要的无非就是氮磷钾、有机质、腐植酸以及各种中微量元素。但市场上品种繁多、各式各样的肥料已让农户陷入选择困难之中, 也为假冒伪劣产品提供了温床。
产品创新是企业发展的不竭动力, 是企业发展所必不可少的, 但速度快到让消费者都无所适从的产品迭代真的有这个必要吗?对于肥料行业目前的“企业频频推新品、产品概念满天飞”现象, 我们采访了一些行业大佬, 听听他们怎么说!
记者:最近几年, 产品创新似乎是行业的主旋律, 尤其是2016年, 几乎每个企业都在推出新品。为什么大家现在这么热衷于产品创新呢?
李英翔 (云天化股份有限公司总经理) :世界上从来都没有经久不衰的产品, 如果有, 就只有粮食了。但不能忽视的是, 粮食的消费方式和消费结构已经发生了重大的变化。因此, 无论是技术驱动, 还是市场驱动, 创新的结果往往都显而易见———部分产品通过迭代成为主流, 部分产品萎缩甚至退出历史舞台, 比如现在很少有人用算盘和“大哥大”了。这一点很好理解。所有的产品都有其生命周期, 化肥产品也不能例外。化肥产品本身的创新, 一是基于企业必须依靠创新来实施产品战略, 二是基于化肥产品的用户状态发生了重大的变化, 这里我讲的用户不是农民, 而是作物和土地。化肥企业必须要实施产品战略, 才能创造价值, 而只有用户满意的产品, 才有生命力。
梁福伟 (史丹利农业集团营销中心总经理) :产品的推陈出新是市场竞争的结果, 通过差异化来获得竞争力是一种营销方式。但随着供给侧改革的深入和消费市场的升级, 创新会在竞争中回归产品本质, 用户思维将引导企业更加聚焦产品价值, 带给用户良好体验。我们始终相信好产品会为自己代言, 具有核心技术才会带来用户强黏性。
杨帆 (江西开门子肥业营销公司总经理) :“化肥零增长”与“提高土壤地力”两大政策的提出, 对于各大肥企而言既是挑战也是机遇。日趋激烈的复合肥市场需要更科学合理的政策导向, 但一成不变的发展是肯定不够的, 企业就必须推除出新。新型肥料的天地日趋广阔, 这种集众多优势于一身的新兴产品, 在这个推崇创新的时代, 迅猛发展将是一种必然趋势。产品创新是企业发展的动力, 通过产品创新, 提升产品的竞争力, 拓宽市场, 树立良好的品牌。江西开门子肥业公司积极响应国家减肥增效的目标, 与中国农科院联合研制海藻酸复合肥, 与沈阳应用研究所联合推出稳定性肥料, 这些新型肥料在肥料利用率、环境保护上均得到了广大用户的认可。创新产品是企业必需的发展, 不创新永远跟不上市场的节奏。
黄洪星 (山东泉林嘉有肥料有限责任公司运营总监) :新产品爆发式地出现是农资市场繁荣的标志, 也是市场细分和用户不同需求的必然结果。评价一款产品, 不必纠结于它是否“新”, 而应关注它是否“真”。我们应该摒弃的是单纯概念的炒作, 加强新产品的认证及市场管理, 用规则的大浪淘出新产品中的真金!
王荣耀 (《农资与市场》首席专家) :一个行业的企业不断推出新产品, 说明了这个行业竞争激烈、品牌集中度低, 也说明消费者的不成熟;一个企业不断推出新产品, 说明消费者对其品牌的忠诚度低;一个企业不断推出新产品, 没有爆款产品, 没有单一能上量的产品, 必定导致费用高、消费者对其品牌的认知度低, 企业需要新品来刺激市场对其的认知。
肖然 (农资营销专家) :如今复合肥市场竞争惨烈, 产品概念满天飞, 说明大多数企业的竞争还停留在价格战、广告战、促销战等低层次阶段。当所有的营销方法都失灵的时候, 企业竞争应该回归到产品本质上来。
记者:但是就目前而言, 产品更新的速度太快, 市场上各种各样的肥料品类、产品数不胜数, 有人说这是企业的创新之举, 也有人说这只是企业追逐利润的行为, 这个问题该怎么理解?
蒋华 (瓮福贸易有限责任公司董事长) :产品迭代过快, 既是企业逐利行为, 又是创新的必需, 同时也是阶段性的必然过程。从本质上来说, 作物需要的确实无非就是氮磷钾、有机质、腐植酸以及各种中微量元素。不同的地块、作物在不同的气候条件下, 对肥料的配方要求都是不一样的, 这就要求企业做到小批量、多批次、多配方生产, 但由于工业化生产一定是需要经济批量的 (达不到一定的批量, 成本会大幅度上升) , 企业就需要不断地进行大配方、小调整, 这在客观上造成了产品的迭代;同时, 为不断地将一些新技术、新工艺、新原料应用到化肥产品中去, 企业就不断地进行产品迭代更新。
周长太 (鲁西化肥事业部市场总监) :营销的本质终究要回归产品!没有真正效果的产品, 即使价格再低、宣传促销力度再大、渠道再多都将昙花一现, 终究是没有生命力的。鲁西集团一直在给农户讲“人可以骗人, 但是地不骗人, 不给地用优良的农资产品, 地就不会长出好庄稼”, 说的就是这个道理。产品创新固然重要, 产品不断更新换代也是市场发展趋势的必然产物, 但更重要的是真正意义上的创新, 也就是能带来实用效果的创新, 而不是仅为了逐利的假创新、忽悠型创新。面对当前的市场环境, 单纯基于逐利行为的创新变得毫无意义, 因为农民越来越理性, 不会轻易上当了。因此个人认为, 产品迭代过快是创新的必需!
陈国庆 (中盐安徽红四方肥业总经理) :企业是社会的经济细胞, 细胞裂变和更新推动社会的不断进步, 充当发动机的一定是企业产品创新。唯有创新, 让社会突破一个又一个发展的瓶颈。肥料企业加快产品迭代速度是好事, 说明全行业认可了复合肥料作为农业生产资料的本质属性, 去掉花哨, 回归本真;少了过度营销的邪念, 多了服务农业的真诚。红四方在全国首推控释肥, 后期又陆续研发投放了一系列肥料新品, 提高了利用率, 改良了土壤, 同时对环境友好, 得到用户的广泛好评。创新可以获利, 但是一味逐利肯定妨碍创新, 利润只是创新的副产品。全行业应该倡导真正有核心技术的创新, 不是假创新, 也不是伪创新。
陈家辉 (迪斯科化工集团董事长) :肥料产品的更新迭代是创新的必需, 产品做好了, 利润自然找上门。任何行业任何时间段, 产品永远是第一驱动力!对农资行业更是如此!传统单质肥料、复合肥同质化现象严重, 不能适应现代农业的发展要求, 不能满足平衡施肥、测土配方施肥、机械化施肥、水肥一体化施肥等要求, 肥料企业的发展应积极推进国家“要实现在2020年化肥零增长”战略的发展, 创新的步伐不能停。
记者:既然创新是企业发展的必需, 那什么样的创新才是真正的创新呢?
张宇 (四川蓥峰实业有限公司营销公司总经理) :企业逐利是本能, 而产品核心技术能真正有利于行业及用户需求习惯、效率的提升, 这样的创新才是企业及产业链价值利润产生的根源。四川蓥峰坚信涉农产品创新的本质是技术加服务的普及传递, 好产品加好的作物解决方案才能等于好的效果。因此在深度研究中国农业用户的施用习惯、特点及农产品品质提升环节后, 从生态环境改善、营养功能完善及施用简便3个方面研发出的“康健营养护理肥”, 就是基于“益土、益肥、益健康”的理念。
张梓榆 (山西华鑫肥业股份有限公司副总经理) :创新, 要以错位思维赢得产销共同发展。当前化肥产业面临诸多挑战:一是产能过剩且同质化严重;二是创新能力差, 概念性强却经济效益低;三是资源消耗高, 投入多、产出少;四是环境问题凸显, 直接影响生态文明建设。眼下的肥料产品结构已不能完全适应中国现代农业发展的需要。真正的好肥料, 要满足“肥害最小、流失最少、保护土壤、施用性广、利用率高、增产质好”的基本条件。华鑫肥业依托华鑫集团自身产业链优势, 致力“水肥一体化”和“生态型复合肥”的钻研和开发。其中自主知识产权的“鑫聚力”系列聚合硝基生态肥, 适用于高、中、低档作物的“硝基生态水溶肥颗粒剂”和“硝基生物肥”, 正是以这种错位思维创造了众多真正的差异化产品, 开辟了行业中的一片蓝海。
田彬 (川金象·四川瑞象农资有限公司副总经理) :这两年产品“创新”思潮加速更迭, 大多数说到底不是产品本身, 而是为了销售。产品创新要不要?必须要!但你得有方向、有度。方向是什么?就是需求。什么需求?就是土壤改良、减少污染、提高吸收利用率、降低成本、增加产量、提高品质的需求, 而不是简单地为了卖货而“创新”。有度是什么?就是客观、实在, 不能乱吹嘘。企业必须逐利, 允许你吹一点, 但做产品还是得实在, “酒香不怕巷子深”的时代正在回归, 有效果、性价比高的产品不是吹出来的。川金象自己只生产硝基肥, 我们是硝基肥家族, 不管是硝基复合肥系列、智能液体肥系列、水溶肥系列, 还是固态、液态的氮肥系列, 都是硝态氮主导, 有些产品适当添加了矿源黄腐酸和中微量元素等。做产品总的指导思想就是:生态、高效、性价比高、针对性强, 真正服务大农业。
冯小海 (南京轩凯生物科技有限公司总经理) :肥料企业进行产品升级主要有两个阶段:第一阶段是从平衡配方产品阶段升格为养分差异化或产品类型差异化的阶段, 第二阶段为助剂差异化产品阶段 (也称“肥料+”阶段) 。目前, 常规平衡配方产品不挣钱甚至亏损是常有的事情, 第一阶段企业可从生产工艺角度自身内部升级完成, 这是小升级, 大部分企业可自行完成, 但并不能称为真正的差异化产品。而第二阶段为“肥料+功能助剂”阶段, 企业需要外部专业协作单位完成, 这是真正的肥料产品迭代。
记者:液体化、添加中微量元素、健康肥料、测土配方、作物专用……目前市场对肥料的研究朝着多样化发展, 那么, 肥料产品的创新究竟应该朝着什么样的方向发展呢?
杨官波 (金正大集团执行副总裁) :创新是企业发展的核心竞争力, 更为企业突破发展困境、驶向发展蓝海开路。金正大一直坚持产品结构的优化, 复合肥已连续7年销量领先, 缓控释肥连续10年市场占有率第一。金正大在开发肥料全系列的产业链条, 公司的产品结构得到进一步优化, 高毛利率的硝基肥及水溶性肥料占比进一步提高。土地相关环保政策的陆续出台将利好水溶肥、控释肥等新型肥料的发展。
赵程云 (湖北新洋丰肥业副总经理) :农资行业目前正在经历转型阵痛, 产品创新处于非确定期。产品迭代速度快是市场高度不确定、需求无法具象的行业自我调节的产物。产品迭代循环是成熟创新成果的探索过程, 但这并不意味着产品迭代可以只求速度枉顾标准、坑农害农。少数意图通过概念炒作牟取暴利的产品, 都是不能长久的。聚焦到肥料行业, 满足农民需求、解决农民实际问题, 是肥料产品迭代的基本标准和最终目的。在目前混乱的产品竞争中, 好产品如何能够顺利服务、惠利农民, 更是一个迫在眉睫的问题。新洋丰目前正在积极践行探索“互联网+化工+农业+金融”的转型策略, 业务延伸范围涉及到设施农业、现代农业装备、农产品收购、农业金融服务等解决方案的提供。
徐东奎 (安徽六国化工副总经理) :产品创新, 本着科学严谨的态度去做, 实实在在去做, 是利民、利企、利国的。控释肥、海藻肥、锌腐酸肥料以及将一些中微量元素有效整合的新型肥料, 经过多年的田间试验和推广, 其效果和性价比已得到广大农户的认可和信赖。水溶肥、液体肥配合设施方便施用, 也得到农户认同。这些新型肥料在提高利用率、改进施肥方式等方面的创新, 理应得到政府和行业的支持和鼓励。六国化工当前关于产品方面的主要工作是, 针对不同作物, 在控释肥等新型基础肥料中添加作物个性需求的中微量元素, 再根据不同生长时期, 组配沃尔田生物肥、菌肥、水溶肥、液体肥, 形成“作物全程营养方案”, 更好地、更专业地服务农场主和农民。
毛国斌 (湖北三宁化工股份有限公司副总经理) :致力于提高农业效率的水肥一体化以及改善土壤营养结构的添加中微量元素、生物刺激素的氮磷钾复合肥应当是主流方向, 至于其他各种各样的肥料新产品则是一种补充。
廖起成 (湖北祥云集团总经理) :企业作为实体经济主体存在的理由是解决社会部分问题。我们坚决反对夸大宣传、过度包装、炒作概念, 以创新之名行套利之实的“伪创新”行为。高企的宣传成本最终由客户买单, 徒增农民负担。概念的翻新, 终将被市场唾弃而淘汰出局。我们把企业利润视为客户的奖励或“小费”, 是客户价值的溢价。我们依托祥云特有的资源优势、技术优势, 提出健康发展理念, 实施健康发展战略, 产品创新坚持三大方向:一是精准配方, 专用定制配方, 提高肥料利用率;二是依据“缺什么补什么”原则, 合理添加作物需要的中微量元素, 提高产品质量和产量, 凭借高性价比的产品, 给农民朋友带来真正的实惠;三是改良土壤, 保持土壤生命力。我们崇尚真创新, 坚持走创新发展道路, 尤其注重产品创新, 我们自主创新研发生产的高浓度、高质量工业级磷酸一铵和磷酸二氢钾, 是水溶肥原料, 大幅度降低了水溶肥原料成本。
梁培仕 (施可丰北方营销中心总经理) :最近两年来, 由于玉米等主要粮食作物价格大幅下滑, 粮贱伤农, 老百姓对于土地的投入减少, 一部分中小企业巧钻空子, 在没有改变肥料品质的前提下, 打出了稳定性肥、长效缓释、缓释长效等概念性产品, 通过价格低廉和长效等卖点, 同时加上诱人的促销产品诱导农户购买;更有甚者, 部分大企业也打上了“缓释、长效”等一些字样, 进行非正当竞争, 使得稳定性肥料市场乌烟瘴气、鱼龙混杂。尽管市场如此, 施可丰仍将保持精益求精的品质, 继续加大对稳定性肥料、同步营养肥料等新型肥料的技术升级和产品研发的投入, 在降低肥料施肥量、提高利用率、农民省工省时、环境友好等方面继续努力, 为国家提出的2020年的化肥零增长作出自己的贡献。
徐文峰 (山东金沂蒙生态肥业总经理) :只有创新, 才能引领企业发展和社会进步, 但是“不忘初心, 方得始终”。中国从最初单质肥料的一枝独秀到今天新型肥料的百花齐放, 可谓实现了跨越式发展, 但是因使用化学肥料给土壤和环境带来的负面影响显而易见, 因此肥料产品升级换代首先要满足节能减排和环保生态的要求。金沂蒙一直致力于环保生态肥料的研发生产, 用回归本源的理念进行产品升级换代, 在力求保证农民增产增收的同时减少资源污染和改善土壤结构, 肩负起了化工造福人类、创新发展农业的社会责任。
李彬 (中国科学院合肥物质研究所博士) :作物需肥是有规律的, 不同地域、不同土壤、不同气候、不同作物、不同的产量目标、不同的管理水平, 要求肥料的产品配比和施肥量不可能相同, 因此, 要进行测土配方、平衡营养, 根据需要选择搭配和配比, 而不能根据习惯和原料价格的高低来制定配方。
游戏迭代!三栖时代到来! 篇9
《英雄联盟》这款游戏在国内拥有2亿以上的玩家,而玩过《英雄联盟》的人又大多看过相关动漫《啦啦啦啦撸啊撸啊》(哦不对,说顺嘴了,学名似乎叫《啦啦啦啦德玛西亚》)。《啦》的第三季《超神学院》以优秀的剧情、卓越的特效备受好评,于是制作组趁热打铁,推出了以《超神学院》为故事背景改编而来的同名手游,基于COCOS2D引擎制作,丰富多彩的功能玩法告别传统卡牌式的无脑推图刷本,酷炫的打击感和真人配音让你趣味十足,感受指尖上的跳跃操作。
《超神学院手游》是一款以LOL英雄世界为背景的角色扮演类卡牌游戏。玩家在游戏内将与耳熟能详的LOL英雄人物共同驰骋于广袤的符文大陆,对抗终极邪恶势力。玩家可以自己组建心目中的理想阵容,AP(魔法)、AD(物理)随便搭配,各种英雄尽情组合。打造你喜欢的英雄团队与专属装备。
梦幻西游开启新征程!
十二年了!一款游戏持续运营十二年了!这样的战绩……恐怕连游戏制作商自己都没有预想到……
随着手游时代来临,电脑端的《梦幻西游》受制于收费模式的局限,已经越来越力不从心了。趁着这头快要瘦死的骆驼还有点热乎气,制作团队机智地开始向手游发展了!
“《梦幻西游》手游”是由网易公司出品,与中国人气最高的MMO网络游戏《梦幻西游》同名的手游!
手游版将中国古典建筑的凝厚与Q版的意趣风格糅合在一起,将游戏场景打造成一幅“游戏画卷”。相比起惯用的场景贴图手法而造成的视觉单调而言,所有场景都由美工手绘完成。游戏中,分为人、魔、仙三界,而你可以选择人物和门派,玩法和PC版梦幻西游一致。
Q版造型的可爱人物,浓郁古典风的精美场景,原汁原味的经典玩法,尽在手游重现,随时随地领略梦幻西游的精彩与快乐!
《梦幻西游》手游目前总共设置了大唐官府、方寸山、狮驼岭、阴曹地府、普陀山、龙宫六大门派和剑侠客、巫蛮儿、杀破狼、骨精灵、龙太子、玄彩娥六名角色供玩家选择,一个角色可以在对应的两个门派中任选一个加入。在角色和门派设定方面本作很大程度的还原了“端游”元素,如此设定对于梦幻西游老玩家来说必定拥有强大的杀伤力。
前线快报
三国杀意想不到的延续方式:
说《三国杀》这款游戏是桌游业的里程碑毫不夸张,仅靠一款游戏就带动一个市场,这种实力完全就是传奇般的存在。
但是随着越来越多的新鲜游戏如雨后春笋般冒出来,三国杀游戏模式单一的问题就愈发明显了。自“军争篇”以来,三国杀的更新模式就只是不断增加新的武将,而游戏环境却陈旧不堪,越来越强(越来越读不懂)的武将技不仅没能吸引新玩家,反而逼走了一大批热爱老武将的老玩家,三国杀要想活下去,创新游戏模式刻不容緩。
《三国杀传奇》是三国杀原班团队倾注两年心血制作的2.5D手机卡牌游戏,完美继承了《三国杀》特色。它描述了主人公在三国的世界里,通过收集三国杀武将,以抓住反贼为目标,消灭反贼头头的心路历程。作为一款最新的卡牌手游,涵盖了遵循三国历史的剧情,惊心动魄的抢夺战略,别具一格的天梯模式,再加上过关斩将的设计,让游戏更新颖、有趣。
《三国杀传奇》是一款以国民级桌游三国杀为题材的创新策略卡牌手游大作,游戏集合Q版三国杀武将,立体卡牌,炫酷战斗,矩阵式策略,金牌剧情等众多颠覆级玩法亮点,革命性的开创臣服系统,副将系统等创新玩法。
基于优化迭代的博弈树算法 篇10
机器博弈是人工智能研究的一个重要方面, 人类对机器博弈的研究衍生了大量的研究成果, 这些成果对更广泛的领域产生了重要影响。
从1990年末, 诺曼·施瓦茨科普夫利用美军的超级计算机对“沙漠风暴”行动进行战略模拟到1997年IBM公司的超级计算机“深蓝”与当时的国际象棋世界冠军卡斯帕罗夫进行了一场大肆渲染的比赛, 基于博弈树搜索技术的机器博弈已经取得了长足的发展, 并且形成了一整套提高搜索效率的办法。而且, 由于博弈技术衍生而来的多种应用, 在航空调度、天气预报、资源勘探、军事博弈、金融 (经济) 调控等领域, 也取得了大量引人瞩目的成果。
“二人零和、全信息、非偶然”是博弈中最简单的一种情况, 但是通过对它的研究仍然可以取得很多有用的成果, 并且在复杂情况下, 对原有的成果进行适当的变换, 就能应用于复杂的形式。当今世界上的主要机器博弈技术包括以下几种:基于α-β剪枝的极小窗口搜索、历史启发规则、置换表技术和基于多次搜索的迭代算法。它们各有优缺点, 并且存在着一定的互补作用。
文章将对各种技术进行细致的分析, 然后利用它们之间相互补充的关系, 提出一种改进的算法, 并且通过具体的实验数据说明改进的算法确实提高了搜索效率。
1 传统搜索算法分析
在基础的α-β算法中, 存在着四个主要的问题。第一, 算法为了保证分析的节点值落在估计的范围内, 采取了全窗口搜索的策略——一般在区间 (-∞, +∞) 进行, 这样的策略使得区间的收敛速度较慢, 在极端情况下和极大极小算法的时间复杂度相同;第二, 研究发现α-β算法的效果对于节点的排列相当敏感, 在节点排列顺序良好的情况下, 算法的效率可以大大优于节点排列不好时的情况, 但是基础的α-β算法却没有提供任何意义上的排序手段去改善分析节点前, 搜索树的节点排列顺序;第三, α-β算法是基于递归模式完成的, 但是在算法分析的书中通过分析, 确定简单的递归模式会存在致命的问题, 导致同一节点的重复计算, 降低了算法的效率;第四, 博弈事件本身存在着一定的特点:在不同阶段, 局面的复杂性会存在明显的变化 (一般情况下随着时间的推移局面将越来越简单) ;这样在相同的硬件条件和相同的时间开销下, 在简单局面下就可以分析更多的层次来得到更加好的行动, 但是基础的α-β算法却没有考虑到这些, 仍然按照指定的深度进行搜索, 从而不能充分利用硬件资源。
1.1 极小窗口搜索
为了使得算法一开始就在一个较小的窗口内进行收敛, 存在着两个主要的算法:渴望搜索和极小窗口搜索。渴望搜索的基本思想是:在指定深度为n的情况下, 进行两次搜索。第一次在全窗口模式下计算深度为n-1的博弈树, 并且将得到的最佳步骤值X作为n层博弈树最佳步骤值的估计。然后在X两边取一个小窗口 (X-window, X+window) 进行计算。极小窗口搜索则是基于如下假设:假定第一个节点是最佳的行动, 其后继则次之, 直到另外一个节点被证明是最佳的。在搜索时利用极小窗口 (v, v+1) 进行, 这样可以大大提高搜索中剪枝的效率。极小窗口搜索在一般情况下是优于渴望搜索的, 其原因有两点:极小搜索是基于本层的节点, 这样它不会像渴望搜索那样在不同层次最优解值有巨大变化的情况下, 效率下降 (水平效应) ;其二极小搜索是在 (v, v+1) 中进行的, 它不需要像渴望搜索一样估计具体的窗口大小 (因为窗口的大小在渴望搜索中是很容易受到估值函数的影响的, 而搜索的命中几率却又依赖窗口的大小) 。根据基于象棋模型的研究发现, 在估值函数一样的情况下, 极小窗口搜索比一般的α-β算法效率提高了很多, 就是和渴望搜索相比也是占优势的。进一步测试发现极小窗口搜索在局面动荡情况下比渴望搜索能体现出更好的性能, 这是因为动荡的局面下, 水平效应会更加明显 (所谓动荡的局面就是类似在棋类中连续交换子力的情况) 。所以在一般的博弈算法中, 极小窗口搜索使用频率是高于渴望搜索的。
但是极小窗口存在的问题也是显而易见的:当节点的顺序不好的时候, 它的收敛速度会受到很大的影响 (这是α-β算法的一个特性) 。造成这个结果的原因是因为搜索中没有存储节点的历史信息, 不能在搜索之前对节点进行排序, 帮助搜索的进行。
1.2 历史启发搜索
上面指出, 研究发现α-β算法的收敛效率对于节点的排列相当敏感, 节点排列顺序的优劣直接影响α-β算法的剪枝效率。一个直接的说明就是:当测试棋类活动中对称点的相同行动时 (比如象棋中用左右两个炮分别使用“当头炮”作为开局) , α-β算法的效果就会有明显的差异。根据Knuth和Moore所做的研究表明, 在节点最理想的情况下搜索的节点数目约是最不理想情况下的平方根的2倍左右。所以在搜索之前能够对节点进行排序, 然后再进行搜索, 对剪枝时的收敛是有很大帮助的。历史启发规则就是为了在搜索前根据其他子树搜索的信息, 排列现有的节点。J·Schaeffer研究发现, 在α-β算法中对一个好的行动进行如下的定义:
· 由其产生的节点本身引发了剪枝
· 由其产生的节点是其兄弟节点中最佳者
然后根据节点所在层次给予这样的行动一定的得分 (具体的得分J·Schaeffer认为应该是2depth——depth是节点和叶子节点的距离) , 在搜索其他子树时, 按照行动的优劣重新排列所产生的节点, 就能够保证剪枝算法的高效进行。在实际环境的测试中, 数据证明利用了历史启发的搜索, 在相同博弈树中所花的时间比单纯的α-β算法随着深度增加带来指数级的减少, 从而也更加证明了节点的排列对剪枝效果是有很大影响的。
但是历史启发搜索有两个小的问题:第一, 它的历史仅仅局限于一次搜索, 不能从以前的搜索中带来启发, 所以在最上层的节点是没有历史信息可以用的。需要注意的是在博弈中, 最上层的节点所代表的行动才是真正可以实施的行动, 所以让最上层节点也有相应的历史信息是能够更好地提高剪枝效率的。第二, 对重复局面的多次分析。由于一个好的行动在不同子树中产生的节点都可能是其所在子树的最佳行动, 所以历史启发搜索会多次去分析这个节点, 并且调用其相应的估值函数。在估值函数简单或者高效的情况下, 问题不那么明显;但是, 当估值函数复杂时情况就会变得糟糕。
1.3 置换表
在基础的α-β算法存在的第三个问题是由于递归方法引起的。这是因为递归有时会有一个致命的弱点, 那就是最简单的直接递归实现, 会随着层次的增加带来时间指数级别的增长。在斐波纳契数的简单递归实现中, 就会有这样的问题。
程序1 斐波纳契数 (递归实现)
从上面的代码可以得知, 之所以时间会按照指数级别增加, 是因为在计算n时需要计算n-1和n-2, 在计算n-1时又要计算n-2, 同一个值可能在不同子树中被计算很多次。所以, 如果在搜索中记录分析过的局面, 在不同子树碰到同样局面时, 不再分析而是直接用存储的结果, 将会有利于搜索速度的上升, 而且随着搜索深度的上升, 命中率也将提高。置换表就是在这样的思想中加入的。置换表运用了哈希技术, 实现了节点的高效存储和读取, 在置换表的作用下, α-β算法的效率得到明显提升, 而且深度越大, 效果越明显 (这是因为随着搜索层次的增加, 命中概率也会增加的原因) 。
置换表算法也存在两个问题:1) 不能进行小窗口剪枝, 因为这个算法是基于基础α-β算法的, 搜索范围是全窗口。2) 没有运用历史启发, 它只是简单地记录分析过的局面, 而没有给予它相应的得分信息。
1.4 迭代深化
在硬件允许的条件下, 计算的层次越深考虑到的情况也就会越多。迭代深化就是一个不断求精的过程, 由从低到高的顺序进行对同一局面一系列的分析而构成, 同时通过计算搜索用的总时间, 来决定是否继续搜索 (这个时间依赖于具体博弈事件) 。这样做的好处是显而易见的:第一, 如刚才的分析所说, 博弈事件在不同阶段内复杂度会有较大的差异, 在复杂阶段由于考虑的因素较多, 所以搜索深度在较浅的情况下, 时间花费已经很高;但是在局势简单的情况下, 分析相同的层次时间花费就会下降。在局势简单时, 利用迭代可以在相同的时间内分析更多的层次, 甚至可以发现隐藏的动荡局面。第二, 第n-1层的结果可以对第n层的结果进行历史启发, 在一定程度上加快收敛的速度。通过测试迭代算法, 发现迭代算法不但在一层的搜索中优于α-β算法, 而且因为在简单局势下可以分析更多的情况, 在分析精度上也超过了基础的α-β算法。
但是迭代算法也存在着明显的缺点:最大问题在于, 在迭代中搜索的次数过于密集, 从深度1一直分析到深度n, 期间存在着大量的重复搜索;同时由于没有使用节点排序等技术, 在确定的层次中搜索效率低于上面的三种技术。
2 算法改善
2.1 算法建模
上面的四种技术各有各的优点, 但同时也存在着缺点。根据查看各自的特点, 合理整合它们, 是可以得到更加优秀的搜索算法的。首先分析一下每个技术对算法改善的程度。
从表1中可以清楚地看到, 历史启发搜索在同样的情况下对搜索效率的提升是最高的;极小窗口也有很好的效果, 而且极小窗口搜索可以解决历史启发收敛速度慢的特点 (这里指α-β剪枝和极小窗口剪枝的区别) , 所以将原来使用基础α-β的历史启发搜索代替为使用极小窗口的历史启发搜索会取得更好的效果。同时, 置换表也可以加入其中, 记录分析过的局面, 加快节点的分析速度。所以算法的基本思想是以极小窗口搜索算法为基础, 然后在其中加入历史启发的思想来进行节点排列, 提高收敛的速度, 同时应用置换表技术, 避免相同局面节点的重复分析。接下来, 用迭代深化多次调用这样的组合, 从而取得令人满意的效果。加入迭代算法的理由是:对于最上层的节点, 不论是历史启发还是置换表都不可能提供有利于最上层节点分析的内容。加入迭代算法后这个问题就能得到很好的解决。首先, 迭代可以产生浅层分析的最佳步骤, 作为深层分析中最上层节点排序的依据;其次, 迭代算法引起的置换表信息变化, 也可以被深层的分析应用;最后, 由于极小窗口搜索就是基于第一个节点是最佳节点的假设, 所以它能够提升极小窗口搜索算法的效率。
这个思想虽然很好, 但是仍然没有最大程度地利用迭代带来的好处。因为既然可以返回最优节点的结果, 为什么就不能返回次优节点的结果或者前面n个较好节点的结果呢?所以, 在迭代搜索前加入了一个节点数组记录, 用于记录所有第一层节点在上一次迭代中的得分可以起到返回多个节点分析值的结果。需要指出的是, 这个和历史启发算法中的得分含义是不同的。历史启发中的得分只可能是0或者正整数, 但是在用于记录第一层节点中节点得分的值可能是正、负或者零。它们的含义是:正, 说明在浅层的搜索中, 这样的行动能够带来对本方有利的局面;负, 说明在浅层的搜索中, 这样的行动能够带来对本方不利的局面;零, 说明这样的行动在上层中或者是双方均衡的局面, 或者是因为剪枝而没有分析的局面。在迭代n层时, n-1层的记录就能被用于排列第一层的节点, 从而在前几个节点中就能包含着最优的行动, 导致整棵博弈树迅速收敛。图1描述了加入了第一层节点全部排列的思想后程序的流程图。
2.2 算法分析
在完成后, 测试阶段发现了上述算法的两个问题:第一, 在和没有加入迭代深化思想的算法比较, 速度没有明显的优势, 而且在搜索深度较浅的情况下甚至不如原来的算法;第二, 算法在局面平稳阶段效果较好, 但是当局面不稳定时就会变差。
经过比较发现, 第一个问题是因为迭代太密带来的。跟踪发现, 第n层和第n-1层的时间比约为10∶1到10∶3, 虽然第n-1层的搜索结果对于第n层有良好的启发作用, 但是因为这10%-30%的额外开销, 抵消了原有的优势!进一步研究发现, 算法在平稳阶段和动荡阶段的差别是由于水平效应引起的 (在平稳阶段, 相邻深度的估计值相差较小, 到了动荡阶段, 相邻深度的估计值相差就会变大) 。所以迭代中不使用原来的从n-1到n的策略, 而是使用从n-2到n的策略, 这样可以大大减少第n-1层带来的开销, 同时一定程度上防止水平效应带来的问题 (因为当层次相差2时, 最后的行动方是相同的) 。综上所述改善后的算法有如下特点:算法继承了极小窗口、历史启发、置换表和迭代搜索的优点, 同时也弥补了原来存在的不足, 更加重要的是算法消耗了一个很小的内存用来记录博弈树第一层节点的优劣值, 就能对原来不能改善的搜索树第一层节点进行有效排序, 加快了搜索效率。
2.3 实验结果
在完成了上述的分析和调试后, 在基于PIII 866MHZ处理器, 196MB RAM, 操作系统为Microsoft Windows2000的环境下测试了这个算法的效率 (模型是象棋程序) , 从表2可以看出, 它不仅比原来的算法有了明显的改善, 就是比它们当中几个的联合也要强, 而且随着深度的增大, 效果更加明显, 这正是第一层节点排序和减少迭代次数带来的好处。
3 结 语
论文中提出的基于优化迭代的博弈树算法不但综合了原有算法的优点, 并且通过适当的加强对博弈效率和博弈精度也有所加强, 实验数据可以证明改善后的算法确实起到了良好的效果。
摘要:博弈是诸如下棋、打牌、战争等一类竞争性智能活动的通称。通过对机器博弈的研究衍生了大量实用的研究成果。分析当今国际上主流的加快博弈树搜索效率的算法, 根据它们的优缺点建立一种基于优化迭代的新算法, 并且通过实验数据证明算法的优势。
关键词:α-β剪枝,历史启发,迭代深化,极小窗口搜索,置换表
参考文献
[1]George F Luger.Artificial Intelligence:Structures and Strategies forComplex Problem Solving.Fifth Edition.机械工业出版社, 2005.
[2]NilsJ.Nilsson.Artificial Intelligence:A new Synthesis.机械工业出版社, 2000.
[3]Rivest.R.L Game Tree Searching by MinMax Approximation.Aritfi-cial Intelligence, 1998, 34 (1) .
[4]Jonathan Schaeffer.The history heuristic and alpha-beta search en-hancements in practice.IEEE Transactions on Pattern Analysis andMachine Intelligence, November 1989, pami-11 (1) :1203-1212.
[5]Ken Auer, Erik Meade, Gareth Reeves.The Rules of the Game.XP/Ag-ile Universe, 2003:35-42.
[6]Robert Sedgewick.Algorithms in C++Parts 1-4 Fundamentals, DataStructures, Sorting, Searching.中国电力出版社, 2004.
[7]Kishimoto A, Schaeffer J.Distributed Game-Tree Search using Transpo-sition Table Driven Work Scheduling.Proceedings of the 2002 Interna-tional Conference on Parallel Processing (31st ICPP 02) , Univ.of To-ronto, August 2002