text:
lilypond-user
[Top][All Lists]

Re: relative mode occasionally gets forgotten?

 From: Patrick McCarty Subject: Re: relative mode occasionally gets forgotten? Date: Thu, 14 May 2009 20:53:46 -0700

On Thu, May 14, 2009 at 8:05 PM, Chip <address@hidden> wrote:
> Chip wrote:
>>
>> I've come across this a couple times - when I am inputting a song it all
>> works fine in \relative mode. I do some editing, some copy/paste from one
>> part to another, view the resulting pdf and see the octaves are all messed
>> up. The only way to fix them is to use absolute octave marks in small
>> sections, usually only a few measures, to get the song to print correctly.
>> Then for whatever reason, after those few measures the rest of the song is
>> just fine. This seems to be completely random, has happened in a couple
>> different songs, in different versions of lilypond.
>> Has anyone seen this kind of behavior? Just seems rather odd.
>> --
>> Chip
>
> I found the problem - I had the \relative c and the \transpose ef f bits
> seperated like this -
>
> bari = \transpose f ef {
> e4-- e8-- e8-- e4-. r
> ... stuff
> }
> barisax = \relative c' {
>  \global
>  \set Staff.instrumentName = #"Bari Sax"
>  \set Staff.shortInstrumentName = #"Bari"
>  \clef treble
>  << \bari >>       %I've been told I don't need the << >> here in this usage
> but without them I get errors
> }
>
> After I moved the \relative c' up to the same line as the \transpose the
> octave problems were fixed. It appears that the two have to be together, not
> seperated like I had them.

I think this is the issue mentioned in the Known Issues for Chapter
1.1.2 "Transpose" in the Notation Reference.  However, the two
sentences included there are very confusing and should be rewritten to
make the issue more clear.

-Patrick


text:
Sciencemadness Discussion Board » Fundamentals » Reagents and Apparatus Acquisition » Battery acid Select A Forum Fundamentals   » Chemistry in General   » Organic Chemistry   » Reagents and Apparatus Acquisition   » Beginnings   » Responsible Practices   » Miscellaneous   » The Wiki Special topics   » Technochemistry   » Energetic Materials   » Biochemistry   » Radiochemistry   » Computational Models and Techniques   » Prepublication Non-chemistry   » Forum Matters   » Legal and Societal Issues

Pages:  1  2    4  5
Author: Subject: Battery acid
Quantum
National Hazard

Posts: 300
Registered: 2-12-2003
Location: Nowhereville
Member Is Offline

Mood: Interested

I wouldn't use it; mecuric compounds give me the willies! I hope the EPA dosn't hear about the Hg spill its retarted to get so upset over less than a gram of the stuff.

I think if you use a wide mouthed glass next time it will go much faster. Possibly sucking the water vapor/SO2 fumes off with a pump would keep them from slipping back into the acid.

We all have our stupid days I remember I destroyed a printer because I got mad at it. It was a lexmark; shitty printer dosn't like Linux.

What if, what is isn\'t true?
tom haggen
National Hazard

Posts: 488
Registered: 29-11-2003
Location: PNW
Member Is Offline

Mood: a better mood

Theres a small possiblity of refluxing with a narrow necked flask but I wouldnt worry about it. Thunder you got so much H2SO4 I would just pitch what you have already contaminated with mercury. I have recently lost a thermometer so I feel your pain. However, you need to calm down. Your going to waste a lot of supplies as a begginer, take it in stride.
Trust me I have wasted a lot of supplies. By the way, you really shouldn't have to monitor temperature when concetrating sulfuric acid.

[Edited on 8-4-2004 by tom haggen]

N/A
thunderfvck
National Hazard

Posts: 347
Registered: 30-1-2004
Location: noitacoL
Member Is Offline

Mood: No Mood

I know I shouldn't have to montior temperature, but I was curious. I mean, I'm a beginner, and I have a thermometer, so what do you expect me to do. BTW, the temperature was 120. haaaaaa. My sulfuric acid is now kind of yellowish in color. I've read that mercurous sulfide precipitates out of the solution, so any that I may have would precipiate, no?

It's not the fact that it's contaminated, really. OI mean, that pisses me off enough as it is, it's just that I've spent a good three days concentrating this stuff and for what? A contaminated solution. You probably understand why I blew it.

I swept my basement floor and found no mercury balls. The last time this happened, I dropped a ball of the stuff and it splattered all over ym table. However, I was able to clean it up once I cleared my table off, I cleaned off many little metallic balls. I didn't find any this time, while I swept. But these things are SO small, so it's likely that I entirely missed them. How dangerous is this stuff? Assuming I have like mg quantities scattered on my floor.

The mercury didn't seem to react with the concentrated H2SO4. When the thing broke, it just spilled out and remained a tiny ball. It didn't bubble or anything. I've read that while preparing mercuous sulfate, you have to reflux it at HIGH temperatures (about the same I had going I suspect) for quite some time. I had it sitting in there for no more than 3 minutes. I don't know though. When I emptied the flask, there was some yellow/white crystallized sbtance on the walls of the flask. Things I didn't have thetre before so I accredit it to the mercuous sulfate. Should I REALLY just get rid of this? I've spent so much time boiling off the water, t'd be incredibly frustrating to just get rid of it all.

And BTW, how do you dispose of it? I know I'm supposed to neutralize it first, but I wasted like half of my sodium hydroxide trying to neutralize the used battery acid I had retrieved directly from the battery, and it stil wasn't neutralized. I ended up dumpoing it directly into the sewer. I know that this shouldn't be done, but reagents aren't cheap. That doesn't justify my dumping it however, but, what am I to do. I'm really not willing to uyse most of my NaOH to neutralize something I'll just end up throwing away. Oh, I'm so evil.

But when that thermometer dropped, I just lost it. There was a brief period where I thought I was okay, then I saw the mercury, and I flipped. Thermometers are so bloody senstive.

My approxiametly 1 L of H2SO4, from about 3L, gives off what looks like white fumes. However, I believe it is still water that is being driven off (STILL!). I blow on the vapour, and it turns whiter, presumably because I'm condensing it even more and it turns white because of it. But the fumes that it's been giving off are not WHITE white, you know? It's just like water vapour. It dissipates quite rapidly and isn't very irritable to the lungs.

Anyways, I've written quite enough. I'm mainly concerned with the yellow color, I've seen sulfuric acid (concentrating, fuming) that was yellow before, in my school lab. But I'm not sure about this. As I recall, the solution was not yellow (and this is a faded yellow, more clear than yellow, but it has the tint) until the mercury was exposed to it.

I guess I should just dump it. But fuck, so much time, such a waste. It's very upsetting.

Right after I do something stupid like this I feel, "you know, if you just wouldn't have fucked with it, you'd be fine, you'd have your thermometer AND your perfect pure acid" but NOOO, I'm too curious for that and careless. Well, we all learn from our mistakes.

Excuse the length of this, and possible spelling/grammatical errors, I am quite drunk/on MDMA. Soooo,...

Thanks a lot for your input though, you guys rock.

Z-Row
Harmless

Posts: 11
Registered: 23-3-2004
Location: United States
Member Is Offline

Mood: Bemused

 Quote: And BTW, how do you dispose of it? I know I'm supposed to neutralize it first, but I wasted like half of my sodium hydroxide trying to neutralize the used battery acid I had retrieved directly from the battery, and it stil wasn't neutralized. I ended up dumpoing it directly into the sewer. I know that this shouldn't be done, but reagents aren't cheap.

Why not dump it into the sewer? It is sold as drain cleaner after all, right? You don't have to neutralize it, just dilute it first (and remember, add acid to water, not water to acid). And there are other cheap bases out there to neutralize acids with, you don't HAVE to use NaOH. NaHCO3 and Na2CO3 can be found in a grocery store as "baking soda" and "washing soda" respectively (although the sodium carbonate would be better than the sodium bicarbonate for neutralizing acid) and they are both dirt cheap ( about $.85 US / lb. ) Mendeleev Hazard to Others Posts: 237 Registered: 25-12-2003 Location: USA Member Is Offline Mood: stoned Mercury is not very toxic in terms of dying, so much as it accumulates in the body, because it is not metabolized and causes brain damage. I don't think such a small amount will affect you too adversely unless you drink it. I've actually heard a story, I am not sure if it is true, but in some third world country a poor street performer ritually chugged a liter of mercury and did a belly dance which looked weird because the heavy mercury in his stomach lagged behind the rest of his body while he danced, and then barfed it back into its vessel. I wonder how long he will live, if he exists. Also, why do you use mercury, I ordered red alcohol thermometer, they are about$3 each, and when I broke one during a nitro synthesis, it was no problem.
tom haggen
National Hazard

Posts: 488
Registered: 29-11-2003
Location: PNW
Member Is Offline

Mood: a better mood

silly medeleev, you can't use red alcohol thermometers for high temperature applications. Back in the old days they used to use mercury as a potion in the non stop search for everlasting life. Ironically these potions brought death. Thunder you have almost motivated me to start a thread about fail experiments. If you only knew some of experiments that have gone wrong for me...

[Edited on 8-4-2004 by tom haggen]

N/A
BromicAcid
International Hazard

Posts: 3153
Registered: 13-7-2003
Location: Wisconsin
Member Is Offline

Mood: Rock n' Roll

You can take some sulfur powder and put it on your floor and sweep it around a bit. This should make the sulfide which is relatively inert and lacks the inhalation hazard in that it does not volitize easily.

Shamelessly plugging my attempts at writing fiction: http://www.robvincent.org
thunderfvck
National Hazard

Posts: 347
Registered: 30-1-2004
Location: noitacoL
Member Is Offline

Mood: No Mood

That's a nice piece of information, BromicAcid. Although I doubt that I'm in any serious risk, it seems as though most/all of the mercury fell into my acid. But in the future, if it ever happens again I'll be doing that, seeing as how I DO have sulfur (ah, the excitement!).

As for neutralizing the acid before disposal, using any carbonate will produce that damned CO2. And you could imagine the mess my impatience would make trying to neutralize all of the acid.

So, should I really waste all of my acid? I could always set this acid aside for showy experiments that I could demonstrate to my friends. But primarily, at the moment, I want to make some acetic acid/nitric acid. These acids will be distilled, so I'm guessing it would be okay to use an acid that is contaminated SLIGHTLY?

Mumbles
National Hazard

Posts: 436
Registered: 12-3-2003
Location: US
Member Is Offline

Mood: Procrastinating

You could bubble in some H2S to precipitate the HgS. The only unknown is how fast/if the concentrated acid will react to just form more HgS and Mercury Sulfate.

The MSDS says its incompatable with Strong acids. I'm assuming this means it does react. Perhaps rediluting will allow more time to filter out. This should get more out than with the concentrated. This does of course mean another concentration.

If you're distilling the acids off, I think the mercury contamination should be ok. The mercury should theoretically stay in the distilling flask.
Mendeleev
Hazard to Others

Posts: 237
Registered: 25-12-2003
Location: USA
Member Is Offline

Mood: stoned

What is the difference between a partial and full immersion thermometer, is it that one can be fully emerged and the other one can't, or is it that one has to be fully emerged to measure properly, and the other one only a certain amount?

Trogdor was a man. A dragon man. Or maybe just a dragon. . .
ech310n
Harmless

Posts: 29
Registered: 18-10-2003
Location: Australia
Member Is Offline

Mood: No Mood

 Quote: Originally posted by Mendeleev What is the difference between a partial and full immersion thermometer, is it that one can be fully emerged and the other one can't, or is it that one has to be fully emerged to measure properly, and the other one only a certain amount?

I'm sure a Google search would had given the answer you are looking for but here is a link to a page I had in my bookmarks that will explain the difference: General info on thermometers
thunderfvck
National Hazard

Posts: 347
Registered: 30-1-2004
Location: noitacoL
Member Is Offline

Mood: No Mood

Well, I finally did it! My hotplate was out for repairs over the past week or two, and I haven't been able to concentrate my acid. First thing I did when I got it back was buy a 1 L measuring cup that I felt would make a more efficient container. And so it does! Problem is, I changed stirrers when I added the acid to this measuring cup, and the solution turned PURPLE. It was very nice but left me slightly unhappy (this was the contaminated Hg stuff anyway). So I dumped that into my 6L flask and added some activated carbon. A few days later the color's cleared and it looks like this will be my nitric acid producing batch.

ANYWAY! So I put some fresh acid in the 1 L measuring cup and heated it...Took a few hours to boil down to the point where it started to smoke, but it smoked. Oh man did it ever. My basement was FILLED with this vile, throat-itching, smoke. It was terrible. Even with the window open...I guess I really need a fume hood! Anyway, the smoke was enough to set the fire alarm off and that was unpleasant. So now I am currently doing it outside, and it's quite beautiful really, the thick smokey whiteness that would gag me if given the chance.

Thanks to everyone for their replies!

Mendeleev
Hazard to Others

Posts: 237
Registered: 25-12-2003
Location: USA
Member Is Offline

Mood: stoned

I had a bad run of luck myself today with sulfuric acid. It all started when I walked into NAPA today to replenish my suppy of acid which I had very recently depleted. Normally they give me the huge 5 gallon containers but today there was a different lady and she gave me a 1 liter container. That's about 18 times less and it cost me 5 bloody dollars. It you get roughly 200 mL from that that will cost $100 per 4 L of concentrated acid. At that rate it would be cheaper to buy 4L of concentrated ACS grade acid for$60 from http://www.sciencelab.com and a lot less hassle, thus my frustration. I wasn't about to start a riot over not enough acid so I just paid and left. Tom Haggen, I believe you said you bought acid at NAPA, do they sell it to you in 5 gallon or 1 quart containers? Maybe they have both and it just depends on the clerk what you get? Anyway that was the least of the bad luck. I thought maybe I was in luck and this was concentrated 98% acid that you have to dilute yourself. Not so, I tested it, density=1.245, corresponding to 33% acid. I proceeded to boil it down. The 1 liter took 6 hours to boild down to 98% in a 1L beaker. I take the beaker off the hot plate and proceed to carry it further away from the hot plate for cooling. When I took the acid off it was at 225C, There was no noticable thumping from uneven boiling but when I took it off, the agitation must have awakened some feral spirit in the acid for it went "thump". It got onto my hands causing me to tilt the conainer slightly. Enough for another thump which sent about 100 mL of 225 degree C, >90% sulfuric acid to spill onto my leg. My leg turned black and I now have second degree burns on it and several enourmous burn blisters. My status as "hazard to self" is most befitting. This has never happened before, usually the thumping is not nearly as violent. I am not so sorry about the leg as it will heal in time, but I lost a good 200 mL of concentrated acid which stook 6 goddamn hours to boil down. Any one want pictures of the scars ?

[Edited on 26-5-2004 by Mendeleev]

Trogdor was a man. A dragon man. Or maybe just a dragon. . .
Saerynide
International Hazard

Posts: 954
Registered: 17-11-2003
Location: The Void
Member Is Offline

Mood: Ionic

owwieeee....

"Microsoft reserves the right at all times to monitor communications on the Service and disclose any information Microsoft deems necessary to... satisfy any applicable law, regulation or legal process"
Theoretic
International Hazard

Posts: 772
Registered: 17-6-2003
Location: London, the Land of Sun, Summer and Snow
Member Is Offline

Mood: eating the souls of dust mites

Pics?
POST 'EM!
Harmless

Posts: 2
Registered: 3-6-2004
Location: Somewheres
Member Is Offline

Mood: No Mood

uhh i this this topic is kinda old but anyways

iv noticed with some of(ok most of them) that when its blak is hell if you let it sit for a week or two the lead and trash falles to the bottem and the acid shude be about 65% pure (hopefully)...
Magpie
lab constructor

Posts: 5939
Registered: 1-11-2003
Location: USA
Member Is Offline

Mood: Chemistry: the subtle science.

why make it so hard?

I can understand the problems of the poor folks who live where sulfuric acid is illegal to buy, but why would anyone in the US boil down 35% battery acid? That seems like a very hazardous and boring activity. After a little internet searching I'm having a 2.5L bottle of ACS grade delivered to my doorstep. Of course this presumes you have a credit card and don't mind using it.
Mendeleev
Hazard to Others

Posts: 237
Registered: 25-12-2003
Location: USA
Member Is Offline

Mood: stoned

Sorry I took a while posting the picture, but anyway, this was taken 48 hours after getting burned. A 2.5 L 98% bottle ACS grade acid costs $70. Up until recently I've been buying 5 gallons of 35% for 20$ AFter boiling down that leaves about 4 L of 98% pure sulfuric acid. That's 4 L for $20 or 2.5 L for$70 plus those bastardly hazardous shipping fees. That's $5/L vs$30/L. Hmmmm, which to get, which to get... Besides if you're going to order everything online why don't you just order whatever it is you're trying to make. The novelty of recreational chemistry is to able to turn complete crap: yuppy house hold cleaners, batteries, and paint chemicals, into something good: formamide, TNT, nitroglycerine, meth, etc.

[Edited on 8-6-2004 by Mendeleev]

[Edited on 8-6-2004 by Mendeleev]

Trogdor was a man. A dragon man. Or maybe just a dragon. . .
Eliteforum
International Hazard

Posts: 571
Registered: 18-11-2002
Location: United Kingdom
Member Is Offline

Mood: Enjoying the journey

Oooch! Looks painful!

If that were mine I couldn't wait for it to scab! Am I alone in liking the picking of scabs?!

All that glitters isn't gold.
tom haggen
National Hazard

Posts: 488
Registered: 29-11-2003
Location: PNW
Member Is Offline

Mood: a better mood

mendeleev, I just bought a five gallon container of H2SO4 33% for like $17. But I've also purchased the 1.5gallon containers. The 1.5 gallon packages come in a plastic pouch contained in a cardboard box, they are like$7, I scammed them down to $5 one time. My old material science teacher had one of those 1liter containers you bought. But yes, NAPA carries all three options, sometimes they run out of the big 5 gallon jugs though. You just have to be presistant with those dumbasses. Oh ya, your fucking crazy for picking up a hot beaker filled with hot sulphuric acid. I always let my glassware cool down on the hot plate. No matter what the chemical, your damm lucky the glass didn't crack. At high temperatures glassware is very sensitive to temperature change!!! Did it feel strange when you got burned by the hot H2SO4? The hottest H2SO4 I've ever gotten on my hand was probably 50C and it did some damage to my skin, yet it was relatively painless. It was bizarre, I don't want it to happen again. magpie, unless your a college professor or a licensed pyrotech, I wouldn't be buying chemicals off of the internet. [Edited on 9-6-2004 by tom haggen] [Edited on 9-6-2004 by tom haggen] N/A Magpie lab constructor Posts: 5939 Registered: 1-11-2003 Location: USA Member Is Offline Mood: Chemistry: the subtle science. make vs buy Mendeleev, I checked with NAPA before I ordered the ACS grade. I would pay$40 for what I would pay NAPA $20 for in the 5-gallon container. I don't know what the shipping costs will be but I will let the forum know. Saving the hassle, hazards, and getting ACS grade made it a no-brainer for me. I also will be getting "Readily Available Chemicals" and purifying as required, but H2SO4 is not one I want to tangle with. Tom Haggen, I am neither a college professor, licensed pyrotech, or have a business license. My credo is that I'm not doing anything illegal. Why shouldn't I buy chemicals over the internet? Sincerely, please let me know. Magpie Mendeleev Hazard to Others Posts: 237 Registered: 25-12-2003 Location: USA Member Is Offline Mood: stoned Pyrex beakers are made to be placed directly on the hot plate or flame, the company says so, so if it cracks while being used in its standard application and you get injured as a result, you sue for lots of money. Its a completely legit cause to sue if the beaker brakes under 250 C, if the company says they can be placed directly on a flame. As far as picking it up, I used tongs and gloves, that's why my hands didn't get killed, just the few splashes on my knee. However I will heed you're advice and leave it on the hotplate to cool next time, because I don't need something like this to happen to me again . It never thumps that much, I don't know what the hell happened. It didn't feel weird when I got it on me, it just felt like any other hot corrosive chemical feels to the skin, burning a hole in you. That's a pretty awesome deal you're getting magpie, ACS sulfuric acid for$40/2.5 L. I am considering buying a 750 pound (190 L) drum of technical grade 93% sulfuric acid for \$115 from Gallade Chemical, because it is such an awesome deal. It works out to about 60 cents a liter. I think they sell to individuals.

[Edited on 9-6-2004 by Mendeleev]

Trogdor was a man. A dragon man. Or maybe just a dragon. . .
Esplosivo
National Hazard

Posts: 491
Registered: 7-2-2004
Location: Mediterranean
Member Is Offline

Mood: Quantized

 Quote: Pyrex beakers are made to be placed directly on the hot plate or flame, the company says so, so if it cracks while being used in its standard application and you get injured as a result, you sue for lots of money. Its a completely legit cause to sue if the beaker brakes under 250 C, if the company says they can be placed directly on a flame.

Of course they can resist 250 deg Celcius, but they will withstand only a small amount of thermal stress. I once placed a pyrex beaker, which had been, heated on cork to let it cool. It happened that a drop of water was present on this cork and viola, a fine thread streaked through the glass.

Forgot to mention that in my case the beaker of capacity 250cm3, contained only approx 25cm3 of solution in it. I don't know if this small volume of solution would have affected the cracking, since a small volume cannot 'absorb' as much heat as in the case of larger volumes. In other words the cooling due to the drop of water occured too rapidly and therefore thermal stress would have occured to a larger extent.

[Edited on 9-6-2004 by Esplosivo]

Theory guides, experiment decides.
tom haggen
National Hazard

Posts: 488
Registered: 29-11-2003
Location: PNW
Member Is Offline

Mood: a better mood

Sure there are probably applications where you need to transfer scolding hot chemicals from one container to another. But since my equipment is so primative I always make a point of letting my glassware cool down on the hot plate. It's not going to go anywhere.
Magpie, I really don't have a reason for not buying chemicals off of the internet. I just like to keep my name off government lists.

N/A
Magpie
lab constructor

Posts: 5939
Registered: 1-11-2003
Location: USA
Member Is Offline

Mood: Chemistry: the subtle science.

Mendeleev,

I have to eat a little crow on my order for the 2.5L bottle of ACS acid. They are not filling my order as they do not ship to individuals.

So I went back to Google and found 2 suppliers who look like they will ship to individuals. You don't know for sure until the order is completed.

One reason I wanted to bring this issue up for discussion is that I'm concerned about all the forum members who seem to be boiling down sulfuric acid - it just seems so risky. At one place I used to work a fellow employee was burned badly by room temperature 93% sulfuric acid spraying all over his leg - very painful, several weeks in the hospital, permanent scars and pain. And he was quite close to a safety shower and used it. I really hope everyone can find a good supplier (like you have) so they don't have to do this anymore. This is a case where John Ashcroft's policies are really backfiring on the people he is trying to protect.

Tom Haggen,

I understand how you feel and debated this issue with my self for many months. I finally decided to take a stand that my activities are legal and proceed accordingly.

This is the other reason I wanted a discussion. I want to know what the concerns and liabilities are with ordering chemicals and equipment with full documentation, i.e., over the internet with a credit card.

The single most important condition for a successful synthesis is good mixing - Nicodem
Pages:  1  2    4  5

 Sciencemadness Discussion Board » Fundamentals » Reagents and Apparatus Acquisition » Battery acid Select A Forum Fundamentals   » Chemistry in General   » Organic Chemistry   » Reagents and Apparatus Acquisition   » Beginnings   » Responsible Practices   » Miscellaneous   » The Wiki Special topics   » Technochemistry   » Energetic Materials   » Biochemistry   » Radiochemistry   » Computational Models and Techniques   » Prepublication Non-chemistry   » Forum Matters   » Legal and Societal Issues

format: plain


text:
## Calculus

In general, a'' calculus is an abstract theory developed in a purely formal way.

The'' calculus, more properly called Analysis (or Real Analysis or, in older literature, Infinitesimal Analysis) is the branch of mathematics studying the rate of change of quantities (which can be interpreted as Slopes of curves) and the length, Area, and Volume of objects. The Calculus is sometimes divided into Differential and Integral Calculus, concerned with Derivatives

and Integrals

respectively.

While ideas related to calculus had been known for some time (Archimedes' Exhaustion Method was a form of calculus), it was not until the independent work of Newton and Leibniz that the modern elegant tools and ideas of calculus were developed. Even so, many years elapsed until the subject was put on a mathematically rigorous footing by mathematicians such as Weierstraß.

See also Arc Length, Area, Calculus of Variations, Change of Variables Theorem, Derivative, Differential Calculus, Ellipsoidal Calculus, Extensions Calculus, Fluent, Fluxion, Fractional Calculus, Functional Calculus, Fundamental Theorems of Calculus, Heaviside Calculus, Integral, Integral Calculus, Jacobian, Lambda Calculus, Kirby Calculus, Malliavin Calculus, Predicate Calculus, Propositional Calculus, Slope, Tensor Calculus, Umbral Calculus, Volume

References

Anton, H. Calculus with Analytic Geometry, 5th ed. New York: Wiley, 1995.

Apostol, T. M. Calculus, 2nd ed., Vol. 1: One-Variable Calculus, with an Introduction to Linear Algebra. Waltham, MA: Blaisdell, 1967.

Apostol, T. M. Calculus, 2nd ed., Vol. 2: Multi-Variable Calculus and Linear Algebra, with Applications to Differential Equations and Probability. Waltham, MA: Blaisdell, 1969.

Apostol, T. M.; Chrestenson, H. E.; Ogilvy, C. S.; Richmond, D. E.; and Schoonmaker, N. J. A Century of Calculus, Part I: 1894-1968. Washington, DC: Math. Assoc. Amer., 1992.

Apostol, T. M.; Mugler, D. H.; Scott, D. R.; Sterrett, A. Jr.; and Watkins, A. E. A Century of Calculus, Part II: 1969-1991. Washington, DC: Math. Assoc. Amer., 1992.

Ayres, F. Jr. and Mendelson, E. Schaum's Outline of Theory and Problems of Differential and Integral Calculus, 3rd ed. New York: McGraw-Hill, 1990.

Borden, R. S. A Course in Advanced Calculus. New York: Dover, 1998.

Boyer, C. B. A History of the Calculus and Its Conceptual Development. New York: Dover, 1989.

Brown, K. S. Calculus and Differential Equations.'' http://www.seanet.com/~ksbrown/icalculu.htm.

Courant, R. and John, F. Introduction to Calculus and Analysis, Vol. 1. New York: Springer-Verlag, 1999.

Courant, R. and John, F. Introduction to Calculus and Analysis, Vol. 2. New York: Springer-Verlag, 1990.

Hahn, A. Basic Calculus: From Archimedes to Newton to Its Role in Science. New York: Springer-Verlag, 1998.

Marsden, J. E. and Tromba, A. J. Vector Calculus, 4th ed. New York: W. H. Freeman, 1996.

Strang, G. Calculus. Wellesley, MA: Wellesley-Cambridge Press, 1991.


text:
# struc2vec: Learning Node Representations from Structural Identity

Structural identity is a concept of symmetry in which network nodes are identified according to the network structure and their relationship to other nodes. Structural identity has been studied in theory and practice over the past decades, but only recently has it been addressed with representational learning techniques. This work presents struc2vec, a novel and flexible framework for learning latent representations for the structural identity of nodes. struc2vec uses a hierarchy to measure node similarity at different scales, and constructs a multilayer graph to encode structural similarities and generate structural context for nodes. Numerical experiments indicate that state-of-the-art techniques for learning node representations fail in capturing stronger notions of structural identity, while struc2vec exhibits much superior performance in this task, as it overcomes limitations of prior approaches. As a consequence, numerical experiments indicate that struc2vec improves performance on classification tasks that depend more on structural identity.

## Authors

• 8 publications
• 1 publication
• 4 publications
• ### Embedding Node Structural Role Identity into Hyperbolic Space

Recently, there has been an interest in embedding networks in hyperbolic...
11/03/2020 ∙ by Lili Wang, et al. ∙ 0

• ### Embedding Node Structural Role Identity Using Stress Majorization

Nodes in networks may have one or more functions that determine their ro...
09/14/2021 ∙ by Lili Wang, et al. ∙ 0

• ### RiWalk: Fast Structural Node Embedding via Role Identification

Nodes performing different functions in a network have different roles, ...
10/15/2019 ∙ by Xuewei Ma, et al. ∙ 0

• ### struc2gauss: Structure Preserving Network Embedding via Gaussian Embedding

Network embedding (NE) is playing a principal role in network mining, du...
05/25/2018 ∙ by Yulong Pei, et al. ∙ 0

• ### Ego-based Entropy Measures for Structural Representations

In complex networks, nodes that share similar structural characteristics...
03/01/2020 ∙ by George Dasoulas, et al. ∙ 0

• ### Incorporating Structural Alternatives and Sharing into Hierarchy for Multiclass Object Recognition and Detection

This paper proposes a reconfigurable model to recognize and detect multi...
02/03/2015 ∙ by Xiaolong Wang, et al. ∙ 0

• ### PAD: a graphical and numerical enhancement of structural coding to facilitate thematic analysis of a literature corpus

We suggest an enhancement to structural coding through the use of (a) ca...
07/26/2021 ∙ by Etienne-Victor Depasquale, et al. ∙ 0

##### This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

## 1. Introduction

In almost all networks, nodes tend to have one or more functions that greatly determine their role in the system. For example, individuals in a social network have a social role or social position (Lorrain and White, 1971; Sailer, 1978), while proteins in a protein-protein interaction (PPI) network exert specific functions (Singh et al., 2008; Atias and Sharan, 2012). Intuitively, different nodes in such networks may perform similar functions, such as interns in the social network of a corporation or catalysts in the PPI network of a cell. Thus, nodes can often be partitioned into equivalent classes with respect to their function in the network.

Although identification of such functions often leverage node and edge attributes, a more challenging and interesting scenario emerges when node function is defined solely by the network structure. In this context, not even the labels of the nodes matter but just their relationship to other nodes (edges). Indeed, mathematical sociologists have worked on this problem since the 1970s, defining and computing structural identity of individuals in social networks (Lorrain and White, 1971; Sailer, 1978; Pizarro, 2007). Beyond sociology, the role of webpages in the webgraph is another example of identity (in this case, hubs and authorities) emerging from the network structure, as defined by the celebrated work of Kleinberg (Kleinberg, 1999).

The most common practical approaches to determine the structural identity of nodes are based on distances or recursions. In the former, a distance function that leverages the neighborhood of the nodes is used to measure the distance between all node pairs, with clustering or matching then performed to place nodes into equivalent classes (Leicht et al., 2006; Fouss et al., 2007). In the later, a recursion with respect to neighboring nodes is constructed and then iteratively unfolded until convergence, with final values used to determine the equivalent classes (Kleinberg, 1999; Blondel et al., 2004; Zager and Verghese, 2008). While such approaches have advantages and disadvantages, we provide an alternative methodology, one based on unsupervised learning of representations for the structural identity of nodes (to be presented).

Recent efforts in learning latent representations for nodes in networks have been quite successful in performing classification and prediction tasks (Grover and Leskovec, 2016; Narayanan et al., 2016; Perozzi et al., 2014; Tang et al., 2015). In particular, these efforts encode nodes using as context a generalized notion of their neighborhood (e.g., steps of a random walk, or nodes with neighbors in common). In a nutshell, nodes that have neighborhoods with similar sets of nodes should have similar latent representations. But neighborhood is a local concept defined by some notion of proximity in the network. Thus, two nodes with neighborhoods that are structurally similar but that are far apart will not have similar latent representations. Figure 1 illustrates the problem, where nodes and play similar roles (i.e., have similar local structures) but are very far apart in the network. Since their neighborhoods have no common nodes, recent approaches cannot capture their structural similarity (as we soon show).

It is worth noting why recent approaches for learning node representations such as DeepWalk (Perozzi et al., 2014) and node2vec (Grover and Leskovec, 2016) succeed in classification tasks but tend to fail in structural equivalence tasks. The key point is that many node features in most real networks exhibit a strong homophily (e.g., two blogs with the same political inclination are much more likely to be connected than at random). Neighbors of nodes with a given feature are more likely to have the same feature. Thus, nodes that are “close” in the network and in the latent representation will tend to share features. Likewise, two nodes that are “far” in the network will tend to be separated in the latent representation, independent of their local structure. Thus, structural equivalence will not properly be captured in the latent representation. However, if classification is performed on features that depend more on structural identity and less on homophily, then such recent approaches are likely to be outperformed by latent representations that better capture structural equivalence (as we soon show).

Our main contribution is a flexible framework for learning latent representations for the structural identity of nodes, called struc2vec. It is an alternative and powerful tool to the study of structural identity through latent representations. The key ideas of struc2vec are:

• Assess structural similarity between nodes independently of node and edge attributes as well as their position in the network. Thus, two nodes that have a similar local structure will be considered so, independent of network position and node labels in their neighborhoods. Our approach also does not require the network to be connected, and identifies structurally similar nodes in different connected components.

• Establish a hierarchy to measure structural similarity, allowing progressively more stringent notions of what it means to be structurally similar. In particular, at the bottom of the hierarchy, structural similarity between nodes depend only on their degrees, while at the top of the hierarchy similarity depends on the entire network (from the viewpoint of the node).

• Generates random contexts for nodes, which are sequences of structurally similar nodes as observed by a weighted random walk traversing a multilayer graph (and not the original network). Thus, two nodes that frequently appear with similar contexts will likely have similar structure. Such context can be leveraged by language models to learn latent representation for the nodes.

We implement an instance of struc2vec and show its potential through numerical experiments on toy examples and real networks, comparing its performance with DeepWalk (Perozzi et al., 2014) and node2vec (Grover and Leskovec, 2016) – two state-of-the-art techniques for learning latent representations for nodes, and with RolX (Henderson et al., 2012) – a recent approach to identify roles of nodes. Our results indicate that while DeepWalk and node2vec fail to capture the notion of structural identity, struc2vec excels on this task – even when the original network is subject to strong random noise (random edge removal). We also show that struc2vec is superior in a classification task where node labels depends more on structural identity (i.e., air-traffic networks with labels representing airport activity).

The remainder of this paper is organized as follows. Section 2 briefly overviews the recent related work on learning latent representations of nodes in networks. Section 3 presents the struc2vec framework in detail. Experimental evaluation and comparison to other methods are shown in Section 4. Finally, Section 5 concludes the paper with a brief discussion.

## 2. Related work

Embedding network nodes in (Euclidean) space has received much attention over the past decades from different communities. The technique is instrumental for Machine Learning applications that leverage network data, as node embeddings can be directly used in tasks such as classification and clustering.

(Bengio et al., 2003), generating dense embeddings for sparse data has a long history. Recently, Skip-Gram (Mikolov et al., 2013b; Mikolov et al., 2013a) was proposed as an efficient technique to learn embeddings for text data (e.g., sentences). Among other properties, the learned language model places semantically similar words near each other in space.

Learning a language model from a network was first proposed by DeepWalk (Perozzi et al., 2014). It uses random walks to generate sequences of nodes from the network, which are then treated as sentences by Skip-Gram. Intuitively, nodes close in the network will tend to have similar contexts (sequences) and thus have embeddings that are near one another. This idea was later extended by node2vec (Grover and Leskovec, 2016). By proposing a biased second order random walk model, node2vec provides more flexibility when generating the context of a vertex. In particular, the edge weights driving the biased random walks can be designed in an attempt to capture both vertex homophily and structural equivalence. However, a fundamental limitation is that structurally similar nodes will never share the same context if their distance (hop count) is larger than the Skip-Gram window.

subgraph2vec (Narayanan et al., 2016) is another recent approach for learning embeddings for rooted subgraphs, and unlike the previous techniques it does not use random walks to generate context. Alternatively, the context of a node is simply defined by its neighbors. Additionally, subgraph2vec captures structural equivalence by embedding nodes with the same local structure to the same point in space. Nonetheless, the notion of structural equivalence is very rigid since it is defined as a binary property dictated by the Weisfeiler-Lehman isomorphism test (Shervashidze et al., 2011). Thus, two nodes that are structurally very similar (but fail the test) and have non-overlapping neighbors may not be close in space.

Similarly to subgraph2vec, considerable effort has recently been made on learning richer representations for network nodes (Wang et al., 2016; Cao et al., 2016). However, building representations that explicitly capture structural identity is a relative orthogonal problem that has not received much attention. This is the focus of struc2vec.

A recent approach to explicitly identify the role of nodes using just the network structure is RolX (Henderson et al., 2012)

. This unsupervised approach is based on enumerating various structural features for nodes, finding the more suited basis vector for this joint feature space, and then assigning for every node a distribution over the identified roles (basis), allowing for mixed membership across the roles. Without explicitly considering node similarity or node context (in terms of structure),

RolX is likely to miss node pairs that are structurally equivalent (to be shown).

## 3. struc2vec

Consider the problem of learning representations that capture the structural identity of nodes in the network. A successful approach should exhibit two desired properties:

• The distance between the latent representation of nodes should be strongly correlated to their structural similarity. Thus, two nodes that have identical local network structures should have the same latent representation, while nodes with different structural identities should be far apart.

• The latent representation should not depend on any node or edge attribute, including the node labels. Thus, structurally similar nodes should have close latent representation, independent of node and edge attributes in their neighborhood. The structural identity of nodes must be independent of its “position” in the network.

Given these two properties, we propose struct2vec, a general framework for learning latent representations for nodes composed of four main steps, as follows:

1. Determine the structural similarity between each vertex pair in the graph for different neighborhood sizes. This induces a hierarchy in the measure for structural similarity between nodes, providing more information to assess structural similarity at each level of the hierarchy.

2. Construct a weighted multilayer graph where all nodes in the network are present in every layer, and each layer corresponds to a level of the hierarchy in measuring structural similarity. Moreover, edge weights among every node pair within each layer are inversely proportional to their structural similarity.

3. Use the multilayer graph to generate context for each node. In particular, a biased random walk on the multilayer graph is used to generate node sequences. These sequences are likely to include nodes that are more structurally similar.

4. Apply a technique to learn latent representation from a context given by the sequence of nodes, for example, Skip-Gram.

Note that struct2vec is quite flexible as it does not mandates any particular structural similarity measure or representational learning framework. In what follows, we explain in detail each step of struct2vec and provide a rigorous approach to a hierarchical measure of structural similarity.

### 3.1. Measuring structural similarity

The first step of struct2vec is to determine a structural similarity between two nodes without using any node or edge attributes. Moreover, this similarity metric should be hierarchical and cope with increasing neighborhood sizes, capturing more refined notions of structural similarity. Intuitively, two nodes that have the same degree are structurally similar, but if their neighbors also have the same degree, then they are even more structurally similar.

Let denote the undirected, unweighted network under consideration with vertex set and edge set , where denotes the number of nodes in the network and its diameter. Let denote the set of nodes at distance (hop count) exactly from in . Note that denotes the set of neighbors of and in general, denotes the ring of nodes at distance . Let denote the ordered degree sequence of a set of nodes.

By comparing the ordered degree sequences of the rings at distance from both and we can impose a hierarchy to measure structural similarity. In particular, let denote the structural distance between and when considering their -hop neighborhoods (all nodes at distance less than or equal to and all edges among them). In particular, we define:

 (1) fk(u,v)=fk−1(u,v)+g(s(Rk(u)),s(Rk(v))),k≥0 and |Rk(u)|,|Rk(v)|>0

where measures the distance between the ordered degree sequences and and . Note that by definition is non-decreasing in and is defined only when both or have nodes at distance . Moreover, using the ring at distance in the definition of forces the comparison between the degree sequences of nodes that are at the same distance from and . Finally, note that if the -hop neighborhoods of and are isomorphic, and maps onto , then .

A final step is determining the function that compares two degree sequences. Note that and can be of different sizes and its elements are arbitrary integers in the range with possible repetitions. We adopt Dynamic Time Warping (DTW) to measure the distance between two ordered degree sequences, a technique that can cope better with sequences of different sizes and loosely compares sequence patterns (Rakthanmanon et al., 2013; Salvador and Chan, 2004).

Informally, DTW finds the optimal alignment between two sequences and . Given a distance function for the elements of the sequence, DTW matches each element to , such that the sum of the distances between matched elements is minimized. Since elements of sequence and are degrees of nodes, we adopt the following distance function:

 (2) d(a,b)=max(a,b)min(a,b)−1

Note that when then . Thus, two identical ordered degree sequences will have zero distance. Also note that by taking the ratio between the maximum and the minimum, the degrees 1 and 2 are much more different than degrees 101 and 102, a desired property when measuring the distance between node degrees. Finally, while we use DTW to assess the similarity between two ordered degree sequences, any other cost function could be adopted by our framework.

### 3.2. Constructing the context graph

We construct a multilayer weighted graph that encodes the structural similarity between nodes. Recall that denotes the original network (possibly not connected) and its diameter. Let denote the multilayer graph where layer is defined using the -hop neighborhoods of the nodes.

Each layer is formed by a weighted undirected complete graph with node set , and thus, edges. The edge weight between two nodes in a layer is given by:

 (3) wk(u,v)=e−fk(u,v),k=0,…,k∗

Note that edges are defined only if is defined and that weights are inversely proportional to structural distance, and assume values smaller than or equal to 1, being equal to 1 only if . Note that nodes that are structurally similar to will have larger weights across various layers of .

We connect the layers using directed edges as follows. Each vertex is connected to its corresponding vertex in the layer above and below (layer permitting). Thus, every vertex in layer is connected to the corresponding vertex in layer and . The edge weight between layers are as follows:

 (4) w(uk,uk+1)=log(Γk(u)+e),k=0,…,k∗−1w(uk,uk−1)=1,k=1,…,k∗

where is number of edges incident to that have weight larger than the average edge weight of the complete graph in layer . In particular:

 (5) Γk(u)=∑v∈V1(wk(u,v)>¯¯¯¯¯¯wk)

where . Thus, measures the similarity of node to other nodes in layer . Note that if has many similar nodes in the current layer, then it should change layers to obtain a more refined context. Note that by moving up one layer the number of similar nodes can only decrease. Last, the function simply reduces the magnitude of the potentially large number of nodes that are similar to in a given layer.

Finally, note that has vertices and at most weighted edges. In Section 3.5 we discuss how to reduce the complexity of generating and storing .

### 3.3. Generating context for nodes

The multilayer graph is used to generate structural context for each node . Note that captures the structure of structural similarities between nodes in using absolutely no label information. As in previous works, struct2vec uses random walks to generate sequence of nodes to determine the context of a given node. In particular, we consider a biased random walk that moves around making random choices according to the weights of

. Before each step, the random walk first decides if it will change layers or walk on the current layer (with probability

the random walk stays in the current layer).

Given that it will stay in the current layer, the probability of stepping from node to node in layer is given by:

 (6) pk(u,v)=e−fk(u,v)Zk(u)

where is the normalization factor for vertex in layer , simply given by:

 (7) Zk(u)=∑v∈Vv≠ue−fk(u,v)

Note that the random walk will prefer to step onto nodes that are structurally more similar to the current vertex, avoiding nodes that have very little structural similarity with it. Thus, the context of a node is likely to have structurally similar nodes, independent of their labels and position in the original network .

With probability , the random walk decides to change layers, and moves to the corresponding node either in layer or layer (layer permitting) with probability proportional to the edge weights. In particular:

 (8) pk(uk,uk+1)=w(uk,uk+1)w(uk,uk+1)+w(uk,uk−1)pk(uk,uk−1)=1−pk(uk,uk+1)

Note that every time the walker steps within a layer it includes the current vertex as part of its context, independent of the layer. Thus, a vertex may have a given context in layer (determined by the structural similarity of this layer), but have a subset of this context at layer , as the structural similarity cannot increase as we move to higher layers. This notion of a hierarchical context across the layers is a fundamental aspect of the proposed methodology.

Finally, for each node , we start a random walk in its corresponding vertex in layer 0. Random walks have a fixed and relatively short length (number of steps), and the process is repeated a certain number of times, giving rise to multiple independent walks (i.e., the multiple contexts of node ).

### 3.4. Learning a language model

Recent language modeling techniques have been extensively used to learn word embeddings, and only require sets of sentences in order to generate meaningful representations. Informally, the task can be defined as learning word probabilities given a context. In particular, Skip-Gram (Mikolov et al., 2013a) has proven to be effective at learning meaningful representations for a variety of data. In order to apply it to networks, it suffices to use artificially generated node sequences instead of word sentences. In our framework, these sequences are generated by biased random walks on the multilayer graph . Given a node, Skip-Gram aims to maximize the likelihood of its context in a sequence, where a node’s context is given by a window of size centered on it.

For this work we use Hierarchical Softmax, where conditional symbol probabilities are calculated using a tree of binary classifiers. For each node

, Hierarchical Softmax assigns a specific path in the classification tree, defined by a set of tree nodes , where . In this setting, we have:

 (9) P(vj|vi)=h∏k=1C(n(vj,k),vi)

where is a binary classifier present in every node in the tree. Note that since Hierarchical Softmax operates on a binary tree, we have that .

We train Skip-Gram according to its optimization problem given by equation (9). Note that while we use Skip-Gram to learn node embeddings, any other technique to learn latent representations for text data could be used in our framework.

### 3.5. Complexity and optimizations

In order to construct , the structural distance between every node pair for every layer must be computed, namely, for , and . However, uses the result of a DTW calculation between two degree sequences. While classic implementation of DTW has complexity , fast techniques have complexity , where is the size of the largest sequence (Salvador and Chan, 2004). Let denote the largest degree in the network. Then, the size of the degree sequence , for any node and layer . Since in each layer there are pairs, the complexity of computing all distances for layer is . The final complexity is then . In what follows we describe a series of optimizations that will significantly reduce the computation and memory requirements of the framework.

#### Reducing the length of degree sequences (OPT1).

Although degree sequences at layer have lengths bounded by , for some networks this can be quite large even for small (e.g., for the sequences are already ). To reduce the cost of comparing large sequences, we propose compressing the ordered degree sequence as follows. For each degree in the sequence, we count the number of occurrences of that degree. The compressed ordered degree sequence is a tuple with the degree and the number of occurrences. Since many nodes in a network tend to have the same degree, in practice the compressed ordered degree sequence can be an order of magnitude smaller than the original.

Let and denote the compressed degree sequences of and , respectively. Since the elements of and are tuples, we adapt the DTW pairwise distance function as follows:

 (10) dist(a,b)=(max(a0,b0)min(a0,b0)−1)max(a1,b1)

where and are tuples in and , respectively; and are the degrees; and are the number of occurrences. Note that using the compressed degree sequence leads to comparisons between pieces of the original sequences that have the same degree (as opposed to comparing every degree). Thus, equation (10) leads to an approximation of the DTW on the original degree sequences, as given by equation (2). However, DTW now operates on and , which are much shorter than and , respectively.

#### Reducing the number of pairwise similarity calculations (OPT2).

While the original framework assesses the similarity between every node pair at every layer , clearly this seems unnecessary. Consider two nodes with very different degrees (eg., 2 and 20). Their structural distance even for will be large, and consequently the edge between them in will have a very small weight. Thus, when generating context for these nodes, the random walk is unlikely to traverse this edge. Consequently, not having this edge in will not significantly change the model.

We limit the number of pairwise similarity calculations to per node, for every level . Let denote the set of nodes that will be neighbors of in , which will be the same for every level. should have the nodes most structurally similar to . In order to determine , we take the nodes that have degrees most similar to . This can be computed efficiently by performing a binary search on the ordered degree sequence of all nodes in the network (for the degree of node ), and taking consecutive nodes on each direction after the search completes. Thus, computing has complexity . Computing for all nodes has complexity which is also needed for sorting the degrees of the network. As for memory requirements, each layer of will now have edges as opposed to .

#### Reducing the number of layers (OPT3).

The number of layers in is given by the diameter of the network, . However, for many networks the diameter can be much larger than the average distance. Moreover, the importance of assessing the structural similarity between two nodes diminishes with arbitrarily large values for . In particular, when is near the length of the degree sequences of the rings become relatively short, and thus is not much different from . Therefore, we cap the number the layers in to a fixed constant , capturing the most important layers for assessing structural similarity. This significantly reduces the computational and memory requirements for constructing .

Although the combination of the above optimizations affects the capacity of the framework in generating good representations for nodes that are structurally similar, we will show that their impact is marginal and sometimes even beneficial. Thus, the benefits in reducing computational and memory requirements of the framework greatly outweighs its drawbacks. Last, we make struc2vec available at: https://github.com/leoribeiro/struc2vec

## 4. Experimental Evaluation

In what follows we evaluate struct2vec in different scenarios in order to illustrate its potential in capturing the structural identity of nodes, also in light of state-of-the-art techniques for learning node representations.

### 4.1. Barbell graph

We denote as the -barbell graph which consists of two complete graphs and (each having nodes) connected by a path graph of length . Two nodes and act as the bridges. Using to denote , we connect to and to , thus connecting the three graphs.

The barbell graph has a significant number of nodes with the same structural identity. Let and . Note that all nodes are structurally equivalent, in the strong sense that there exists an automorphism between any pair of such nodes. Additionally, we also have that all node pairs , for , along with the pair , are structurally equivalent in the same strong sense. Figure 2a illustrates a graph, where structurally equivalent nodes have the same color.

Thus, we expect struct2vec to learn vertex representations that capture the structural equivalence mentioned above. Every node pair that is structurally equivalent should have similar latent representation. Moreover, the learned representations should also capture structural hierarchies: while the node is not equivalent to neither nodes or , we can clearly see that from a structural point of view it is more similar to (it suffices to compare their degrees).

Figure 2 shows the latent representations learned by DeepWalk, node2vec and struct2vec for . DeepWalk fails to capture structural equivalences, which is expected since it was not designed to consider structural identities. As illustrated, node2vec does not capture structural identities even with different variations of its parameters and . In fact, it learns mostly graph distances, placing closer in the latent space nodes that are closer (in hops) in the graph. Another limitation of node2vec is that Skip-Gram’s window size makes it impossible for nodes in and to appear in the same context.

struct2vec, on the other hand, learns representations that properly separate the equivalent classes, placing structurally equivalent nodes near one another in the latent space. Note that nodes of the same color are tightly grouped together. Moreover, and are placed close to representations for nodes in and , as they are the bridges. Finally, note that none of the three optimizations have any significant effect on the quality of the representations. In fact, structurally equivalent nodes are even closer to one another in the latent representations under OPT1.

Last, we apply RolX to the barbell graph (results in Figure 2(b)). A total of six roles were identified and some roles indeed precisely captured structural equivalence (roles 1 and 3). However, structurally equivalent nodes (in and ) were placed in three different roles (role 0, 2, and 5) while role 4 contains all remaining nodes in the path. Thus, although RolX does capture some notion of structural equivalence when assigning roles to nodes, struct2vec better identifies and separates structural equivalence.

### 4.2. Karate network

The Zachary’s Karate Club (Zachary, 1977) is a network composed of 34 nodes and 78 edges, where each node represents a club member and edges denote if two members have interacted outside the club. In this network, edges are commonly interpreted as indications of friendship between members.

We construct a network composed of two copies and of the Karate Club network, where each node has a mirror node . We also connect the two networks by adding an edge between mirrored node pairs and . Although this is not necessary for our framework, DeepWalk and node2vec cannot place in the same context nodes in different connected components of the graph. Thus, we add the edge for a more fair comparison with the two baselines. Figure 4a shows mirrored network with corresponding pairs having the same color.

Figure 3 shows the representations learned by DeepWalk, node2vec and struct2vec. Clearly, Deepwalk and node2vec fail to group in the latent space structurally equivalent nodes, including mirrored nodes.

Once again, struct2vec manages to learn features that properly capture the structural identity of nodes. Mirrored pairs – that is, nodes with the same color – stay close together in the latent space, and there is a complex structural hierarchy in the way the representations are grouped together.

As an example, note that nodes , and their correspondent mirrors ( and ) are in a separate cluster in the latent space. Interestingly, these are exactly the nodes that represent the club instructor Mr. Hi and his administrator John A. The network was gathered after a conflict between the two split the members of the club into two groups – centered on either Mr. Hi or John A. Therefore, nodes and have the specific and similar role of leaders in the network. Note that struct2vec captures their function even though there is no edge between them.

Another visible cluster in the latent space is composed of nodes and , also along with their mirrors. These nodes also have a specific structural identity in the network: all of them have high degrees and are also connected to at least one of the leaders. Lastly, nodes and (far right in the latent space) have extremely close representations, which agrees with their structural role: both have low degree and are 2 hops away from leader .

struct2vec also captures non-trivial structural equivalences. Note that nodes and (pink and yellow) are mapped to close points in the latent space. Surprisingly, these two nodes are structurally equivalent – there exists an automorphism in the graph that maps one into the other. This can be more easily seen once we note that nodes and are also structurally equivalent, and is the mirrored version of node (therefore also structurally equivalent).

Last, Figure 4b shows the roles identified by RolX in the mirrored Karate network (28 roles were identified). Note that leaders and were placed in different roles. The mirror for (node ) was also placed in a different role, while the mirror for (node ) was placed in the same role as . A total of 7 corresponding pairs (out of 34) were placed in the same role. However, some other structural similarities were also identified – e.g., nodes and are structurally equivalent and were assigned the same role. Again, RolX seems to capture some notion of structural similarities among network nodes but struct2vec can better identify and separate structural equivalences using latent representations.

Consider the distance between the latent representation for nodes. We measure the distance distribution between pairs corresponding to mirrored nodes and among all node pairs (using the representation shown in Figure 3). Figure 5 shows the two distance distributions for the representations learned by node2vec and struc2vec. For node2vec the two distributions are practically identical, indicating that distances between mirrored pairs blend well with all pairs. In contrast, struc2vec exhibits two very different distributions: 94% of mirrored node pairs have distance smaller than 0.25 while 68% of all node pairs have distance larger than 0.25. Moreover, the average distance between all node pairs is 5.6 times larger than that of mirrored pairs, while this ratio is about slightly smaller than 1 for node2vec.

To better characterize the relationship between structural distance and distances in the latent representation learned by struc2vec, we compute the correlation between the two distances for all node pairs. In particular, for each layer we compute the Spearman and Pearson correlation coefficients between , as given by equation (1), and the euclidean distance between and in the learned representation. Results shown in Table 1 for the mirrored Karate network indeed corroborate that there is a very strong correlation between the two distances, for every layer, captured by both coefficients. This suggests that struc2vec indeed captures in the latent space the measure for structural similarity adopted by the methodology.

### 4.3. Robustness to edge removal

We illustrate the potential of the framework in effectively representing structural identity in the presence of noise. In particular, we randomly remove edges from the network, directly changing its structure. We adopt the parsimonious edge sampling model to instantiate two structurally correlated networks (Pedarsani and Grossglauser, 2011).

The model works by taking a fixed graph and generating a graph by sampling each edge with probability , independently. Thus, each edge of is present in with probability . Repeat the process again using to generate another graph . Thus, and are structurally correlated through , and controls the amount of structural correlation. Note that when , and are isomorphic, while when all structural identity is lost.

We apply the edge sampling model to an egonet extracted from Facebook (224 nodes, 3192 edges, max degree 99, min degree 1) (Leskovec and Mcauley, 2012) to generate and with different values for . We relabel the nodes in (to avoid identical labels) and consider the union of the two graphs as the input network to our framework. Note that this graph has at least two connected components (corresponding to and ) and every node (in ) has a corresponding pair (in ).

Figure 6 shows the distance (latent space with 2 dimensions) distribution between corresponding node pairs and all node pairs for various values for (corresponding averages are shown in Table 2). For , the two distance distributions are strikingly different, with the average distance for all pairs being 21 times larger than that for corresponding pairs. More interestingly, when the two distributions are still very different. Note that while further decreasing does not significantly affect the distance distribution of all pairs, it slowly increases the distribution of corresponding pairs. However, even when (which means that the probability that an original edge appears both in and is 0.09, ), the framework still places corresponding nodes closer in the latent space.

This experiment indicates the robustness of the framework in uncovering the structural identity of nodes even in the presence of structural noise, modeled here through edge removals.

### 4.4. Classification

A common application of latent representations for network nodes is classification. struc2vec can be leveraged for this task when labels for nodes are more related to their structural identity than to the labels of their neighbors. To illustrate this potential, we consider air-traffic networks: unweighted, undirected networks where nodes correspond to airports and edges indicate the existence of commercial flights. Airports will be assigned a label corresponding to their level of activity, measured in flights or people (discussed below). We consider the following datasets (collected for this study):

• Brazilian air-traffic network: Data collected from the National Civil Aviation Agency (ANAC) from January to December 2016. The network has 131 nodes, 1,038 edges (diameter is 5). Airport activity is measured by the total number of landings plus takeoffs in the corresponding year.

• American air-traffic network: Data collected from the Bureau of Transportation Statistics from January to October, 2016. The network has 1,190 nodes, 13,599 edges (diameter is 8). Airport activity is measured by the total number of people that passed (arrived plus departed) the airport in the corresponding period.

• European air-traffic network: Data collected from the Statistical Office of the European Union (Eurostat) from January to November 2016. The network has 399 nodes, 5,995 edges (diameter is 5). Airport activity is measured by the total number of landings plus takeoffs in the corresponding period.

For each airport, we assign one of four possible labels corresponding to their activity. In particular, for each dataset, we use the quartiles obtained from the empirical activity distribution to split the dataset in four groups, assigning a different label for each group. Thus, label 1 is given to the 25% less active airports, and so on. Note that all classes (labels) have the same size (number of airports). Moreover, classes are related more to the role played by the airport.

We learn latent representations for nodes of each air-traffic network using struc2vec and node2vec

using a grid search to select the best hyperparameters for each case. Note that this step does not use any node label information. The latent representation for each node becomes the feature that is then used to train a supervised classifier (one-vs-rest logistic regression with L2 regularization). We also consider just the node degree as a feature since it captures a very basic notion of structural identity. Last, since classes have identical sizes, we use just the accuracy to assess performance. Experiments are repeated 10 times using random samples to train the classifier (80% of the nodes used for training) and we report on the average performance.

Figure 7 shows the classification performance of the different features for all air-traffic networks. Clearly, struc2vec outperforms the other approaches, and its optimizations have little influence. For the Brazilian network, struc2vec improves classification accuracy by 50% in comparison to node2vec. Interestingly, for this network node2vec has average performance (slightly) inferior to node degree, indicating the importance played by the structural identity of the nodes in classification.

### 4.5. Scalability

In order to illustrate its scalability, we apply struc2vec with the first two optimizations to instances of the Erdös-Rényi random graph model (using 128 dimensions, 10 walks per node, walk length 80, Skip-Gram window 10). We compute the average execution time for 10 independent runs on graphs with sizes from 100 to 1,000,000 nodes and average degree of 10. In order to speed up training the language model, we use Skip-Gram with Negative Sampling (Mikolov et al., 2013b). Figure 8 shows the execution time (in log-log scale) indicating that struc2vec scales super-linearly but closer to linear than to (dashed lines). Thus, despite its unfavorable worst case time and space complexity, in practice struc2vec can be applied to very large networks.

## 5. Conclusion

Structural identity is a concept of symmetry in networks in which nodes are identified based on the network structure. The concept is strongly related to functions or roles played by nodes in the network, an important problem in social and hard sciences.

We propose struc2vec, a novel and flexible framework to learn representations that capture the structural identity of nodes in a network. struc2vec assesses the structural similarity of node pairs by considering a hierarchical metric defined by the ordered degree sequence of nodes and uses a weighted multilayer graph to generate context.

We have shown that struc2vec excels in capturing the structural identity of nodes, in comparison to state-of-the-art techniques such as DeepWalk, node2vec and RolX. It overcomes their limitation by focusing explicitly on structural identity. Not surprising, we also show that struc2vec is superior in classification tasks where node labels are more dependent on their role or structural identity. Last, different models to generate representations tend to capture different properties, and we argue that structural identity is clearly important when considering possible node representations.

## References

• (1)
• Atias and Sharan (2012) Nir Atias and Roded Sharan. 2012. Comparative analysis of protein networks: hard problems, practical solutions. Commun. ACM 55 (2012).
• Bengio et al. (2003) Yoshua Bengio, Réjean Ducharme, Pascal Vincent, and Christian Jauvin. 2003. A Neural Probabilistic Language Model. JMLR (2003).
• Blondel et al. (2004) V Blondel, A Gajardo, M Heymans, P Senellart, and P Van Dooren. 2004. A measure of similarity between graph vertices: Applications to synonym extraction and web searching. SIAM review (2004).
• Cao et al. (2016) Shaosheng Cao, Wei Lu, and Qiongkai Xu. 2016.

Deep Neural Networks for Learning Graph Representations. In

AAAI.
• Fouss et al. (2007) F Fouss, A Pirotte, J Renders, and M Saerens. 2007. Random-Walk Computation of Similarities Between Nodes of a Graph with Application to Collaborative Recommendation. IEEE Trans. on Knowl. and Data Eng. (2007).
• Grover and Leskovec (2016) Aditya Grover and Jure Leskovec. 2016. node2vec: Scalable Feature Learning for Networks. In ACM SIGKDD.
• Henderson et al. (2012) K Henderson, B Gallagher, T Eliassi-Rad, H Tong, S Basu, L Akoglu, D Koutra, C Faloutsos, and L Li. 2012. Rolx: structural role extraction & mining in large graphs. In ACM SIGKDD.
• Kleinberg (1999) Jon M Kleinberg. 1999. Authoritative sources in a hyperlinked environment. Journal of the ACM (JACM) (1999).
• Leicht et al. (2006) Elizabeth A Leicht, Petter Holme, and Mark EJ Newman. 2006. Vertex similarity in networks. Physical Review E 73 (2006).
• Leskovec and Mcauley (2012) Jure Leskovec and Julian J Mcauley. 2012. Learning to discover social circles in ego networks. In NIPS.
• Lorrain and White (1971) Francois Lorrain and Harrison C White. 1971. Structural equivalence of individuals in social networks. The Journal of mathematical sociology 1 (1971).
• Mikolov et al. (2013a) Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. 2013a.

Efficient Estimation of Word Representations in Vector Space. In

ICLR Workshop.
• Mikolov et al. (2013b) T Mikolov, I Sutskever, K Chen, G Corrado, and J Dean. 2013b. Distributed Representations of Words and Phrases and their Compositionality. In NIPS.
• Narayanan et al. (2016) A Narayanan, M Chandramohan, L Chen, Y Liu, and S Saminathan. 2016. subgraph2vec: Learning Distributed Representations of Rooted Sub-graphs from Large Graphs. In Workshop on Mining and Learning with Graphs.
• Pedarsani and Grossglauser (2011) Pedram Pedarsani and Matthias Grossglauser. 2011. On the privacy of anonymized networks. In ACM SIGKDD.
• Perozzi et al. (2014) Bryan Perozzi, Rami Al-Rfou, and Steven Skiena. 2014. DeepWalk: Online Learning of Social Representations. In ACM SIGKDD.
• Pizarro (2007) Narciso Pizarro. 2007. Structural Identity and Equivalence of Individuals in Social Networks Beyond Duality. International Sociology 22 (2007).
• Rakthanmanon et al. (2013) T Rakthanmanon, B Campana, A Mueen, G Batista, B Westover, Q Zhu, J Zakaria, and E Keogh. 2013. Addressing big data time series: Mining trillions of time series subsequences under dynamic time warping. ACM TKDD (2013).
• Sailer (1978) Lee Douglas Sailer. 1978. Structural equivalence: Meaning and definition, computation and application. Social Networks (1978).
• Salvador and Chan (2004) S Salvador and P Chan. 2004. FastDTW: Toward accurate dynamic time warping in linear time and space. In Workshop on Min. Temp. and Seq. Data, ACM SIGKDD.
• Shervashidze et al. (2011) N Shervashidze, P Schweitzer, E van Leeuwen, K Mehlhorn, and K Borgwardt. 2011. Weisfeiler-Lehman Graph Kernels. JMLR (2011).
• Singh et al. (2008) R Singh, J Xu, and B Berger. 2008. Global alignment of multiple protein interaction networks with application to functional orthology detection. PNAS (2008).
• Tang et al. (2015) Jian Tang, Meng Qu, Mingzhe Wang, Ming Zhang, Jun Yan, and Qiaozhu Mei. 2015. LINE: Large-scale Information Network Embedding. In WWW.
• Wang et al. (2016) Daixin Wang, Peng Cui, and Wenwu Zhu. 2016. Structural Deep Network Embedding. In ACM SIGKDD.
• Zachary (1977) Wayne W Zachary. 1977. An information flow model for conflict and fission in small groups. Journal of anthropological research (1977).
• Zager and Verghese (2008) Laura A Zager and George C Verghese. 2008. Graph similarity scoring and matching. Applied mathematics letters (2008).


text:
# Tic Tac Toe app problem with AI

## Recommended Posts

Nitin TPs    122
Hello. I just started programming a Tic Tac Toe game on the GNU GCC C++ code::blocks IDE. There is a slight problem with the AI, however. The computer makes a move and repeats it all game long (i think). Can you have a look at the code and tell me about what i did wrong? Thanks in advance! Oh and you'll need two headers dpl.h and max.h which are in the rar. Apart from this you need the conio.h (old one). I've used funcs like gotoxy() and clrscr():) The headers are required IF you'll compile the project. code: http://rapidshare.com/files/93570852/Tic_Tac_Toe.rar.html

##### Share on other sites
Hodgman    51336
Usually posts like this ("here's my source code, fix it please!") don't get very many responses. You'll probably have better luck if you can ask specific questions. For example, instead of uploading your entire source code, you could have just posted the "CalculateMove" function if your problem is the AI.
(Also, if you post source code, you can use [ source ] tags to format it)

You should never use absolute paths in include directives!

It should be:

Also, TicTacToeEngine.h is full of function definitions. That is a bad thing.
You should only have the function prototypes in the header, e.g.:
void DrawBoard(const string cMovesDone);

And then put the function implementation in a cpp file:
void DrawBoard(const string cMovesDone)
{
...
}

If you try to include that header in more than one cpp file you will find out why it is a bad thing (you will get linker errors).

As to what is actually wrong with CalculateMove; the first problem I can see is that it is possible for all of your if's and else-if's to be false, in which case you're going to return an un-initialised value!

##### Share on other sites
Nitin TPs    122
Thanks. Sorry for the rather assuming post. erm... I dont exactly see what's wrong with CalculateMove... The logic seems, with no attempts at modesty, impeccable. How is it errant? Please help me out!

##### Share on other sites
Hodgman    51336
Quote:
 Original post by Nitin TPsI dont exactly see what's wrong with CalculateMove... The logic seems, with no attempts at modesty, impeccable. How is it errant? Please help me out!

CalculateMove only seems to be checking for a line of two symbols, and if it finds one, it tells the AI to choose to move into the third position in that line.
CalculateMove doesn't contain any code at all to handle the situation when it can't find a line of two symbols (such as at the start of the game)!
int CalculateMove(const string cMovesDone){    k:    int nCompMove;         if(cMovesDone.at(0) == cMovesDone.at(4)) nCompMove = 8;    else if(cMovesDone.at(4) == cMovesDone.at(8)) nCompMove = 0;    else if(cMovesDone.at(0) == cMovesDone.at(8)) nCompMove = 4;    else if(cMovesDone.at(0) == cMovesDone.at(3)) nCompMove = 6;    else if(cMovesDone.at(0) == cMovesDone.at(6)) nCompMove = 3;    else if(cMovesDone.at(3) == cMovesDone.at(6)) nCompMove = 0;    else if(cMovesDone.at(0) == cMovesDone.at(1)) nCompMove = 2;    else if(cMovesDone.at(0) == cMovesDone.at(2)) nCompMove = 1;    else if(cMovesDone.at(2) == cMovesDone.at(1)) nCompMove = 0;    else if(cMovesDone.at(1) == cMovesDone.at(4)) nCompMove = 7;    else if(cMovesDone.at(4) == cMovesDone.at(7)) nCompMove = 1;    else if(cMovesDone.at(1) == cMovesDone.at(7)) nCompMove = 4;    else if(cMovesDone.at(2) == cMovesDone.at(5)) nCompMove = 8;    else if(cMovesDone.at(5) == cMovesDone.at(8)) nCompMove = 2;    else if(cMovesDone.at(2) == cMovesDone.at(8)) nCompMove = 5;    else if(cMovesDone.at(3) == cMovesDone.at(4)) nCompMove = 5;    else if(cMovesDone.at(3) == cMovesDone.at(5)) nCompMove = 4;    else if(cMovesDone.at(4) == cMovesDone.at(5)) nCompMove = 3;    else if(cMovesDone.at(6) == cMovesDone.at(7)) nCompMove = 8;    else if(cMovesDone.at(7) == cMovesDone.at(8)) nCompMove = 6;    else if(cMovesDone.at(6) == cMovesDone.at(8)) nCompMove = 7;    else if(cMovesDone.at(2) == cMovesDone.at(4)) nCompMove = 6;    else if(cMovesDone.at(4) == cMovesDone.at(6)) nCompMove = 2;    else if(cMovesDone.at(2) == cMovesDone.at(6)) nCompMove = 4;    return nCompMove;}

^^^
What happens when none of the 'if' conditions are true?

When the game first starts none of your 'if' conditions are going to be true!
cMovesDone starts off as "123456789".

Which means you end up doing:
int CalculateMove(const string cMovesDone){    int nCompMove;//no initial/default value specified here         if('1' == '5') nCompMove = 8;//nope, not true    else if('5' == '9') nCompMove = 0;//not true either    else if('1' == '9') nCompMove = 4;//still not true    else if('1' == '4') nCompMove = 6;//this one aint true either    else if('1' == '7') nCompMove = 3;//still not true...    else if('4' == '7') nCompMove = 0;//false    else if('1' == '2') nCompMove = 2;//false    else if('1' == '3') nCompMove = 1;//false    else if('3' == '2') nCompMove = 0;//false    else if('2' == '5') nCompMove = 7;//false    else if('5' == '8') nCompMove = 1;//false    else if('2' == '8') nCompMove = 4;//false//etc...   //None of the if's were true, which means nCompMove was never assigned a value!    return nCompMove;//returning uninitialized value is undefined behaviour! There's no telling what's going to happen after this point!}

In pseudo-code your logic is currently doing this:
Search each possible line  if line contains two of the same symbol and one empty space, then    move into that empty space  else    continue searchingIf search failed to find a move, then  move into <undefined>

I'd recommend changing it to:

//try to winSearch each possible line  if line contains two of the AI-player's symbols and one empty space, then    move into that empty space  else    continue searchingIf search failed to find a move, then  //try to block the human player from winning  Search each possible line    if line contains two of the Human-player's symbols and one empty space, then      move into that empty space    else      continue searching  If search failed to find a move, then    //just move randomly    repeat      position = random number from 0 to 8    until position is an empty space    move into position

[Edited by - Hodgman on February 21, 2008 9:47:58 PM]

##### Share on other sites
Nitin TPs    122
Thank ye, hodgman! That seems ju-ust fine and dandy. I'll make it that way.
Until now, i was just testing the defense of the computer... There's a slight problem, however. I tried testing it's defense with the above code. Not working.
Looks like either my if(check-whole-line-for-same-opp-symbols) is not working or my wiring up of the entire program isn't. Dunno what, though. Hope it'll work after i attach the offense part...

##### Share on other sites
Nitin TPs    122
Hang on! is the defensive play all right? That

if(cMovesd...at(something) == cMovesd...at(something_else)) nCompMove = blah;

Is it alright? If it is, i'll have to burrow into the circuitry of the program.
Else i'll just about bin it and start from scratch.


text:
# Problem with “FrameLabel” when specifying Superscript, Italics, and Times (font)

I'm using FrameLabel to create the label "ln p'(t)" [which is, natural log of the function p'(t)]. This is to be publication quality, so I specify Times font, and Italics (see below). But the "prime" does not italicize (that is, it remains upright rather than slanted). So I try to achieve that end by the Superscript (see below), but that produces " ln (t)p' ". Can someone suggest how to get the proper look for "ln p'(t)" ? Thank you!

Graphics[Frame -> True,
FrameLabel -> {"ln " AngleBracket[Style["R(t)", Italic]],
"ln " Superscript[Style["p", Italic], ′] Style["(t)", Italic]},
LabelStyle -> Directive[FontFamily -> Times, FontSize -> 16]]

• you are multiplying the terms in your label – Mike Honeychurch Jul 26 '16 at 0:58
• It is important to post code that is a minimal working example. I edited your post for this. – Edmund Jul 26 '16 at 1:04

You are multiplying the terms in your label. i.e.

"ln " Superscript[Style["p", Italic], ′] Style["(t)", Italic]

means

"ln " multiplied by Superscript[Style["p", Italic], ′] multiplied by Style["(t)", Italic]

Use Row to compose the label:

Plot[x, {x, 1, 30}, PlotRange -> All, Frame -> True,
FrameLabel -> {Row[{"ln " , AngleBracket[Style["R(t)", Italic]]}],
Row[{"ln ", Style[ Superscript["p", \[Prime]], Italic],
Style["(t)", Italic]}]},
LabelStyle -> Directive[FontFamily -> Times, FontSize -> 16]]


text:
# Are x and ix linearly dependant or independant? (i=√-1)

1. Oct 11, 2013

### gikiian

The question is: are x and ix linearly dependent or independent?

My first guess is that they should be linearly dependent since i is a constant.

But when you apply the definition of linear independence i.e. when you solve ax+ibx=0 (where x≠0), you get a=-ib which shows that the only solution can be a,b=0.

Hence, according to definition of linear independence, x and ix should be linearly independent.

Am I correct?

2. Oct 11, 2013

### Simon Bridge

I think you need to be claer about how you are setting up the vector space.
i.e. In the complex plane, ix is perpendicular to x.

Only if you insist that a and b are both real.
The definition applies over a subset of a vector space - which vector space do these two numbers belong to?

3. Oct 11, 2013

### pwsnafu

In what vector space, with what field?

Linear dependence has nothing to do with whether something is a constant.

Why? $b=2$ and $a=-2i$ is also a solution.

Consider the complex numbers as a one dimensional vector space over itself. What happens?


text:
# How did the public feel about president hoover from 1929-1932?

###### Question:

How did the public feel about president hoover from 1929-1932?

### What determines the carrying capacity of an ecosystem?

What determines the carrying capacity of an ecosystem?...

### For the function illustrated, what is the domain ?a. {4,9}b. {2,3,4}c. {1,2,3,4,9,12}d. {1,4,9,12}

For the function illustrated, what is the domain ? a. {4,9} b. {2,3,4} c. {1,2,3,4,9,12} d. {1,4,9,12} $For the function illustrated, what is the domain ? a. {4,9} b. {2,3,4} c. {1,2,3,4,9,12} d. {1,4,$...

### An incentive for an entrepreneur is

An incentive for an entrepreneur is...

### Acceleration calculations 1. what are the resultant forces acting on these objects? acceleration 5 m/s

Acceleration calculations 1. what are the resultant forces acting on these objects? acceleration 5 m/s 10 kg force miss actieration a) an object of mass 10 kg accelerating at 5 m/s2 -...

### Difference between scavenger and carnivore?

Difference between scavenger and carnivore?...

### Which direction would you go to get from washington dc to mexico

Which direction would you go to get from washington dc to mexico...

### Least common denominator of 3/s and -3/6s

Least common denominator of 3/s and -3/6s...

### The babylonian account of the flood is the: a: old testament b: tel-el-amarna c: gilgamesh epic d: 'farewell address'

The babylonian account of the flood is the: a: old testament b: tel-el-amarna c: gilgamesh epic d: "farewell address"...

### What is the range of f(x) = (three-fourths) Superscript x – 4?

What is the range of f(x) = (three-fourths) Superscript x – 4?...

### A 0.450 L sample of nitrogen is at 25 °C and 47.81 kPa pressure. If the volume is increased to 825 mL and the temperature is increased to 52.5 °C, what

A 0.450 L sample of nitrogen is at 25 °C and 47.81 kPa pressure. If the volume is increased to 825 mL and the temperature is increased to 52.5 °C, what is the final pressure?...

### Question 12 (1 point)How can you cause a decomposition reaction of water?O Heat up the water.O Add salt to the water.Apply electricity to the water.If

Question 12 (1 point) How can you cause a decomposition reaction of water? O Heat up the water. O Add salt to the water. Apply electricity to the water. If you wait long enough it will decompose on its own....

### Max hires a septic system contractor to dig trenches for his new septic tank. the cost to hire the contractor

Max hires a septic system contractor to dig trenches for his new septic tank. the cost to hire the contractor is a fixed cost of $165 plus an additional$70 per hour. which expression below describes the average cost of an x-hour job?...

### 1. El emisor del texto es...A)al directora del Centro de Estudios Magisteriales.(B) jefe.C) instructores,D) directora académica2. El

1. El emisor del texto es... A)al directora del Centro de Estudios Magisteriales.(B) jefe.C) instructores,D) directora académica2. El receptor del mensaje es... A)docentes Certificados.B)directora AcadémicaC)directora del Centro de Estudios Magisteriales.D)instructores.3. El referente del texto e...

### The atomic mass is important because? a. it tells you the size of the atom b. it tells you the charge

The atomic mass is important because? a. it tells you the size of the atom b. it tells you the charge of the atom c. it tells you the number of electrons...

### What kind of molecules use this type of transport?

What kind of molecules use this type of transport?...

### What benefit does internal networked email systems provide over internet-based systems?-enables the transmission of videos

What benefit does internal networked email systems provide over internet-based systems? -enables the transmission of videos -allows email to be sent to co-workers -provides increased security -allows files to be shared by sending attachments...

### What is the solution to the system of equations below? {2y=x+63x=y+7 (5, 4) (20, 13) (13, 20) (4, 5)

What is the solution to the system of equations below? {2y=x+63x=y+7 (5, 4) (20, 13) (13, 20) (4, 5)...