text:
General Astronomy/The Death of High Mass Stars

As with location in real estate, a star's mass is everything. In fact, aside from the exact chemical composition or the gravitational effects of companion stars, mass is the factor that determines the fate of a star. Even chemical composition is fairly unimportant at this stage of the universe, because the vast majority of stars are still primarily hydrogen and helium. The initial mass of a star sets the various parameters of a specific star's lifetime far more rigidly than any factor in the life of a biological organism such as a person. Mass determines the temperature, physical size and span of life, and the exact progression from one stage to the next. Two stars with the same initial mass will follow the same path through life and are in effect identical twins in the absence of any disturbing factor such as a companion star.

Unlike smaller stars, the largest stars have even more spectacular ends. The life track of a high mass star is similar to that of a low mass star like the Sun, except shorter and more violent. High mass stars effectively Live hard and die young. Near the end of their short lives, they puff up into a giant red star, although in this case a supergiant, and then they collapse.

A giant star consumes its nuclear energy more quickly than smaller stars, as one after another layer of core develops, where it fuses lighter elements into heavier elements. All of those reactions produce more energy than they consume. No star can go further in fusing elements than the creation of iron without producing a net loss of energy from the star.

The iron core shrinks, and one after another layer of core falls upon it. The iron core becomes extremely hot and unstable. Implosion is imminent once the star's temperature reaches 10 billion Kelvin. The star suddenly explodes releasing an extreme amount of energy in a very brief period of time as a supernova.

You don't want to be near a supernova; if you were in a pleasant zone near a star about to erupt as a supernova, you would be incinerated when the radiation from the supernova reached you. If one of the nearer stars like Alpha Centauri, Sirius, or Altair were to go supernova, the intense radiation would be deadly, but no nearby star is going to go supernova. That will happen to a giant like Betelgeuse, Deneb, or Antares, each of which is far enough away that the radiation is not a hazard.

While these hypothetical observers near a supernova find them unpleasant, astronomers on Earth—a safe distance away—find them very useful. There is a certain type of supernova called type Ia that is very useful for measuring distances. The nice thing about type Ia supernova is that they all have the same absolute brightness. Because they all have the same absolute brightness, they are called standard candles. The differences in apparent brightness of one type Ia supernova from another are entirely due to their different distances from Earth. The most popular theory is that a white dwarf accumulates material from a companion star, slowly growing towards the Chandrasekhar limit mass, until it has just barely enough—about 1.38 solar masses—to trigger an explosion. It's still a mystery as to what triggers the explosion and what happens during the explosion, but because it occurs at the same mass for all Ia supernova, all Ia supernova produce the same brightness. The differences in apparent brightness of Ia supernova are entirely due to their different distances from Earth. Astronomers measure the apparent brightness of a supernova as seen from Earth, and combine this with the known absolute brightness of all Ia supernova (also taking Doppler shift into account), to find the distance of the supernova from Earth—and, by implication, the distance to the entire galaxy containing that supernova. The distances measured this way have led to a greater mystery discussed in General Astronomy/Current Unsolved Mysteries.

If the core ends up with a mass more than 1.44 times that our Sun (known as the Chandrasekhar Limit), not even quantum mechanical laws can prevent a massive star from compacting further.

For a remnant core between about 1.44 and 2 times the Sun's mass, the force of gravity pushes negative electrons into the positive protons, producing neutrons that occupy less space than their original particles and the core shrinks to what is essentially one large neutron. This neutron has more mass than our Sun but is about the size of a city on Earth, perhaps 20 kilometers across. It has become a neutron star. A teaspoon of neutron star material would weight about a billion tons on Earth.

The status of a remnant core between 2 and 3 times the mass of the Sun is not entirely clear, as it could become a neutron star, or perhaps an even smaller quark star which has only been theorized, or a black hole.

If the remnant core has more than 3 times the mass of our Sun, the gravitational field at its surface is not only large, but infinite. Nothing that gets too close to this object can escape. In fact, in theory no force of the Universe is strong enough to pull an object away that has wandered too close to a black hole. This distance away from the black hole is called the Event Horizon, or the surface of the Schwartzchild Sphere. Nothing that falls through the Event Horizon can escape, as escape velocity is greater than the speed of light. Hence not even light can escape, and the object appears completely black, hence the name, black hole.

A typical black hole with a mass three times that of the Sun would be roughly 18 kilometers across. Strictly speaking, this is the diameter of the Schwartzchild Sphere which is the visible surface of the black hole. However, the total mass of a black hole is considered to be concentrated into a single point with zero volume. Thus it is meaningless to speak of how much a tablespoon of black hole material would weigh. Effectively, the gravitational force and density at the black hole singularity are infinite.

We have not observed black holes directly (for obvious reasons), but we have ample evidence of their existence by the detection of radiation from objects falling into black holes, and in the gravitational effects they have on other bodies.


text: Template:Hidden begin

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: Template:Hidden begin


text: Template:Hidden end

title: Template:Hidden end


text:
General Astronomy/The Death of Low Mass Stars

Basically, the greater a star's mass, the greater the pressure in its core (caused by gravity) and the higher the internal temperature. High temperatures force a greater consumption of the available nuclear fuel. The greater the consumption of fuel, the hotter and brighter the star, and the shorter its lifetime.

Stars that are mid-range in mass, such as our Sun, typically live a few billion years (about 10 for the Sun). Smaller stars live much longer, perhaps several hundred billion years. The universe is still too young to have any of the oldest of the smallest stars to have consumed all their fuel. Their lives are longer than that of the universe to date.

But a middle-sized star such as the Sun cannot last as long as the universe has existed. Our sun has existed less than a half the time since the Big Bang (about 13-14 billion years ago). Since the Sun is thought to be typical, we can use it as an example for studying similar stars.

A star like the sun first fuses hydrogen (as it does now) into helium thereby releasing energy, that ultimately leaves the Sun as sunlight. When the Sun is about twice as old as it now is, it will no longer have enough hydrogen in its core to sustain stable hydrogen fusion. The resulting slow down in fusion will result in less outward pressure, to withstand the inward pull of gravity. As a result, the star will contract, compressing the core, and causing its temperature to rise.

The higher temperatures in the sun's core will allow it to fuse helium into heavier elements, but at the same time, the sun's outer layers will expand and cool. As a result it will turn red, making it a red giant.

For our Sun, this stage lasts only a few tens to a few hundreds of millions of years, and another collapse ensues. This time the core is compressed and heated further, but it has run out of hydrogen and helium fuel in its core and is in essence, a hot, dying ember composed largely of carbon called a white dwarf.

A white dwarf is a strange beast, having the mass about the same as the Sun, yet is only about as large as the Earth. At this point, the white dwarf is so tightly packed that a teaspoon of its matter would weigh about 2 tons on Earth! In fact, it is no longer even normal matter that obeys the laws of physics we are used to. Instead, it obeys quantum mechanical laws that prevent it from collapsing any further.

At the same time the white dwarf is formed from the leftover core of the star, the outer layers of the red giant are blown off into space to form a planetary nebula. The white dwarf remnant simply cools, slowly changing from white hot through the range of colors eventually ending, after tens of billions of years, as a cold black dwarf.

The upper limit for the mass of a white dwarf is about 1.44 times the mass of the Sun. So any star whose core ends up with a mass of more than 1.44 solar masses at the end of its life (after the outer layers have been blown off into a planetary nebula) cannot form a white dwarf, but ends up in an even more bizarre state. This is called the Chandrasekhar Limit.

More massive stars have even wilder lives.


text:
Template:Hidden begin-end/doc

 * hidden begin
 * hidden end

title: Template:Hidden begin-end/doc


text:
File:MainWindow EmptyProject.png

Licensing
/Images

title: File:MainWindow EmptyProject.png


text:
File:MontageBreakLine.png

Licensing
/Images

title: File:MontageBreakLine.png


text: User talk:203.196.136.43

title: User talk:203.196.136.43


text: Template:Chess Opening Theory/Position

title: Template:Chess Opening Theory/Position


text: User talk:84.228.21.239

title: User talk:84.228.21.239


text: User talk:206.228.206.2

title: User talk:206.228.206.2


text: Template:Horn/Richard Strauss - Horn Concerto in Eb Major, Opus 11


text:
Embedded Control Systems Design/Failure modes and prevention

A failure mode is the manner in which a system fails, or the manner by which a failure is observed. So, it is not the same as the cause of the failure, but it describes the way a failure occurs. There are three kinds of failure modes: conceptual, technological and organizational. This text deals with technological failure modes only, and concentrates on embedded control systems. This chapter is very relevant for the embedded systems designer because such systems often work without human supervision and at places where human correction of the failure are expensive to execute. Therefore, the designers should pay extra attention to what could go wrong in their system (i.e., to identify its failure modes) and to assess the risk of each failure (i.e., to analyse the consequences of each failure mode). It is obvious that it is way better to avoid failures than to repair them, and that simple designs are easier in this respect than complex systems; however, making simple designs is still a form of engineering art, and not yet a structured engineering discipline. Also keep in mind that many failures will not be detected by testing.

Introduction
Technological failure modes in embedded systems can be divided into two main groups: hardware failure modes and software failure modes; the toughest failures to prevent however, are those caused by subtle interactions between hardware and software.

Some examples of software failure modes are:
 * Buffer overflow: the computer memory is smaller than the programmer expected, so during operation of the embedded system, one of the programs in the system is accessing wrong parts of the computer's memory.
 * Dangling pointers: this error is common in non-safe programming languages in which the human programmer is responsible for making sure that every pointer points to the right memory location at all times.
 * Resource leaks in which programming errors lead to the loss of computer control over some of the hardware resources; memory leaks are the simplest form of resource leak.
 * Race conditions in which specific relative timing events of different components of the system leads to unexpected behaviour. Such race conditions are often hard to detect by testing only.
 * Semantic design, for example: the meaning of an arrow between two subsystems in a visual software environment should be the same as the interpretation of it by the hardware.

Some examples of hardware failure modes:
 * Electrical failure: short-circuiting, too high voltage/current
 * Mechanical failure: jamming of a valve
 * Temperature effects: deformation of components
 * Material failure: corrosion

It is important to note again that these examples are only consequences and not causes!

Some examples of software failure causes are:
 * Deadlock: two or more processes are each waiting for the other to finish, so none of the processes ever finish.
 * Resource starvation: a process doesn't get the resources it needs, so it can never finish.
 * Too small memory
 * Noise
 * Shared interfaces with other systems

Some examples of hardware failure causes:
 * Hostile environments: any factor which prevents a system from functioning correctly.
 * Badly calibrated sensors
 * Choosing the wrong dimensions
 * Manufacturing/assembly process deficiencies

Some failures are not caused by hardware or software, but are caused on the system level.

An example of a system failure cause:
 * Operational failure: human operators make mistakes too. The Three Mile Island accident is a fine example of an operational failure.

Overview
Due to the increasing capabilities and functionality of embedded systems, it is difficult to prevent or sometimes even detect failure modes. One way to ensure reliability is extensive testing using techniques such as probabilistic reliability modeling. One of the problems with these techniques is that they are only used in the late stage of development. It is better to design quality and reliability in, in the early stages of development.

To detect failures in the design process it is important to perform different tests on the system (especially on the software) at the beginning of the design. But tests are often expensive and they also should provide the correct information: the usability of test results depend on the quality of the test. So it is not always easy to come up with an appropriate test.

Dynamic analysis in the software world is the testing and evaluation of software by executing programs on a processor. An example of a dynamic analysis on hardware could be vibration and stress analysis.

These days engineers have developed a static analysis for software, which is test-free: no specific tests need to be developed and the software can be checked for flaws without having to execute the program.

There are a number of possibilities to reduce the chance of failure occurrences. But some failures need to be treated more urgent than others. At first one should look at the frequency with which a systems fails, this is called the failure rate of a system. It is desired that systems don't fail, but if a failure is very rare it is often not necessary to take steps.

Another aspect of a failure mode is its severity. An electrical appliance that short-circuits can be life-threatening, whereas the jamming of a valve in vending machine is less life-threatening.

Despite all the effort an engineer can put into designing a system that doesn't fail, failures will always occur. For example: an average cell phone these days contains as much as 2 million lines of software code. It is very likely that in one of those lines a fault is introduced. Systems are getting even more complex. For instance: that same cell phone is expected to have as much as 10 million lines of code in 10 years. Therefore, a design should be more robust. When the system detects something goes wrong it can signal this and go into a safe mode until the user takes appropriate actions. Take for example again the jamming of a valve of the vending machine: the machine can light all its LEDs to signal something is wrong and cease providing soda until it is repaired.

Failures are also to be expected when separate systems have to work together, for instance: the different robots in RoboCup. An other example of such a complex system are the robots of professor James McLurkin of MIT who have to perform the Star Wars theme tune together, but every robot can only play some notes. So they have to cooperate in order to play the entire theme correctly.

The cost of designing embedded control systems tends to increase exponentially with increasing reliability: removing X% of the faults in a system will not necessarily improve the reliability by X% (a study at IBM proved that with removing 60% of the errors, only 3% reliability was added). In some cases, it may therefore be more cost effective to not investigate in more trustworthy systems but to pay the failure costs. However one has to keep in mind that this strategy can lead to a bad name of the company for selling systems that can not be trusted. There is always a trade-off between different design criteria, depending on the system. Off course, critical systems should always be designed as reliable as possible.

This all stresses out how important it is to rule out failures in the design process. Fortunately, engineers have developed some procedures to do this systematically. All the following procedures can be used in what is called safety engineering. The study of failures is an important aspect of designing embedded control systems as it can safe time, money and even lives, and helps with eventual future modification of a system.

There are many examples of real-time disasters, due to incomplete failure testing.

Safety factors
Safety factors are used to ensure that a design will work, and to protect it against failures. However, large safety factors don't always give rise to a reliable system. Often they lead to overdesigned systems, which are more expensive and can take a longer time to manufacture/assemble.

Failure mode and effects analysis
In order to reduce (or better prevent) the failure chance of a system, engineers have developed a technique called “Failure Mode and Effects Analysis” (FMEA). This is a tool to identify potential or actual failure modes in a system and to choose the proper corrective action, when designing. FMEA provides an analytical approach to determine which risk has the greatest concern, and therefore an action is needed to prevent a problem before it arises. The development of these specifications will ensure a system that will meet the defined requirements.

It is also possible to identify critical or important design/process characteristics that require special controls to prevent or detect failure modes. A crucial step is anticipating what might go wrong with a product. While anticipating every failure mode is not possible, a development team should formulate an extensive list of potential failure modes as completely as possible. FMEA starts at the beginning of a design, and is maintained and adapted through the entire design process. This way it is possible to design out failures. This way FMEA contains important information for use in future system improvements.

Using FMEA when designing
The process for conducting an FMEA is straightforward. It is developed in 3 main steps, in which appropriate actions need to be undertaken. But before starting with a FMEA, it is important to do some pre-work to make sure the robustness and past history are included in the analysis. It is important to consider both intentional and unintentional uses! Unintentional uses are a form of hostile environments.

Determine all failure modes based on the functional requirements and their effects as perceived by the user. Each effect is given a severity number(SEV) from 1(no danger) to 10(important). If the severity of an effect has a number 9 or 10, actions are considered to change the design by eliminating the failure mode, if possible, or protecting the user from the effect.
 * Step 1: Determine the severity number

In this step it is necessary to look at the cause of a failure and how many times it occurs. A failure mode is given a probability number(OCCUR), again from 1 to 10. Actions need to be determined if the occurrence is high (meaning >4 for non safety failure modes and >1 when the severity-number from step 1 is 9 or 10).
 * Step 2: Determine the probability number

TIP: The probability number can also be used after implementation in a table of failures to give the operator a first guess of the origin of problems of frequent occurrence.

When appropriate actions are determined, it is necessary to test their efficiency. Also a design verification is needed. The proper inspection methods needs to be chosen. Each combination from the previous 2 steps, receives a detection number(DETEC). This number represents the ability of planned tests and inspections at removing defects or detecting failure modes.
 * Step 3: Determine the detection number

After these 3 basic steps, Risk Priority Numbers (RPN) are calculated.

Risk Priority Numbers
RPN do not play an important part in the choice of an action against failure modes. They are more threshold values in the evaluation of these actions.

$$RPN=SEV * OCCUR * DETEC$$

The failure modes that have the highest RPN should be given the highest priority for corrective action.

After these values are allocated, recommended actions with targets, responsibility and dates of implementation are noted. Once the actions have been implemented in the design/process, the new RPN should be checked, to confirm the improvements. Whenever a design or a process changes, a FMEA should be updated.

A few logical but important thoughts come to mind:
 * Try to eliminate the failure mode (some failures are more preventable than others)
 * Minimize the severity of the failure
 * Reduce the occurrence of the failure mode
 * Improve the detection (!)

Anticipatory Failure Determination
Like FMEA, Anticipatory failure determination (AFD) has the objective of identifying and preventing possible failures. The approach of AFD however is just the inverse of that of FMEA. Rather than searching for causes of failure modes, AFD asks developers to view at the failure of interest as an intended consequence and to look for ways to make sure that this failure always happens reliably. In this way, AFD is a complementary method to FMEA. Using FMEA the failures with the highest Risk Priority Number can be found and afterward redesigned using the AFD method.

AFD is more suited for complex failure analysis than FMEA. FMEA relies on the identification of failures and their causes based on application or personal experience of others. However the problem with this approach is “the denial phenomenon”. If one tries to consider what can go wrong with a functioning system, there is the tendency to resist thinking about unpleasant possibilities that might occur unless they actually have been experienced before. Sometimes people even deny a problem because one would not admit having made mistakes in the design. By reversing the problem, AFD overcomes this “denial phenomenon” and opens up creative insights into analysis of failures.

AFD-process
Instead of thinking about possible causes for a failure, an engineer should think about how to make that failure happen, under the same environmental conditions that made the failure happen. First identification of these conditions is needed. After that one should think about the scenario that gives rise to the failure and try to localize it.
 * Step 1: Formulation or inversion of the problem

The thought process is now shifted to finding the mechanism or means to produce the examined failure. Function analysis can be useful to identify a series of functions or actions involved in the failure scenario.
 * Step 2: Search for solutions or methods to produce the failure

There are seven potential categories of resources: substances, field effects, space available, time, object structure, system functions and other data on the system. For each of the potential solutions to cause a failure, it is necessary to check if the required resources are available to support this solution.
 * Step 3: Verify that resources are available to cause the failures

Fault tree Analysis
Fault tree analysis (FTA) is a third form of failure analysis in which an undesired state of a system is analyzed using boolean logic to combine a series of lower-level events. FTA takes place after implementation in the design process i.e. at testing level, but if all these fault trees are collected and maintained well they can be a useful aid at operating level too if failure nevertheless occur. This analysis method is mainly used in the field of safety engineering.

FTA analysis involves 5 steps: Definition of the undesired event can be very hard to catch, although some of the events are very easy and obvious to observe. An engineer with a wide knowledge of the design of the system or a system analyst with an engineering background is the best person who can help define and number the undesired events. Undesired events are used then to make the FTA, one event for one FTA. Once the undesired event is selected, all causes with probabilities of affecting the undesired event are studied and analyzed. Getting exact numbers for the probabilities leading to the event is usually impossible for the reason that it may be very costly and time consuming to do so. System designers have full knowledge of the system and this knowledge is very important for not missing any cause affecting the undesired event. For the selected event all causes are then numbered and sequenced in the order of occurrence. After selecting the undesired event and analyzed the system so that we know all the causing effects and if possible their probabilities we can now construct the fault tree. Fault tree is based on AND and OR gates which define the major characteristics of the fault tree. Analyze the tree for any possible improvement or in other words study the risk management and find ways for system improvement. In short, in this step we identify all possible hazards affecting in a direct or indirect way the system. This step is very specific and differs largely from one system to another, but the main point will always be that after identifying the hazards all possible methods are pursued to decrease the probability of occurrence.
 * Step 1: Define the undesired event to study
 * Step 2: Obtain an understanding of the system
 * Step 3: Construct the fault tree
 * Step 4: Evaluate the fault tree
 * Step 5: Control the hazards identified

Because assembling a FTA can be a costly and cumbersome experience, the perfect method is to consider subsystems and integrate them afterwards.


text:
Horn/Repertoire/List of works in chronological order

The following is a list of works included in Etudes, Solos and Concertos, Ensemble Music, and Orchestral Excerpts, sorted into chronological order of their creation.


text: User talk:70.127.206.242

title: User talk:70.127.206.242


text:
Template talk:Chess Opening Theory/Position

FEN
Consider adding FEN to the diagram. —The preceding unsigned comment was added by SunCreator (talk • contribs) 14:22, 31 March 2008.

Colouring
I think you should checkerboard the squares. 220.255.7.152 (talk) 12:47, 14 October 2009 (UTC)
 * Isn't that the case already? It appears checkered to me. SunCreator (talk) 22:52, 14 October 2009 (UTC)
 * Not on internet explorer. 116.14.27.53 (talk) 09:23, 20 October 2009 (UTC)
 * Fine on internet explorer version 8. What version are you on? SunCreator (talk) 11:50, 20 October 2009 (UTC)
 * Version 6. 116.14.27.53 (talk) 07:58, 22 October 2009 (UTC)
 * Well that explains it. Version 6 came out in 2001 and is not supported on manyy sites on the internet because it has technical problems. YouTube doesn't support it for example. Upgrade to a modern browser and all will be fine. SunCreator (talk) 18:28, 23 October 2009 (UTC)


text:
The Science of Programming/SwayPresentations/Objects

 The Sway Object System

John C. Lusth

 * Design Goals
 * Prototypes vs Classes
 * Closures as Objects
 * Environments as Objects
 * Classes via Concatenation
 * Supported Modes of Inheritance
 * Inheritance Implementation Strategies
 * Extension Inheritance
 * Reification Inheritance
 * Variation Inheritance
 * Public and Private Components
 * Class and Object Components
 * Examples
 * /Examples5/


text:
The Science of Programming/SwayPresentations/Objects/DesignGoals

 Design Goals

 * Simple
 * Expressive
 * Minimal keywords
 * Functional/Imperative/Object-oriented
 * Extensible
 * Simple

Next Previous Top


text:
The Science of Programming/SwayPresentations/Objects/PrototypesVsClasses

 Prototypes vs Classes

 * Prototype systems are simpler.

 * Instantiation via cloning

 * Inheritance via clientship/delegation

One fewer keyword!

Ungar and Smith state closure and object are two sides of the same coin.

Next Previous Top


text:
The Science of Programming/SwayPresentations/Objects/ClosuresAsObjects

 Closures as Objects

From Structure and Interpretation of Computer Programs:

(define (account amount)       (define (deposit d) (set! amount (+ amount d)))        (define (withdraw w) (set! amount (- amount w)))        (lambda (msg arg) (cond               ((eq msg 'withdraw) (withdraw arg))                ((eq msg 'deposit) (deposit arg))                (else (error "unknown message: " msg))                ) )       )

Now we can treat account as a constructor:

(define a (account 100)) (a'withdraw 10) (a'deposit 20)

The closure that translates messages to function calls is a hack.

Next Previous Top


text: User talk:169.244.75.46

title: User talk:169.244.75.46


text:
The Science of Programming/SwayPresentations/Objects/EnvironmentsAsObjects

 Environments as Objects

If you are going to use an existing 'object' as an 'Object', then environments are a better choice.

In Scheme, environments are first-class 'objects'.

(define (account amount)      (define (deposit d) (set! amount (+ amount d)))       (define (withdraw w) (set! amount (- amount w)))       (procedure-environment (lambda  1))       )

We need the 'dot' operator:

(define (dot obj message)       (eval message obj)        )

Now, our account looks like:

(define a (account 100)) ((dot a 'withdraw) 10) ((dot a 'deposit) 20)

Next Previous Top


text:
The Science of Programming/SwayPresentations/Objects/ClassesViaConcatenation

 Inheritance via Concatenation

The idea is from Antero Taivalsaari.

Concatenate the environment of the subclass and the superclass.

Now, looking up a component of a superclass is exactly the same process as looking up a component of the subclass.

class g       { var x = 2; function me("I'm g"); }   class f extends g        { var y = 4; function me("I'm f"); }

Make some objects:

var gobj = new g;   var fobj = new f;

gobj's environment:

fobj's environment:

Next Previous Top


text:
The Science of Programming/SwayPresentations/Objects/SupportedModesOfInheritance

 Supported Modes of Inheritance

 * Extension
 * Reification
 * Variation

Three of the twelve modes of inheritance from:

The many faces of inheritance: A taxonomy of taxonomy by Bertrand Meyer

The others are obscure or considered not a very good idea.

Next Previous Top


text:
The Science of Programming/SwayPresentations/Objects/InheritanceImplementationStrategies

 Inheritance Implementation Strategies

So how to implement the big three via concatenation inheritance?

For simplicity, let's assume a sequential search of the environment table when trying to resolve a variable.

Will use Sway syntax from here on out.

The quintessential class/constructor:

function node(item,next) {       this; }

Making nodes:

var items = node(1,node(2,node(3,:null)));

Or shorthand: var # = node; var items = right(1 # 2 # 3 # :null);

Using nodes:

while (items != :null) {       inspect(items . item); items = items. next; }

The function right can be written in Sway using reflection.

Next Previous Top


text:
The Science of Programming/SwayPresentations/Objects/ExtensionInheritance

 Extension Inheritance

Extension inheritance: whereby the subclass adds features not found in the superclass.

function super(a) {       var b = a + 1 * (a - 1); this; }   function sub {       var c = 3; extends(super(c * c)); }

Now we make a sub object:

var s = sub; inspect(s . b);

The output is:

s. b is 80

Next Previous Top


text:
The Science of Programming/SwayPresentations/Objects/ReificationInheritance

 Reification Inheritance

Reification inheritance: whereby the subclass completes (or partially completes) an incomplete superclass.

function super {       function a(x) { b(x * x); } this; }

function sub {       function b(y) { y + 1 * (y - 1); } extends(super); }

Now we make a sub object:

var s = sub; inspect(s . a(3));

The output is:

s. a(3) is 80

Sway allows you to look at the concatenated environment:

ppObject(s);

yields:

: context:  dynamicContext:  callDepth: 1 constructor:  this:  b:  a:

Next Previous Top


text:
The Science of Programming/SwayPresentations/Objects/VariationInheritance

 Variation Inheritance

Variation inheritance: whereby the subclass changes a behavior of the super class.

function super {       var greeting = "hello"; function a { greeting; } this; }   function sub {       function a { "well, " + a. prior + " there!"; } extends(super); }   var s = sub; println(s . a);

The output is:

well, hello there!

Looking at the s object gives:

: context:  dynamicContext:  callDepth: 1 constructor:  this:  a:  a:  greeting: "hello"

Next Previous Top


text:
The Science of Programming/SwayPresentations/Objects/PublicAndPrivateComponents

 Public and Private Components

Every component in a Sway Object is public:

 * A belief that programming is not a adversarial exercise

 * Simplifies the language (syntactically speaking)

However, it is possible, with a little bit of work, to make a component private. One method in Sway uses simple scoping rules (see the Class and Object Components page.

The other uses operator overloading.

Next Previous Top


text:
The Science of Programming/SwayPresentations/Objects/ClassAndObjectComponents

 Class and Object Components

Class component: shared by all instances

Object component: unique for each instance

Could use a global variable...

var shared_count = 0;

function z {       var count = 0; shared_count += 1; count += 1; this; }

function x {       extends(z); }

inspect(x . shared_count); inspect(x . count); inspect(x . shared_count);

Results are as expected:

x. shared_count is 1 x. count is 1 x. shared_count is 3

Not very satisfying...

Next Previous Top


text:
The Science of Programming/SwayPresentations/Objects/Examples

 Examples

How about with?

function with(obj,$actions) {       $actions. context = obj; force($actions); }

Let's create an object:

function f(x) { var y = x + 1; this;} var o = f(3);

Now let's modify its slots:

with (o) {       x = 10; y = 13; }

Did it work?

inspect(o . x); inspect(o . y);

Output:

o. x is 10 o. y is 13

Next Previous Top


text:
Wikijunior:Ancient Civilizations/Mesopotamians

What countries did they live in?
Mesopotamia included the area that is now eastern Syria, southeastern Turkey and most of Iraq.

What did their buildings look like?
They had buildings made of mud and clay with an opening on top because they hadn't made doors yet.

What did they eat?
Ordinary people in Mesopotamia ate better food than the poor people. Some workers were paid in food while others had to buy or trade for food.

In Mesopotamia they ate a meal three times a day, these meals were prepared outside in a small courtyard. The meals included a flatbread made of barley. They did not eat beef because it was too expensive. So they ate lots of vegetable soups or stews. They also drank lots of alcoholic beverages, mainly ale. They drank some cows' milk but they could not keep it long because it would spoil in the hot climate. People that lived near the river used spears and nets to catch fish. The fish were salted and stored to eat in the winter. People near the coast would hunt for turtle eggs and eat them. They ate in clay plates or on hard bread.

Food from other countries was enjoyed including bananas from India, wine from Syria. The King had fancier meals made with different spices. He also was the first to have the imported white cheese.

Recipes have been found on clay tablets.

What did they wear?
They mostly wore clothes made from wool; cotton and silk were introduced later.

What did their writing look like?
Mesopotamia writing was one of the first written languages. They wrote using pictograms. They used small drawings of simple pictures to communicate.

Writing began in Mesopotamia around 3500 BC. Scribes were people who learned to write. Clay tablets were used for recording information. Scribes kept track of sales and trades, tax payments, gifts for the gods, marriages, and deaths. There were many symbols that scribes had to learn. They used sharp tools to write with like a stylus. Later on, their writing was called cuneiform. Cuneiform has lots of triangles and wedge-shaped symbols.

What did they believe?
The Mesopotamians believed that the gods were beyond the reach of humans and that the gods considered them extremely insignificant. In comparison, the Egyptians thought that you could make sacrifices for gods and they would listen. The Egyptians also believed that there was a connection between humans and the gods, the pharaoh being the link, who was made divine by the god Horus. The Egyptians also thought that you could receive eternal life in the afterlife.

In the epic of Gilgamesh, the god Enlil decided to flood the earth and almost every other god took his side on this matter. The Egyptian god Amon would cause the Nile to flood, always at the same period of time, and they believed that if they praised him and made sacrifices for him, he would continue to flood the Nile.

Are some of them famous even today?
Yes, they are. For example, people such as Gilgamesh and king Hammurabi are still famous today. Also, many Egyptian kings, including King Tut(Tutankhamen) are still famous today.

What is left of them today?
There are many artifacts, including tablets in their language, ceramic pots, and many other daily objects.

When did the civilizations start and end?
The civilizations started around 5300 B.C. and ended either in the 6th century B.C. or 644 A.D.


text:
The Science of Programming/SwayPresentations/Objects/ClassAndObjectComponents2

 Class and Object Components, continued

Here's an attempt...

var z = {   var z_shared = { var count = 0; this; }; function z {       var shared = z_shared; var count = 0; shared. count += 1; count += 1; this; }   };    function x {       extends(z); }

Testing...

inspect(x . shared . count); inspect(x . count); inspect(x . shared . count);

Output is as desired:

x. shared. count is 1 x. count is 1 x. shared. count is 3

The beauty of concatenation...


text:
GIMP/Gradient

= The Basics =

Shortcut: L

The GIMP Blend tool enables you to make gradients. For instance, a gradient may be a paint fill or stroke which smoothly blends from red to green. A gradient may have sudden changes as well. And a gradient may be applied to selections or opacities.

On the right side of the gradient dialog box, are the default settings:

 * Mode - you can select mode here (more information in the Modes article)
 * Opacity - set whether gradient will be transparent or fully visible
 * Gradient - type of gradient
 * Offset - effects how far along the start colour in the gradient begins
 * Shape - shape of gradient
 * Repeat - way of repeating
 * Dithering - helps reduce banding by dithering the gradient.
 * Adaptive supersampling - try to refine the gradient in high contrast areas. Choose how much difference is required before supersampling activates, and how hard GIMP tries to get good quality samples.

Opacity
This bar controls the transparency of the gradient. Any value between 0.0 and 100.0 is possible with 100 being fully opaque and 0 being fully transparent. The default value is 100.

Gradient
There are hundreds of types of gradients in GIMP. Neons, flags, flares and much more. All of them have their own effect, but only few use selected colours. Here's short description of them:

Next to it you can see a flip option. It reverses the gradient direction. For example, Red to Green would flip to Green to Red.
 * FG to BG (HSV anti-clockwise) - using HSV palette, moves counter-clockwise
 * FG to BG (HSV clockwise hue) - using HSV palette, moves clockwise
 * FG to BG (RGB) - using RGB palette
 * FG to Transparent - moves from foreground colour to transparent.

Offset
Gradient offset ranges from a default of 0, up to 100 percent. When offset is 0, the gradient begins at the start of the blending line. When offset is 50, the gradient begins at the halfway point in the blending line. Any earlier points are rendered with the same colour as the leftmost colour in the gradient. Setting offset to 100.0, which makes the gradient a solid (non-gradient) colour.

Shape
There are eleven gradient shapes, clicking and dragging inside a selection makes the gradient follow its boundary.

 * Linear - Smoothly blends from left to right
 * Bi-linear - Smoothly blends to the left and right from the middle
 * Radial - Linearly blends outward along radius - pseudo-spherical appearance
 * Square - Linearly blends into a square from center to corner
 * Conical (symmetrical) - blends linearly with angle in a circular arc
 * Conical (asymmetrical) - blends linearly with arc, until reaching the starting radius
 * Shaped (angular) - formerly shapeburst, produces an angular beveled gradient
 * Shaped (spherical) - fills selection with a bulging beveled gradient
 * Shaped (dimpled) - fills selection with a puckered beveled gradient
 * Spiral (clockwise) - clockwise spiral blend centered at click, with varying amount of twist
 * Spiral (counterclockwise) - counterclockwise spiral

Repeat
There are three options for repeating:
 * None - no repeat
 * Sawtooth wave - once passing the end of the gradient, begins again at the start
 * Triangular wave - once passing the end of the gradient, blends backwards until the start, and then begins blending forward again..

You can use Repeat with these shapes: Linear, Bi-linear, Radial, Square, Conical (sym), Conical (asym).

Dithering
Dithering reduces banding patterns in the gradient. If your gradient includes deliberately banded areas, turn dithering off in order to preserve them. If the result must be very precise, consider turning dithering off also (dithering trades spatial resolution for colour resolution, which is only good if you have spatial resolution to spare.)

Adaptive Supersampling
Adaptive supersampling identifies areas that seem to have high contrast and tries to improve the precision of the rendering only at these points. The general effect is that areas of high contrast are smoothed out; One easy way to see this is comparing the appearance of a 'sawtooth wave' repeated gradient with and without supersampling enabled. The options in this section allow you to control
 * How much contrast is considered 'high contrast'
 * How much GIMP will try to improve the sample quality before accepting the result (this comes into action when the additional samples' relationship to each other is also considered as high contrast)

See supersampling for a detailed explanation

title: GIMP/Gradient


text:
How To Build A Teardrop Trailer/Assembling the Doors

Assembling the Doors
Its time to find the door blanks that you cut out for the door openings. We will use these blanks for the actual door.

There are two issues with making doors. One was discussed previously.

Door Seal

You need to figure out how you are going to seal the door from outside water intrusion and construct some form of sealing surface around the door perimeter.

There are several thoughts on this and their availability depend on the shape of the door you chose:

Inside Seal
You can add moulding around the inside of the door opening (on the body,inside)and place the seal on this moulding facing out. On the upside, this allows the outside of the door to be completely flush with the outside of the sidewall, and the path which water would have to take to get to the seal is inherently difficult. The downside is that the interior moulding takes away slightly from the already narrow interior cabin space and any imperfections of your door opening cut are completely visible and may need to be sanded with a belt sander.

Outside Seal
You can alternatively add moulding around the outside on the door itself and place the seal on this moulding facing in. On the upside, it hides imperfections of your door opening cut and allows the interior cabin space to remain free of anything you might rub against in the night. On the downside, the seal will be directly exposed to driving rain (you'll need to put a barrier moulding around the outside of the door on the body itself to block this. And unless you have a curve-free (straight) hinge side on the door (with square corners), you'll be forced to use gate hinges instead of piano or house door hinges.

If you're confused about the photos apparently showing the style of door that is most problematic - the author learned the hard way on the doors. I decided to use an outside moulding as described above, however I decided to cut out a single piece of luan to cover the door and have it extend about an inch beyond the door. This forced the use of gate hinges because the pivot point had to be at the edge of the overhang (i.e. the screw holes for any other type hinge would not reach the 3/4" plywood part of the door). Mistake number 2 was that I read that using polyurethane glue on the edge of plywood was a good way to seal it so I put polyurethane glue on the door edges.  Weatherstrip glue does not stick to polyurethane glue - don't put it on the door edges like I mistakenly did!  Mistake number 3 was thinking I could lighten the door by cutting out some holes in the 3/4" wood. As you can see, my holes are awful looking. I planned on putting paneling over them but later decided against it.

>>Next:Finish


text: User talk:72.43.208.135

title: User talk:72.43.208.135


text:
The Science of Programming/SwayPresentations/Objects/ClassAndObjectComponents3

 Class and Object Components, continued

What about overriding simple variables?

function z {       var value = 3; function getvalue { value; } this; }   function x {       var value = 4; extends(z); }   var obj = x;

What should obj. getValue produce?

Previous Next Top


text:
The Science of Programming/SwayPresentations/Objects/PublicAndPrivateComponents2

 Public and Private Components

We overload assignment so that only variables can appear on the left hand side of the assignment operator.

function =($a,b) {       var assign = shadowed(:=); if (type($a. code) != :VARIABLE) {          throw(:restrictedAssignment,               "you are only allowed to assign to simple variables"); }       $a assign b;        }

So, anything like:

x. a = 3;

throws an exception.

Since setters can access the variables directly, they are not affected by this change.

Next Previous Top


text:
User talk:Losi McLaren F1~enwikibooks

Welcome!
Welcome, Losi McLaren F1!

Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.-- – Mike.lifeguard  | talk 18:21, 31 March 2008 (UTC)

Your account will be renamed
Hello,

The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See the announcement for more information.

Unfortunately, your account clashes with another account also called Losi McLaren F1. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Losi McLaren F1~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can pick out a different name.

Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in.

Sorry for the inconvenience.

Yours, Keegan Peterzell Community Liaison, Wikimedia Foundation 23:23, 17 March 2015 (UTC)

Renamed
 This account has been renamed as part of single-user login finalisation. If you own this account you can |log in using your previous username and password for more information. If you do not like this account's new name, you can choose your own using this form after logging in: . -- Keegan (WMF) (talk) 05:12, 19 April 2015 (UTC)

title: User talk:Losi McLaren F1~enwikibooks


text:
Ido/Lesson I8

 * El iris a la kontoro ye sis kloki kin. She left for the office at 6:05.
 * On facas kemiala experimenti en la laboratorio. Chemical experiments are performed in the laboratory.

title: Ido/Lesson I8


text:
User:Whiteknight/Notes/Parrot Virtual Machine

< Book Foundry | All Books All my contributions to this book, for compatibility with Parrot itself, are released under the Artistic License v2.0. Of course, I cannot require that other contributors do the same.
 * 7 December 2008: Has lots of content in many of the pages, although needs some additional content in certain chapters (especially later chapters). Needs formatting and general cleanup work.
 * 5 January 2009: Started review
 * 15 January 2008: Finished reviewing all existing pages.


text: Ido/Lesson I6

title: Ido/Lesson I6


text: User talk:199.216.41.251

title: User talk:199.216.41.251


text:
Template:ChessMid

When contributing to this Wikibook, please follow the Conventions for organization. /Templates

title: Template:ChessMid


text:
Fundamentals of Transportation/Traffic Signals

Traffic Signals are one of the more familiar types of intersection control. Using either a fixed or adaptive schedule, traffic signals allow certain parts of the intersection to move while forcing other parts to wait, delivering instructions to drivers through a set of colorful lights (generally, of the standard red-yellow (amber)-green format). Some purposes of traffic signals are to (1) improve overall safety, (2) decrease average travel time through an intersection, and (3) equalize the quality of services for all or most traffic streams. Traffic signals provide orderly movement of intersection traffic, have the ability to be flexible for changes in traffic flow, and can assign priority treatment to certain movements or vehicles, such as emergency services. However, they may increase delay during the off-peak period and increase the probability of certain accidents, such as rear-end collisions. Additionally, when improperly configured, driver irritation can become an issue. Traffic signals are generally a well-accepted form of traffic control for busy intersections and continue to be deployed. Other intersection control strategies include signs (stop and yield) and roundabouts. Intersections with high volumes may be grade separated.

Traffic signals can be pretimed, semi-actuated, or fully-actuated. Pretimed intersections have a fixed cycle length. This is easy to implement but can cause excessive delay at some intersections. Semi-actuated intersections have vehicle detectors on the minor roadway. When a vehicle approaches on the minor roadway, the detector receives a signal to change the light to green. In a fully-actuated intersection, all approaches have a detector. Each phase has an initial green light interval to provide time for standing vehicles to get through the intersection. This initial time is extended if the detector at the approach detects a car moving through the intersection. If there are no cars moving through the intersection for a given period of time, the light will change. This is called a "gap out". After the maximum amount of time has passed for the light to be green, the light will change even if there are still cars moving through the intersection. This is called a "max out".

Intersection Queuing

At an intersection where certain approaches are denied movement, queuing will inherently occur. Of the various queuing models, one of the more commons and simple ones is the D/D/1 Queuing Model. This model assumes that arrivals and departures are deterministic (D) and one departure channel exists. D/D/1 is quite intuitive and easily solvable. Using this form of queuing with an arrival rate $$\lambda$$ and a departure rate $$\mu$$, certain useful values regarding the consequences of queues can be computed.

One important piece of information is the duration of the queue for a given approach. This time value can be calculated through the following formula:

$$ t_c {\rm{ }} = {\rm{ }}\frac \,\!$$

Where:

 * $$t_c$$ = Time for queue to clear
 * $$\rho$$ = Arrival Rate divided by Departure Rate
 * $$r$$ = Red Time

With this, various proportions dealing with queues can be calculated. The first determines the proportion of cycle with a queue.

$$ P_q {\rm{ }} = {\rm{ }}\frac{C}{\rm{ }} \,\!$$

Where:

 * $$P_q$$ = Proportion of cycle with a queue
 * $$C$$ = Cycle Length

Similarly, the proportion of stopped vehicles can be calculated.

$$ P_s = \frac = \frac{C} = P_q  \,\!$$

$$ P_s = \frac = \frac = \frac \,\!$$

Where:

 * $$P_s$$ = Proportion of Stopped Vehicles
 * $$g$$ = Green Time

Therefore, the maximum number of vehicles in a queue can be found.

$$Q_{\max } {\rm{ }} = {\rm{ }}\lambda r \,\! $$

Intersection delay
Various models of intersection delay at isolated intersections have been put forward, combining queuing theory with empirical observations of various arrival rates and discharge times (Webster and Cobbe 1966; Hurdle 1985; Hagen and Courage 1992). Intersections on arterials are more complex phenomena, including factors such as signal progression and spillover of queues between adjacent intersections. Delay is broken into two parts: uniform delay, which is the delay that would occur if the arrival pattern were uniform, and overflow delay,  caused by stochastic variations in the arrival patterns, which manifests itself when the arrival rate exceeds the service flow of the intersection for a time period.

Delay can be computed with knowledge of arrival rates, departure rates, and red times. Graphically, total delay is the product of all queues over the time period in which they are present.

$$ D_t {\rm{ }} = {\rm{ }}\frac{\rm{ }} \,\!$$

Similarly, average vehicle delay per cycle can be computed.

$$ d_{avg} {\rm{ }} = {\rm{ }}\frac\frac{1}{\rm{ }}\,\!$$

$$ d_{avg} {\rm{ }} = \frac \,\!$$

From this, maximum delay for any vehicle can be found.

$$ d_{\max } {\rm{ }} = {\rm{ }}r \,\!$$

Level of Service
In order to assess the performance of a signalized intersection, a qualitative assessment called Level of Service (LOS) is assessed, based upon quantitative performance measures. For LOS, the performance measured used is average control delay per vehicle. The general procedure for determining LOS is to calculate lane group capacities, calculate delay, and then make a determination.

Lane group capacities can be calculated through the following equation:

$$c = s\frac\,\!$$

Where:

 * $$c$$ = Lane Group Capacity
 * $$s$$ = Adjusted Saturation Flow Rate
 * $$g$$ = Effective Green Length
 * $$C$$ = Cycle Length

Average control delay per vehicle, thus, can be calculated by summing the types of delay mentioned earlier.

$$d = (d_1(PF)) + d_2 + d_3\,\!$$

If your intersection is D/D/X: $$d = ((d_1(PF)) + d_3$$

This is because there are no random arrivals.

If your intersection is M/D/X: $$d = (d_1(PF)) + d_2 + d_3$$

You might think that there would be no deterministic arrivals because the intersection is M/D/X, however, this is incorrect. d_1 can be thought of as the baseline for the intersection.

Where:
 * $$d$$ = Average Signal Delay per vehicle (sec)
 * $$d_1$$ = Average Delay per vehicle due to uniform arrivals (sec) (equivalent to $$D_T$$ in previous section)
 * $$PF$$ = Progression Adjustment Factor
 * $$d_2$$ = Average Delay per vehicle due to random arrivals (sec)
 * $$d_3$$ = Average delay per vehicle due to initial queue at start of analysis time period (sec)

Uniform delay can be calculated through the following formula: $$ d_1 = \frac \,\!$$

Where:
 * $$X$$ = Volume/Capacity (v/c) ratio for lane group.

Similarly, random delay can be calculated:

$$ d_2 = 900T\left[ {\left( {X - 1} \right) + \sqrt {\left( {X - 1} \right)^2  + \frac} } \right] \,\!$$

Where:
 * $$T$$ = Duration of Analysis Period (in hours)
 * $$k$$ = Delay Adjustment Factor that is dependent on signal controller mode
 * $$I$$ = Upstream filtering/metering adjustment factor

Overflow delay generally only applies to densely urban corridors, where queues can sometimes spill over into previous intersections. Since this is not very common (usually the consequence of a poorly timed intersection sequence, the rare increase of traffic demand, or an emergency vehicle passing through the area), it is generally not taken into account for simple problems.

Delay can be calculated for individual vehicles in certain approaches or lane groups. Average delay per vehicle for an approach A can be calculated using the following formula:

$$ d_A = \frac \,\!$$

Where:
 * $$d_A$$ = Average Delay per vehicle for approach A (sec)
 * $$d_i$$ = Average Delay per vehicle for lane group i on approach A (sec)
 * $$v_i$$ = Analysis flow rate for lane group i

Average delay per vehicle for the intersection can then be calculated:

$$ d_I = \frac \,\!$$

Where:
 * $$d_I$$ = Average Delay per vehicle for the intersection (sec)
 * $$d_A$$ = Average Delay per vehicle for approach A (sec)
 * $$v_A$$ = Analysis flow rate for approach A

Critical Lane Groups
For any combination of lane group movements, one lane group will dictate the necessary green time during a particular phase. This lane group is called the Critical Lane Group. This lane group has the highest traffic intensity (v/s) and the allocation of green time for each phase is based on this ratio.

The sum of the flow ratios for the critical lane groups can be used to calculate a suitable cycle length.

$$ Y_c = \sum\limits_{i = 1}^n {\left( {\frac{v}{s}} \right)} _{ci} \,\! $$

Where:
 * $$Y_c$$ = Sum of Flow Ratios for Critical Lane Groups
 * $$(v/s)_{ci}$$ = Flow Ratio for Critical Lane Group i
 * $$n$$ = Number of Critical Lane Groups

Similarly, the total lost time for the cycle is also an element that can be used in the calculation of cycle length.

$$ L = \sum\limits_{i = 1}^n {\left( {t_L } \right)_{ci} } \,\!$$

Where:
 * $$L$$ = Total lost Time for Cycle
 * $$(t_L)_{ci}$$ = Total Lost Time for Critical Lane Group i

Cycle Length Calculation
Cycle lengths are calculated by summing individual phase lengths. Using the previous formulas for assistance, the minimum cycle length necessary for the lane group volumes and phasing plan can be easily calculated.

$$ C_{min } = \frac{\rm{  }} \,\!$$

Where:
 * $$C_{min}$$ = Minimum necessary cycle length
 * $$X_c$$ = Critical v/c ratio for the intersection
 * $$(v/s)_{ci}$$ = Flow Ratio for Critical Lane Group
 * $$n$$ = Number of Critical Lane Groups

This equation calculates the minimum cycle length necessary for the intersection to operate at an acceptable level, but it does not necessarily minimize the average vehicle delay. A more optimal cycle length usually exists that would minimize average delay. Webster (1958) proposed an equation for the calculation of cycle length that seeks to minimize vehicle delay. This optimum cycle length formula is listed below.

$$ C_{opt} = \frac{\rm{  }} \,\!$$

Where:
 * $$C_{opt}$$ = Optimal Cycle Length for Minimizing Delay

Green Time Allocation
Once cycle length has been determined, the next step is to determine the allocation of green time to each phase. Several strategies for allocating green time exist. One of the more popular ones is to distribute green time such that v/c ratios are equalized over critical lane groups. Similarly, v/c ratios can be found with predetermined values for green time.

$$ X_i = \frac = \frac = \frac \,\!$$

Where:
 * $$X_i$$ = v/c ratio for lane group i

With knowledge of cycle lengths, lost times, and v/s ratios, the degree of saturation for an intersection can be found.

$$ X_c = \sum {\frac\frac{C}}  \,\!$$

Where:
 * $$X_c$$ = Degree of saturation for an intersection cycle

From this, the total effective green for all phases can be computed.

$$ \sum {g_i } = \sum {\frac\frac{C}}  = C - L \,\!$$

Second Method For Green Time
Another method for calculating the effective red and green time for a given cycle is to minimize the total delay of the intersection. By assuming the intersection is controlled based on D/D/1 queuing the above equations for total delay can be used. Since the light will contain at least two or more directions the total delay must be calculated for each direction, and then added together to determine the total delay of the intersection. For a two way intersection with opposing lights a and b

$$ D_t {\rm{ }} = {\rm{ }}\frac+{\rm{ }}\frac{\rm{ }} \,\!$$

Also the effective red time is the cycle length minus the effective green time for the other directions.

$$ C {\rm{ }} = r_{a}+g_{a}{\rm{ }} \,\!$$

$$ g_a {\rm{ }} = r_{b}{\rm{ }} \,\!$$

By substituting the two above equation for cycle length and effective red time into the total delay equation, it can then be written with only one variable red time.

$$ D_t {\rm{ }} = {\rm{ }}\frac+{\rm{ }}\frac{\rm{ }} \,\!$$

By taking the derivative and setting it equal to zero, the minimum effective red time can be calculated. The other directions effective red time, and the effective green times for each directions can then be calculated by using the two above equations involving the cycle length.

Demonstrations

 * Flash animation: Signal Phasing (by Karen Dixon and Thomas Wall of Oregon State University)
 * Flash animation: Signal Progression (by Karen Dixon and Thomas Wall of Oregon State University)

Example 1: Intersection Queuing
 Solution:

Traffic intensity, $$\rho$$, is the first value to calculate.

$$ \rho = \frac = \frac = 0.14\,\!$$

Red time is found to be 40 seconds (C - g = 60 - 20). The remaining values of interest can be easily found.

Time to queue clearance after the start of effective green:

$$ t_c {\rm{ }} = {\rm{ }}\frac = \frac = 6.51\ s \,\!$$

Proportion of the cycle with a queue:

$$ P_q {\rm{ }} = {\rm{ }}\frac{C}{\rm{ }} = {\rm{ }}\frac{60}{\rm{ }} = 0.775\,\!$$

Proportion of vehicles stopped:

$$ P_s = \frac = \frac = 0.775 \,\!$$

Maximum number of vehicles in the queue:

$$Q_{\max } {\rm{ }} = {\rm{ }}\lambda r = {\rm{ }}0.1(40) = 4 \,\!$$

Total vehicle delay per cycle:

$$ D_t {\rm{ }} = {\rm{ }}\frac{\rm{ }} = {\rm{ }}\frac{\rm{ }} = 93 veh-s \,\!$$

Average delay per vehicle:

$$ d_{avg} {\rm{ }} = \frac = \frac = 15.5\ s\,\!$$

Maximum delay of any vehicle:

$$ d_{\max } {\rm{ }} = {\rm{ }}r = {\rm{ }} 40\ s \,\!$$

Example 2: Total Delay
 Problem:

Compute the average approach delay given certain conditions for a 60-second cycle length intersection with 20 seconds of green, a v/c ratio of 0.7, a progression neutral state (PF=1.0), and no chance of intersection spillover delay (overflow delay). Assume the traffic flow accounts for the peak 15-minute period and a lane capacity of 840 veh/hr, and that the intersection is isolated.

Thought Question
Problem

Why don't signalized intersections perform more efficiently than uncontrolled intersections?

Solution

The inherent lost time that comes from each signal change is wasted time that does not occur when intersections are uncontrolled. It comes at quite a surprise to most of the Western World, where traffic signals are plentiful, but there are intersections that perform quite well without any form of control. There is an infamous video on YouTube that shows an uncontrolled intersection in India where drivers somehow navigate through a busy, chaotic environment smoothly and efficiently. The video is humorous to watch, but it shows a valid point that uncontrolled intersections can indeed work and are quite efficient. However, the placement of traffic signals is for safety, as drivers entering an uncontrolled intersection have a higher likelihood of being involved in a dangerous accident, such as a T-bone or head-on collision, particularly at high speed.

Sample Problem
Problem (Solution)

Additional Questions
Homework

Variables

 * $$t_c$$ - Time for queue to clear
 * $$\rho$$ - Arrival Rate divided by Departure Rate
 * $$r$$ - Red Time
 * $$P_q$$ - Proportion of cycle with a queue
 * $$P_s$$ - Proportion of Stopped Vehicles
 * $$c$$ - Lane Group Capacity
 * $$s$$ - Adjusted Saturation Flow Rate
 * $$g$$ - Effective Green Length
 * $$C$$ - Cycle Length
 * $$d$$ - Average Signal Delay per vehicle (sec)
 * $$d_1$$ - Average Delay per vehicle due to uniform arrivals (sec)
 * $$PF$$ - Progression Adjustment Factor
 * $$d_2$$ - Average Delay per vehicle due to random arrivals (sec)
 * $$d_3$$ - Average delay per vehicle due to initial queue at start of analysis time period (sec)
 * $$X$$ - Volume/Capacity (v/c) ratio for lane group.
 * $$T$$ - Duration of Analysis Period (in hours)
 * $$k$$ - Delay Adjustment Factor that is dependent on signal controller mode
 * $$I$$ - Upstream filtering/metering adjustment factor
 * $$d_A$$ - Average Delay per vehicle for approach A (sec)
 * $$d_i$$ - Average Delay per vehicle for lane group i on approach A (sec)
 * $$v_i$$ - Analysis flow rate for lane group i
 * $$d_I$$ - Average Delay per vehicle for the intersection (sec)
 * $$v_A$$ - Analysis flow rate for approach A
 * $$Y_c$$ - Sum of Flow Ratios for Critical Lane Groups
 * $$(v/c)_{ci}$$ - Flow Ratio for Critical Lane Group i
 * $$n$$ - Number of Critical Lane Groups
 * $$C_{min}$$ - Minimum necessary cycle length
 * $$X_c$$ - Critical v/c ratio for the intersection
 * $$(v/s)_{ci}$$ - Flow Ratio for Critical Lane Group
 * $$C_{opt}$$ - Optimal Cycle Length for Minimizing Delay
 * $$X_i$$ - v/c ratio for lane group i
 * $$X_c$$ - Degree of saturation for an intersection cycle

Key Terms

 * Delay
 * Total Delay
 * Average Delay
 * Uniform Delay
 * Random Delay
 * Overflow Delay
 * Cycle Length
 * v/c ratio
 * v/s ratio
 * Saturation Flow Rate
 * Red Time
 * Effective Green
 * Minimum Cycle Length
 * Optimal Cycle Length
 * Critical Lane Group
 * Degree of Saturation
 * Progression Adjustment Factor
 * Lost Time
 * Queue

Videos

 * History and Evolution of Urban Traffic Control Technology
 * Traffic Signal Terminology
 * Traffic Signal Advantages and Disadvantages
 * Search for Lost Time
 * Traffic Analysis at Signalized Intersections
 * Traffic Analysis at Signalized Intersections: Example
 * Timing Traffic Signals: Example

External Exercises
Use the GAME software at the STREET website to learn how to coordinate traffic signals to reduce delay.

Use the OASIS software at the STREET website to study how signals change when given information about time-dependent vehicle arrivals.


text:
Template:BCO2

/Templates
 * Kasparov, Garry, & Keene, Raymond 1989 Batsford chess openings 2. ISBN 0-8050-3409-9.

title: Template:BCO2


text: User talk:204.113.72.5

title: User talk:204.113.72.5


text:
Fundamentals of Transportation/Networks

Transportation systems have specific structure. Roads have length, width, and depth. The characteristics of roads depends on their purpose.

Roads
A road is a path connecting two points. The English word ‘road’ comes from the same root as the word ‘ride’ –the Middle English ‘rood’ and Old English ‘rad’ –meaning the act of riding. Thus a road refers foremost to the right of way between an origin and destination. In an urban context, the word street is often used rather than road, which dates to the Latin word ‘strata’, meaning pavement (the additional layer or stratum that might be on top of a path).

Modern roads are generally paved, and unpaved routes are considered trails in some countries. The pavement of roads began early in history. Approximately 2600 BCE, the Egyptians constructed a paved road out of sandstone and limestone slabs to assist with the movement of stones on rollers between the quarry and the site of construction of the pyramids. The Romans and others used brick or stone pavers to provide a more level, and smoother surface, especially in urban areas, which allows faster travel, especially of wheeled vehicles. The innovations of Thomas Telford and John McAdam reinvented roads in the early nineteenth century, by using less expensive smaller and broken stones, or aggregate, to maintain a smooth ride and allow for drainage. Later in the nineteenth century, application of tar (asphalt) further smoothed the ride. In 1824, asphalt blocks were used on the Champs-Élysées in Paris. In 1872, the first asphalt street (Fifth Avenue) was paved in New York (due to Edward de Smedt), but it wasn’t until bicycles became popular in the late nineteenth century that the “Good Roads Movement” took off. Bicycle travel, more so than travel by other vehicles at the time, was sensitive to rough roads. Demands for higher quality roads really took off with the widespread adoption of the automobile in the United States in the early twentieth century.

The first good roads in the twentieth century were constructed of Portland cement concrete (PCC). The material is stiffer than asphalt (or asphalt concrete) and provides a smoother ride. Concrete lasts slightly longer than asphalt between major repairs, and can carry a heavier load, but is more expensive to build and repair. While urban streets had been paved with concrete in the US as early as 1889, the first rural concrete road was in Wayne County, Michigan, near to Detroit in 1909, and the first concrete highway in 1913 in Pine Bluff, Arkansas. By the next year over 2300 miles of concrete pavement had been laid nationally. However over the remainder of the twentieth century, the vast majority of roadways were paved with asphalt. In general only the most important roads, carrying the heaviest loads, would be built with concrete.

Roads are generally classified into a hierarchy. At the top of the hierarchy are freeways, which serve entirely a function of moving vehicles between other roads. Freeways are grade-separated and limited access, have high speeds and carry heavy flows. Below freeways are arterials. These may not be grade-separated, and while access is still generally limited, it is not limited to the same extent as freeways, particularly on older roads. These serve both a movement and an access function. Next are collector/distributor roads. These serve more of an access function, allowing vehicles to access the network from origins and destinations, as well as connecting with smaller, local roads, that have only an access function, and are not intended for the movement of vehicles with neither a local origin nor destination. Local roads are designed to be low speed and carry relatively little traffic.

The class of the road determines which level of government administers it. The highest roads will generally be owned, operated, or at least regulated (if privately owned) by the higher level of government involved in road operations; in the United States, these roads are operated by the individual states. As one moves down the hierarchy of roads, the level of government is generally more and more local (counties may control collector/distributor roads, towns may control local streets). In some countries freeways and other roads near the top of the hierarchy are privately owned and regulated as utilities, these are generally operated as toll roads. Even publicly owned freeways are operated as toll roads under a toll authority in other countries, and some US states. Local roads are often owned by adjoining property owners and neighborhood associations.

The design of roads is specified in a number of design manual, including the AASHTO Policy on the Geometric Design of Streets and Highways (or Green Book). Relevant concerns include the alignment of the road, its horizontal and vertical curvature, its super-elevation or banking around curves, its thickness and pavement material, its cross-slope, and its width.

Freeways

A motorway or freeway (sometimes called an expressway or thruway) is a multi-lane divided road that is designed to be high-speed free flowing, access-controlled, built to high standards, with no traffic lights on the mainline. Some motorways or freeways are financed with tolls, and so may have tollbooths, either across the entrance ramp or across the mainline. However in the United States and Great Britain, most are financed with gas or other tax revenue.

Though of course there were major road networks during the Roman Empire and before, the history of motorways and freeways dates at least as early as 1907, when the first limited access automobile highway, the Bronx River Parkway began construction in Westchester County, New York (opening in 1908). In this same period, William Vanderbilt constructed the Long Island Parkway as a toll road in Queens County, New York. The Long Island Parkway was built for racing and speeds of 60 miles per hour (96 km/hr) were accommodated. Users however had to pay a then expensive $2.00 toll (later reduced) to recover the construction costs of $2 million. These parkways were paved when most roads were not. In 1919 General John Pershing assigned Dwight Eisenhower to discover how quickly troops could be moved from Fort Meade between Baltimore and Washington to the Presidio in San Francisco by road. The answer was 62 days, for an average speed of 3.5 miles per hour (5.6 km/hr). While using segments of the Lincoln Highway, most of that road was still unpaved. In response, in 1922 Pershing drafted a plan for an 8,000 mile (13,000 km) interstate system which was ignored at the time.

The US Highway System was a set of paved and consistently numbered highways sponsored by the states, with limited federal support. First built in 1924, they succeeded some previous major highways such as the Dixie Highway, Lincoln Highway and Jefferson Highway that were multi-state and were constructed with the aid of private support. These roads however were not in general access-controlled, and soon became congested as development along the side of the road degraded highway speeds.

In parallel with the US Highway system, limited access parkways were developed in the 1920s and 1930s in several US cities. Robert Moses built a number of these parkways in and around New York City. A number of these parkways were grade separated, though they were intentionally designed with low bridges to discourage trucks and buses from using them. German Chancellor Adolf Hitler appointed a German engineer Fritz Todt Inspector General for German Roads. He managed the construction of the German Autobahns, the first limited access high-speed road network in the world. In 1935, the first section from Frankfurt am Main to Darmstadt opened, the total system today has a length of 11,400 km. The Federal-Aid Highway Act of 1938 called on the Bureau of Public Roads to study the feasibility of a toll-financed superhighway system (three east-west and three north-south routes). Their report Toll Roads and Free Roads declared such a system would not be self-supporting, advocating instead a 43,500 km (27,000 mile) free system of interregional highways, the effect of this report was to set back the interstate program nearly twenty years in the US.

The German autobahn system proved its utility during World War II, as the German army could shift relatively quickly back and forth between two fronts. Its value in military operations was not lost on the American Generals, including Dwight Eisenhower.

On October 1, 1940, a new toll highway using the old, unutilized South Pennsylvania Railroad right-of-way and tunnels opened. It was the first of a new generation of limited access highways, generally called superhighways or freeways that transformed the American landscape. This was considered the first freeway in the US, as it, unlike the earlier parkways, was a multi-lane route as well as being limited access. The Arroyo Seco Parkway, now the Pasadena Freeway, opened December 30, 1940. Unlike the Pennsylvania Turnpike, the Arroyo Seco parkway had no toll barriers.

A new National Interregional Highway Committee was appointed in 1941, and reported in 1944 in favor of a 33,900 mile system. The system was designated in the Federal Aid Highway Act of 1933, and the routes began to be selected by 1947, yet no funding was provided at the time. The 1952 highway act only authorized a token amount for construction, increased to $175 million annually in 1956 and 1957.

The US Interstate Highway System was established in 1956 following a decade and half of discussion. Much of the network had been proposed in the 1940s, but it took time to authorize funding. In the end, a system supported by gas taxes (rather than tolls), paid for 90% by the federal government with a 10% local contribution, on a pay-as-you-go” system, was established. The Federal Aid Highway Act of 1956 had authorized the expenditure of $27.5 billion over 13 years for the construction of a 41,000 mile interstate highway system. As early as 1958 the cost estimate for completing the system came in at $39.9 billion and the end date slipped into the 1980s. By 1991, the final cost estimate was $128.9 billion. While the freeways were seen as positives in most parts of the US, in urban areas opposition grew quickly into a series of freeway revolts. As soon as 1959, (three years after the Interstate act), the San Francisco Board of Supervisors removed seven of ten freeways from the city’s master plan, leaving the Golden Gate bridge unconnected to the freeway system. In New York, Jane Jacobs led a successful freeway revolt against the Lower Manhattan Expressway sponsored by business interests and Robert Moses among others. In Baltimore, I-70, I-83, and I-95 all remain unconnected thanks to highway revolts led by now Senator Barbara Mikulski. In Washington, I-95 was rerouted onto the Capital Beltway. The pattern repeated itself elsewhere, and many urban freeways were removed from Master Plans.

In 1936, the Trunk Roads Act ensured that Great Britain’s Minister of Transport controlled about 30 major roads, of 7,100 km (4,500 miles) in length. The first Motorway in Britain, the Preston by-pass, now part of the M-6, opened in 1958. In 1959, the first stretch of the M1 opened. Today there are about 10,500 km (6300 miles) of trunk roads and motorways in England.

Australia has 790 km of motorways, though a much larger network of roads. However the motorway network is not truly national in scope (in contrast with Germany, the United States, Britain, and France), rather it is a series of local networks in and around metropolitan areas, with many intercity connection being on undivided and non-grade separated highways. Outside the Anglo-Saxon world, tolls were more widely used. In Japan, when the Meishin Expressway opened in 1963, the roads in Japan were in far worse shape than Europe or North American prior to this. Today there are over 6,100 km of expressways (3,800 miles), many of which are private toll roads. France has about 10,300 km of expressways (6,200 miles) of motorways, many of which are toll roads. The French motorway system developed through a series of franchise agreements with private operators, many of which were later nationalized. Beginning in the late 1980s with the wind-down of the US interstate system (regarded as complete in 1990), as well as intercity motorway programs in other countries, new sources of financing needed to be developed. New (generally suburban) toll roads were developed in several metropolitan areas.

An exception to the dearth of urban freeways is the case of the Big Dig in Boston, which relocates the Central Artery from an elevated highway to a subterranean one, largely on the same right-of-way, while keeping the elevated highway operating. This project is estimated to be completed for some $14 billion; which is half the estimate of the original complete US Interstate Highway System.

As mature systems in the developed countries, improvements in today’s freeways are not so much widening segments or constructing new facilities, but better managing the road space that exists. That improved management, takes a variety of forms. For instance, Japan has advanced its highways with application of Intelligent Transportation Systems, in particular traveler information systems, both in and out of vehicles, as well as traffic control systems. The US and Great Britain also have traffic management centers in most major cities that assess traffic conditions on motorways, deploy emergency vehicles, and control systems like ramp meters and variable message signs. These systems are beneficial, but cannot be seen as revolutionizing freeway travel. Speculation about future automated highway systems has taken place almost as long as highways have been around. The Futurama exhibit at the New York 1939 World’s Fair posited a system for 1960. Yet this technology has been twenty years away for over sixty years, and difficulties remain.

Layers of Networks
All networks come in layers. The OSI Reference Model for the Internet is well-defined. Roads too are part of a layer of subsystems of which the pavement surface is only one part. We can think of a hierarchy of systems.

 * Places
 * Trip Ends
 * End to End Trip
 * Driver/Passenger
 * Service (Vehicle & Schedule)
 * Signs and Signals
 * Markings
 * Pavement Surface
 * Structure (Earth & Pavement and Bridges)
 * Alignment (Vertical and Horizontal)
 * Right-Of-Way
 * Space

At the base is space. On space, a specific right-of-way is designated, which is property where the road goes. Originally right-of-way simply meant legal permission for travelers to cross someone's property. Prior to the construction of roads, this might simply be a well-worn dirt path.

On top of the right-of-way is the alignment, the specific path a transportation facility takes within the right-of-way. The path has both vertical and horizontal elements, as the road rises or falls with the topography and turns as needed.

Structures are built on the alignment. These include the roadbed as well as bridges or tunnels that carry the road.

Pavement surface is the gravel or asphalt or concrete surface that vehicles actually ride upon and is the top layer of the structure. That surface may have markings to help guide drivers to stay to the right (or left), delineate lanes, regulate which vehicles can use which lanes (bicycles-only, high occupancy vehicles, buses, trucks) and provide additional information. In addition to marking, signs and signals to the side or above the road provide additional regulatory and navigation information.

Services use roads. Buses may provide scheduled services between points with stops along the way. Coaches provide scheduled point-to-point without stops. Taxis handle irregular passenger trips.

Drivers and passengers use services or drive their own vehicle (producing their own transportation services) to create an end-to-end trip, between an origin and destination. Each origin and destination comprises a trip end and those trip ends are only important because of the places at the ends and the activity that can be engaged in. As transportation is a derived demand, if not for those activities, essentially no passenger travel would be undertaken.

With modern information technologies, we may need to consider additional systems, such as Global Positioning Systems (GPS), differential GPS, beacons, transponders, and so on that may aide the steering or navigation processes. Cameras, in-pavement detectors, cell phones, and other systems monitor the use of the road and may be important in providing feedback for real-time control of signals or vehicles.

Each layer has rules of behavior:
 * some rules are physical and never violated, others are physical but probabilistic
 * some are legal rules or social norms which are occasionally violated

Hierarchy of Roads
Even within each layer of the system of systems described above, there is differentiation.

Transportation facilities have two distinct functions: through movement and land access. This differentiation:
 * permits the aggregation of traffic to achieve economies of scale in construction and operation (high speeds);
 * reduces the number of conflicts;
 * helps maintain the desired quiet character of residential neighborhoods by keeping through traffic away from homes;
 * contains less redundancy, and so may be less costly to build.

Model Elements
Transportation forecasting, to be discussed in more depth in subsequent modules, abstracts the real world into a simplified representation.

Recall the hierarchy of roads. What can be simplified? It is typical for a regional forecasting model to eliminate local streets and replace them with a centroid (a point representing a traffic analysis zone). Centroids are the source and sink of all transportation demand on the network. Centroid connectors are artificial or dummy links connecting the centroid to the "real" network. An illustration of traffic analysis zones can be found at this external link for Fulton County, Georgia, here: traffic zone map. Keep in mind that Models are abstractions.

Network

 * Zone Centroid -	special node whose number identifies a zone, located by an "x" "y" coordinate representing longitude and latitude (sometimes "x" and  "y" are identified using planar coordinate systems).
 * Node (vertices) - intersection of links, located by x and y coordinates
 * Links (arcs) - short road segments indexed by from and to nodes (including centroid connectors), attributes include lanes, capacity per lane, allowable modes
 * Turns - indexed by at, from, and to nodes
 * Routes, (paths) - indexed by a series of nodes from origin to destination. (e.g. a bus route)
 * Modes - car, bus, HOV, truck, bike, walk etc.

Scalar
A scalar is a single value that applies model-wide; e.g. the price of gas or total trips.

Vectors
Vectors are values that apply to particular zones in the model system, such as trips produced or trips attracted or number of households. They are arrayed separately when treating a zone as an origin or as a destination so that they can be combined into full matrices.

 * vector (origin) - a column of numbers indexed by traffic zones, describing attributes at the origin of the trip (e.g. the number of households in a zone)

 * vector (destination) - a row of numbers indexed by traffic zones, describing attributes at the destination

Full Matrices
A full or interaction matrix is a table of numbers, describing attributes of the origin-destination pair

Thought Questions

 * Identify the rules associated with each layer?
 * Why aren’t all roads the same?
 * How might we abstract the real transportation system when representing it in a model for analysis?
 * Why is abstraction useful?

Abbreviations

 * SOV - single occupant vehicle
 * HOV - high occupancy vehicle (2+, 3+, etc.)
 * TAZ - transportation analysis zone or traffic analysis zone

Variables

 * msXX - scalar matrix
 * moXX - origin vector matrix
 * mdXX - destination vector matrix
 * mfXX - full vector matrix
 * $$T$$ - Total Trips
 * $$T_i$$ - Trips Produced from Origin Zone $$i$$
 * $$T_j$$ - Trips Attracted to Destination Zone $$j$$
 * $$T_{ij}$$ - Trips Going Between Origin Zone $$i$$ and Destination Zone $$j$$

Key Terms

 * Zone Centroid
 * Node
 * Links
 * Turns
 * Routes
 * Modes
 * Matrices
 * Right-of-way
 * Alignment
 * Structures
 * Pavement Surface
 * Markings
 * Signs and Signals
 * Services
 * Driver
 * Passenger
 * End to End Trip
 * Trip Ends
 * Places

External Exercises
Use the ADAM software at the STREET website and examine the network structure. Familiarize yourself with the software, and edit the network, adding at least two nodes and four one-way links (two two-way links), and deleting nodes and links. What are the consequences of such network adjustments? Are some adjustments better than others?

Video

 * Hierarchy of Roads

title: Fundamentals of Transportation/Networks