The Design and Implementation of a Successful General Game Playing Agent

合集下载

The design and implementation of programmable media gateways

The design and implementation of programmable media gateways

DESIGN AND IMPLEMENTATION OFPROGRAMMABLE MEDIA GATEW AYS Wei Tsang Ooi,Robbert van Renesse and Brian Smith Department of Computer Science,Cornell UniversityIthaca NY14853ABSTRACTTreating the network as a processor that can perform computation has several benefits.Processing at strategic lo-cations in the network may reduce bandwidth requirements. Low-powered devices that are connected to the Internet can be off-loaded as well.In this paper we present Degas,a pro-grammable media gateway system.Degas allows users to upload small programs,called deglets,into a Degas gateway tofilter,transform or mix video streams from a multicast session.We describe a declarative,event-driven program-ming model for writing deglets.We also discuss a simple mechanism used by gateways to optimize and execute the operations specified in the deglets.Finally,a method for selecting a suitable gateway to run deglets is outlined.1.INTRODUCTIONIn the traditional model of distributed computing,nodes on the edges of a network perform computation,and nodes in-side the network move data around.Recently,researchers have been studying how computation can be moved into the network itself.This shift is motivated in part by the increas-ing number of low-powered devices connected to the putationally intensive operations can be moved from these devices to nodes within the network.Performing operations on packets within the network can also improves network efficiency,(e.g.by compressing and decompress-ing data streams across a bottleneck link[17],or transcod-ing a video into a lower bandwidth within a heterogeneous network[2]).Active Networking[14]takes the idea fur-ther by making the nodes with the network programmable. Programmability allows users to extend the network with customized operations,such as application-specific retrans-mission scheme,or new routing protocols.In this paper,we present the design and implementation of a programmable,application-level media gateway called Degas.1Degas allows users to“inject”user-defined pro-This research was supported by DARPA/ONR(contract N00014-95-1-0799),and grants from the National Science Foundation,Kodak,Intel, Xerox,and Microsoft.1Named after French impressionist Edgar Degas.grams,called deglets,into a gateway to perform customized transcoding,filtering and mixing of video and audio streams of a multicast session.Transcoding allows transformation of the media streams into a different format or bit rate,thus allowing heterogeneous hosts to participate in the same ses-sion over connections with different bandwidths.Filtering allows hosts to block streams from certain sources.Mix-ing provides processing on multiple streams.For example, a gateway can merge incoming video streams into a single video stream by creating a”picture-in-picture”or a”quad-splitter”view,or a gateway can switch between different streams in a tele-conference based on who is currently talk-ing.The most significant difference between Degas and pre-vious work is the programmability that Degas provides.In-stead of providing afixed set of services,Degas allows users to upload new functionality into gateways.This simpli-fies deployment of new services,promoting user innovation. Also,it allows users to customize existingservices.Figure1:An example of a Degas system Figure1shows an example of a Degas system.Multi-ple Degas gateways are distributed across the Internet.The existence of these gateways is transparent to the various senders that multicast video streams onto their respective sessions.Such transparency allows current MBone appli-cations such as vic[7]and ivs[15]to be used with Degas without modification.A user who is interested in receiving videos from a ses-sion through Degas runs a Degas client.The client program(called degasclient),is a modified version of vic,extended with abilities to talk to the gateways and a user interface to select and use a deglet.The clientfirst requests a service from Degas.Degas selects a gateway with enough capac-ity.The client then uploads its deglet into this gateway.The gateway joins the session requested by the client and runs the deglet.The processed video stream is sent to a new multicast session,which the client is listening to.A reliable control channel is also established between the client and the gateway.This control channel allows user to interact with the deglet and the gateway,such as to reconfigure de-glet,send user interface events(for instance,mouse click) or migrate the deglet to another gateway.The gateway uses the same control channel to send error messages back to the client for debugging.Figure2shows an example output stream produced by a Degas gateway.1.1.Research ProblemsIn the design and implementation of Degas,several prob-lems arose.We briefly discuss each problem below.The first problem is related to the programming model of de-glets.A deglet must be simple to specify,yet powerful enough to perform useful operations on media streams.We could allow user to write arbitrary code and submit them to the gateway for execution(as in J-Kernel[5]),but we think that this is unnecessarily since Degas is not meant to perform arbitrary computation.We should restrict the pro-grammers to a set of API for manipulating media streams.The second problem concerns the execution of deglets. As media processing involves large amounts of data,nor-mally encoded in a complex format,it is crucial that the gateway executes a deglet efficiently.The optimum way of performing an operation is usually tied to the format of the input streams and output streams.Since the format of input streams may be different and can changed in the middle of a session,we must optimize the deglets differently for dif-ferent streams,and re-optimize when input format changes.The third problem is deciding where to run deglets,to optimize load balancing and use of network resources.Run-ning a deglet at a strategic location can reduce bandwidth consumption significantly.The dynamics of the network environment complicates the problem.Gateways may be created and removed;senders and receivers may join or leave multicast sessions;and available bandwidth of a link changes from time to time.Hence,our solution for locating a gateway must be an adaptive one.Finally,we need to ensure that the system is robust in the face of crashes and badly-behaved deglets,such as one that enters an infinite loop or allocates a huge amount of memory.Resources,including CPU,memory and network bandwidth,must be shared fairly among different deglets. Furthermore,the effect of resource controls on QoS must be minimized.As Degas is still a work in progress,it is not our inten-tion to solve all these problems in this paper.This paper focuses on the programming model and execution model of deglets.We briefly describe our solution for the gateway location problem and refer interested readers to[10]for de-tails.We are still looking at a solution for the resource man-agement problem.anizationThe rest of this paper is organized as follows.The program-ming model is described in Section2.The optimization and execution of deglets are described in Section3.The mech-anism for selecting a gateway to run a deglet is presented in Section4.We provide some performance data in Section5. Ongoing and future work is described in Section6.Finally, we provide an overview of related work in Section7and conclude in Section8.2.PROGRAMMING MODELThe main consideration in selecting a programming model for deglets is simplicity while retainingflexibility and power. We want to make deglet easy to write,so that a user can specify one in a few minutes.This consideration favors the use of scripting languages.For Degas,we chose Tcl[11]. We also chose to use a declarative model for programming deglets.A declarative model lets the user specify what to do,but not how to do it.The user should not be concern with how the deglet is going to be executed.The optimal way to perform the video operations depends heavily on the properties of the input streams,such as the encoding format and sizes.By decoupling the properties of the source media streams from the deglet specification,the same specifica-tion can be used on sources with different properties.Fur-thermore,the users do not have to worry about cases where sources change their transmission properties in the middle of a session.The underlying execution engine determines the best way to perform a task.2.1.ExamplesTo better understand how a deglet is written,we present two examples in Figure3and Figure4.We explain these two examples in detail in the rest of this section.Figure3shows a simple deglet that transcodes a video stream from host into a M-JPEG video stream of quality40.A deglet is a textfile that starts with a list of key-value pairs.The key sources specifies a list of sources we are interested in(line1)us-ing multiple host addresses or a regular expression such as *.In this case,we are only interested in one source.num of sources indicates the maximum numberFigure 2:The left window shows the output from a deglet that creates a picture-in-picture effect.The right windows show the input streams.of sources.input video session indicates the mul-ticast address and port number of the input video session.output format specifies the format of the processed video stream.In this example,we want to receive a 176144M-JPEG stream with quality 40.The remainder of the deglet specifies the operation to perform when an event happens.Line 5to 7define a call-back function to be called whenever a frame is received.The function body is defined using Tcl.We use a prede-fined API frame copy to copy the input frame inf into the output frame outf .frame copy performs the neces-sary scaling and transcoding operations to convert the out-put frames into the format specified above.The argument src id identifies the source of the input stream.Since we have only one source in this case,it is not used.We show how src id is used in our next example.1sources {}2num_of_sources {1}3input_video_session {224.4.4.4/4444}4output_format {JPEG 40QCIF}5recv_frame_callback {src_id inf outf }{6frame_copy $inf $outf 7}Figure 3:A simple deglet.Our second example reads video streams from multiple sources,and outputs a ”split”video stream that consists of video from the current speaker and previous speaker.Video from other sources are filtered.For simplicity,we assumes that the number of sources is always larger than two.We explain this deglet below.Line 1-5specify the input and output parameters.The function init callback in line 6to 12is called at the beginning of the deglet execution.Here,we split the output frame into the left half and the right half,denoted by vari-ables lf and rf respectively.We also initialize the vari-1sources {*}2num_of_sources {*}3input_video_session {224.4.4.4/4444}4input_audio_session {224.4.4.5/4444}5output_format {H261}6init_callback {outf }{7set w2[expr [frame_get_width $outf]/2]8set lf [frame_clip $outf 00$w2[frame_get_height $outf]]9set rf [frame_clip $outf 0$w2$w2[frame_get_height $outf]]10set prev 011set curr -112}13talk_start_callback {src_id}{14if {$src_id !=$curr}{15set prev $curr 16set curr $src_id 17}18}19recv_frame_callback {src_id inf outf }{20if {$src_id ==$curr}{21frame_copy $inf $rf 22}else if {$src_id ==$prev}{23frame_copy $inf $lf 24}25}26destroy_callback {}{27frame_free lf 28frame_free rf 29}Figure 4:A more elaborate deglet example.ables curr and prev that denote the source id the cur-rent speaker and the previous speaker.The function on line 13to 18(talk start callback )is called whenever a talk spurt is detected.The parameter src id indicates the source of the talk spurt.In this function,we simply update the variables curr and prev .Note that variables set inone callback is accessible from other callbacks.In line19 to25,recv frame callback checks if the input frame is from source curr or prev.If it is from either of these, we copy the frame into the left half or the right half of the output frame.Finally,line26to28define the function to call when the deglet exits.We free the memory allocated for lf and rf here.We summarize the lists of available keys,callbacks and frame operations in Table1,2,3respectively.This list is by no means complete,as we plan to add more operations to Degas.In particular,it would be interesting to add vision-related routines such as face detection and object tracking.As illustrated in the two examples above,a deglet is a high-level,declarative style specification.They are short and simple to write.Our most complicated deglet so far,is one that creates a”task bar”of incoming video streams,and let user maximizes or minimizes a video stream by click-ing on the task bar.This is written in under100lines of code.Our examples also illustrate how a user can con-struct the output stream using”frame”as an abstraction, without knowing what the input formats are.The Degas execution module is responsible for translating these spec-ifications into optimized low-level code.We describe the execution of deglets next.3.EXECUTION OF DEGLETSThe Degas execution module is responsible for parsing the deglet specification and for efficient execution of the call-backs.The execution module must recognize optimizations and translate the high-level API into appropriate low-level code.For instance,in Figure3,if the input video stream is also in M-JPEG format,then we can employ compressed domain processing techniques to scale and copy the input frames to output frames efficiently.Furthermore,if the in-put video streams are already in the format requested by the user,the execution module should simply copy the streams without decoding it.We used our low-level,high performance media pro-cessing library called Dali[9]as our target for the translator. The executing module is just a Tcl interpreter extended with Dali commands.Dali consists of a small set of abstractions suitable for representing commonly used video and audio formats.Dali is designed with high-performance in mind, often sacrificing ease of use for efficiency.It exposes inter-mediate structures of video and audio objects,such as DCT blocks,giving programmers(or in our case,the translator) theflexibility of writing highly optimized programs.Dali is also designed with predictability in mind—memory alloca-tions and I/O operations are separated from the processing—so that the programmers have full control over memory us-age and I/O.These features make Dali ideal for forming the basis of our execution module.The optimizations and executions are carried out as fol-lows.We defined a set of optimized versions of Dali sub-routines for each high-level APIs.These high-level APIs are then bound,at run-time,to one of the subroutines based on input and output formats,dimensions and color decimation. Each call to a high-level function will cause the optimized version of the function to be executed.The high-level func-tions are re-bound whenever a change in input video prop-erties is detected.4.SELECTING GATEW AYSBesides the key-values pairs described above,a deglet may contain a set of preconditions.The purpose of preconditions is to allow the user to restrict their deglets to be run on gate-ways that meet certain criteria.The user might impose some restrictions to improve quality of the output,or for security concerns.For example,a user might want to run his deglet on a low-load,high-capacity gateway in the same domain. The currently supported preconditions are as follows: address test:a regular expression that matchesthe host addresses or IP addresses of the gateways el-igible to run the deglet.latency test:the maximum latency between theclient and the gateway.This can prevent an“out-of-the-way”gateway to be assigned to the client.load test:the maximum acceptable CPU load ona gateway.An example of using preconditions is shown in Figure5. This test restricts gateways to those in domain*, or gateways that are within500ms away.Many other tests are possible in the future.For instance,the user might want to select gateways with sufficient memory,or gateways with special hardware for media processing.If the user has to pay for services on a gateway,the user may want to select gateways below a certain price.precondition{[address_test*]||[latency_test]<500}Figure5:An example of using preconditions.When a client requests for service,the preconditions are sent along with the request.A gateway that receives a re-questfirst performs the test,and offers its service only if the test succeeds.sources The sources this deglet is interested in.num of sources Maximum number of sources this deglet can process.input video session,input audio session Specify the input video and audio session respectively.output format,output size,output fps,output bps Specify the format,dimension,frame rate and bit rate of the output stream.precondition The conditions that a gateway must satisfy before it can serve this deglet.description Textual description of what this deglet does.controlling clients Clients that are allowed to control and modify this deglet.Table1:A summary of available keys in deglet specification.init callback(outf)Executed when the deglet starts.outf is the output frame.destroy callback Executed when the deglet stops.new source callback(src id,inf)Executed when a new source is detected.src id is the the source identifier.inf is the input frame.del source callback(src id)Executed when a source identified by src id leaves the session.recv frame callback(src id,inf,outf)Executed when a frame from source src id is received.inf is the received frame.outf is the output frame.mouse click callback(x,y)Executed when a mouse click is detected at coordinate(x,y)on the output window of the client. input resize callback(src id,inf)Executed when input dimension of source src id is changed.talk start callback(src id)Executed when a talk spurt is detected from source src id.talk stop callback(src id)Executed when the beginning of a silence period is detected from source src id.Table2:A summary of available callbacks in deglet specification.frame new w h Return a new frame of width w and height h.frame copy src dest Copy the content of frame src into frame dest,scale if necessary.frame clip f x y w h Create a”virtual”frame from frame f,at offset(x,y)and with dimension w h.frame free f Deallocate frame f.frame get width f Return the width of frame f.frame get height f Return the height of frame f.frame set color f r g b Set the color of the frame f to(r,g,b).Table3:A summary of available frame operations in deglet specification.We have developed a control protocol called the Adap-tive Gateway Location Protocol(AGLP)[10]for locating an appropriate gateway.AGLP optimizes network bandwidth utilization by strategically placing deglets on gateways.A deglet that transcodes to a lower bandwidth format reduces bandwidth and is best run near the source.On the other hand,if a deglet increases bandwidth consumption,it should be run close to the client.AGLP adapts to a changing envi-ronment:senders may join and leave sessions,and gateways may be added or removed.AGLP periodically evaluates the set of eligible gateways,and migrates deglets to better gate-ways when necessary.AGLP handles gateway and client crashes gracefully by only maintaining soft state.5.PERFORMANCETo better understand the overhead introduced by a Degas gateway,we ran some experiments to measure the delay caused by various components in Degas.In our experi-ments,we ran a Degas gateway on a Pentium II266MHz PC.Video streams were sent using vic from hosts connected to the gateway using an100MB Ethernet.Receivers,run-ning either vic or degasclient,were located on the same LAN.We ran NTP[8]on all hosts to get a reasonably accu-rate measurement of end-to-end delay.To verify that our execution model is efficient,we ran an experiment to measure the overhead introduced by our op-timizer and the savings caused by the optimization.In the first experiment,the sender sent a352288H261video stream at8frames per second.The client requested the gateway to transcode the stream into a Motion JPEG video stream of size176144.We measured the time spent in the Dali interpreter for each frame received.In thefirst scenario,we let the optimizer decide how to scale the frames.The optimizer detects that the output size is half the input size,and calls a specialized subrou-tine that shrinks the frame by half.The average time spent in scaling a frame was2.84ms.In the second scenario, we bypassed the optimizer,and called the optimized scal-ing routing ourselves.The average time spent in scaling is2.31ms.Finally,we turned the optimizer off,and used a general purpose scaling routine to scale the frames.The average time spent in scaling a frame increase significantly to43.8ms.This experiment confirmed our belief that the overhead in optimizing is small(1ms),while the savings are significant(about150%).We also measured the total delay introduced by the de-coder,encoder and the Dali interpreter when running dif-ferent deglets.While these measurements were performed on specific deglets only,they give some intuition about the latency introduced by Degas’s processing pipeline.A sum-mary of our measurements is listed in Table4.The ta-ble shows that the delay introduced by the decode-process-encode pipeline is reasonably small.Our next two experiments measured the total end-to-end delay between the source and the receiver.This is a mea-surement between the time a frame is captured at the source and the time the frame is rendered at the receiver.In the first experiment,we collected the data using a degasclient. The gateway was running a deglet that shrinks the size of an incoming Motion JPEG video stream by half at6frames per second(deglet2in Table4).For comparison,we col-lected the same data using vic,which received the origi-nal stream.The end-to-end delays for both experiments are shown in Figure6.The difference between the two mea-surements is small,and is about the same as the total time spent in the decode-process-encode pipeline(27.5ms).We also measured the inter-frame rendering delays in the same experiments.Figure7(a)and Figure7(b)show that Degas gateway introduces some jitter,but are within a tolerable level(within20ms).All our performance measurements shown above are done with a single client.When the gateway serves multiple clients, the jitter increases significantly to as much as200ms.There is also a difference between the QoS received by the clients. The reason is that we have not implemented any resource management in Degas yet.We discuss the current imple-mentation status and developments that we plan to do in the next section.6.IMPLEMENTATION AND FUTURE WORK Degas is implemented using C++and the Mash toolkit[6]. Although still under heavy development,a preliminary pro-totype is available.Simple frame processing API and op-timization scheme is implemented as a”proof-of-concept”. We plan to release Degas into the MBone community in near future.Several interesting problems remain to be solved. We outline some of these problems below.We are looking into how a client can submit multiple deglets that can be composed to perform interesting oper-ations.A deglet that scales down two video sources and merge them into a new video streams is best separated into two stages.Thefirst stage scales the video,and should be run near to the individual sources.The second stage com-bines the video,and should be run near the receiver.By us-ing three deglets(two for scaling and one for merging),we can achieve better bandwidth efficiency than a single deglet could have achieved.We plan to look into how Degas can control the re-sources of the gateways and allow deglets to be executed fairly.We want to prevent a malicious deglet from hogging a gateway.Currently,one can write a deglet that performs frame copy100times for each frame received.Some form of scheduling has to be added so that a gateway can distribute its resources fairly.A particularly interesting is-Operation Input 1Input 2Output %CPU Time 1Shrinking H261352288at 10fps H261176144at 10fps 14%9.76ms 2ShrinkingJPEG 320240at 6fps JPEG 160120at 6fps 18%27.5ms 3Picture-in-picture H261352288at 10fps H261176144at 10fps H261176144at 20fps 40%20.4ms 4Picture-in-picture H261352288at 10fpsH261176144at 10fpsJPEG 176144at 20fps60%32.4msTable 4:Latencies introduced by the decode-process-encode pipeline and the CPU load incurred for different deglets.2040608010012014001002003004005006007008009001000L a t e n c y (m s )Frame NumberdegasclientvicFigure 6:End-to-end Delay between the sender and the re-ceiver.5010015020001002003004005006007008009001000D e l a y (m s )Frame Number(a)5010015020001002003004005006007008009001000D e l a y (m s )Frame Number(b)Figure 7:(a)Inter-frame rendering delay using Degas.(b)Inter-frame rendering delay without Degas.sue is how a gateway can revoke resources from a running deglet when the gateway reallocates its resources.Revok-ing CPU time and bandwidth can affect the QoS received by the client.Revoking allocated memory blocks may re-quire changing the behaviour of the deglet itself.Security is another common concern in extensible archi-tectures.We believe that these concerns can be easily ad-dressed.As in Safe-Tcl [12],we can restrict the set of func-tions available to a deglet.This set can depend on the client that submitted the deglet.In this case,the client would have to sign the deglet,and include its digital certificate (e.g.,X.509[4]).7.RELATED WORKThe idea of running media processing within the network was first described by Turletti and Bolot in [16]and by Pasquale et al in [13].Turletti and Bolot suggested video gateways as a solution for solving the network heterogeneity problem.Pasquale et al proposed a filter propagation mech-anism in multicast dissemination trees.By propagating fil-ters up and down the multicast trees network efficiency may be improved.In [18],Yeadon describes a set of QoS filters that implements the idea in [13].Unfortunately,the sys-tem is not designed to be compatible with the MBone tools,and is therefore not widely deployed.Closer to our work,MeGa [2]is an application-level media gateway that per-forms transcoding on RTP media streams.An advantage of Degas over previous work is that Degas allows user-defined processing on the streams,while MeGa and Yeadon’s QoS filters only support a fixed set of operations.Active Service [3]provides clusters ,which are sets of nodes that provide certain er can request in-stantiation of an application-level service agent,such as the MeGa video gateway,on a cluster.If not available already,the agent can be uploaded.In contrast,Degas provides ex-tensibility at a finer granularity by allowing users to extend an existing service,rather than requiring an entire new ser-vice agent to be uploaded.8.SUMMARYThis paper describes a flexible and extensible media gate-way system called Degas,which allows users to request cus-tomized processing on media streams.Degas is efficient andsimple to use,while being compatible with existing popular MBone tools.Degas is also scalable in the number of gate-ways,and robust in the face of gateway and client crashes.Another contribution of this paper is the Degas program-ming model for writing media processing specification.We use a declarative style,event-driven,scripting-based syn-tax to achieve simplicity,while powerful enough to specify many commonly used operations.We presented a simple model of execution,in which high-level APIs are dynami-cally bound to optimized low-level routines,without requir-ing a full-fledged compiler or optimizer.9.REFERENCES[1]The Third ACM International Multimedia Conferenceand Exhibition(MULTIMEDIA’95),San Francisco, CA,USA,November1995.ACM Press.[2]E.Amir,S.McCanne,and Z.Hui.An applicationlevel video gateway.In Proceedings of the3rd ACM International Multimedia Conference and Exhibition (MULTIMEDIA’95)[1],pages255–266.[3]E.Amir,S.McCanne,and R.Katz.An Active Serviceframework and its application to real-time multimedia transcoding.In Proc.of ACM SIGCOMM,Vancouver, Canada,August1998.[4]C.C.I.T.T.Recommendation X.509.The Directory-Authentication Framework,1988.[5]C.Hawblitzel,C.Chang,G.Czajkowski,D.Hu,andT.von Eicken.Implementing multiple protection do-mains in java.In Proc.of the1998USENIX Annual Technical Conf,pages259–270,New Orleans,LA, 1998.[6]S.McCanne,E.Brewer,R.Katz,L.Rowe,E.Amir,Y.Chawathe,A.Coopersmith,K.Mayer-Patel,S.Ra-man,A.Schuett,D.Simpson,A.Swan,T.L.Tung,D.Wu,and B Smith.Toward a common infrastucturefor multimedia-networking middleware.In Proceed-ings of7th.Intl.Workshop on Network and Operating Systems Support for Digital Audio and Video(NOSS-DAV’97),St.Louis,Missouri,May1997.[7]S.McCanne and V.Jacobson.vic:Aflexible frame-work for packet video.In Proceedings of the3rd ACM International Multimedia Conference and Exhibition (MULTIMEDIA’95)[1].[8]ls.RFC1305:Network time protocol(ver-sion3)specification,implementation,March1992. [9]W.T.Ooi and B.Smith.Dali:A multimedia softwarelibrary.In Proceedings of Multimedia Computing and Networking,San Jose,CA,January1998.[10]W.T.Ooi and R.van Rennese.An adaptive proto-col for locating media gateways.Technical Report submitted to ACMMM2000,Department of Computer Science,Cornell University,2000.[11]J.K.Ousterhout.Tcl and the Tk Toolkit.Addison-Wesley,Reading,MA,USA,1994.[12]J.K.Ousterhout,J.Levy,and B.Welch.The Safe-Tcl security model.Technical Report TR-97-60,Sun Microsystems Laboratories,March1997.[13]J.C.Pasquale,G.C.Polyzos,E.W.Anderson,andV.P.Kompella.Filter propagation in dissemination trees:Trading off bandwidth and processing in con-tinuous media networks.Lecture Notes in Computer Science,846:259–269,1994.[14]D.Tennenhouse,J.Smith,W.Sincoskie,D.Wetherall,and G.Minden.A survey of active network research.IEEE Communications Magazine,pages80–86,Jan-uary1997.[15]T.Turletti.The INRIA videoconferencing system.ConneXions-The Interoperability Report Journal, 8(10):20–24,October1994.[16]T.Turletti and J.Bolot.Issues with multicast videodistribution in heterogeneous packet networks.In Packet Video Workshop,pages F3.1–3.4,Portland, Oregon,September1994.[17]M.Yarvis,A.A.Wang,A.Rudenko,P.Reiher,,and G.J.Popek.Conductor:Distributed adaptation for complex networks.Technical Report CSD-TR-990042,University of California,Los Angeles,Los Angeles,CA,August1999.[18]N.Yeadon,A.Mauthe,D.Hutchison,and F.Garcia.QoSfilters:Addressing the heterogeneity gap.Lecture Notes in Computer Science,1045:227–244,1996.。

艾德莱斯设计英语作文

艾德莱斯设计英语作文

艾德莱斯设计英语作文When it comes to architecture and design, the name Eduardo Souto de Moura immediately comes to mind. The Portuguese architect, better known as Souto de Moura, is widely celebrated for his innovative and timeless designs that blend traditional and contemporary elements seamlessly. His work, which often reflects a deep understanding of the surrounding environment and a strong sense of place, has earned him numerous awards and accolades throughout his career.One of Souto de Moura's most notable projects is the Braga Municipal Stadium in Braga, Portugal. Completed in 2004, this stadium is a striking example of his architectural prowess. The design of the stadium, with its unique elliptical shape and undulating roof, is both functional and elegant. The use of concrete and steel in the construction of the stadium gives it a modern and sleek appearance, while the incorporation of local materials such as granite helps to root the building in its surroundings.Another key aspect of Souto de Moura's design philosophy is his attention to detail. He believes that every element of a building should serve a purpose and contribute to the overall design. This is evident in his meticulous approach to materialselection, proportions, and spatial relationships. In the Braga Municipal Stadium, for example, the carefully designed seating arrangement and the use of natural light create a comfortable and welcoming atmosphere for spectators.In addition to his architectural projects, Souto de Moura is also known for his thoughtful urban planning and landscaping designs. His ability to create harmonious environments that seamlessly blend with their surroundings is evident in projects such as the Burgo Tower in Porto and the Paula Rego Museum in Cascais. In these projects, Souto de Moura's careful consideration of the site's topography, vegetation, and context results in buildings that feel like a natural extension of the landscape.Overall, Souto de Moura's design philosophy can best be described as a harmonious balance between tradition and innovation, functionality and beauty. His ability to create buildings that are not only visually striking but also functional and sustainable has earned him a reputation as one of the most influential architects of his generation. As he continues to push the boundaries of design and explore new possibilities, it is clear that Souto de Moura's legacy will endure for years to come.。

Thesis The Design and Implementation of a Region-Based Parallel Language

Thesis The Design and Implementation of a Region-Based Parallel Language

Bradford L. Chamberlain /homes/bradbrad@P.O. Box 95621 Seattle, WA 98145-2621 (206) 324-6336QuickSilver Technology 700 5th Avenue, Suite 5300Seattle, WA 98104(206) 749-1009Research InterestsCompilers, language design, and algorithms, as well as their influence on one another. Parallel computing, with anemphasis in these areas.EducationPh.D., Computer Science and Engineering, University of WashingtonThesis:The Design and Implementation of a Region-Based ParallelLanguageAdvisor:Lawrence SnyderSeptember 2001M.S., Computer Science and Engineering, University of Washington May 1995B.S. (with honors), Computer Science, Stanford University June 1992Awards and HonorsUSENIX Scholar2000 Intel Foundation Graduate Fellowship1997–1998 Cray Undergraduate Fellowship1991–1992 Tau Beta Pi1991 Eagle Scout May 1988Professional ExperienceSenior Software Developer QuickSilver Technology September 2001 – present QuickSilver Technology is a startup company that is developing novel hardware for adaptable embeddedcomputing. I am a member of QST's tools group, which develops assemblers, compilers, and debuggingcapabilities for programming such architectures. My responsibilities have included the design, prototyping, andsimulation of a special-purpose language for our custom hardware nodes. I have also participated in thecompiler's design and implementation. My duties also include the creation of documents and presentations forinternal demos and discussion. The bulk of my code development with QST was done in C++ and Java in anExtreme Programming environment.Research Assistant University of Washington, Deptartment of CS&E, ZPL group September 1992 – 2001 Worked with Lawrence Snyder on ZPL, a novel parallel programming language developed at UW. Since itsinception, I have been a primary contributor both to ZPL's design and its implementation via the ZPL compilerand runtime system. My contributions to ZPL's language design aided in its evolution from modest support ofJacobi-style kernels to its current support for applications utilizing hierarchical and sparse arrays. My workfocused on the concept of the region, a language-based index set useful for specifying parallel array-basedcomputation. For example, I studied the benefits of regions and their role in supporting a syntax-basedperformance model. I also developed language support for regions with replicated, privatized, hierarchical, andsparse dimensions.I served as the chief architect and implementor of ZPL's runtime libraries from their inception in 1993 until thedate of my graduation. I also worked on the ZPL compiler during that time, serving as a primary implementorsince 1997, the year of its initial release. My work in ZPL's library support included development of theIronman communication interface which supports the portable specification of high-performancecommunication. I also developed data structures for storing distributed regions and arrays with dense, sparse,hierarchical, replicated, and privatized dimensions. I created periodic public releases of the compiler on the web,and provided user support for researchers who utilized ZPL in their own work.Research Assistant University of Washington, Department of CS&E, GRAIL group June 1994 – May 1996 With Tony DeRose and David Salesin, I developed and implemented a technique for automatically acceleratingthe rendering of complex static scenes using a spatial hierarchy.Research Assistant Microsoft Research, User Interfaces Group, Persona Project June – September 1993 Worked on support for a real-time 3D agent by writing a fast inter-machine communication interface and bylaying groundwork for its speech recognition capabilities.Software Development Engineer Microsoft, Windows NT Services for Macintosh June – October 1992 Developed a Macintosh RPC client to enable automated testing of networking software between Windows NTmachines and Macintoshes.Programmer Los Alamos National Laboratory June – August 1991 Developed library support for rapid development of data-entry forms. Used these forms to improve the userinterface of radar sounding programs.Undergraduate Researcher Utah State University, Department of E&CE June – August 1990 As part of NSF's Research Experience for Undergraduates program, wrote a library for real-time plotting ofatmospheric data during collection using radar soundings of the ionosphere.Engineering Aid David Taylor Research Center, Annapolis MD June – August 1989 Maintained and improved data collection programs used for Thermo-Gravimetric Analysis.Teaching ExperienceDistance Learning Course Designer Univ. of Washington Educational Outreach July 2000 – August 2001 Designed the curriculum for UWEO's first data structures course for distance learning students. Created a dozenself-paced lessons, each with a programming or written assignment, as well as introductory materials and exams.Volunteer Tutor University of Washington, Department of CS&E January 1995 – June 2000 Tutored women and minority CS&E undergraduates in a number of subjects including compilers, datastructures, algorithms, theory, and software engineering.Instructor University of Washington, Department of CS&E Spring and Autumn 1999 For two quarters, taught the department's undergraduate data structures course for non-majors (CSE 373).Prepared and presented three lectures a week, designed written and programming assignments, managed twoTAs, held office and lab hours, designed and graded exams. Received excellent student evaluations.Head Teaching Assistant University of Washington, Department of CS&E Autumn 1996 Served as the head TA for CSE 143, the department's second introductory programming course. Managed fiveTAs, organized weekly staff meetings, created and graded weekly quizzes, taught discussion sections for TAswho were unable to do so, and helped with the grading of exams.Teaching Assistant University of Washington, Department of CS&E Winter 1996 Served as the TA for CSE 341, the department's programming languages course for majors. Taught twodiscussion sections twice a week each, providing further explanation and practice with concepts taught inlectures. Graded assignments, helped create assignments and exams. Languages covered included ML, Scheme,Prolog, and Smalltalk.Peer Tutor Stanford University, Center for Teaching and Learning January 1990 – June 1992 Served as a peer tutor for students requesting help in a number of courses in Computer Science, Physics, andMathematics.PublicationsJournal PublicationsHigh-level Language Support for User-defined Reductions. Steven J. Deitz, Bradford L. Chamberlain, andLawrence Snyder, to appear in a special issue of The Journal of Supercomputing, (originally published inProceedings of the LACSI Symposium, October 2001).ZPL: A Machine Independent Programming Language for Parallel Computers. Bradford L. Chamberlain,Sung-Eun Choi, E Christopher Lewis, Calvin Lin, Lawrence Snyder, and W. Derrick Weathersby. IEEETransactions on Software Engineering, 26(3):197–211, March 2000.The Case for High-Level Parallel Programming in ZPL. Bradford L. Chamberlain, Sung-Eun Choi, EChristopher Lewis, Lawrence Snyder, W. Derrick Weathersby, and Calvin Lin. IEEE Computational Scienceand Engineering, 5(3):76–86, July–September 1998.Refereed Conference PublicationsArray Language Support for Parallel Sparse Computation. Bradford L. Chamberlain and Lawrence Snyder.In 15th ACM International Conference on Supercomputing (ICS’01), pages 133–145, June 2001.Eliminating Redundancies in Sum-of-Product Array Computations. Steven J. Deitz, Bradford L.Chamberlain, and Lawrence Snyder. In 15th ACM International Conference on Supercomputing (ICS’01), pages65–77, June 2001.A Comparative Study of the NAS MG Benchmark across Parallel Languages and Architectures. BradfordL. Chamberlain, Steven J. Deitz, and Lawrence Snyder. In Proceedings of the 2000 ACM/IEEE SupercomputingConference on High Performance Networking and Computing (SC2000), November 2000.Regions: An Abstraction for Expressing Array Computation. Bradford L. Chamberlain, E ChristopherLewis, Calvin Lin, and Lawrence Snyder. In Proceedings of the 1999 ACM/SIGAPL International Conferenceon Array Programming Languages (APL99), pages 41–49, August 1999.Problem Space Promotion and Its Evaluation as a Technique for Efficient Parallel Computation. BradfordL. Chamberlain, E Christopher Lewis, and Lawrence Snyder. In Proceedings of the 13th ACM InternationalConference on Supercomputing (ICS’99), pages 311–318, June 1999.Portable Performance of Data Parallel Languages. Ton Ngo, Lawrence Snyder, and Bradford Chamberlain.In Proceedings of the 1997 ACM/IEEE Supercomputing Conference on High Performance Networking andComputing (SC97), November 1997.Fast Rendering of Complex Environments Using A Spatial Hierarchy. Bradford Chamberlain, TonyDeRose, Dani Lischinski, David Salesin, and John Snyder. In Proceedings of the 22nd Annual GraphicsInterface Conference (GI’96), pages 132–141, May 1996.Reviewed Workshop PublicationsLanguage Support for Pipelining Wavefront Computations. Bradford L. Chamberlain, E Christopher Lewis,and Lawrence Snyder. In Proceedings of the 12th International Workshop on Languages and Compilers forParallel Computing (LCPC’99), pages 318–332, August 1999.ZPL’s WYSIWYG Performance Model. Bradford L. Chamberlain, Sung-Eun Choi, E Christopher Lewis,Calvin Lin, Lawrence Snyder, and W. Derrick Weathersby. In Proceedings of High-Level ParallelProgramming Models and Supportive Environments (HIPS’98), pages 50–61, March 1998.A Compiler Abstraction for Machine Independent Parallel Communication Generation. Bradford L.Chamberlain, Sung-Eun Choi, and Lawrence Snyder. In Proceedings of the 10th International Workshop onLanguages and Compilers for Parallel Computing (LCPC’97), pages 261–276, August 1997.Factor-Join: A Unique Approach to Compiling Array Languages for Parallel Machines. Bradford L.Chamberlain, Sung-Eun Choi, E Christopher Lewis, Calvin Lin, Lawrence Snyder, and W. Derrick Weathersby.In Proceedings of the 9th International Workshop on Languages and Compilers for Parallel Computing(LCPC’96), pages 481–500, August 1996.Technical ReportsParallel Language Support for Multigrid Algorithms. Bradford L. Chamberlain, Steven Deitz, and LawrenceSnyder. University of Washington Technical Report UW-CSE-99-11-03, November 1999.A Region-based Approach for Sparse Parallel Computing. Bradford L. Chamberlain, E Christopher Lewis,and Lawrence Snyder. University of Washington Technical Report UW-CSE-98-11-01, November 1998.Graph Partitioning Algorithms for Distributing Workloads of Parallel Computations(generals exam).Bradford L. Chamberlain. University of Washington Technical Report UW-CSE-98-10-03, October 1998.ZPL vs. HPF: A Comparison of Performance and Programming Style. Calvin Lin, Lawrence Snyder, RuthAnderson, Bradford L. Chamberlain, Sung-Eun Choi, George Forman, E Christopher Lewis, and W. DerrickWeathersby. University of Washington Technical Report UW-CSE-95-11-05, November 1995.Miscellaneous PublicationsArticles for the Arctic Region Supercomputer Center’s HPC/Cray T3E Users’ Group Newsletter:"I/O Algorithms on Cray T3E," Issue 214, February 2001."Comparison of Languages for Multi-Grid Methods," Issues 188–189, February 2000."MPI Message Tags on Yukon," Issue 161, January 1999."ZPL: New Parallel Language Available," Issue 122, July 1997.Poster: "A Region-based Approach for Sparse Parallel Computing" At 9th International Workshop onLanguages and Compilers for Parallel Computing, University of California San Diego, August 1996.Invited Talks"A Region-based Implementation of the NAS MG Benchmark," Cray Inc.October 2000 "Support for Multigrid Applications in ZPL," Los Alamos Nat'l Lab, ACL Seminar. March 2000 ServiceSurrogate Advisor, Steven Deitz (while advisor is on sabbatical) 2001–2002 Co-advisor, Steven Deitz, Maria Gullickson (qualifying grad students) 1999–2000 Referee, IEEE TVCG, ICS, PaCT, IPPS/SPDPStudent Volunteer, SCxy Conferences November 1995 and 1997 Graduate Student Coordinator, UW CS&E1996–1997 Chairperson, Prospective Student Committee, UW CS&E1996–1997 Volunteer, UPC Shelter for Homeless Teens July 1993 – November 1996 Editor, Mossy Bits' first online edition (UW CS&E grad creative arts journal) 1995–1996 Member, Undergraduate Admissions Committee, UW CS&E1994–1995 SoftwareZPL Compiler and Runtime SystemI was the primary implementor of the ZPL compiler from 1997 to 2001 and of the runtime libraries sincedevelopment began in 1993. ZPL has been publicly available since the initial release of the compiler (version1.10) in July 1997. The most recent release (version 1.16) was made in August 2000, spanning twelvearchitectures and six communication configurations. Installations are publicly available on the web at/research/zpl/, and I provide user support via the mailing aliases:zpl-bugs@ and zpl-info@.Technical SkillsLanguages:Expert C/C++ programmer. Experience with Java, Fortran 90, Perl, System C, ML, High Performance Fortran, Co-Array Fortran, Single Assignment C, Pascal, Lisp, Scheme, Smalltalk, and Prolog.Platforms:Extensive experience with UNIX and Windows-based machines, as well as numerous parallel platforms: Cray T3D/T3E, IBM SP, SGI Origin, Sun Enterprise, high-performance Linux clusters, Intel Paragon,KSR-2, BBN GP1000, and iPSC/2.Libraries:Experienced user of the MPI, PVM, SHMEM, and NX parallel libraries.PersonalBorn in Stanford, CA; raised in Annapolis, MD and Northern Idaho. An avid trombone player and proponent of the notion that comics are an art form to be reckoned with. Often found appreciating great film and music. Regular attendee of University Presbyterian Church.ReferencesProfessor Lawrence SnyderDepartment of Computer Science and Engineering University of WashingtonBox 352350Seattle, WA 98195-2350(206) 543-9265snyder@ Dr. Burton SmithCray Inc.411 First Avenue S, Suite 600 Seattle, WA 98104-2860 (206) 701-2000burton@Professor Craig ChambersDepartment of Computer Science and Engineering University of WashingtonBox 352350Seattle, WA 98195-2350(206) 685-2094chambers@ Professor Calvin Lin Department of Computer Sciences The University of Texas at Austin Austin, TX 78712-1188 (512) 471-9560lin@Professor Carl EbelingDepartment of Computer Science and Engineering University of WashingtonBox 352350Seattle, WA 98195-2350(206) 543-9342ebeling@ Michelle Sheimanprimary manager at QuickSilver Technology sheiman@(additional contact information available upon request)。

设计创新与创业课程教学大纲

设计创新与创业课程教学大纲
[2]Myrah, Kyleen. A study of public post-secondary entrepreneurship education in British Columbia: The possibilities and challenges of an integrated approach.[D].The University of British Columbia (Canada), ProQuest, UMI Dissertations Publishing, 2003. NQ90237.
课程简介
设计类大学生创新+创业在我国还是新生事物,时间不长,实践中成功的不多,理论上的成果更少,设计创业教育在我国刚刚起步。因此,加强我国在校大学生的创业理念教育和创业技能培养,已是一项重要和紧迫的任务。本课程正是基于这一大背景下,探索基于我国国情的设计类大学生设计与创业一体化培养模式及方法,主要内容有听取设计界成功专家的设计与创业经验;基于自己所熟悉的专业知识寻找、发现某个问题或者市场机会进行专项调研;针对该问题进行设计创新并给出合理的设计解决方案;为自己的设计方案写出创业计划书;熟习淘宝众筹、京东众筹等平台上关于创业计划书的格式及相关要求并写出自己的众筹方案。
[4]Mushipe, Zuvarashe Judith. Entrepreneurship Education --- An Alternative Route to Alleviating Unemployment and the Influence of Gender: An Analysis of University Level Students' Entrepreneurial Business Ideas.[J].International Journal of Business Administration4.2 (Mar 2013): n/a.

艺术设计英语unit3designdefinition

艺术设计英语unit3designdefinition

艺术设计英语unit3designdefinitionDesign is a broad and multifaceted field that involves the creation and development of various visual and functional solutions. It combines creativity, problem-solving skills, and technical knowledge to produce designs that meet specific objectives.1. Definition of Design:Design can be defined as the process of creating and shaping something that is aesthetically appealing, functional, and purposeful. It involves the use of different elements such as lines, shapes, colors, textures, and patterns to communicate an idea or message effectively. Design can be seen in various forms, including graphic design, industrial design, interior design, fashion design, and architectural design.2. Purpose of Design:The purpose of design is to solve problems and meet specific needs. Designers analyze the requirements, constraints, and objectives of a project, and then use their expertise and creativity to develop visual or functional solutions. The goal is to create designs that are not only visually pleasing but also efficient, user-friendly, and marketable.3. Elements of Design:The elements of design are the building blocks that designers useto create visually appealing compositions. They include:- Line: Lines can be used to create different effects and convey different emotions. They can be straight, curved, thick, thin, horizontal, vertical, or diagonal.- Shape: Shapes are created by enclosing lines and can be organic or geometric. They provide structure and form to a design.- Color: Colors have the power to evoke emotions and moods. Designers use the color wheel to choose harmonious combinations and create visual interest.- Texture: Texture adds depth and tactility to a design. It can be actual (tangible) or implied (visual).- Pattern: Patterns are the repetition of elements such as shapes, lines, or colors. They add visual interest and rhythm to a design.- Space: Space refers to the area within and around design elements. It can be positive (occupied) or negative (empty). Proper use of space is crucial for achieving visual balance.4. Principles of Design:The principles of design provide guidelines for organizing and arranging the elements. They include:- Balance: Balance refers to the distribution of visual weight in a design. It can be symmetrical (formal), asymmetrical (informal), or radial.- Proportion: Proportion is the relationship between the sizes of different elements. It helps create a sense of harmony and prevents visual confusion.- Unity: Unity refers to the coherence and consistency of a design. It involves using similar elements and principles throughout the composition.- Contrast: Contrast is the juxtaposition of different elements to create visual interest. It can be achieved through contrasting colors, sizes, shapes, or textures.- Emphasis: Emphasis is used to draw attention to a specificelement or area in a design. It can be achieved through contrast, size, placement, or color.- Movement: Movement creates a sense of visual flow and directs the viewer's eye through the design. It can be achieved through the arrangement of elements and the use of lines and shapes.- Rhythm: Rhythm refers to the repetition or alternation of elements to create a sense of organized movement. It can be regular, flowing, progressive, or random.5. Design Process:The design process is a systematic approach followed by designers to create effective solutions. It typically involves the following steps:- Define the problem: Identify the objectives, constraints, and target audience of the project.- Research and brainstorm: Gather information, explore different ideas, and generate potential solutions.- Sketch and prototype: Create rough drawings and physical or digital prototypes to visualize and test ideas.- Refine: Select the most promising concepts and refine them further through iterations and feedback.- Finalize: Develop the chosen design concept into a polished, finished product.- Evaluate: Test and evaluate the design, making any necessary modifications or improvements.In conclusion, design is an expansive field that encompasses various disciplines and involves creative problem-solving. It utilizes different elements and principles to create visuallyappealing and functional solutions. The design process is a systematic approach that ensures the development of effective and successful designs.。

NS2中无线多信道MAC协议实现机制

NS2中无线多信道MAC协议实现机制

182
安 徽 工 业 大 学 学 报(自然科学版)
2011 年
首先在 MAC-802_11.h 中增加控制报文的数据结构,然后在 MAC-802_ 中扩展对应的收发函数。经 过重新编译 make 生成新的 NS2 即可。虽然设计是针对双收发器的网络模型,同样方法也可以很容易地扩展 到多收发器多信道网络模型中。
无线 Mesh 网络是由一组带有无线收发装置的节点组成的多跳无线网络,由于信道共享资源的限制,节 点需要利用 MAC(medium access control,媒体接入控制)协议实现信道的竞争接入控制和协调。多跳无线网 络中的隐藏和暴露终端,以及无线电相干性等因素限制了网络容量。采用多信道技术可将相互干扰的链路 分配不同的信道以并发传输。无线网络 802.11b/g 标准提供多信道支持,同样可以应用于多跳网络,多信道 技术使相邻节点在不同的信道上同时传输和接收,可以在临近区域同时多路并发传输,这种多信道并发模式 提高无线 Mesh 网络传输的吞吐量。单数据接口的 MAC 协议中的信道是动态分配的,通信时协商选择信 道。根据协调机制的原理不同,可分为专用控制信道技术、共同跳频技术、分离时隙技术等。专用控制信道 技术如 RBCS-MAC[1],DCA[2]协议,该类协议分离出固定的信道作为控制信道,其它信道作为数据传输信道。 共同跳频技术要求所有节点采用相同的跳频序列,需要交换数据的节点用 RTS/CTS 协商信道,其它节点继 续采用同样的跳频序列进行调频。分离时隙技术如 MMAC[3]把时间分成连续的时隙,每个时隙包括宣告流 量指示信息窗口(ATIM)和竞争信道传输窗口。各节点在 ATIM 中协商信道分配,然后对在分配的信道上以 RTS/CTS 竞争传输数据。多信道仿真已经成为无线 Mesh 网络仿真的重要组成部分。

英语作文-揭秘集成电路设计中的设计规则与布局约束

英语作文-揭秘集成电路设计中的设计规则与布局约束

英语作文-揭秘集成电路设计中的设计规则与布局约束Integrated circuit (IC) design is a complex and intricate process that involves a series of design rules and layout constraints to ensure the functionality and performance of the final product. In this article, we will delve into the key aspects of design rules and layout constraints in IC design, shedding light on the crucial considerations that designers must take into account.Design rules in IC design refer to a set of guidelines and specifications that dictate how components and interconnections should be designed and placed on the chip. These rules are essential for ensuring the proper functioning of the IC and preventing issues such as signal interference, crosstalk, and power consumption. Design rules cover various aspects of the design, including the minimum feature size, spacing between components, routing layers, and alignment of components.One of the fundamental design rules in IC design is the minimum feature size, which determines the smallest size of a component or interconnection that can be reliably manufactured. This rule is crucial for ensuring the manufacturability of the IC and preventing issues such as short circuits and manufacturing defects. Designers must carefully adhere to the minimum feature size rule to ensure the functionality and reliability of the IC.Another important design rule in IC design is the spacing between components, which dictates the minimum distance that should be maintained between different components on the chip. This rule is essential for preventing issues such as signal interference and crosstalk, which can degrade the performance of the IC. By following the spacing rules, designers can ensure the proper functioning of the IC and minimize the risk of signal integrity issues.In addition to design rules, layout constraints play a crucial role in IC design by guiding the placement and routing of components on the chip. Layout constraints definethe physical boundaries and requirements for placing components, routing interconnections, and ensuring signal integrity. By adhering to layout constraints, designers can optimize the layout of the IC for performance, power consumption, and manufacturability.One of the key layout constraints in IC design is the routing layers, which specify the number and types of metal layers that can be used for routing interconnections. By carefully planning the routing layers, designers can optimize the layout for signal integrity, power consumption, and manufacturability. Proper use of routing layers is essential for ensuring the performance and reliability of the IC.Alignment of components is another important layout constraint in IC design, which dictates the placement and orientation of components on the chip. By aligning components according to the layout constraints, designers can optimize the layout for signal integrity, power distribution, and thermal management. Proper alignment of components is crucial for ensuring the functionality and reliability of the IC.In conclusion, design rules and layout constraints are essential aspects of IC design that guide the placement, routing, and alignment of components on the chip. By adhering to design rules and layout constraints, designers can optimize the layout for performance, power consumption, and manufacturability. Understanding and applying these rules and constraints is crucial for ensuring the functionality and reliability of the final IC product.。

建筑工程管理英语

建筑工程管理英语

IntroductionConstruction project management is an intricate process that involves the planning, coordination, and supervision of a construction project from inception to completion. Ensuring high-quality and high-standard outcomes in this context is paramount for meeting client expectations, ensuring structural integrity, and fostering sustainable development. This essay delves into the multifaceted nature of achieving these objectives by examining key aspects such as quality control, risk management, stakeholder engagement, technology utilization, sustainability, and regulatory compliance.1. Quality ControlThe foundation of high-quality and high-standard construction lies in robust quality control systems. This encompasses a comprehensive approach that starts with defining clear quality standards and specifications, followed by systematic monitoring, inspection, and testing throughout the project lifecycle. Quality control measures should be aligned with industry standards such as ISO 9001 or specific national or regional codes, and tailored to the unique requirements of each project.Effective quality control necessitates the implementation of stringent material procurement procedures to ensure that only approved, high-grade materials are used. Regular on-site inspections by qualified professionals, coupled with non-destructive testing methods, help detect and rectify any deviations from the predefined standards promptly. Moreover, the use of advanced software tools for quality management, like Building Information Modeling (BIM), can enhance precision, minimize errors, and facilitate real-time monitoring and reporting.2. Risk ManagementHigh-quality and high-standard construction projects are inherently risk-averse. A proactive and systematic approach to risk management is vital to identify potential threats, assess their likelihood and impact, and develop strategies to mitigate or eliminate them. Risks can stem from various sources, including design flaws, supply chain disruptions, environmental factors, labor disputes, and regulatory changes.A well-implemented risk management framework includes risk identification workshops, quantitative and qualitative risk analysis, and the formulation of risk response plans. Regular risk reassessments and effective communication channels help maintain situational awareness and ensure swift responses to emerging risks. Additionally, contingency planning and the establishment of reserve funds provide a financial buffer against unforeseen events that may compromise project quality or standards.3. Stakeholder EngagementSuccessful high-quality and high-standard construction projects heavily rely on effective stakeholder engagement. This involves establishing open and transparent communication channels with clients, designers, contractors, suppliers, regulatory authorities, and local communities. Regular meetings,site visits, and progress reports keep stakeholders informed about project developments, while their feedback and concerns are actively solicited and addressed.Moreover, stakeholder engagement fosters collaboration and alignment around project goals, quality benchmarks, and performance targets. It enables early identification and resolution of issues, promotes innovation and knowledge sharing, and enhances overall stakeholder satisfaction. Engaging stakeholders in decision-making processes, particularly concerning critical quality-related matters, further reinforces their commitment to upholding high standards.4. Technology UtilizationTechnology plays a transformative role in enhancing the quality and standard of construction projects. Advanced technologies such as BIM, drones, 3D printing, artificial intelligence, and Internet of Things (IoT) devices offer unprecedented levels of precision, efficiency, and data-driven decision-making. BIM, for instance, facilitates seamless collaboration among project stakeholders, reduces design conflicts, and enables virtual simulations for clash detection and performance analysis.Drones equipped with high-resolution cameras and sensors can conduct aerial surveys, monitor construction progress, and detect potential quality issues. IoT devices and sensors can provide real-time data on structural health, energy consumption, and environmental conditions, enabling proactive maintenance and continuous improvement. Artificial intelligence algorithms can analyze this data to predict failures, optimize resource allocation, and automate quality control processes.5. SustainabilityIn today's environmentally conscious era, high-quality and high-standard construction projects must also demonstrate a strong commitment to sustainability. This encompasses not only minimizing the project's environmental footprint but also ensuring long-term energy efficiency, resource conservation, and social responsibility.Sustainable construction practices include using eco-friendly materials, incorporating renewable energy systems, implementing water-efficient designs, and promoting waste reduction through recycling and reuse. Green building certifications like LEED, BREEAM, or WELL provide a standardized framework for assessing and improving a project's sustainability performance. Furthermore, engaging in community outreach programs, respecting local cultures, and providing safe working conditions contribute to the project's social sustainability.6. Regulatory ComplianceFinally, adherence to relevant laws, regulations, and guidelines is essential for maintaining high-quality and high-standard construction projects. Compliance encompasses obtaining necessary permits and approvals, conforming to building codes, safety regulations, environmental laws, and labor standards. Non-compliance can result in legal penalties, project delays, reputationaldamage, and potential hazards to public safety and the environment.Regular audits, inspections, and training programs help ensure that all project participants are aware of and comply with the applicable regulations. Moreover, maintaining open communication with regulatory agencies and seeking guidance when faced with regulatory uncertainties can prevent misunderstandings and costly mistakes.ConclusionAchieving high-quality and high-standard outcomes in construction project management is a multidimensional endeavor that necessitates a holistic approach encompassing quality control, risk management, stakeholder engagement, technology utilization, sustainability, and regulatory compliance. By diligently addressing these aspects, project managers can ensure the delivery of structurally sound, functionally efficient, environmentally responsible, and socially beneficial buildings that meet or exceed client expectations and contribute to the built environment's lasting value and resilience.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

The Design and Implementation of a Successful General Game Playing AgentDavid M. KaiserFlorida International University11200 S.W. 8th StreetMiami, Florida 33199dkaiser@AbstractGeneral Game Playing is the problem of designing an agent capable of playing any previously unknown game when given only the rules. This paper describes the implementation architecture and design issues behind Ogre,a General Game Playing agent designed at FloridaInternational University. Our main contribution is an innovative algorithm for automatically generating efficient evaluation functions for previously unfamiliar games. The system competed successfully at the second AAAI General Game Playing competition held at AAAI-06.IntroductionGeneral Game Playing (GGP) is concerned with the development and use of systems that automate general cognitive processing technologies (such as knowledge representation, reasoning and rational behavior) (Genesereth, Love and Pell 2005). Current specialized game playing systems are capable of beating the best human players in many games such as chess, checkers, Othello and backgammon. However, the spectacular achievements in these areas have not translated into success in more than a handful of problems. Therefore, key concerns in the development of more powerful GGP systems are to provide an ability to solve a large range of problems, and to provide the ability to solve more difficult problems within the same resource limits.This paper presents the design and implementation of Ogre, a fully autonomous agent created to participate in the second AAAI General Game Playing competition which was held at the AAAI 2006 in Boston. The main contribution is an original method for automatically constructing effective search heuristics based solely on the game description. The system is fully implemented and competed successfully at the AAAI-06 General Game Playing competition. Ogre came in fourth place out of twelve initial participants.Copyright © 2007, American Association for the Advancement of Artificial Intelligence (). All rights reserved.General Game Player Design IssuesTo compete effectively, game playing agents must make a series of moves that lead to a final winning position. However the state space for most interesting games is too large to search exhaustively, so standard game-playing search techniques include some variant of the Min-Max algorithm with Alpha-Beta pruning(Levy and Newborn 1991). The basic principle is to expand a game tree from the current position, and evaluate each game state based on a heuristic evaluation function, pruning huge areas of the search space that appear unpromising.To perform well, the evaluation function must be as accurate as possible. Systems designed to play specific games use optimization techniques such as opening books or end game databases to enhance the evaluation function. World Champion Chess Deep Blue (Campbell, Hoane and Hsu 2002) has an opening book of 4,000 positions and a summary of 700,000 grandmaster games. World Checkers Champion Chinook (Schaeffer, et al. 1996) has perfect information for over 443 billion end game positions. The effectiveness of the evaluation function directly impacts the search for good moves. An accurate evaluation function allows the system to spend more time on promising areas of play and less time on obviously bad moves.The central problem for a general game playing agent is to construct a heuristic evaluation function that performs efficiently for each different game it confronts. Even if the agent has access to a set of perfect evaluation functions for specific games, it must still determine whether or not one or more of these functions are applicable to the current problem it is facing.In order to perform well, a general game playing agent must be able to examine the relevant features of different kinds of games and generate an evaluation function. The system must also accomplish all this within the limits set by the operational environment. These limits can include memory resources constraints, restrictions on the amount of time available to analyze the game definition and limits on the amount of time to make moves.Related WorkHOYLE (Epstein 1994) is a system that can learn to play two-person, perfect information, finite board games. It uses game independent advisors, weighted for each particular game to improve its performance. Each advisor represents a different viewpoint on games playing, and takes a fairly narrow, but rational, view of the move selection problem. HOYLE quickly and efficiently identifies key information about the game but it seems to require a certain amount of hand crafting (i.e. programmer intervention) for each new game. HOYLE has learned to play Tic-tac-toe and Nine-men's Morris perfectly, but it is unclear how well HOYLE would play more complex games like chess.The METAGAMER program (Pell 1993) is a general game player that plays a subset of two-person, perfect information, deterministic games called symmetric chess-like games, which includes games like checkers and chess. Using features like piece count, piece mobility, threats, distance and material value, the METAGAMER system is able to generate effective evaluation functions for novel games within its domain.The GGP system developed at the University of Texas (Kuhlmann, Dresner and Stone 2005) competed along with Ogre’s predecessor, Goblin, in the first GGP competition. The UTexas system was intended to compete in the same domain as Ogre, so it is not surprising that they developed some solutions to common problems that are quite similar to ours, such as successor function identification. They also provided interesting solutions to problems not addressed by the Ogre design such as identifying team-mates in multi-player games.Ogre relies heavily on two of our previous system designs: Goblin and WAR. Goblin took second place during the first AAAI General Game Playing competition at AAAI-05. WAR (Kaiser 2000) is system designed to play a class of games called Simple War Games. The class includes both deterministic and non-deterministic games which are comparable in complexity to checkers and chess. Ogre and WAR do not play the same class of games, but Ogre builds on the notion of using a set of modules to evaluate separate general game features.The Design of OgreOgre is a GGP agent designed to play any game defined in the Game Description Language (GDL) and compete within the Stanford GGP framework. The language is a subset of first-order logic based on KIF (Genesereth 1991). GDL is a formal language for defining deterministic games with perfect information. A game, in which all the players have complete information of the current game state, is called a perfect information game. Othello is a perfect information game because the state of the game is completely captured by the position of the pieces on the board. Games in which agents are not privy to the entire game state, such as Poker or Scrabble, are not perfect information games. A deterministic game is one in which the game states are decided entirely by the combined decisions of the competitors. Checkers is a deterministic game, but games involving rolling dice or shuffling cards are considered nondeterministic.The Stanford GGP framework defines how participating agents compete. GGP agents are given the game description, their roles within the game and the time limits available to analyze the game and the time available submit moves.Ogre attempts to generate an efficient evaluation function. It does so by examining the syntactic structure of the game definition as well as dynamic features that appear in the game during a self play stage. Features recognized solely from the game definition include the dependency graph, static predicates, successor functions, and turn counters. Features discovered through self play include pieces and board position.Feature ExtractionOne feature that the system attempts to identify is the turn counter. GDL games are guaranteed to end in a finite number of turns. Many GDL games achieve this by using a turn counter. These turn counters are particularly vexing because game states that might otherwise be identical appear unique when there is a turn counter.Take for example, an instance of the eight puzzle game state a) (box 1 b 2 3 4 5 6 7 8) (turn 14) and another game state b) (box 1 b 2 3 4 5 6 7 8) (turn 19). By identifying the turn counter, our agent is able to recognize that these two game states are essentially the same, except that they occur at different times.In order to identify a turn counter it is necessary to first recognize successor functions. Any series of predicate functions with the following format are considered possible candidates for successor functions:(<successor> <value0> <value1>)(<successor> <value1> <value2>)(<successor> <value2> <value3>). . .(<successor> <valueN-1> <valueN>)Where <successor> can be any relation constant, and the <value> components are object constants.It is then possible to identify predicate functions with the following format as possible turn counters.(<== (NEXT (<turn> <varX>))(TRUE (<turn> <varY>))(<successor> <varX> <varY>))It is interesting to note that our solution for this problem is quite similar to that described in (Kuhlmann, Dresner and Stone 2005). This is likely an artifact of the samplegame descriptions that were available during thedevelopment of these systems.Unfortunately, the method is quite brittle. Encoding theturn counter differently prevents recognition of this feature. Identify Static ClausesOgre also creates a dependency graph of the predicates inthe game description. The dependency graph identifiesclauses that are static. Figure 1 shows a dependencygraph generated by the system.GDL contains seven reserved predicates: LEGAL ,TERMINAL , NEXT , GOAL , ROLE , DOES and TRUE . Anyclause that is dependent on the reserved predicates TRUEor DOES is a dynamic clause. Dynamic clauses can changefrom turn to turn and therefore must be continuallyreevaluated. A clause that is not dependent on a TRUE orDOES predicate is a static clause. Static clauses need to be resolved only one time and are used to optimize the inference engine for the target game. The Evaluation Function Following the approach used in WAR (Kaiser 2000) we created several evaluators that encapsulate knowledge about common features found in many classes of games. This section explains briefly a partial list of evaluators implemented in Ogre. It should be noted that this list is incomplete. Many important general heuristics are missing and the set will likely be expanded upon for future competitions. The evaluators can be categorized into two groups based on whether or not they rely on information derived from the structure of the game or simply the game definition itself. Game Structure Evaluators The first group of evaluators generalizes concepts related to games that involve boards and pieces. The complicating factor for these evaluators is that the GDL does not explicitly identify critical features such as pieces and board locations. In those cases where the system is unable to identify the required aspects of the game, these structural evaluators will not be available. Distance-Initial (Run-Away): measures the distance between the initial position of a piece and thecurrent position. This evaluator was intended for racing game like race-track-corridor and Chinese-checkers. Surprisingly it also provides a positive influence in games such as checkers or chess by nudging the agent into early board development. Distance-To-Target : measures the distance between the piece and a target location. Intended for games like Maze where a piece must be moved to a specific location.Count-Pieces : measures the number of each type ofpiece in the current game state. This evaluator is mostvaluable in games where capturing pieces is possible, likechess. Games like Tic-tac-toe do not benefit from it.Occupied-Columns : This evaluator measures how many pieces are in the same column. This evaluator is intended to provide useful information for games like Tic-tac-toe, Pente, Connect-4 or the Eight Queens puzzle. Game Definition Evaluators The second group of evaluators do not rely on information derived from the structure of the game. These evaluators encapsulate very general heuristics that are applicable to a very broad set of games. Count-Moves : measures the number of choices available to each player. In games such as chess it can be beneficial to limit the choices available to the opponent. Depth: produces a number inversely proportional to the search depth. The idea is to give a small preference for shorter solution paths. The evaluator is intended for puzzles which usually reward players for shorter solutions, but other games benefit as well. This evaluator completely ignores the game state. Exact: calculates the exact value of the current game state based on the goal predicates given in the gameFigure 1 – Dependency graph for predicates in the game Towers of Hanoi. Rectangles represent reserved GDL predicates. Ovals represent game specific predicates. Parallelograms indicate negated predicates. Static predicates are underlined.definition. Depending on the game definition this evaluator will most often return a value at terminal game states. This function relies on the Inference Engine and this is therefore quite expensive.Pattern:compares the current game state with a pattern found in the goal state. Helps solve several simple puzzles quickly.Purse:measures the value of ordinal symbols in the game state. This evaluator is intended for games that involve accumulating items such as gold, chips or money. The system combines these evaluators into a single evaluation function by playing games internally against a player that makes random moves. This method is described in more detail in the next section.The Implementation of OgreOgre is written entirely in Java. The system consists of five key components: HTTP Interface, Parser, Game Analyzer, Search Engine and Inference Engine. The overall process architecture of the Ogre implementation is shown in Figure 2.Figure 2 –Ogre architecture. The Game Analyzer is used during the analysis phase before the first turn is submitted. HTTP InterfaceThe Ogre HTTP interface is a very simple HTTP server. The Stanford GGP framework requires that each player communicates with the Game Master through an HTTP connection. The Game Master transmits all game information to the players including the game description, start time, player moves and final game scores. Players communicate only with the Game Master, sending legal moves at the appropriate time.ParserGame descriptions and player moves are extracted from the Game Master messages and sent to the Parser. Ogre uses the KIF parser built into the Java Theorem Prover (JTP) to convert the game description, and player moves, into clauses. JTP is a forward-chaining inference engine developed at Stanford (Fikes, Frank, and Jenkins 2003). In addition to the parser, Ogre’s ancestor, Goblin, used the JTP inference engine to determine game states, legal moves, goal states and game termination conditions. Ogre uses an entirely new inference engine. The new inference engine is significantly faster than the JTP inference engine and includes several GDL specific enhancements.Game AnalyzerThere are two distinct phases of each match. The start phase and the play phase. The Stanford GGP process gives agents a period of time to analyze the game before the first turn begins. This “start” time can range from as short as a few seconds, to as long as an hour. Prior to the first message from the Game Master, agents have no knowledge of the game rules or the amount of time they will have to deliberate between moves.Constructing the Evaluation Function The system uses approximately 50% of the time given in the analysis phase for self play. The system first plays two games in which all players choose their moves at random. This allows the system to quickly categorize structures that represent pieces and board locations.The remaining portion of the self play stage is spent conducting a series of games whose purpose is to identify evaluators that are effective for the target game definition. The algorithm used to select evaluators which involve pieces is outlined in Figure 3.SelectEvaluatorsFOR each evaluator EFOR each piece PCreate instance of E (En) using P.Play one game using En weighted +10.IF win THENadd En to list LELSEPlay game using En weighted -10.IF win THENadd En to list LENDFOR (piece)ENDFOR (evaluator)RETURN list of evaluators LFigure 3 – Algorithm for selecting evaluators.Every evaluator returns a positive number. The final evaluation function is the sum of values returned by all the selected evaluators. One instance of evaluator is created for each piece identified in the game definition.The actual values generated by the final evaluation function are unimportant. What does matter is that the function be able to give an assessment of the game state that is accurate relative to the other game states. Currently, Ogre assigns similar weights to each evaluator, but it might prove beneficial to test different weighting strategies. Finally with the remaining time in the analysis phase, Ogre attempts to choose the best first move using the generated evaluation function. After the first move of the game is made, the system no longer references the Game Analyzer.Search EngineSince GDL allows multiplayer games, Ogre uses a variant of Min-Max with Alpha-Beta pruning called the paranoid algorithm(Sturtevant and Korf 2000). This essentially assumes that all of the opponents have formed a coalition and work together against the agent. In practice, this is unlikely, but the assumption reduces an n-player game to a two-player game making it possible to implement the basic Min-Max with Alpha-Beta pruning algorithm with only minor modification.Two common enhancements, iterative deepening (Russel and Norvig 2003) and a transposition table (Sakuta and Iida 2000) are also used to improve performance of the search algorithm. Iterative deepening allows the system to examine all available moves in a reasonable amount of time. The transposition table reduces the overhead of the iterative deepening algorithm by storing the evaluation results of previously visited game states.During development we found that playing certain puzzles within a reasonable amount of time is completely impossible without a transposition table. For the transposition table to operate effectively, however, it is absolutely crucial that the system identifies potentially misleading game state information. As noted previously, many game definitions include elements such as turn counters. These elements must not be included in the game state hashing function or the benefits of the transposition table will be lost.Inference EngineEvery state of the game, and every game state visited in the game tree must be interpreted by the inference engine. Depending on the game definition, Ogre can spend upwards of 71% of its time doing inferences. At the high end of the spectrum, in games that have complex definitions, this seriously limits how much time the system can spend on analyzing the game structure, as well as how deeply the system can search the game tree.As stated previously, Ogre uses an entirely new inference engine. It is significantly faster than the one used by Goblin and includes some GDL specific enhancements. The basic inference algorithm is shown in Figure 4.The most significant enhancement is the s tatic predicate cache. As described earlier, static predicates are those predicates that are not dependent on the reserved GDL predicates TRUE or DOES. The Ogre inference engine caches the results of any resolution done on a clause containing a s tatic predicate.Solve()WHILE (TRUE) {IF goal stack G is emptyTHEN return TRUEgoal G1 <- top literal in GIF out of time THEN return FALSEIF term of G1 is a static predicate AND cache contains G1 termTHEN R <- queryStatic(G1)ELSE R <- literals potentiallyunifiable with compliment of G1.ENDIFFOR each literal L in RIF L and G1 unify with mgu θ THENG2 = Unify(L,G1, θ)Push right-literals of G2 onto GELSEIF backtrack() failsTHEN return FALSEENDIFENDFOR}Figure 4 – Inference Algorithm. The queryStatic() function stores and retrieves literals to/from the cache.The static predicate cache can improve the performance of the inference engine significantly. That is to say that the system can do more inferences in the same amount of time. However, this improvement is heavily dependent on the game definition. Game definitions that make wide use of static predicates will benefit more than game definitions which have none or rarely use them. Another concern is that the amount of overhead necessary to maintain the cache can cost more in time than it saves.AssessmentOgre performed very successfully in the AAAI-06 competition (Love 2006), coming in fourth out of the initial twelve entrants. There were eleven days of competition held over the course of three months, culminating in a final match on the third day of the conference. Each system played 41 different games including one-player games (puzzles), two-player games, and games involving three or more players. Some gameswere played more than one time, with players switching sides.One-player Points Two-playerPointsMultiplayerPointsFluxplayer 1st 1520 80% 2792 59% 350 50%Cluneplayer 2nd 1145 60% 2895 62% 300 43%Pires5600 3rd 1000 53% 2923 62% 200 29%Ogre 4th 825 43% 2322 49% 450 64%TotalPossiblePoints 1900 4700 700Table 1 – The un-weighted points acquired by the top four players. Each player had the opportunity to earn 7300 points. Each match afforded players the opportunity to acquire up to 100 points. As shown in table 1, Ogre performed best in games involving more than two players and worst in puzzles. Ogre received only 43% of the possible points from puzzles compared to the 1st place finisher Fluxplayer, which receive 80%. On the other hand Ogre did better than the top three players in games with more than two players, winning 64% of the possible points in this category.Ogre finished in 4th place while its predecessor, Goblin, had finished 2nd the previous year. All of the top four finishers had participated in the first GGP competition and demonstrated clear improvements in performance.On average Ogre is only able to search through 100 game states each second. However, the effectiveness of the evaluation functions generated by the system seems to compensate for this serious shortfall.Conclusion & Future WorkIn this paper, we presented the implementation architecture and design issues behind Ogre, a General Game Playing agent. We described an innovative methodology for generating specialized evaluation functions for previously unfamiliar games.While the system performed well during competition, it is clear that there are many areas that could be improved and much work remains to be done. In addition to new evaluators and better feature detection the area of overall system speed should be addressed.The core inference engine could be made faster. Because every fact in each game state must be inferred from the previous state combine with each player’s moves, a significant percentage of the system’s computation time is taken performing resolution. While the amount of time is generally dependent on the game description, it is clear that improvements in this component would improve the entire systems functionality.ReferencesAstrachan, O.L., and Stickel, M.E., 1992. Caching and Lemmaizing in Model Elimination Theorem Provers, In Proceedings of Automated Deduction - CADE-11, 11th International Conference on Automated Deduction, 224-238.Campbell, M., Hoane, A. J., Hsu, F. 2002. Deep Blue. Artificial Intelligence 134(1-2):57-83.Epstein, S., 1994. Identifying the Right Reasons: Learning to Filter Decision Makers. In Proceedings of the AAAI 1994 Fall Symposium on Relevance. 68-71 New Orleans,: AAAI Press.Fikes R., Frank, G., and Jenkins, J., 2003. JTP: A System Architecture and Component Library for Hybrid Reasoning. In Proceedings of the 7th World Multi-Conference on Systemics, Cybernetics and Informatics. Orlando, Florida, USA. July 27-30.Genesereth, M., Love, N., and Pell, B. 2005. General game playing: Overview of the AAAI competition. AI Magazine 26(2): 62-72.Kaiser, D. 2000. A Generic Game Playing Machine, Master’s thesis, Florida International University, Florida. Kuhlmann, G., Dresner, K., and Stone, P. 2006. Automatic Heuristic Construction in a Complete General Game Player. In Proceedings of the Twenty First National Conference on Artificial Intelligence. p 1457-62.Levy, D. N. L. and Newborn, M. M., 1991. How Computers Play Chess. W.H. Freeman and Company. Love, N., 2006 General Game Playing Competition Results [/2006results.html] accessed September 24, 2006.Pell, B. 1993. Strategy Generation and Evaluation for Meta-Game Playing. PhD thesis, University of Cambridge. Russel, S. and Norvig, P. 2003. Artificial Intelligence, A Modern Approach (Second Edition), Prentice Hall International, Inc.Sakuta, M. and Iida, H. 2000. Solving Kriegspiel-Like Problems: Exploiting a Transposition Table, ICGA JOURNAL, 23(4): 218-229.Schaeffer, J., Treloar, N., Lu, P., and Bryant, M., 1994. Chinook: The Man-Machine World Checkers Champion. AI Magazine. 17(1): 21-29.Sturtevant, N. R., and Korf, R. E., 2000. On pruning techniques for multi-player games. In Proceedings of the Seventeenth National Conference on Artificial Intelligence and Twelfth Conference on Innovative Applications of Artificial Intelligence, 201-207.。

相关文档
最新文档