# data[].attributes.headline
Review Journal (Binary Search Tree Balancing Methods: A Critical Study)

# data[].attributes.subject
Review Journal (Binary Search Tree Balancing Methods: A Critical Study)

# data[].attributes.body
MKS1083 – DATA STRUCTURE AND ALGORITHM

GROUP PROJECT:

Automatic Queuing Model for Banking Applications

PREPARED BY:

NAME

ID NUMBER

MUHAMMAD SHAMIL BIN MD NOR

E20141009840

MUHAMMAD NABIL HAZIQ BIN AJMAIN

E20141009824

BAH ANASTASHA KIRANA A/L ATAN

E20141009839

LECTURER: DR. RAMLAH BINTI MAILOK

In this journal, the author’s aim is to maintain the tree in such way that its height is always O(log(n)) so that all basic tree operations could be performed in O(log(n)) time. Many techniques for tree balancing have been developed over the years and some of them have been discussed and analyzed in this journal. There are two methods to rebalance a binary tree, dynamic rebalancing, and global (static) rebalancing. Dynamic rebalancing methods maintain a tree in optimal shape by adjusting the tree whenever a node is inserted or deleted. Examples of this approach are heightbalance tree, weight-balance tree, and Btrees. Rather than readjusting the tree every now and then global or static rebalancing methods allows the tree to grow unconstrained, and readjustment is done only when such a need is arises.

Most of the algorithms are static in nature and taking time linear to the size of input, and in addition to that, in few cases significant amount of space is required. Run time overhead for static algorithms is certainly less in compared to the dynamic algorithms but there has to be some predefined time interval to rebalance the tree. All the balancing algorithms presented here (apart from AVL algorithm) are made to run in two phases. First phase converts arbitrary binary tree into some intermediate tree and in the next phase, intermediate tree is converted into a balanced tree. In order to create intermediate tree, each node of the tree has to visited resulting run time complexity to be O(N). No algorithm has been developed so far that could balance a tree in lesser time, consequently, there is a huge scope of improvement over existing methods as they are lacking in one aspect or other.

The author describes that there are some algorithm that been used for the approach. There are AVL Algorithm, Martin & Ness's Algorithm, Day's Algorithm, Chang and Iyengar’s Algorithm, and the Stout and Warren's modification. Although it is known that if input is random, the answer will be closer to a balanced tree. Still some balancing technique is required to prevent the tree from becoming higher on one side resulting after a series of insertions and deletions.  Most of the algorithms are static in nature and taking time linear to the size of input, and in addition to that, in few cases significant amount of space is required. Run time overhead for static algorithms is certainly less in compared to the dynamic algorithms but there has to be some predefined time interval to rebalance the tree. All the balancing algorithms presented here (apart from AVL algorithm) are made to run in two phases

First phase converts arbitrary binary tree into some intermediate tree and in the next phase, intermediate tree is converted into a balanced tree. In order to create intermediate tree, each node of the tree has to visited resulting run time complexity to be O(N). The time to search in a BST is definitely limited by the height (or depth) of the tree. Each step in the search goes down one level, so in the absolute worst case, we will have to go all the way from the root to the deepest leaf in order to find X, or to find out that X is not in the tree. So we can say with certainty that search is O(Height).]

So if we restrict ourselves to AVL trees the crucial operations of searching, inserting, and deleting are absolutely guaranteed to be O(logN) - providing that height-balance can be maintained in O(logN) time. It can! In working with AVL trees, operations must preserve two properties:

-  (height balanced) heights of left and right subtrees are within 1

-  (BST) values in left subtree are smaller than root value, which is smaller than the values in the right subtree.

We will look at the INSERTION operation briefly in this lecture. Deletion follows a similar strategy. For the interested student, a full description of the INSERTION algorithm is given below, after the end of the lecture material.

The INSERTION strategy is this:

-  Add the new value in the tree where it belongs (normal BST insertion).

-  Check if all sub-trees are still height-balanced. If they are not, re-balance the tree by changing its shape (i.e. moving around nodes or even whole subtrees).

This is very typical of operations on balanced structures: first you do the operation without regard for the balance, and then you check the balance and repair it if necessary. Conclusion=Easier insertion/deletion & with some optimization, we can avoid the worst case.

The kinds of evidence does the text rely on in the journal is statistical evidence. The kind of data people tend to look for first when trying to prove a point.  That’s not surprising when you consider how prevalent it is in today’s society.  Every time you use numbers to support a main point, you’re relying on statistical evidence to carry your argument.  In the journal, the evidence is when the author said “total path length of a random tree can be further reduced by 27.85 percent”.  The evidence that given by the author is effective because it provided evidence of significant and accurate.

There are two main conclusions in the journal. First, ultimate goal is to maintain the tree in such way that its height is always O(log(n)) so that all basic tree operations could be performed in O(log(n)) time.  Second, but there is no algorithm has been developed so far that could balance a tree in lesser time, consequently, there is a huge scope of improvement over existing methods as they are lacking in one aspect or other. From the conclusions, we know that the conclusions are effective because technology is always growing by days. That’s mean the faster the algorithm to find data, the better the algorithm.

Lastly, the writing style is suitable as a way of writing is quite simple and easier to understand for various levels such as the non-specialist and journals over the academic as this journal is dedicated to the person who takes the field. The main principles applied in this journal are written to help the reader understand the language journal written brief. In addition, the author writes as if he were speaking to the readers of the journal. He also tried out the words complex and difficult to understand by readers. So, I feel that this principle is applied fairly to facilitate the reader more fun to read the journal. Therefore, in conclusion, to me, the author of the journal has made a good journal.

# data[].attributes.headline
REVIEW JOURNAL (COMPARATIVE ANALYSES OF
QUEUING .

 

# data[].attributes.subject
REVIEW JOURNAL (COMPARATIVE ANALYSES OF
QUEUING .

 

# data[].attributes.body
AHMAD FIRDAUS BIN ROSLEE (E20141010131)
MUHAMMAD ADLI BIN ZAINAL (E20141009812)

DANIAL ZAKI BIN MOHAMAD FAUZI (E20141009807)

WFQ

• Weighted fair queueing (WFQ) is a method to minimize the averagelatencyand prevent exaggerated discrepancies between the transmission efficiency afforded tonarrowbandversusbroadbandsignals.

• In WFQ, the priority given to network traffic is inversely proportional to thesignal bandwidth.

• Narrowband signals are passed along first, and broadband signals arebuffered.

• WFQ has little or no effect on the speed at which narrowband signals are transmitted, but tends to slow down the transmission of broadband signals, especially during times of peak network traffic.

• Broadband signals share the resources that remain after low-bandwidth signals have been transmitted.

• The resource sharing is done according to assigned weights.

• There are two other forms of WFQ, known as VIP-distributed WFQ for VIP2-40 or greater interface processors, and class-based WFQ in which the the traffic is categorized into user-defined classes.

CBWFQ

• Class-based weighted fair queueing (CBWFQ) extends the standard WFQ functionality to provide support for user-defined traffic classes.

• For CBWFQ, you define traffic classes based on match criteria including protocols, access control lists (ACLs), and input interfaces.

• Packets satisfying the match criteria for a class constitute the traffic for that class.

• A queue is reserved for each class, and traffic belonging to a class is directed to the queue for that class.

• Once a class has been defined according to its match criteria, you can assign it characteristics.

• To characterize a class, you assign it bandwidth, weight, and maximum packet limit.

• The bandwidth assigned to a class is the guaranteed bandwidth delivered to the class during congestion.

• To characterize a class, you also specify the queue limit for that class, which is the maximum number of packets allowed to accumulate in the queue for the class.

• Packets belonging to a class are subject to the bandwidth and queue limits that characterize the class.

• After a queue has reached its configured queue limit, enqueuing of additional packets to the class causes tail drop or packet drop to take effect, depending on how class policy is configured.

• Tail drop is used for CBWFQ classes unless you explicitly configure policy for a class to use Weighted Random Early Detection (WRED) to drop packets as a means of avoiding congestion.

• Note that if you use WRED packet drop instead of tail drop for one or more classes comprising a policy map, you must ensure that WRED is not configured for the interface to which you attach that service policy.

• If a default class is configured with the bandwidth policy-map class configuration command, all unclassified traffic is put into a single queue and given treatment according to the configured bandwidth.

• If a default class is configured with the fair-queue command, all unclassified traffic is flow classified and given best-effort treatment. If no default class is configured, then by default the traffic that does not match any of the configured classes is flow classified and given best-effort treatment.

• Once a packet is classified, all of the standard mechanisms that can be used to differentiate service among the classes apply.

• Flow classification is standard WFQ treatment. That is, packets with the same source IP address, destination IP address, source Transmission Control Protocol (TCP) or User Datagram Protocol (UDP) port, or destination TCP or UDP port are classified as belonging to the same flow.

• WFQ allocates an equal share of bandwidth to each flow. Flow-based WFQ is also called fair queueing because all flows are equally weighted.

• For CBWFQ, which extends the standard WFQ fair queueing,

• The weight specified for the class becomes the weight of each packet that meets the match criteria of the class.

• Packets that arrive at the output interface are classified according to the match criteria filters you define, then each one is assigned the appropriate weight.

• The weight for a packet belonging to a specific class is derived from the bandwidth you assigned to the class when you configured it; in this sense the weight for a class is user-configurable.

SCFQ

• The Self-Clocked Fair Queuing (SCFQ Self Clocked Fair Queuing; Quality of Service (QoS) and scheduling protocol.) Scheduler is an alternative scheduling discipline in QualNet. SCFQ is similar toWFQ Weighted Fair Queuing; Quality of Service (QoS) / Scheduling protocol.

• In its attempt to service eachpriority Priority/precedence field in IP TOS.queue based on a percentage allocation of the total outgoing bandwidth of the link.

• It was discovered that calculating the Finish Time (the time at which a packet would have been serviced given a hypothetical fluid server) for WFQ was complicated/difficult.

•  SCFQ uses a simplified method of calculating the service time, based on the transmission delay of the packet, and the finish time of the packet currently being serviced.

• Selection of a scheduler is currently mandatory, and is achieved by placing the following entry in the default.config:

IP-QUEUE-SCHEDULER  SELF-CLOCKED-FAIR

It can be specified using node-specific or network-specific parameterization.

Note: Parameters are not mandatory. If no parameters are given, the weight of each queue is the ((priority value of the queue)+ 1) / (sum of all the priority_values for all the queues). Otherwise, users must specify the weight for all of the queues on that interface, such that the sum of the weights equals one, using the following parameter:

QUEUE-WEIGHT[priority]  # weight_between_zero_and_one

• Where priority is the integer value of the priority assigned to each queue (numbered from (num_of_priority_queues-1), and the weight is a floating point number between zero and one. This parameter can also be specified using node-specific or network-specific parameterization.

• After the weight for a packet is assigned, the packet is enqueued in the appropriate class queue. CBWFQ uses the weights assigned to the queued packets to ensure that the class queue is serviced fairly.

• Configuring a class policy—thus, configuring CBWFQ—entails these three processes:

• Defining traffic classes to specify the classification policy (class maps).

• This process determines how many types of packets are to be differentiated from one another.

• Associating policies—that is, class characteristics—with each traffic class (policy maps).

• This process entails configuration of policies to be applied to packets belonging to one of the classes previously defined through a class map. For this process, you configure a policy map that specifies the policy for each traffic class.

• Attaching policies to interfaces (service policies).

• This process requires that you associate an existing policy map, or service policy, with an interface to apply the particular set of policies for the map to that interface.

Benefits

Bandwidth Allocation

• CBWFQ allows you to specify the exact amount of bandwidth to be allocated for a specific class of traffic. Taking into account available bandwidth on the interface, you can configure up to 64 classes and control distribution among them, which is not the case with flow-based WFQ.

• Flow-based WFQ applies weights to traffic to classify it into conversations and determine how much bandwidth each conversation is allowed relative to other conversations. for flow-based WFQ, these weights, and traffic classification, are dependent on and limited to the seven IP Precedence levels.

Coarser Granularity and Scalability

• CBWFQ allows you to define what constitutes a class based on criteria that exceed the confines of flow.

•  CBWFQ allows you to use access control lists and protocols or input interface names to define how traffic will be classified, thereby providing coarser granularity.

• You need not maintain traffic classification on a flow basis.

• You can configure up to 64 discrete classes in a service policy.

Restrictions.

•Configuring CBWFQ on a physical interface is only possible if the interface is in the default queueing mode. Serial interfaces at E1 (2.048 Mbps) and below use WFQ by default—other interfaces use FIFO by default.

•  Enabling CBWFQ on a physical interface overrides the default interface queueing method. Enabling CBWFQ on an ATM PVC does not override the default queueing method.

•If you configure a class in a policy map to use WRED for packet drop instead of tail drop, you must ensure that WRED is not configured on the interface to which you intend to attach that service policy.

•Traffic shaping and policing are not currently supported with CBWFQ.

•CBWFQ is supported on variable bit rate (VBR) and available bit rate (ABR) ATM connections. It is not supported on unspecified bit rate (UBR) connections.

•CBWFQ is not supported on subinterfaces.

COMPARATIVE ANALYSES OF QUEUING TECHNIQUES.

1.  FIFO

(DEFINITION)

• No of queues = 1

• based on first come first serve.

• packet by packet dispatching.

• tail drop mechanism used.

• enabled when bandwith is more than 2 Mbps

• high processing speed.

(ADVANTAGES)

• simple and fast.

• no need to configure.

• low computational load.

• predictable in nature.

• no reordering.

• supported on all platforms.

(LIMITATIONS)

• unfair bandwith allocation.

• causes starvation.

• causes jitter.

• do not allow routers to organize buffer packets

(APPLICATIONS)

• gives benefits to UDP flows over TCP flows and give acceptable results for FTP.

2.  PQ

(DEFINITION)

• No of queues = 4

• based on high priority packets.

• packet by packet dispatching.

• tail drop mechanism used.

• designed for low bandwith links.

• low processing speed.

(ADVANTAGES)

• low delay to high priority packets.

• low computational load.

• allow routers to organize buffer packets.

(LIMITATIONS)

• unfair bandwith allocation.

• starvation of lower priority packets.

• need to be configured.

• low processing speed.

(APPLICATIONS)

• used in real time application as VOIP.

3.  WFQ

(DEFINITION)

• No of queues are configurable.

• low volume traffic is given priority.

• conversational dispatching.

• modified tail drop mechanisms used.

• enabled when bandwith is less than 2 Mbps.

• faster than PQ but slower than FIFO.

(ADVANTAGES)

• easy to configure.

• fair bandwith allocation.

• reduces jitter.

• propotional bandwith for traffic of different priorities.

(LIMITATIONS)

• complex.

• not applicable to delay sensitive real time services.

(APPLICATIONS)

• works best for FTP and video conferencing.

Introduction

-  Input interface is faster than the output interface or Output interface is receiving packets coming in from multiple other interfaces. This results in long delay in data delivery and wasting of resources due to lost or dropped packets.

-  Routers are involved for controlling the congestion in the network.

-  Queue management algorithms manage the length of packet queues by dropping packets whenever necessary whereas scheduling algorithms determine which packets to be sent next.

-  These algorithms are used primarily to manage the allocations of bandwidth among various flows.

-  Objective of this paper is to analyze different existing queuing mechanisms and produces a comparative picture.

-  Initial implementations of queuing used a single FIFO

o  first-in-first-out

o  first-come-first-serve

-  Each queuing mechanism has three main components that define it:

o  Classification (selecting the class)

o  Insertion policy (determining whether a packet can be enquired)

o  Service policy (scheduling packets to be put into the hardware queue)

Background

-  There are many more queuing algorithms but in this paper the main focus is on three algorithms

o  FIFO (First in First out)

§  The most basic queuing mechanisms.

§  All packets are treated equally by placing them in a single class.

PQ (Priority Queue)

Packets are t classified into different priority queues as High queue, Medium queue, Normal queue (the default queue) and Low queue.

FQ(Fair Queuing)

§  The oundation of various queuing mechanisms that are designed to ensure that each flow has fair access to network resources.

Here he flows which are sending more number of packets or large packets in size i.e. the packets of aggressive flows are dropped.

If there are n numbers of active flows then each flow is allocated 1/n of the

output bandwidth.

# data[].attributes.headline
Review Journal (

Compositional Type
Systems for Stack-Based Low-Level Language)

# data[].attributes.subject
Review Journal (

Compositional Type
Systems for Stack-Based Low-Level Language)

# data[].attributes.body
MKS1083 – STRUKTUR DATA DAN ALGORITHMA

FINAL PROJECT:

Compositional Type Systems for Stack-Based Low-Level Language

PREPARED BY:

MISHALINI A/P CHANDRAN (E20141009814)

NURUL QURATUL AINI BINTI REDZUAN (E20141009818)

SITI NURSYAZANA BINTI IBRAHIM (E20141010140)

NUR HIDAYAH BINTI MOHMED HOOD (E20141009817)

REVIEW JOURNAL

The authors’ aim in this journal is to obtain compositional natural semantics and Hoare logics applies to stack-based languages by structuring low-level languages with finite unions. Besides, they also propose a novel method for developing compositional natural semantics and Hoare logics for low-level languages, demonstrating its viability on the example of a simple low-level language with expressions. In addition, in this journal, the authors prove that non-modularity premise in untrue and they proposed to exploit a very basic implicit structure present in low-level code as the “phrase structure” for semantic descriptions and logics of low-level languages which is very useful knowledge in Stack concept.

The methodologies or approaches that was used for this research are low-level languages, compositionality, Hoare logics, type systems, data flow analyses, certified code, compilation of proofs, and typing from compilation. The objective or biased is says to be the approach because it is to propose a novel method for developing compositional natural semantics and Hoare logics for low-level languages, demonstrating its viability on the example of a simple low-level language with expressions.

The results are valid and reliable because there are many types of rules and the description of all the rules that have been created in this journal. The analytical framework that is used to discuss the valid and reliable results is the single-step reduction rules of Push, natural semantics rules of SPush, Hoare rules of SPush, abstract natural semantics rules of SPush, subtyping rules of SPush, typing rules of SPush, weakest pretype calculus, rules of compilation from While to SPush, subtyping rules of SPush for secure information flow and typing rules of SPush for secure information flow.

A state type II is well formed if no label l in it labels more than one stack type. We will use the notation L for the restriction of a state type II to a domain L ≤ Label, and write Ḹ for the complement of L. The meanings of value, stack and state types are set-theoretic, they denote sets of abstract values, abstract stacks and abstract states. On each of the three categories of types, we know that a subtyping relation by the rules. We are informed from the article that, in this design of the grammar of stack types and the stack subtyping relation, transitivity cannot be eliminated or same as without transitivity, one cannot derive, but it is derivable with transitivity.

The subtyping relations next introduced are sound and complete for the intended interpretation of subtyping as set inclusion. We are also informed that there are non-increasing w-chains of stack types that do not stabilize in a finite number of steps. Because of the soundness and completeness of subtyping, we can know this at the syntactic level that we can define a syntactic binary glb operator ^ on types and a syntactic glb operator ^ on deductively non-increasing w-chain of types that are glb operators decreasingly. The typing rules for instructions are presented in a “weakest pretype” style, where the pretype is obtained by applying appropriate substitutions in the given posttype.

At first sight, it might seem that well formedness can be lost in the pretype by taking the union. The article told us that this is in fact not the case that there is at most one stack type associated with label l + 1 in II, so both sets have at most one element and one of them must be empty. The rest of the non-jump instruction rules are defined in similar fashion. Theorem 6 (Soundness and completeness of subtyping). Proof. Soundness: By induction on the derivation. Completeness: By case analysis of T, by induction on the structure of, and by case analysis of II. Theorem 7 (Soundness of typing), Proof. By induction on the derivation of sc : IIàII’.

The evidence given for the arguments in this journal is effective. Well explanation given to each and every arguments in this journal. Moreover, the author explained about varies types of system. The author also compare all the types and example to give clearer picture to the audiences. For example, the author compared structured version and natural semantics. The author concluded , this journal is about structuring low-level languages with finite unions to obtain compositional natural semantics and Hoare logics applies to stack-based languages. Appropriate example of a type system equivalent to a secure information flow analysis also demonstrated.

The conclusion justified with various example. Many examples and application of the system demonstrated in this journal. This journal is written in academic style. The author touched many aspect such as types of system, method applied, related work and future work. Although the journal is written academically, it does not suit the intended audience.  This is because the words the author used is so complicated. More than that, the journal also very hard to understand as it is quite long and very detailed especially for students. Although the journal is very detailed, it doesn’t give clear picture of the main topic and idea. The journal is organized in good way. The journal starts with proper introduction and continues with body and ends with good conclusion. The author did very excellent job in arranging the points.

# data[].attributes.headline
Review journal (automatic queue banking system)

# data[].attributes.subject
Review journal (automatic queue banking system)

# data[].attributes.body
MKS1083 – DATA STRUCTURE AND ALGORITHM

GROUP PROJECT:

Automatic Queuing Model for Banking Applications

PREPARED BY:

NAME

ID NUMBER

NUR NAJIHAH
BINTI AB GHAFFAR

E20141009823

NORALIA
AKILAH BINTI SALMAN

E20141010133

FATIN
AMIRAH BINTI ABD BARI

E20141009853

YASMIN
ZAHIRAH BINTI YOP

E20141009797

LECTURER: DR. RAMLAH BINTI MAILOK

REVIEW ARTICLE

According to Dr.
Ahmed S. A. AL-Jumaily and Dr. Huda K. T. AL-Jobori (2011) state based on their
aim is to build automatic queuing system for organizing the banks queuing
system. From this statement, the concept is about using this system to analyses
the queue status and take decision which customer have to serve first. Before
this, most of the bank have used standard queuing model. The reason why use
this system now because can decreases the waiting time of the customer to be
serve by using the appropriate scheduling algorithm.

Based on the author’s aim, the automatic queuing
system have been achieved and this system is very suitable to use for banking
application and nowadays most of the bank used this system to organize the
customers needed by using appropriate scheduling algorithm. The most common
scheduling algorithms are FCFS (First
Come First Serve). Besides that, this system also used RSS (Random Selection
for Service). The PRI (Priority
Service) means the customers are grouped in priority classes according to some external factors. The customer with the highest priority is served
first. The last is SPF (Shortest
Processed First) which means this algorithm assumes that the service times are known in advance.

Next,
to achieve this goal we add additional components to the traditional queuing
management system by selecting the scheduling algorithm. The suggested queuing
system consists of the several components. The first component of queuing
system is customer area. Second is
queuing area. The third is testing area. The last is scheduling algorithms
database area. All the needed scheduling algorithms, the testing result, and
the customers numbers, are stored in the scheduling algorithms database area.
The testing result and the customer's numbers are saved temporarily.

According to the journal, the
researchers use quantitative research as they more focusing in counting and
classifying features and constructing Gantt Chart and figure to explain what is
observed. Researchers state that a database of two standard scheduling
algorithms was developed to evaluate systematically the proposed system. For
the proper illustration, they are comparing the ordinary queuing system with
the new automatic queuing system. From this implementation of the algorithm, in
addition to customer, system and queue objects, the authors generated a random
number of generator. The researchers implementing two case studies to test the
purposed system. For the case 1, the researcher pick randomly 20 customers
while case 2 they pick randomly 12 customers with different arrival times and
different service. As they implemented the new automatic queue system, we can
conclude the hypothesis is the lowest the average customer waiting time, the
better the performance of the system.

In this paper, the researchers have presented a new technique for
queuing system called automatic queuing system and this proposed technique
showed improvements in average waiting time. This argument is practically quite
consistent. In case 1, the total average waiting time for ordinary queuing
system is 28.45 while, after implemented the new queuing system the average
waiting time is 24.95. So, the difference between both of it is 3.5. Besides,
the total average waiting time in Case 2 for ordinary queuing system is 32.75
while the new system is 31.083. Therefore, the difference between both of it is
1.667. In conclusion, both of waiting time and performances of the system is
important. In this journal, the researcher has found a new automatic banking
queue system to smooth the performances of the system and the customer’s
waiting time for each customer is fair.

After reading this article,
the conclusions drawn, there are two important things in a queue system.
Firstly, the balance between dealing with all customers fairly and secondly,
the most important is the performance of the system. Then, the automatic
queuing system is a new technique for queuing system, which is to show
improvements in average waiting time. The conclusions of this article is justified
because there are more improvements shown by the new technique for queuing
system and using two important things in a queuing system, the system will be
easier and convenient to use.

In this article, the writing
style was suitable for the intended audience. The writing style are quite
expert and more to academic style. Then, the organising principle of text can
be anything, but in this article, the principle is to show us about how
automatic queuing model for banking applications work. Lastly, this article
could be better organised if using the 12 font size of Times New Roman and
highlights the important content so that the readers can understand easily.