当前位置:文档之家› A new hybrid critic-training method for approximate dynamic programming

A new hybrid critic-training method for approximate dynamic programming

A new hybrid critic-training method for approximate dynamic programming
A new hybrid critic-training method for approximate dynamic programming

A NEW HYBRID CRITIC-TRAINING METHOD FOR APPROXIMATE

DYNAMIC PROGRAMMING

Thaddeus T. Shannon,

George G. Lendaris1

Northwest Computational Intelligence Laboratory

& Systems Science Ph.D. Program,

Portland State University

P.O. Box 751, Portland, OR 97207

ABSTRACT

A variety of methods for developing quasi-optimal intelligent control systems using reinforcement learning techniques based on adaptive critics have appeared in recent years. This paper reviews the family of approximate dynamic programming techniques based on adaptive critic methods and introduces a new hybrid critic training method. Keywords: Adaptive Control, Approximate Dynamic Programming, Adaptive Critic Methods, Neural Networks

INTRODUCTION

A variety of Adaptive Critic Design techniques for training neuro-controllers have appeared in the literature recently, falling into model-based methods such as Dual Heuristic Programming (DHP), and non-model-based methods such as Action Dependent Heuristic Dynamic Programming (ADHDP) or Q-learning (Barto, et al. 1983, Werbos 1990, 1992, Santiago & Werbos, 1994, Prokhorov, Santiago & Wunsch 1995, Prokhorov & Wunsch 1997). The DHP method has been shown to be much more efficient for neuro-controller training and to produce superior designs to the non-model-based methods. However its implementation relies on having an explicit differentiable model of the plant's dynamics and the critic function implicitly estimated by the method is not guaranteed to be integrable.

This paper reviews the family of approximate dynamic programming techniques based on adaptive critic methods and introduces a new hybrid critic training method that guarantees the integrability of the critic function while capturing the performance of the model based training method. The performance of the hybrid method is compared to the HDP and DHP methods on a highly nonlinear multivariable discrete time benchmark problem proposed by Narendra.

1 This work was supported by the National Science Foundation under grant ECS-9904378.

The first section provides a brief overview of adaptive critic based approximate dynamic programming and then delves into the details of the Dual Heuristic Programming (DHP)technique. The second section introduces an alternative classification of critic techniques based on the role of system models in the training process. In the following section we review previous results on the use of partial, approximate and qualitative models for critic based controller training. A new hybrid critic training method is then proposed, that incorporates the more efficient and accurate model based critic training rule from the DHP method with an HDP based critic architecture that insures the integrability of the critic function. We describe the specifics of this critic's estimation and in the final section compare its performance to that of a DHP critic.

APPROXIMATE DYNAMIC PROGRAMMING

Dynamic Programming is a general approach for sequential optimization applicable under very broad conditions. Fundamental to this approach is Bellman's Principle of Optimality (Bellman 1957): that an optimal trajectory has the property that no matter how an intermediate point is reached, the rest of the trajectory must coincide with an optimal trajectory as calculated with the intermediate point as the starting point. This principle is applied by formulating a "primary" utility function U(t) that embodies a control objective for a particular context in one or more measurable variables. A secondary utility function is then formed

,

)()(0∞

=+=k k k t U t J γwhich embodies the desired control objective through time. This is Bellman's equation,and the point of Dynamic Programming is to select the sequence of actions (controls) that maximize or minimize J(t). Unfortunately, this optimization is not computationally tractable for most real world problems, thus we are forced to consider potentially tractable approximation methods. A useful identity based on the above equation is the Bellman Recursion ).

1()()(++=t J t U t J γA promising collection of such approximation techniques based on estimating the function J(t) using this identity with neural networks as function approximators was proposed by Werbos (Werbos, 1990, 1992). These networks are often called Adaptive Critics, though this term can be applied more generally to any network that provides learning reinforcement to another entity (Widrow et al., 1973). As a practical matter, any computational structure capable of acting as a universal function approximator can be used in this role (i.e. neural networks, fuzzy rule structures, etc.). The gradient of the estimated J(t) can then be used to train or tune a controller. Since the gradient is the important aspect for controller training, some techniques use critics that estimate the derivatives of J(t) instead of the function value itself.

The standard classification of these adaptive critic methods is based on the critic's inputs and outputs. In Heuristic Dynamic Programming (HDP) the critic’s outputs are estimates of the value of J(t). In Dual Heuristic Programming (DHP) the critic’s outputs are estimates of the derivatives of J(t). In the action dependent versions of HDP and DHP,

the critic’s inputs are augmented with the controller’s output (action), hence ADHDP and ADDHP.

These approaches to approximate dynamic programming utilize at least two distinct training loops, a controller training loop and a critic training loop (Lendaris et al. 1999,Lendaris & Shannon 2000). In the neurocontrol context, the controller training loop adapts a neural network to be an approximately optimal controller. Specifically, the controller is trained to optimize the secondary utility function J(t) for the problem context. Since the controller outputs control actions u(t), a gradient based learning algorithm requires estimates of the derivatives )

()(t u t J i ?? for controller training. The critic is trained based on the consistency of its estimates through time judged using the Bellman Recursion. The exact implicit relationship is a function of the type of critic used and the structure of the primary utility function.

In the DHP method the critic estimates the derivatives of J(t) with respect to the system states, i.e. )

()()(t R t J t i i ??=λ. From Bellman's Recursion we have (),)1()()

()()(++??=??t J t U t R t J t R i i γso the identity used for this critic's training is (in tensor notation)

.)()()()1()()1()1()()()()()()()(ùê?

é???+?+?+?++????+??=t R t u t u t R t R t R t t R t u t u t U t R t U t i m m k i k k i j j i i γλλTo evaluate the right hand side of this equation we need a model of the system dynamics that includes all the terms from the Jacobian matrix of the coupled plant-controller system, e.g. )()1(t R t R i j ?+? and )

()1(t u t R i j ?+?.Controller training then utilizes the chain rule and the system model to translate critic outputs into estimates of )

()(t u t J i ?? , i.e..)

()1()1()()()()(?+?++??=??t u t R t t u t U t u t J k i i k k λγThe entire process can be characterized as a simultaneous optimization problem; gradient based optimization of the critic function approximator together with gradient based optimization of controller parameters based on the J(t) estimates obtained from the critic.Different strategies have been utilized to get both these optimizations to converge. A number of authors propose alternating between optimization steps for the critic approximator and optimization of the controller (Santiago & Werbos, 1994, Prokhorov,Santiago & Wunsch 1995, Prokhorov 1997, Prokhorov & Wunsch 1997). In past work we

have noted that taking simultaneous steps in both optimization processes does not appear to introduce significant instabilities into the dual convergence problem (Lendaris et al.1999, Lendaris & Shannon 2000). Since the simultaneous stepping approach is about twice as fast as the alternating approach we recommend its use.

As these techniques rely on gradient based optimization of J(t), they inherently suffer from the problem of (unsatisfactory) local optima. Global optimization of J(t) in general is subject to the "No Free Lunch Theorem". What approximate dynamic programming techniques offer is a tractable method for local hill climbing on the J(t) landscape of controller parameter space. Initialized at a random point in parameter space, these methods may be trapped by a local optimum at an unsatisfactory control law. We can attempt to avoid this case by applying what ever problem specific knowledge is available a priori to the choice of initial controller parameters, in the hope of being near a satisfactorily high hill (or deep valley).

ADAPTIVE CRITIC DESIGN TECHNIQUES AND THE ROLE OF MODELS An alternative way of distinguishing adaptive critic methods is to consider the role of system models in the training loops of each method:

HDP

The critic estimates J(t) based on the system state R(t). Critic training is based on the identity

),

1()()(++=t J t U t J γwhich requires no system model to check. Controller training is based on finding the derivatives of J(t) with respect to the control variables. In HDP we obtain these derivatives through the chain rule )

()()()()()(1t u t R t R t J t u t J i j n j j i ????=??=. We combine estimates of the derivatives of J(t) with respect to the states , obtained via backpropagation through the critic network, with the derivatives of the states with respect to the controls using the chain rule. This final set of derivatives comes from a differentiable model, e.g. an explicit analytic model or a neural model. Thus HDP uses a model for controller training but not critic training.

ADHDP (Q-learning)

Training for the critic network is the same as for HDP. Training for the controller is simplified in that the control variables are inputs to the critic, thus derivatives of J(t) with respect to the controls are obtained directly from backpropagation through the critic. Thus ADHDP uses no models in the training process.

DHP Here the critic estimates the derivatives of J(t) with respect to the system states, i.e.

)

()()(t R t J t i i ??=λ. The identity used for critic training is the first order Bellman recursion (in tensor notation):

.)()()()1()()1()1()()()()()()()(ùê?

é???+?+?+?++????+??=t R t u t u t R t R t R t t R t u t u t U t R t U t i m m k i k k i j j i i λλTo evaluate the right hand side of this equation we need a full model of the system dynamics. This includes all the terms from the Jacobian matrix of the coupled plant-controller system, e.g. )()1(t R t R i j ?+? and )

()1(t u t R i j ?+?.Controller training is much like in HDP, except that the controller training loop directly utilizes the critic outputs along with the system model. So DHP uses models for both critic and controller training.

ADDHP

This methods utilizes the DHP critic training process, but gets the derivatives needed for controller training directly from the critic's output. Therefore ADDHP uses a model for critic training but not for controller training.

One of the promising applications for adaptive critic methodologies is in adaptive control contexts for non-stationary plants. In these contexts there will necessarily be a third training loop that updates a differentiable model in an ongoing plant identification process. Any limitations experienced in this on-line adaptation context may derive from an inability to adequately track changes in the plant, rather than from our ability to continuously solve the approximate dynamic programming problem. Thus, understanding the effects of model error on controller training is important.

PARTIAL, NOISY AND QUALITATIVE MODELS

Model based methods such as DHP have been shown to be much more efficient for training neuro-controllers and to produce superior designs to non-model based methods such as Q-learning; however, associated with this is a requirement for an explicit differentiable model. When such a model is not already available, the cost of developing one may well offset the benefits of increased speed and accuracy of this method. Various strategies can be used to reduce the time and effort needed to develop a model, e.g., only estimate a partial model, use a very rough estimation procedure, or attempt to capture only the qualitative behavior of the system. What information must necessarily be included in a model depends on how the model is used in the training process.

Partial Models

By a partial model we mean a model which only explains some of the causal interactions between state variables. A general hypothesis is that a differentiable model that includes any subset of the state variables that would constitute an observable system should be sufficient for DHP training. Such a model should be useable for carrying out the DHP process, even in those situations where additional plant states might be observable, and even when such additional state variables are used as inputs to the controller and critic networks.

Noisy Models

Noisy models are ubiquitous in real life. A model based on regression analysis or any other statistical estimation technique is approximate at every operating point. The numerical values derived from such models may be considered "noisy" values in that they are (hopefully) close to the "true" values and if properly estimated, randomly distributed around the true values. We can perform controlled experiments to yield these kinds of approximations by mixing noise with the "true" values derived from a known analytic model. Two kinds of mixing are possible, additive mixing, and multiplicative mixing. Qualitative Models

Based on the above observations, it is tempting to investigate the use of greatly simplified qualitative models. Such models only determine the sign of the derivatives at each operating point, positive, negative or zero. Since our current experiments are based on plants defined by analytic equations we simply replace all positive derivatives with the value 1 and all negative derivatives with the value -1.

Other authors have hypothesized that qualitative models should be adequate for the pole-cart problem, as there is only a single control variable and straightforward dynamics. Our experience has been that training with such models is generally successful, though usually slower than training with exact models, and is capable of producing controllers of the same quality as when training with exact models.

The size of the positive and negative values used will vary the "gain" of the training process - thus linking this choice to the selection of learning rates for the training process. Larger values in a qualitative model might require smaller learning rates and vice versa. Another view of a simplified, qualitative model is that we have constructed a classifier of the plant's qualitative behavior. Our classifier tells us whether a particular variable will increase, decrease or remain unchanged based on the value of some other variable. Estimating such a classifier as a practical matter should be simpler than estimating a quantitative model for the plant. All one needs to determine are the class boundaries in the state space. An important question to explore is with what precision must the class boundaries be known for the qualitative model to be useful?

PREVIOUS RESULTS WITH QUALITATIVE MODELS

Previous work using the Pole-Cart problem and Narendra's benchmark problem have shown that the models used in DHP training can be far from perfect and still lead to successful controller training (Shannon 1999). A variety of options exist for simplifying system identification and modeling in the DHP context. Estimation of exact parameter values in system models may not be as important as producing unbiased estimates. In off-line training contexts, the "noise" in these estimated models may even be beneficial in the controller training process, due to its tendency to anneal the critic and controller networks out of unsatisfactory local optima.

As reported in (Shannon 1999, Shannon & Lendaris 1999), our experience has been that training with such (imperfect) models is generally successful, though usually slower than training with exact models, and is capable of producing controllers of the same quality as when training with exact models. Narendra's problem is more interesting than the Pole-Cart problem in this context as it is Multiple-Input-Multiple-Output (MIMO) with significant non-linearity and time delays and requires following an a priori unknown reference trajectory.

Further experiments with Narendra's system suggested that one could make do with very rough models. To demonstrate this, we took the earlier developed qualitative model and introduced a substantial "don't know" zone between classes. Results with these models were comparable to those using the exact class boundaries, with equivalent RMS error on the test trajectory and on the best performance. This showed that successful training is possible using only qualitative information for those regions of state space in which the plant's dynamics are unambiguous.

A HYBRID ADAPTIVE CRITIC

Based on our experiences using simplified system models with model based techniques,we believe that the trade off between the efficiency and accuracy gains of model based critic training methods and the cost of developing simple system models tilts heavily towards using model based methods whenever possible. Our proposed critic training method allows a scalar valued (HDP type) critic to be trained using the first order Bellman recursion normally used for DHP critic training. This gives us a real, finite valued J function approximation together with the more accurate derivative estimates associated with the DHP method. The critic is trained to make consistent λ estimates. As these estimates are obtained from the critic via backpropagation, the weight update process is based on "propagating" error signals from the network's inputs rather than from the network's outputs.

Hybrid Training Equations A single hidden layer, feed-forward neural network's output can be expressed as

???è?÷÷???è?++=j i i i j j j j x b g a f y ,βα,

where f() is the output layer activation function and g() the hidden layer activation function. The partial derivatives of the output are then

ùêê?é′?′=??j ji j j i g f x y βα,

which are easily evaluated via backpropagation. Instead of adjusting the network weights to minimize output error, we instead minimize the error for the network's partial derivatives. The update equations are given by

???è

?′??′?=÷÷???è?????j i j j j i g a f x y a ,βα,i J J j i j j j J i J

g f g f x y ,,ββααα′′+÷÷????è?′??′?=÷÷????è?????,i J J

J J j i j j j J i J b g f g b f x y b ,,βαβα?′?′+???è?′??′?=÷÷???è?????, and f g g g f x y j i J i j j i j i J j j j i j j j i J i i J ′?ùêê?é÷÷?

???è???′+?′?+÷÷????è?′??′?=÷÷????è?????

,,,,,,,ββββαβαββ,where

J J

J g b g ′′=?′?,f a f ′′=?′?,i J i J J x g g ′′=?′?,β,???è?+?′′=?′?i

i i J J J J x b g f f ,βα, and

i J J i

J J J i J x g f g f f ′′′=??′′=?′?αβαβ,,.The critic is trained by generating J(t) and J(t+1) estimates, computing the associated partial derivatives )()(t R t J ?? and )

1()1(+?+?t R t J via backpropagation, generating an error by plugging these partial derivatives into the first order Bellman recursion

().)()()()()1()()1()1()()()()()()(2

ùêê?é?úùê?é???+?+?+?++????+??=t t R t u t u t R t R t R t t R t u t u t U t R t U t e i i m m k i k k i j j i i λλThe network weights are then adjusted to make the recursion error as small as possible using a delta rule, e.g.

()()()()()()()()()

ùê?é????+=úùê?é??+=+i i i J i J i J i J J t t e t t t t t e t t λαληααηααhttps://www.doczj.com/doc/2f14089003.html,PARING HYBRID CRITIC PERFORMANCE TO HDP AND DHP

The Narendra benchmark system (Narendra & Mukhopadhyay 1994) is defined by the state equations:

[][]).

()](2sin[3)1(,)

(1)()](4sin[1)()1(),()(1)(2)()()()(1)()(5.12)](sin[)(9.0)1(213233332221111212111211t u t x t x t x t x t x t x t x t u t x t x t x t u t u t x t u t x t x t x t x +=++++=+ùê?é+++úùê?

é+++=+The observable states are often taken to be x 1(t ) and x 2(t ). The plant is stable at the origin with constant control values. Linearized around the origin, it is controllable, observable and of minimum phase. A standard reference signal for evaluating controller performance is:

.202sin 75.030

2sin 75.0)(~,102sin 75.050

2sin 75.0)(~21ùê?é+úùê?é=úùê?é+úùê?é=t t t x t t t x ππππUtilizing the reference signal, and recognizing the time delays in the system, we crafted the primary utility function

()()222211)1(~)1()(~)()(+?++?=t x t x t x t x t U .

Our basic controller has 5 inputs, )(1t x , )

(2t x , )(3t x , )1(~1+t x , and )2(~2+t x , 6 hidden layer elements and 2 outputs, )(1t u and )(2t u . The critic network has 4 inputs, )(1t x ,

)1(2+t x , )(~1t x , and )1(~2+t x , 6 hidden layer elements, and 2 outputs, )

()(1t x t J ?? and )

1()(2+??t x t J . All the processing elements in both networks use hyperbolic tangent activation functions and have bias terms. Training of both networks is performed simultaneously.Baseline DHP training is carried out using a random reference signal generated by selecting values from the interval [-1.5, 1.5] via a uniform distribution every four time steps. This procedure generates a random, stair-step signal that provides persistent excitation for training. The performance of the trained controller is evaluated after 40,000

training steps using the sinusoidal reference trajectory given above. This evaluation is a generalization test, as the controller never sees a non-random reference trajectory during the training process. Controllers trained by this method vary in performance, with an average RMS error of 0.26 (over at least 100 designs) and with the better controllers producing RMS error of about 0.22.

The HDP method is significantly less effective on this problem. Trained controller performance has twice the tracking error, average RMS error ranging from 0.60 to 0.70 with training requiring upwards of 250,000 steps.

The same HDP critic network trained using the hybrid method produces controller performance identical to the DHP method. The average RMS error of 0.27 obtained for multiple training runs is statistically indistinguishable from the DHP results, while the best controllers obtained from raw training again producing an error of about 0.22. Training time for the hybrid case was 50% longer than for DHP (60,000 steps).

CONCLUSION

Our hybrid critic training method allows us to do model based critic training with a critic that estimates the secondary utility function. Previous model based critic training methods have only been used with critics that estimate the partial derivatives of the secondary utility function. Another feature of adaptive critic based approximate dynamic programming techniques is the potential to use the critic function as a guarantor of system stability, e.g. (Prokhorov 1997, Prokhorov & Feldkamp 1999). This is directly practical if the critic function estimates the secondary utility rather than the derivatives.

Our belief is that adaptive critic techniques are ideally suited for neuro-fuzzy implementations (Shannon & Lendaris 20000). Fuzzy controllers and models more easily allow the incorporation of a priori knowledge, while neural networks may be more natural as function approximators in the critic role. It is also important to notice the applicability of these techniques to adaptive control problems. For non-stationary plants, the controller, critic and model can all be continuously update on-line to track changes in the plant's dynamics (Lendaris & Shannon 2000).

REFERENCES

Barto, A.G., R.S. Sutton & C.W. Anderson, (1983), "Neuron-like Adaptive Elements That Can Solve Difficult Learning Control Problems", IEEE Transactions on Systems, Man, and Cybernetics, Vol. 13, pp. 834-846.

Bellman, R.E., (1957), Dynamic Programming, Princeton University Press.

Lendaris, G. & T. Shannon, (2000), "Designing (Approximate) Optimal Controllers Via DHP Adaptive Critics & Neural Networks", in The Handbook of Applied Computational Intelligence, Karayiannis, Padgett & Zadeh, eds., CRC Press. Lendaris, G.G., T.T. Shannon & A. Rustan, (1999), "A Comparison of Training Algorithms for DHP Adaptive Critic Neuro-Control", in Proceedings IJCNN'99, Washington D.C., IEEE.

Narendra, K. & S. Mukhopadhyay, (1994), "Adaptive Control of Nonlinear Multivariable Systems Using Neural Networks", Neural Networks, vol. 7, #5, pp. 737-752.

Prokhorov, D., (1997), Adaptive Critic Designs and their Application, Ph.D. Dissertation, Department of Electrical Engineering, Texas Tech University.

Prokhorov, D. & D. Wunsch, (1997), "Adaptive Critic Designs", IEEE Transactions on Neural Networks, vol. 8 (5), pp. 997-1007.

Prokhorov, D., R. Santiago & D. Wunsch, (1995), "Adaptive Critic Designs: A Case Study for Neurocontrol", Neural Networks, vol. 8 (9), pp. 1367 - 1372. Prokhorov, D.V. & L.A. Feldkamp, (1999), "Generalized Adaptive Critics and their Applications", presented at IJCNN'99, session 6.5, Washington D.C..

Santiago, R. & P.J. Werbos, (1994), "New Progress Towards Truly Brain-Like Control", Proceedings of WCNN'94, San Diego, CA, pp. 27-33.

Shannon T.T., (1999), "Partial, Noisy and Qualitative Models for Adaptive Critic Based Neurocontrol", in Proceedings of IJCNN'99, Washington D.C., IEEE.

Shannon T.T., G.G. Lendaris, (1999), "Qualitative Models for Adaptive Critic Neurocontrol", in Proceedings of SMC'99, IEEE.

Shannon T.T., G.G. Lendaris, (2000), "Adaptive Critic Based Approximate Dynamic Programming for Tuning Fuzzy Controllers", in Proceedings of IEEE-FUZZ 2000, IEEE.

Werbos, P.J., (1990), "A Menu of Designs for Reinforcement Learning Over Time", in Miller, W.T., R.S. Sutton, & P.J. Werbos eds., Neural Networks for Control, MIT Press, Cambridge, MA, pp. 67- 95.

Werbos, P.J., (1992), "Approximate Dynamic Programming for Real-Time Control and Neural Modeling", in D.A. White & D.A. Sofge eds., Handbook of Intelligent Control: Neural, Fuzzy and Adaptive Approaches, Van Nostrand Reinhold, New York, pp. 493 - 525.

Werbos, P.J., (2000), "Stable Adaptive Control Using New Critic Designs", in The Handbook of Applied Computational Intelligence, Karayiannis, Padgett & Zadeh, eds., CRC Press.

Widrow, B., N Gupta & S. Maitra, (1973), "Punish/Reward: Learning with a Critic in Adaptive Threshold Systems", IEEE Transactions on Systems, Man & Cybernetics, vol. 3 (5), pp. 455-465.

Web性能测试方案

Web性能测试方案 1测试目的 此处阐述本次性能测试的目的,包括必要性分析与扩展性描述。 性能测试最主要的目的是检验当前系统所处的性能水平,验证其性能是否能满足未来应用的需求,并进一步找出系统设计上的瓶颈,以期改善系统性能,达到用户的要求。 2测试范围 此处主要描述本次性能测试的技术及业务背景,以及性能测试的特点。 编写此方案的目的是为云应用产品提供web性能测试的方法,因此方案内容主要包括测试环境、测试工具、测试策略、测试指标与测试执行等。 2.1测试背景 以云采业务为例,要满足用户在互联网集中采购的要求,实际业务中通过云采平台询报价、下单的频率较高,因此云采平台的性能直接决定了业务处理的效率,并能够支撑业务并发的压力。 例如:支撑100家企业用户的集中访问,以及业务处理要求。 2.2性能度量指标 响应时间(TTLB) 即“time to last byte”,指的是从客户端发起的一个请求开始,到客户端接收到从服务器端返回的响应结束,这个过程所耗费的时间,响应时间的单位一般为“秒”或者“毫秒”。响应时间=网络响应时间+应用程序响应时间。 响应时间标准:

事务能力TPS(transaction per second) 服务器每秒处理的事务数; 一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。 客户机在发送请求时开始计时,收到服务器响应后结束计时,一次来计算使用的时间和完成的事务个数。它是衡量系统处理能力的重要指标。 并发用户数 同一时刻与服务器进行交互的在线用户数量。 吞吐率(Throughput) 单位时间内网络上传输的数据量,也可指单位时间内处理的客户端请求数量,是衡量网络性能的重要指标。 吞吐率=吞吐量/传输时间 资源利用率 这里主要指CPU利用率(CPU utilization),内存占用率。 3测试内容 此处对性能测试整体计划进行描述,包括测试内容以及关注的性能指标。Web性能测试内容包含:压力测试、负载测试、前端连接测试。 3.1负载测试 负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量。例如:Web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?Web应用系统能否处理大

java第三章课后习题解答

第3章面向对象程序设计基础 【1】什么是Java程序使用的类?什么是类库? [解答]:Java程序的基本单位是类。对象是对事物的抽象,而类是对对象的抽象和归纳,找出事物的共性,把具有共同性质的事物归结为一类,得出一个抽象的概念——类。类是具有相同属性和方法的一组对象的集合,类是在对象之上的抽象,对象则是类的具体化,一旦建立类之后,就可用它来建立许多你需要的对象。 Java的类库是系统提供的已实现的标准类的集合,是Java编程的API(Application Program Interface),它可以帮助开发者方便、快捷地开发Java程序。# 【2】如何定义方法?在面向对象程序设计中方法有什么作用? [解答]:方法的定义由两部分组成:方法声明和方法体。方法声明的基本格式如下: 返回类型方法名(形式参数) { … //方法体内容 } 方法声明包括方法名、返回类型和形式参数,方法的小括号是方法的标志;方法体为实现方法行为的Java语句。 在面向对象程序设计中,方法所起的作用是完成对类和对象属性操作。 【3】简述构造方法的功能和特点。下面的程序片段是某学生为student类编写的构造方法,请指出其中的错误。 void Student(int no,String name) { studentNo=no; studentName=name; return no; } [解答]:构造方法是一个特殊的方法,主要用于初始化新创建的对象。构造方法的方法名要求与类名相同,用户不能直接调用,只能通过new运算符调用,而且构造方法是不返回任何数据类型,甚至也不返回void数据类型,即不能在构造方法前加void。 以上的代码段出错于:①构造方法Student()前不能加void ②不能用return语句 【4】定义一个表示学生的student类,包括的域有学号、姓名、性别、年龄,包括的方法有获得学号、姓名、性别、年龄及修改年龄。编写Java程序创建student类的对象及测试其方法的功能。 [解答]:程序代码段如下: class student{ private String id; private String name; private String sex; private int age;

计算机原理试题与答案

全国2004年4月高等教育自学考试 计算机原理试题 课程代码:02384 第一部分选择题(共25分) 一、单项选择题(本大题共25小题,每小题1分,共25分) 在每小题列出的四个选项中只有一个选项是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.计算机中一次处理的最大二进制位数即为() A.位B.字节 C.字长D.代码 2.下列算式中属于逻辑运算的是() A.1+1=2 B.1-1=0 C.1+1=10 D.1+1=1 3.下图所示的门电路,它的逻辑表达式是() A.F=CD AB B.F=ABCD C.F=AB+CD D.F=ABCD 4.八进制数中的1位对应于二进制数的() A.2位B.3位 C.4位D.5位 5.下列叙述正确的是() A.原码是表示无符号数的编码方法 B.对一个数据的原码的各位取反而且在末位再加1就可以得到这个数据的补码

C.定点数表示的是整数 D.二进制数据表示在计算机中容易实现 6.浮点数0.00100011B×2-1的规格化表示是() A.0.1000110B×2-11B B.0.0100011B×2-10B C.0.0100011B×20B D.0.1000110B×21B 7.两个定点数作补码加法运算,对相加后最高位出现进位1的处理是() A.判为溢出B.AC中不保留 C.寄存在AC中D.循环加到末位 8.运算器中通用寄存器的长度一般取() A.8位B.16位 C.32位D.等于计算机字长 9.目前在大多数微型机上广泛使用宽度为32/64位的高速总线是() A.ISA B.EISA C.PCI D.VESA 10.某计算机指令的操作码有8个二进位,这种计算机的指令系统中的指令条数至多为 ()A.8 B.64 C.128 D.256 11.间接访内指令LDA @Ad的指令周期包含CPU周期至少有() A.一个B.二个 C.三个D.四个 12.在程序中,可用转移指令实现跳过后续的3条指令继续执行。这种指令的寻址方式是() A.变址寻址方式B.相对寻址方式

《JAVA WEB开发实战经典》总结

《Java Web开发实战经典》期末总结 第一部分Web开发前奏 第一章Java Web开发简介 通过本章的的学习,使我了解了web的发展过程。 第二章HTML、Javascript简介 通过本章的的学习,使我了解了JavaScript的基本语法,主要事件,主要对象的作用。可以使用JavaScript完成表单的交互程序开发。 第三章XML简介 通过本章的的学习,使我了解了XML语言的基础语法,还可以清楚区分HTML和XML。并掌握了java中DOM和SAX解析XML文件的操作。学习了DOM解析XML文件的操作和DOM4J 解析XML文件的操作。使用XML可以进行数据存储结构的规范化。 第四章Tomcat服务器的安装及配置 通过本章的的学习,使我了解了Tomcat服务器的主要作用和Tomcat服务器的安装及配置。知道了Tomcat安装目录下主要目录的作用。理解JSP页面的执行流程,和编写第一个交互式程序。 第二部分Web基础开发 第五章JSP基础语法 通过本章的的学习,使我了解了Jsp中注释语句的使用和Jsp中Scriptlet的使用及使用的区别,掌握了page指令的作用和两种包含语句及两种包含语句的区别,懂得了跳转指令的操作。基本可以使用Jsp基础语法结合JDBC完成登录程序的开发。 第六章JSP内置对象 通过本章的的学习,使我了解了Jsp中的9个内置对象及对应的操作接口,掌握了jsp 中的4种属性范围及属性操作,掌握了request,response,session,application,pagecontext这些常用内置对象的使用。 第七章JavaBean 通过本章的的学习,使我了解了JavaBean的基本定义格式和web目录的标准结构,掌握了jsp中对于javabean支持的3种标签,即,.可以使用javabean进行参数的自动赋值操作。 第八章文件上传 通过本章的的学习,使我了解了文件上传操作的作用和smartupload上传组件的使用,理解了fileupload上传组件的使用。

品质体系框架图.

品质体系框架图 图中各缩写词含义如下: QC:Quality Control 品质控制 QA:Quality Assurance 品质保证 QE:Quality Engineering 品质工程 IQC:Incoming Quality Control 来料品质控制 LQC:Line Quality Control 生产线品质控制 IPQC:In Process Quality Control 制程品质控制 FQC:Final Quality Control 最终品质控制 SQA:Source (Supplier) Quality Assurance 供应商品质控制 DCC:Document Control Center 文控中心 PQA:Process Quality Assurance 制程品质保证 FQA:Final Quality Assurance 最终品质保证 DAS:Defects Analysis System 缺陷分析系统 FA:Failure Analysis 坏品分析 CPI:Continuous Process Improvement 连续工序改善 CS:Customer Service 客户服务 TRAINNING:培训 一供应商品质保证(SQA) 1.SQA概念 SQA即供应商品质保证,识通过在供应商处设立专人进行抽样检验,并定期对供应商进行审核、评价而从最源头实施品质保证的一种方法。是以预防为主思想的体现。

2.SQA组织结构 3.主要职责 1)对从来料品质控制(IQC)/生产及其他渠道所获取的信息进行分析、综合,把结果反馈给供应商,并要求改善。 2)耕具派驻检验远提供的品质情报对供应商品质进行跟踪。 3)定期对供应商进行审核,及时发现品质隐患。 4)根据实际不定期给供应商导入先进的品质管理手法及检验手段,推动其品质保证能力的提升。 5)根据公司的生产反馈情况、派驻人员检验结果、对投宿反应速度及态度对供应商进行排序,为公司对供应商的取舍提供依据。 4.供应商品质管理的主要办法 1)派驻检验员 把IQC移至供应商,使得及早发现问题,便于供应商及时返工,降低供应商的品质成本,便于本公司快速反应,对本公司的品质保证有利。同时可以根据本公司的实际使用情况及IQC的检验情况,专门严加检查问题项目,针对性强。 2)定期审核 通过组织各方面的专家对供应商进行审核,有利于全面把握供应商的综合能力,及时发现薄弱环节并要求改善,从而从体系上保证供货品质定期排序,此结果亦为供应商进行排序提供依据。 一般审核项目包含以下几个方面 A.品质。 B.生产支持。 C.技术能力及新产品导入。 D.一般事务. 具体内容请看“供应商调查确认表”. 3)定期排序 排序的主要目的是评估供应商的品质及综合能力,以及为是否保留、更换供应商提供决策依据.排序主要依据以下几个方面的内容: A.SQA批通过率:一般要求不低于95%。 B.IQC批合格率:一般要求不低于95%。

天线分集技术的原理

天线分集技术的原理 最初,许多设计者可能会担心区域规范的复杂性问题,因为在全世界范围内,不同区域规范也各异。然而,只要多加研究便能了解并符合不同区域的法规,因为在每一个地区,通常都会有一个政府单位负责颁布相关文件,以说明“符合特定目的的发射端相关的规则。 无线电通信中更难于理解的部分在于无线电通信链路质量与多种外部因素相关,多种可变因素交织在一起产生了复杂的传输环境,而这种传输环境通常很难解释清楚。然而,掌握基本概念往往有助于理解多变的无线电通信链接品质,一旦理解了这些基本概念,其中许多问题可以通过一种低成本、易实现的被称作天线分集(antenna diversity)的技术来实现。 环境因素的考虑 影响无线电通信链路持续稳定的首要环境因素是被称为多径/衰落和天线极化/分集的现象。这些现象对于链路质量的影响要么是建设性的要么是破坏性的,这取决于不同的特定环境。可能发生的情况太多了,于是,当我们试着要了解特定的环境条件在某个时间点对无线电通信链接的作用,以及会造成何种链接质量时,这无疑是非常困难的。 天线极化/分集 这种被称为天线极化的现象是由给定天线的方向属性引起的,虽然有时候把天线极化解释为在某些无线电通信链路质量上的衰减,但是一些无线电通信设计者经常利用这一特性来调整天线,通过限制收发信号在限定的方向范围之内达其所需。这是可行的,因为天线在各个方向上的辐射不均衡,并且利用这一特性能够屏蔽其他(方向)来源的射频噪声。 简单的说,天线分为全向和定向两种。全向天线收发信号时,在各个方向的强度相同,而定向天线的收发信号被限定在一个方向范围之内。若要打造高度稳固的链接,首先就要从了解此应用开始。例如:如果一个链路上的信号仅来自于特定的方向,那么选择定向天线获

性能测试流程规范

目录 1前言 (2) 1.1 文档目的 (2) 1.2 适用对象 (2) 2性能测试目的 (2) 3性能测试所处的位置及相关人员 (3) 3.1 性能测试所处的位置及其基本流程 (3) 3.2 性能测试工作内容 (4) 3.3 性能测试涉及的人员角色 (5) 4性能测试实施规范 (5) 4.1 确定性能测试需求 (5) 4.1.1 分析应用系统,剥离出需测试的性能点 (5) 4.1.2 分析需求点制定单元测试用例 (6) 4.1.3 性能测试需求评审 (6) 4.1.4 性能测试需求归档 (6) 4.2 性能测试具体实施规范 (6) 4.2.1 性能测试起始时间 (6) 4.2.2 制定和编写性能测试计划、方案以及测试用例 (7) 4.2.3 测试环境搭建 (7) 4.2.4 验证测试环境 (8) 4.2.5 编写测试用例脚本 (8) 4.2.6 调试测试用例脚本 (8) 4.2.7 预测试 (9) 4.2.8 正式测试 (9) 4.2.9 测试数据分析 (9) 4.2.10 调整系统环境和修改程序 (10) 4.2.11 回归测试 (10) 4.2.12 测试评估报告 (10) 4.2.13 测试分析报告 (10) 5测试脚本和测试用例管理 (11) 6性能测试归档管理 (11) 7性能测试工作总结 (11) 8附录:............................................................................................. 错误!未定义书签。

1前言 1.1 文档目的 本文档的目的在于明确性能测试流程规范,以便于相关人员的使用,保证性能测试脚本的可用性和可维护性,提高测试工作的自动化程度,增加测试的可靠性、重用性和客观性。 1.2 适用对象 本文档适用于部门内测试组成员、项目相关人员、QA及高级经理阅读。 2性能测试目的 性能测试到底能做些什么,能解决哪些问题呢?系统开发人员,维护人员及测试人员在工作中都可能遇到如下的问题 1.硬件选型,我们的系统快上线了,我们应该购置什么样硬件配置的电脑作为 服务器呢? 2.我们的系统刚上线,正处在试运行阶段,用户要求提供符合当初提出性能要 求的报告才能验收通过,我们该如何做? 3.我们的系统已经运行了一段时间,为了保证系统在运行过程中一直能够提供 给用户良好的体验(良好的性能),我们该怎么办? 4.明年这个系统的用户数将会大幅度增加,到时我们的系统是否还能支持这么 多的用户访问,是否通过调整软件可以实现,是增加硬件还是软件,哪种方式最有效? 5.我们的系统存在问题,达不到预期的性能要求,这是什么原因引起的,我们 应该进行怎样的调整? 6.在测试或者系统试点试运行阶段我们的系统一直表现得很好,但产品正式上 线后,在用户实际环境下,总是会出现这样那样莫名其妙的问题,例如系统运行一段时间后变慢,某些应用自动退出,出现应用挂死现象,导致用户对我们的产品不满意,这些问题是否能避免,提早发现? 7.系统即将上线,应该如何部署效果会更好呢? 并发性能测试的目的注要体现在三个方面:以真实的业务为依据,选择有代表性的、关键的业务操作设计测试案例,以评价系统的当前性能;当扩展应用程序的功能或者新的应用程序将要被部署时,负载测试会帮助确定系统是否还能够处理期望的用户负载,以预测系统的未来性能;通过模拟成百上千个用户,重复执行和运行测试,可以确认性能瓶颈并优化和调整应用,目的在于寻找到瓶颈问题。

Java开发领域的大牛有哪些

Java开发领域的大牛有哪些 本篇文章小编和大家分享一下Java开发领域的大牛有哪些,对Java开发感兴趣或者是对Java开发大牛感兴趣的小伙伴就随小编一起来了解一下吧。 1、James Gosling 在他12岁的时候,他已能设计电子游戏机,帮忙邻居修理收割机。大学时期在天文系担任程式开发工读生,1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,博士论文的题目是:"The Algebraic Manipulation of Constraints"。毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视。后来转至Sun公司。1990年,与Patrick Naughton和Mike Sheridan等人合作“绿色计划”,后来发展一套语言叫做“Oak”,后改名为Java。1994年底,James Gosling在硅谷召开的“技术、教育和设计大会”上展示Java程式。2000年,Java成为世界上最流行的电脑语言。 2009年四月,Sun被甲骨文公司并购。高斯林于2010年四月时宣布从甲骨文公司离职。 2011年3月29日,高斯林在个人博客上宣布将加入Google[3]。 2011年8月30日,仅仅加入Google数月之后的高斯林就在个人博客上宣布离开Google,加盟一家从事海洋机器人研究的创业公司Liquid Robotics[1],担任首席软件架构师。 在2011年5月建立的Scala公司Typesafe Inc.,高斯林被聘请为公司顾问。 2、Joshua Bloch ——Collections 框架 早在1996年,适逢Java刚刚崭露头角。先是1月份发布JDK1.0,然后是5月底在旧金山召开首届JavaOne大会,年末又是JDK1.1紧跟其后。正是在Java 技术如火如荼、大展拳脚的背景之下,JoshuaBloch来到了Sun。2004 年7月初,就在J2SE5.0发布在即,Jusha Bloch刚刚荣获Sun“杰出工程师(Distinguished Engineer)”的称号之时,他突然离开Sun而去了正值发展态势迅猛的Google,成为了Google的Java首席架构师。 在Bloch来到Sun之后,很快他被从安全组调入核心平台组,从事底层API 设计。至此以后,每逢JDK的重大版本发布,总能在其中见到Joshua的“妙笔”。JDK1.1中的java.math、1.4中的assertions,还有大家所熟识的Collections Framework皆是Joshua一手打造。其中的Collections Framework还获得了当年的

计算机组成原理试题及答案

二、填空题 1 字符信息是符号数据,属于处理(非数值)领域的问题,国际上采用的字符系统是七单位的(ASCII)码。P23 2 按IEEE754标准,一个32位浮点数由符号位S(1位)、阶码E(8位)、尾数M(23位)三个域组成。其中阶码E的值等于指数的真值(e)加上一个固定的偏移值(127)。P17 3 双端口存储器和多模块交叉存储器属于并行存储器结构,其中前者采用(空间)并行技术,后者采用(时间)并行技术。P86 4 衡量总线性能的重要指标是(总线带宽),它定义为总线本身所能达到的最高传输速率,单位是(MB/s)。P185 5 在计算机术语中,将ALU控制器和()存储器合在一起称为()。 6 数的真值变成机器码可采用原码表示法,反码表示法,(补码)表示法,(移码)表示法。P19-P21 7 广泛使用的(SRAM)和(DRAM)都是半导体随机读写存储器。前者的速度比后者快,但集成度不如后者高。P67 8 反映主存速度指标的三个术语是存取时间、(存储周期)和(存储器带宽)。P67 9 形成指令地址的方法称为指令寻址,通常是(顺序)寻址,遇到转移指令时(跳跃)寻址。P112 10 CPU从(主存中)取出一条指令并执行这条指令的时间和称为(指令周期)。 11 定点32位字长的字,采用2的补码形式表示时,一个字所能表示

的整数范围是(-2的31次方到2的31次方减1 )。P20 12 IEEE754标准规定的64位浮点数格式中,符号位为1位,阶码为11位,尾数为52位,则它能表示的最大规格化正数为(+[1+(1-2 )]×2 )。 13 浮点加、减法运算的步骤是(0操作处理)、(比较阶码大小并完成对阶)、(尾数进行加或减运算)、(结果规格化并进行舍入处理)、(溢出处理)。P54 14 某计算机字长32位,其存储容量为64MB,若按字编址,它的存储系统的地址线至少需要(14)条。64×1024KB=2048KB(寻址范32围)=2048×8(化为字的形式)=214 15一个组相联映射的Cache,有128块,每组4块,主存共有16384块,每块64个字,则主存地址共(20)位,其中主存字块标记应为(9)位,组地址应为(5)位,Cache地址共(13)位。 16 CPU存取出一条指令并执行该指令的时间叫(指令周期),它通常包含若干个(CPU周期),而后者又包含若干个(时钟周期)。P131 17 计算机系统的层次结构从下至上可分为五级,即微程序设计级(或逻辑电路级)、一般机器级、操作系统级、(汇编语言)级、(高级语言)级。P13 18十进制数在计算机内有两种表示形式:(字符串)形式和(压缩的十进制数串)形式。前者主要用在非数值计算的应用领域,后者用于直接完成十进制数的算术运算。P19 19一个定点数由符号位和数值域两部分组成。按小数点位置不同,

JAVA编程不得不看的几本经典书籍

为了帮助对java编程感兴趣的同学更好、更快的提高编程技术,武汉北大青鸟光谷校区专业老师在此推荐几本学习编程非常有用的书籍,以供大家参考。 入门类 1.《java从入门到精通》(第3版) 【内容介绍】 本书从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Java 语言进行程序开发应该掌握的各方面技术。全书共分28章,包括:初识Java,熟悉Eclipse 开发工具,Java 语言基础,流程控制,字符串,数组,类和对象,包装类,数字处理类,接口、继承与多态,类的高级特性,异常处理,Swing程序设计,集合类,I/O输入输出,反射,枚举类型与泛型,多线程,网络通信,数据库操作,Swing表格组件,Swing树组件,Swing其他高级组件,高级布局管理器,高级事件处理,AWT绘图与音频播放,打印技术和企业进销存管理系统等。所有知识都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,可以使读者轻松领会Java程序开发的精髓,快速提高开发技能。 【推荐理由】 本书内容详尽,实例丰富,非常适合作为编程初学者的学习用书,也适合作为开发人员的查阅、参考资料。 2.《java核心技术卷一》 【内容介绍】 本书是Java技术经典参考书,多年畅销不衰,第7版在保留以前版本风格的基础上,涵盖Java2开发平台标准版J2SE5.0的基础知识,主要内容包括面各对象程序设计、反射与代理、接口与内部类、事件监听器模型、使用Swing UI工具箱进行图形用户界面设计,异常处理、流输入/输出和对象序列化、泛型程序设计等。本书内容翔实、深入浅出,附有大量程序实例,极具实用价值,是Java初学者和Java程序员的必备参考书。 【推荐理由】 本书出版以来,深受广大读者的喜爱,它全面介绍了Java SE的基础知识,不但具有使用价值,而且易于阅读,易理解,它必成为想进军Java和基础薄弱同学的不二之选。 3.《java编程语言》 【内容介绍】 本书以Java语言创建者的独特视角向读者展现了为什么以及如何使用Java语言,以便读者理解Java语言的基本设计目标以及它在现实世界中的应用。本书介绍的是Java语言的

计算机组成原理参考答案汇总

红色标记为找到了的参考答案,问答题比较全,绿色标记为个人做的,仅供参考!第一章计算机系统概述 1. 目前的计算机中,代码形式是______。 A.指令以二进制形式存放,数据以十进制形式存放 B.指令以十进制形式存放,数据以二进制形式存放 C.指令和数据都以二进制形式存放 D.指令和数据都以十进制形式存放 2. 完整的计算机系统应包括______。 A. 运算器、存储器、控制器 B. 外部设备和主机 C. 主机和实用程序 D. 配套的硬件设备和软件系统 3. 目前我们所说的个人台式商用机属于______。 A.巨型机 B.中型机 C.小型机 D.微型机 4. Intel80486是32位微处理器,Pentium是______位微处理器。 A.16B.32C.48D.64 5. 下列______属于应用软件。 A. 操作系统 B. 编译系统 C. 连接程序 D.文本处理 6. 目前的计算机,从原理上讲______。 A.指令以二进制形式存放,数据以十进制形式存放 B.指令以十进制形式存放,数据以二进制形式存放 C.指令和数据都以二进制形式存放 D.指令和数据都以十进制形式存放 7. 计算机问世至今,新型机器不断推陈出新,不管怎样更新,依然保有“存储程序”的概念,最早提出这种概念的是______。 A.巴贝奇 B.冯. 诺依曼 C.帕斯卡 D.贝尔 8.通常划分计算机发展时代是以()为标准 A.所用的电子器件 B.运算速度 C.计算机结构 D.所有语言 9.到目前为止,计算机中所有的信息任以二进制方式表示的理由是() A.节约原件 B.运算速度快 C.由物理器件的性能决定 D.信息处理方便 10.冯.诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU区分它们的依据是() A.指令操作码的译码结果 B.指令和数据的寻址方式 C.指令周期的不同阶段 D.指令和数据所在的存储单元 11.计算机系统层次结构通常分为微程序机器层、机器语言层、操作系统层、汇编语言机器层和高级语言机器层。层次之间的依存关系为() A.上下层都无关 B.上一层实现对下一层的功能扩展,而下一层与上一层无关 C.上一层实现对下一层的功能扩展,而下一层是实现上一层的基础

浅析发射分集与接收分集技术

浅析发射分集与接收分集技术 1 概述 1.1 多天线信息论简介 近年来,多天线系统(也称为MIMO系统)引起了人们很大的研究兴趣,多天线系统原理如图1所示,它可以增加系统的容量,改进误比特率(BER).然而,获得这些增益的代价是硬件的复杂度提高,无线系统前端复杂度、体积和价格随着天线数目的增加而增加。使用天线选择技术,就可以在获得MIMO系统优势的同时降低成本。 图1 MIMO系统原理 有两种改进无线通信的方法:分集方法、复用方法。分集方法可以提高通信系统的鲁棒性,利用发送和接收天线之间的多条路径,改善系统的BER。在接收端,这种分集与RAKE接收提供的类似。分集也可以通过使用多根发射天线来得到,但是必须面对发送时带来的相互干扰。这一类主要是空时编码技术。 另外一类MIMO技术是空间复用,来自于这样一个事实:在一个具有丰富散射的环境中,接收机可以解析同时从多根天线发送的信号,因此,可以发送并行独立的数据流,使得总的系统容量随着min( , )线性增长,其中

和 是接收和发送天线的数目。 1.2 空时处理技术 空时处理始终是通信理论界的一个活跃领域。在早期研究中,学者们主要注重空间信号传播特性和信号处理,对空间处理的信息论本质探讨不多。上世纪九十年代中期,由于移动通信爆炸式发展,对于无线链路传输速率提出了越来越高的要求,传统的时频域信号设计很难满足这些需求。工业界的实际需求推动了理论界的深入探索。 在MIMO技术的发展,可以将空时编码的研究分为三大方向:空间复用、空间分集与空时预编码技术,如图2所示。 图2 MIMO技术的发展

1.3 空间分集研究 多天线分集接收是抗衰落的传统技术手段,但对于多天线发送分集,长久以来学术界并没有统一认识。1995年Telatarp[3]首先得到了高斯信道下多天线发送系统的信道容量和差错指数函数。他假定各个通道之间的衰落是相互独立的。几乎同时, Foschini和Gans在[4]得到了在准静态衰落信道条件下的截止信道容量(Outage Capacity)。此处的准静态是指信道衰落在一个长周期内保持不变,而周期之间的衰落相互独立,也称这种信道为块衰落信道(Block Fading)。 Foschini和Gans的工作,以及Telatar的工作是多天线信息论研究的开创 性文献。在这些著作中,他们指出,在一定条件下,采用多个天线发送、多个天线接收(MIMO)系统可以成倍提高系统容量,信道容量的增长与天线数目成线性关系 1.4 空时块编码 (STBC) 本文我们主要介绍一类高性能的空时编码方法——空时块编码( STBC: Space Time Block Code)。 STBC编码最先是由Alamouti[1]在1998年引入的,采用了简单的两天线发分集编码的方式。这种STBC编码最大的优势在于,采用简单的最大似然译码准则,可以获得完全的天线增益。 Tarokh[5]进一步将2天线STBC编码推广到多天线形式,提出了通用的正交设计准则。 2 MIMO原理及方案

金蝶ERP性能测试经验分享

ERP性能测试总结分享

1分享 (3) 1.1测试环境搭建 (3) 1.2并发量计算及场景设计 (3) 1.3测试框架搭建 (4) 1.4测试脚本开发/调试 (5) 1.5场景调试/执行 (5) 1.6性能监控分析 (6) 1.7结果报告 (7) 2展望 (8) 2.1业务调研及场景确定 (8) 2.2场景监控与分析 (8)

1分享 1.1 测试环境搭建 在我们进行性能测试之前,通常需要搭建一个供测试用的环境,使用这个环境来录制脚本,根据在这个环境下执行测试的结果,得出最终的测试结论。 有些时候,测试环境就是生产环境,例如:一个新的项目上线前进行的性能测试,通常就是在未来的生产环境下进行的。在这种情况下,可以排除测试环境与生产环境差异带来影响,测试结果相对比较准确。 反之,如果测试环境与生产环境不是同一环境,这个时候,为了保证测试结果的准确性,需要对生产环境进行调研。在搭建测试环境时,尽量保证搭建的测试环境和生成环境保持一致(环境主体框架相同,服务器硬件配置相近,数据库数据相近等)。 另外,最好输出一个测试环境搭建方案,召集各方参加评审确认。同时,在测试方案、测试报告中,对测试环境进行必要的阐述。 1.2 并发量计算及场景设计 首先,在确定场景及并发量之前,需要对业务进行调研,调研的对象最好是业务部门,也可以通过数据库中心查询数据,进行辅助。 场景选取一般包括:登陆场景、操作频繁的核心业务场景、涉及重要信息(如:资金等)业务场景、有提出明确测试需求的业务场景、组合场景等。 每个场景的并发量,需要根据业务调研的结果进行计算。可以采用并发量计算公式:C=nL / T 进行计算(其中C是平均的并发用户数,n是平均每天访问用户数,L是一天内用户从登录到退出的平均时间(操作平均时间),T是考察时间长度(一天内多长时间有用户使用系统))。 每个场景的思考时间,也可以通过业务调研获得。 另外,也可以采用模拟生产业务场景TPS(每秒通过事务数)的方式,来确定场景。相比上一种方式,模拟生产业务场景TPS,能更加准确模拟生产压力。本次ERP性能测试采用的就是这种方式:首先,通过调研确定业务高峰时段,各核心业务TPS量及产生业务单据量。然后,通过调整组合场景中,各单场景的Vusr(虚拟用户数)和Thinktime(思考时间),使每个场景的TPS接近业务调研所得到的TPS量,每个场景相同时间(即高峰时间段长度)通过事务数接近调研业务单据量,从而确定一个,可以模拟生成环境压力的基准场景。最后,通

java开发实战经典答案

java开发实战经典答案 【篇一:java开发实战经典】 ass=txt>首先需要为读者说明的是,《java开发实战经典》,如图1所示,不只是一本纯粹讲解基础的书,里面更多的内容是为java ee的开发而服务的,所以读者在学习本书的时候应该重点培养的是思想,按照程序解释问题的思想。在本书的序言的视频之中已经为读者介绍了本书的整体结果,实际上每个读者必须首先搞清楚java se和java ee的关系,如图2所示。 从图2中可以清楚的发现,如果要想进行java ee的开发,java se 是其中必要的组成部分,这也就是为什么在学习java ee之前要读者一定要有扎实的java se基础了。 在本书的序章中也为读者讲解过,java se核心的部分就是以下四个: 1、面向对象:主要是要求读者建立好一个面向对象的概念,并可以灵活的运用这些概念进行程序的分析,可以说在整个java se部分核心就是面向对象的开发,里面涉及的概念较多,但是所有的概念最终都是为接口和抽象类服务的,而所有java开发中涉及到的各个设计模式,实际上也是针对于接口和抽象类的应用。 2、类集框架:大部分的读者都应该听过或学习过数据结构,虽然从大学就开始学习《数据结构与算法》,但是实际上来讲,学习完后真正可以进行数据结构编写的人并不多,而且大部分的数据结构都是以c语言为基础讲解的,而类集就相当于是java实现的数据结构,包括树、链表、队列等等,如果只是进行应用层次开发的读者没有必要深入了解其内部的操作,但是必须清楚的掌握其核心的接口和各个操作类。 3、io操作:对于大部分的自学者而言,io操作也许是最难过的一个坎了,如果没有很好的理解抽象类和接口的概念,那么要想充分的理解io操作是很难的,在整个io操作之中,完整的体现了java 语言多态性的设计思想,而且在学习io的时候必须始终把握住一个原则:“根据使用的子类不同,输入输出的位置也不同”。 4、java数据库操作(jdbc):jdbc首先并不能算是一门技术,更多的应该算是一种服务—— java提供的数据库访问服务,里面提供了大量的操作接口,各个数据库生产商根据这些接口实现自己的数据库操作,从面向对象的设计上来看,用户完全没有必要考虑其

计算机组成原理试题及答案

《计算机组成原理》试题 一、(共30分) 1.(10分) (1)将十进制数+107/128化成二进制数、八进制数和十六进制数(3分) (2)请回答什么是二--十进制编码?什么是有权码、什么是无权码、各举一个你熟悉的有权码和无权码的例子?(7分) 2.已知X=0.1101,Y=-0.0101,用原码一位乘法计算X*Y=?要求写出计算过程。(10分) 3.说明海明码能实现检错纠错的基本原理?为什么能发现并改正一位错、也能发现二位错,校验位和数据位在位数上应满足什么条件?(5分) 4.举例说明运算器中的ALU通常可以提供的至少5种运算功能?运算器中使用多累加器的好处是什么?乘商寄存器的基本功能是什么?(5分) 二、(共30分) 1.在设计指令系统时,通常应从哪4个方面考虑?(每个2分,共8分) 2.简要说明减法指令SUB R3,R2和子程序调用指令的执行步骤(每个4分,共8分) 3.在微程序的控制器中,通常有哪5种得到下一条指令地址的方式。(第个2分,共10分) 4.简要地说明组合逻辑控制器应由哪几个功能部件组成?(4分) 三、(共22分) 1.静态存储器和动态存储器器件的特性有哪些主要区别?各自主要应用在什么地方?(7分) 2.CACHE有哪3种基本映象方式,各自的主要特点是什么?衡量高速缓冲存储器(CACHE)性能的最重要的指标是什么?(10分) 3.使用阵列磁盘的目的是什么?阵列磁盘中的RAID0、RAID1、RAID4、RAID5各有什么样的容错能力?(5分) 四、(共18分) 1.比较程序控制方式、程序中断方式、直接存储器访问方式,在完成输入/输出操作时的优缺点。(9分) 2.比较针式、喷墨式、激光3类打印机各自的优缺点和主要应用场所。(9分) 答案 一、(共30分) 1.(10分) (1) (+107/128)10 = (+1101011/10000000)2 = (+0.1101011)2 = (+0.153)8 = (+6B)16 (2) 二-十进制码即8421码,即4个基2码位的权从高到低分别为8、4、2、1,使用基码的0000,0001,0010,……,1001这十种组合分别表示0至9这十个值。4位基二码之间满足二进制的规则,而十进制数位之间则满足十进制规则。 1

学习java最好的方法

学习java最好的方法 学习java最好的方法其中动手是最为重要的了。有人总结学好java没有别的窍门就是"编程,编程,再编程",本人认为很有道理,很多人学计算机技术就是看书、听课,当时是明白了,过不了多长时间马上就忘记。如果不愿意敲键盘,就干脆不学。有时候即使所敲的代码你不明白,可以先运行,看看结果,增加些感性认识,然后上升到理性的认识。特别是在大家做考题的时候,很多东西,概念,你只要随便敲一个程序做做实验就能很深刻的理解,但很多人都是不愿意动手,试问这样的学习效率能高吗,要想深入的掌握java技术可能吗?动脑,动嘴,就是要多想问题,多思考,有不懂的问题就大声说出来,多向老师和同学请教,不要把问题烂在肚子里,学会沟通很重要。很多人通常是不动脑筋想问题,也就提不出问题。还有一些人怕自己提出的问题傻,怕人笑话。其实it行业技术面很广,工作了5、6年的人说出一些傻话来也是正常的。 静心很重要。现在社会很浮躁,it行业更浮躁,这种心态是学不好东西的。有些学习java的学生,给他们讲java基础等,他们说太基础了,不愿学。让讲高级点的,老师就教他们jvm原理,对象的内存布局,他们说直接教jdbc吧,ok,老师就带他们做一个小程序一个简单的mis系统,结果有些人连java大小写要区分都不知道。很多学生让直接让讲jsp,struts,spring,说热

门。我说你学会了基本的东西,代码写多了,spring之类东西是很容易的,否则就是本末倒置。当然有些人情况特殊,急着工作,那去学jsp,servlet,jdbc很容易,也好找工作,但基础最后还是要补的。很多人java做了几年了,连多态,线程都没搞明白。我觉得理解是需要时间的,一下不能理解,多看看,甚至多背几遍就理解了。读书千遍,其义自见,现在也管用。 而且我觉得初学时候要不求甚解,多做,多敲代码。等你做的足够多的时候,见多识广的时候,概念,理论的东西就很容易理解了。java的精华就在面向对象思想,好比指针是c语言的精华一样,多花点心思就能掌握。学习实际上是一件乐中有苦,苦中作乐的事情,不是一蹴而就的,需要同学们按下浮躁的心,踏踏实实的把基础打牢然后进阶学习才能在这条道路上越走越远。 浅谈java学习方法和后期面试技巧一、java基础部分:java基础的时候,有些知识点是非常重要的,比如循环系列。for,while,do-while.这方面只要大家用心点基本没什么难点。 二、面向对象:oop面向对象的时候,偏重理论,相信这方面的文章也很多,大家可以多看看,在这就不说了。重点掌握面向对象的三大特征和基本原理。 三、java核心一:这方面主要偏重api,所以在学习了这章的时候,一定要对照api去学习,多看api,主要就是方法多,string 和集合的方法最为重要。后面将为大家提供本人整理的部分笔记。 四、java核心二:主要讲解了异常,线程和io流,其实个人认为重点掌握线程就行,对于流和异常多写就行,线程偏重理论也最为重要。

计算机原理 试题及答案

计算机组成原理试卷A 一、选择题(每小题2分,共30分) 1.下列数中最小的数是______。 A.(100100)2 B.(43)8 C.(110010)BCD D.(25)16 2.计算机经历了从器件角度划分的四代发展历程,但从系统结构上来看,至今绝大多数计算机仍属于______型计算机。 A.实时处理 B.智能化 C.并行 D.冯.诺依曼 3.存储器是计算机系统中的记忆设备,它主要用来______。 A.存放数据 B.存放程序 C.存放微程序 D.存放数据和程序 4.以下四种类型指令中,执行时间最长的是______。 A.RR型指令 B.RS型指令 C.SS型指令 D.程序控制指令 5. 计算机的外围设备是指______。 A.输入/输出设备 B.外存储器 C.远程通信设备 D.除了CPU和内存以外的其它设备 6.堆栈寻址方式中,设A为通用寄存器,SP为堆栈指示器,M SP为SP指示器的栈顶单元,如果操作动作是:(A)→M SP,(SP)-1→SP,那么出栈操作的动作应为______。 A.(M SP)→A,(SP)+1→SP B.(SP)+1→SP,(M SP)→A C.(SP)-1→SP,(M SP)→A D.(M SP)→A,(SP)-1→SP 7.某寄存器中的值有时是地址,因此只有计算机的______才能识别它。 A.译码器 B.判别程序 C.指令 D.时序信号 8. 寄存器间接寻址方式中,操作数处在______。 A.通用寄存器 B.主存单元 C.程序计数器 D.堆栈 9. 假定下列字符码中有奇偶校验位,但没有数据错误,采用偶校验的字符码是______。 A.11001011 B.11010110 C.11000001 D.1100101 10.不是发生中断请求的条件是______。 A.一条指令执行结束 B.一次I/O操作结束 C.机器内部发生故障 D.一次DMA操作结束 11.指令系统中采用不同寻址方式的目的主要是______。 A实现存贮程序和程序控制B缩短指令长度,扩大寻址空间,提高编程灵活性C可以直接访问外存D提供扩展操作码的可能并降低指令译码难度 12.某SRAM芯片,其容量为512×8位,除电源和接地端外,该芯片引出线的最小数目应 是______。 A 23 B 25 C 50 D 19 13.算术右移指令执行的操作是______。 A 符号位填0,并顺次右移1位,最低位移至进位标志位;

CS架构性能测试

C/S测试 通常,客户/ 服务器软件测试发生在三个不同的层次: 1.个体的客户端应用以“ 分离的” 模式被测试——不考虑服务器和底层网络的运行; 2.客户端软件和关联的服务器端应用被一起测试,但网络运行不被明显的考虑; 3.完整的 C/S 体系结构,包括网络运行和性能,被测试。 下面的测试方法是 C/S 应用中经常用到的: 应用功能测试客户端应用被独立地执行,以揭示在其运行中的错误。 服务器测试——测试服务器的协调和数据管理功能,也考虑服务器性能(整体反映时间和数据吞吐量)。 数据库测试——测试服务器存储的数据的精确性和完整性,检查客户端应用提交的事务,以保证数据被正确地存储、更新和检索。 事务测试——创建一系列的测试以保证每类事务被按照需求处理。测试着重于处理的正确性,也关注性能问题。 网络通信测试——这些测试验证网络节点间的通信正常地发生,并且消息传递、事务和相关的网络交通无错的发生。 C/S结构与B/S结构的特点分析 为了区别于传统的C/S模式,才特意将其称为B/S模式。认识到这些结构的特征,对于系统的选型而言是很关键的。 1、系统的性能 在系统的性能方面,B/S占有优势的是其异地浏览和信息采集的灵活性。任何时间、任何地点、任何系统,只要可以使用浏览器上网,就可以使用B/S系统的终端。 不过,采用B/S结构,客户端只能完成浏览、查询、数据输入等简单功能,绝大部分工作由服务器承担,这使得服务器的负担很重。采用C/S结构时,客户端和服务器端都能够处理任务,这虽然对客户机的要求较高,但因此可以减轻服务器的压力。而且,由于客户端使用浏览器,使得网上发布的信息必须是以HTML 格式为主,其它格式文件多半是以附件的形式存放。而HTML格式文件(也就是Web页面)不便于编辑修改,给文件管理带来了许多不便。

相关主题
文本预览
相关文档 最新文档