text:
Finset and finmap are MathComp libraries defining finite sets of finite types and finite sets of choice types, respectively. Thus, it is not possible to create a finset-set of nat, but it is possible to create a finmap-set of nat, and it is possible to create both a finset-set and a finmap-set of bool.

These libraries are similar in several ways, and knowing one brings you almost all the way to knowing the other. The main difference in notations is that finset notations use ":" to refer to set operations (eg "A :|: B" for union), while finmap uses "" (eg "A | B"). The main difference in naming conventions is that finset uses "set" where finmap uses "fset". Make sure to at least skim the headers of each file before using it, and take particular note of the naming conventions described at the end of the finset header.

Some notes for finset:

1. Some notions such as \subset are defined in fintype, which is a dependency of finset.
2. Proving that two sets are equal is best accomplished through setP (this translates equality to x \in A <-> x \in B), unless there happens to already be a collection of lemmas that that let you reach your goal through direct rewriting.
3. Proving A \subset B is best accomplished through subsetP, and similarly, a hypothesis that A \subset B will probably be more useful under the subsetP view.
4. Proving or manipulating statements of the form [set _ | _] is best accomplished through imsetP.
5. inE is useful to simplify expressions of the form x \in X, where X includes simplifyable set operations such as intersections, unions, etc. There are also views such as setUP that can be used in more or less the same contexts. Note that their names are easily guessable. Eg, setUP is about union.
6. Facts about operations with singletons, for example about x |: X, can be found by searching for the operation about generic sets, _ :|: _ in this case. This is because _ |: _ is just a notation for [set _] :|: _ and often there are not specific lemmas for singletons (since their proofs would be the same as for their more generic counterparts).

Finmap equivalents:

1. The notation for subset is now "<=" instead of "\subset"
2. Use fsetP
3. Use fsubsetP
4. Use imfsetP
5. Continue using inE. The views are named fsetUP, etc.
6. Same idea. Here notations for singletons are, eg, _ | _, which can be found by searching _ | _.


text:
# Tag Info

## New answers tagged automata

1

The easiest way to deal with $A$ is to realize that it has a simpler description: $$A=\{u1v:u,v\in\Sigma^*\text{ and }|u|,|v|\ge 1\}\;.$$ Once you see this, it’s very easy to write down a context-free grammar for $A$. To show that $B$ is not context-free, use the pumping lemma with the word $s=0^{p+2}10^p10^{p+2}$, where $p$ is the pumping length. You’ll ...

0

There is a small correction to be made in part 3 of your proof. The string can be divided in may ways, $xy$ is not necessarily $0^{p}$ but it is true that the string $xy$ consists of only zeroes, so $y$ consists of only zeroes. That could also be just one zero, for instance. The 'unused' zeroes end up in z. But for whatever number of zeroes $y$ has, pumping ...

0

I would suspect just mentioning a string and the pumping lemma is not a full proof that you found a string that cannot be pumped in any way. This is my try: The string $01^{p}2^{p}$ can be divided in three parts $x$, $y$ and $z$ only in these ways: 1) $x = \epsilon$, $y = 01^{a}$ $|$ $a \geq 0$ If x has length zero, y will always be a zero and some ...

0

A conceptually simple way to do this depends on whether you can perform two transformations of FAs. We'll get to that in a bit. Step 1. Your first step is to make a FA for the language of strings presented from most significant bit to least significant. Suppose you wanted to make a FA for all binary strings which when presented from MSB to LSB represent ...

1

It suffices to be able to check divisibility by $p^k$ for primes $p$, since you can always combine a finite number of DFAs into one that essentially runs them in parallel and accepts iff they all accept. This is trivial for $p=2$. If $p$ is an odd prime, $2$ is a unit in $\Bbb Z/p^k\Bbb Z$, so there is an $m\in\Bbb Z^+$ such that $2^m\equiv1\pmod{p^k}$, and ...

2

Turing machine tapes are usually taken to be infinite in both directions, so the machine starts looking at the first input symbol, but there's an infinite supply of blanks to the left of that.

0

One way is to use the pumping lemma for regular languages; the linked article has an example of how to use it. If you try that approach with the word $w=b^pa^{p+1}$, where $p$ is the pumping length, you’ll get the desired contradiction very easily. I find this the easiest approach, but you can also use the Myhill-Nerode theorem. If you use it, you might ask ...

0

Yes, the second DFA cannot take a word $aaaa$ as it is the language of words with at least two b's with no restriction on the number of $a$'s. Moreover, the first graph is wrong it accepts the language of exactly two $a$'s.

0

"Final state" is a confusing term. It does not mean that the state is actually the last one, or that the automaton stops when it reaches the final state. It means that if the automaton reaches that state at the end of the input, then the automaton will accept the input. The automaton might reach a final state at the end of the input, or it might not. For ...

0

Note: Maybe you have to clarify whether the PDA is deterministic. Here my answer is based on non-deterministic PDA, or simply CFG. For a $w\in\{a,b\}^*$, define $$D_i=\#(a,w[1,i])-3\#(b,w[1,i])$$ and consider the grah of this sequence. The trick here is always thinking of the first time when the polyline of $D_i$ comes across a certain horizontal line. For ...

0

For the first part of the conditions, i.e. $|w|_0\equiv 0 \pmod 2$, you need two states, one for when the number of $0$'s read is even and one for the odd. For the second one, you must create a help state for the two states you had that reads the $1$ and pushs the 0 for the other state. So the problem is that you are thinking in just keep 2 states. And you ...

1

The languages recognized by non-deterministic PDAs are precisely the context-free languages, so the answer is yes for them. In this case you can even do it with a deterministic PDA: essentially all you need to do is push left brackets onto the stack and pop the top of the stack when you read a right bracket, if the top of the stack is the same kind of ...

1

An NFA accepts a word $w$ if $w$ governs at least one path from the initial state to an acceptor state. Thus, your second automaton accepts every non-empty word in $\{0,1\}^*$: every such word can reach $q_1$ (though of course it needn’t).

Top 50 recent answers are included

format: plain


text:
# SDL_Image setup problems on windows / mingw 64 / eclipse

I've been a software developer for a while, but I haven't done C++ in a long time and I thought I'd try it out with some game developement. I'm following the tutorial on youtube for Remaking Cavestory in C++ (great tutorial so far). I'm on Episode 4. I liked the sound of doing some 64 bit dev, so after a bunch of struggling I got SDL2 to work, scouring the internet and some trial & error I got it set up using the x86_64 libraries with a MinGW-w64 installation. I opted not to copy lib and include files into mingw as suggested by some guides. Instead, I figured I could "point" eclipse at the proper folders and everything should work. This was true up until trying to integrate the SDL_Image library. I have everything set up such that SDL.h is found by the compiler, and SDL_image.h is found by the compiler. That is, the SDL.h and SDL_image.h as referenced by my project code are fine. The problem is the compiler fails on SDL_image.h because IT references SDL.h and that reference is apparently bad.

Windows 10 64 bit (pro I think, though I doubt it matters)
eclipse Neon.2 (4.6.2)
MinGW-w64 (I think 4.3.0)
SDL2 (2.0.5)
SDL_image (2.0.1)

Here's where all of my files are:

C:\MinGW-w64\mingw64
C:\MinGW-w64\mingw64\bin
C:\MinGW-w64\mingw64\include
C:\MinGW-w64\mingw64\lib
C:\MinGW-w64\mingw64\x86_64-w64-mingw32
C:\MinGW-w64\mingw64\x86_64-w64-mingw32\bin
C:\MinGW-w64\mingw64\x86_64-w64-mingw32\include
C:\MinGW-w64\mingw64\x86_64-w64-mingw32\lib

F:\Dev\SDL2-2.0.5\x86_64-w64-mingw32
F:\Dev\SDL2-2.0.5\x86_64-w64-mingw32\bin
F:\Dev\SDL2-2.0.5\x86_64-w64-mingw32\include
F:\Dev\SDL2-2.0.5\x86_64-w64-mingw32\lib

F:\Dev\SDL2_image-2.0.1\x86_64-w64-mingw32
F:\Dev\SDL2_image-2.0.1\x86_64-w64-mingw32\bin
F:\Dev\SDL2_image-2.0.1\x86_64-w64-mingw32\include
F:\Dev\SDL2_image-2.0.1\x86_64-w64-mingw32\lib

In eclipse I have the following configured:

Project -> Properties -> C/C++ Build -> Settings -> Tool Settings -> GCC C++ Compiler -> Includes:

"\${workspace_loc:/cavestory-development/source/headers}"
"F:\Dev\SDL2-2.0.5\x86_64-w64-mingw32\include"
"F:\Dev\SDL2_image-2.0.1\x86_64-w64-mingw32\include"

Project -> Properties -> C/C++ Build -> Settings -> Tool Settings -> MinGW C++ Linker -> Libraries:

(top box: Libraries (-l))

SDL2
SDL2main
SDL2_image

(bottom box: Library search path (-L)

"F:\Dev\SDL2-2.0.5\x86_64-w64-mingw32\lib"
"F:\Dev\SDL2_image-2.0.1\x86_64-w64-mingw32\lib"

Project -> Properties -> C/C++ General -> Paths and Symbols -> Includes -> GNU C++:

/cavestorye-development/source/headers
F:\Dev\SDL2-2.0.5\x86_64-w64-mingw32\include
F:\Dev\SDL2_image-2.0.1\x86_64-w64-mingw32\include

Project -> Properties -> C/C++ General -> Paths and Symbols -> Libraries:

SDL2
SDL2main
SDL2_image

Project -> Properties -> C/C++ General -> Paths and Symbols -> Library Paths:

F:\Dev\SDL2-2.0.5\x86_64-w64-mingw32\lib
F:\Dev\SDL2_image-2.0.1\x86_64-w64-mingw32\lib

I've also copied all of the DLLs from these two folders into my Debug (where my .exe is created)

F:\Dev\SDL2-2.0.5\x86_64-w64-mingw32\bin
F:\Dev\SDL2_image-2.0.1\x86_64-w64-mingw32\bin

When I build the project, I get the following error:

F:\Dev\SDL2_image-2.0.1\x86_64-w64-mingw32\include/SDL2/SDL_image.h:27:17: fatal error: SDL.h: No such file or directory

It seems that when the compiler looks at SDL_image.h, it sees that THAT file includes SDL.h, which it can't find. Again, this worked when I was only including SDL2, and broke when I tried to include SDL2_image because the image library references the normal library in a way that can't be reconciled.

Has anyone dealt with this before? Let me know if I've left out any pertinent information.

• switch the order of SDL2 and SDL2main in your linking phase, it may not fix the problem, but it does matter. Also, I believe your problem stems from including the /include folders and not the /include/SDL2 folders, in your code, do you use #include <SDL2/SDL.h> or do you use <SDL.h> directly? – Joshua Hedges Jan 12 '17 at 8:31
• switching the order didn't help. My includes are <SDL2/SDL.h> and <SDL2/SDL_image.h>.I did try pointing to the include/SDL2 folders earlier which did not help. – vecima Jan 12 '17 at 19:57
• The compiler finds both SDL.h and SDL_image.h, but when it's looking at SDL_image.h THAT file has #include "SDL.h", and that's the line that fails. – vecima Jan 12 '17 at 19:58
• Edit SDL_image.h to have SDL2/SDL.h then. It's easier than changing all of your build settings. Also I believe because this change does not affect the output binary, you don't have to mark the change and release the source code. – Joshua Hedges Jan 12 '17 at 20:50
• If you'd like to avoid such licensing questions by making any such edits however, the typical method would be to remove the include paths and library search parhs for SDL_image and directly install (copy) the sdl header into your sdl2 directory and do the same with it's libraries. That is the reason sdl_image says "sdl.h" it's expecting it to be in the same local directory. There is no downside to this method, if you ever don't need sdl_image but need sdl2 simply don't link SDL_image. Let me know whichmethod you prefer and I can explain it better in an answer so you can mark it for success. – Joshua Hedges Jan 12 '17 at 21:02

The problem is SDL_image.h has #include "sdl.h" is because it's expecting two things, it's expecting it to be in the local directory because "" instead of <>, the latter would suggest it's expecting it's directory to be added -Ilike/this at compile time. The second thing it's expecting is that SDL.h shares a directory with SDL_image.h, because #include "sdl.h" says search right where we are, for the file named such.

To remedy the problem the appropriate solution for SDL is to add the link and include SDL paths into your project, and with the SDL_extension libraries, to copy the files directly into the matching directories of the SDL path. With SDL_image this means copying SDL_image.h into SDL-version-number/include(/SDL2 whether this is present depends on download, but the idea is it needs to be in the same folder as SDL.h). Then copy the SDL_image .so/.a/.dll/etc. into the matching SDL-version-number/lib(/x86 or /x64 may be present depending on your download, but it needs to be in the same directory as sdlmain.a and sdl.a).

Any used functionalities that are additional sub-extensions of an SDL_extension library are generally linked on their own, or linked directly by the SDL_extension library, and you must determine their usage yourself, such as using PNG images. PNG images will be linked automatically because the PNG library was linked at the time of compiling SDL_image, however libpng-some-version.dll and zlib-some-version.dll must be copied into your project binary folder yourself, and you simply determine which ones you need by what sort of image you're using (if you need jpegs, copy the jpeg.dll no additional linking or compilation flags required it's already done)

Main Signature The required main signature for SDL/SDL2 is:

int main( int argc, char *argv[])

char **argv is equivalent to char *argv[], either may be used.

This issue is discussed here and other places, the fact that the tutorial writer's compiler allowed this usage is probably just a decision made by the compiler writers knowing that C++ SHOULD allow this usage, but doesn't.

For why the main signature has a macro making it be defined differently check here. It's not generally good practice, so don't copy this behavior ever, but SDL did it because it was written in C, and not too recently either.

• Thank you for the detailed answer. You are correct about the SDL file path issue. I was able to resolve that an move on. I understood that SDL implements WinMain and "expects" a main implementation as you laid out above, I just didn't know why the "const" caused a problem in my case. At any rate I appreciate your help, and I'll accept your answer in the hopes that it helps someone in the future. – vecima Jan 16 '17 at 5:25


text:
Time Constrained Networks

One of the key features of complex networks is that they capture interactions which have no limitations.  In most electronic systems, be they Facebook, emails or web pages, we can make connections across the world with little if any cost.

However what if there are constraints on the links made in a network? Surely we should change the way we study networks if space, time or some other constraint is having a significant effect on the formation or use of the network.  This has been a major interest of mine over the last few years. Space is one obvious limitation as in some cases long distance are less likely to be made. There has been a lot of work in this area over many decades but I will leave this constraint for another blog.

It is only more recently that the role of time in networks has began to receive more attention. A lot of this recent interest in how to deal with networks where the connections, are made at one time.  That is because most communication networks, emails, phone calls and so forth, are of this type. The recent review by Holmes and Saramäki (2012) is such temporal edge networks.

Yet networks are made of two parts: vertices and edges. My recent work has focussed on the case where it is the vertices, not the edges, which are created at a definite time. In such temporal vertex networks, causality forces the interactions between nodes to always point in one direction. For example consider a citation network formed by academic papers. The nodes in our network are the academic papers and the links are formed by their bibliographies.  So if paper A refers to another paper B then we can be (almost) sure that A was written after B. Information can therefore flow only from B to A. In fact any set of documents can only refer to older ones such networks are common. In law, judges refer to previous judgments to support their arguments.  When registering a patent, prior art needs to be cited, that is other previously granted work which may have some relevance to the current claim.

The same types of structure occur in several other situations.  Any situation where there is a logical flow has the same causal structure.  If we have a project where the nodes represent individual tasks then an edge from task S to task T could represent the fact that task T requires task S to have been completed before task T is started.  This has been the focus of work on temporal vertex networks in computer science. The logical flow of a mathematical argument or an excel spreadsheet show the same properties.  These networks define what is called a partially ordered set or poset and it is under this title that you find relevant work coming from mathematicians. A final example comes from the Causal Sets approach to quantum gravity (see Dowker 2006 for a review).  Here space-time is discrete not continuous, and these discrete points are the nodes of the network.  The nodes are connected by edges only if they are causally connected and causality again gives these a common direction.

All of these temporal vertex networks have a key property.  That is they contain no loops if you always follow the direction on the edges.  You can not go backwards in time.  Thus the traditional name for such a network is a directed acyclic networks or DAG for short.

So the question is how can we adapt traditional network measures to deal with the fact that these networks, DAGs, are constrained by causality?  Are there new measures we should employ which give more insights to such networks?

I’ve been looking at these problems with several students (undergraduates in their final year projects and some MSc students), one of whom, James Clough, is now working for his PhD on this topic.

Paths in networks are always important.  However one feature of a DAG we have been exploiting is that if we always follow the direction of the arrows, the direction of time, then not all nodes are connected. If we like we could add edges whenever there is such a path connected a late node to an earlier one, a process known as transitive completion.  On the other hand we could remove as many edges as we can while leaving the causal relationships intact, a process known as transitive reduction. That is, if there is a path between two nodes in the network before transitive reduction, then there will still be a link afterwards.

Example of the transitive reduction (left) and the transitive completion (right) of the directed acyclic graph in the centre.

What we have done (in Transitive Reduction of Citation Networks) is look at how real data from citation networks behaves after transitive reduction.  What we find is that different types of citation network behave very differently. The citation network formed from academic papers taken from the arXiv repositoryand the network of US Supreme Court judgments both show that about 80% of the edges are not needed to retain all the causal relationships.  On the other hand the patents network shows the opposite behaviour with all but 15% of edges being essential. The edges removed tend to be the citation to older papers. One interpretation is that academics and and judges may be citing well known early papers and judgments though their current work is only directly related to more recent documents. Perhaps some of these citations do not indicate the early work was needed but reflect other motivations, such as simple copying of popular papers or review in the field which at best only have general relevance. For academic papers this interpretation is supported by the work of Simkins and Roychowdhury In this sense unnecessarily.

The number of citations to a document after transitive reduction certainly gives us a different view of the importance of different documents. For instance paper hep-th/9802109 on the arXiv (Gauge Theory Correlators from Non-Critical String Theory by Gubsner et al.) was cited by 1641 papers in the network, but only three citations remained after TR! On the other hand, paper hep-th/9905111 (Large N Field Theories, String Theory and Gravity by Aharony et al.) has also large number of citations in the raw data, 806, yet after transitive reduction it has 77, so retaining far more of its original citations. Perhaps information in the second paper was used more diversely.

We can find similar examples in the US Supreme Court citation network. The case Schneider vs. New Jersey (1939)’ has 144 citations in the original data but this drops to just just one after transitive reduction. Stromberg vs. California (1931) also falls from 132 citations to just one. Conversely, the case Heller vs. New York (1973) only shows a slight fall after transitive reduction, falling from from 68 to 48 citations and has the most citations in our reduced network. The second most cited case after transitive reduction is Hamling vs. United States, which drops from 68 to 38 citations. Wikipedia lists hundreds of Supreme Court cases but the last two are not famous enough to make the Wikipedia list.  Our analysis suggests they may have more importance than a simple citation count would suggest. At the very least it might be be worth checking out documents that are highly cited in the essential.

Another way to look at citation networks is to see if we can define a dimension to the network.  That is we can try to quantify how much variation there is in the citation process.  A low dimension means that there are few directions , few distinct themes relevant for citation in a document.  A high dimension indicates that there is a wide range of relevant but distinct directions from which a document will draw on for inspiration.  What James Clough and I found (in What is the dimension of citation space?) is that we were often able to assign an interesting value for the dimension of our citation data.  For academic papers, we found that different fields of research have different dimensions.  For papers in the hep-th arXiv section (largely string theory) we found a low dimension of around 2 while for theoretical papers closely linked to particle physics experiments (hep-ph section) we found more variation as indicated by a higher dimension of 3. The quant-ph also around 3 while the astro-ph section had a slightly higher dimension of around 3.5. So clearly despite similarities in the main data using standard measures, our time-aware dimension measures show clear differences in the citation behaviour of different areas. String theory in particular seems to be a tightly knit collection of work with each work largely dependent on all the other work, few independent directions can be pursued. The US Supreme Court judgments were more complicated.  Small samples (usually from modern judgments) showed a dimension of around 2.5 to 3 but larger samples, typically ranging from modern to the earliest judgments, had lower dimensions, closer to 2. We interpreted this as reflecting the way that there were few early judgments compared to the number produced to day.  So that the further back we traced in time to find the influence of judgments on recent ones, the smaller the variation.  Perhaps that is not so surprising and we might expect a similar shape if we could follow scientific papers back to the 18th century! patents on the other hand showed a much higher dimension though again these were involved.

It is clear from just the few studies we have made that time makes a crucial difference to the structure of a network. We have tried a few new measures adapted to take account of time and in doing so we have thrown up some intriguing features in real data.  There is surely much more to find when networks are embedded in time.

References

Clough, J.R. & Evans, T.S. What is the dimension of citation space?, arXiv:1408.1274

Clough, J. R.; Gollings, J.; Loach, T. V. & Evans, T. S., Transitive Reduction of Citation Networks, J.Complex Networks to appear 2014, arXiv:1310.8224 DOI: 10.1093/comnet/cnu039 (open access)

Dowker, F. Causal sets as discrete spacetime, 2006. Contemporary Physics, 47, 1-9

Holme, P. & Saramäki, J. 2012. Temporal Networks Physics Reports, 519, 97-125

Simkin M.V. and Roychowdhury V.P., 2003. Read before you cite! Complex Systems 14 269-274

The Many Truths of Community Detection

You do not need to know the detailed properties of every small part making up a gas, it turns out the bulk properties of a gas can be derived from very general principles. In the same way when looking at Facebook data, we might be able to identify groups of people who behave in a similar way. Searching for these groups or clusters in data is central in many areas of physical and social science. It is often easier to understand the behaviour of a large system by looking at these clusters, which are much fewer in number.

In terms of networks, the clustering is based on the structure (topology) of the network and the groups found are called Communities. In this case we might expect a coherent group to be one which has more links between members of the group than it ha to nodes outside the group in other clusters. I have done some work on what is called Community Detection, particularly in methods which assign nodes to the membership of several clusters (e.g. my line graph and clique graph papers referenced below).  After all, my social connections are likely to show that I am part of several groups: work colleagues, family relationships, connections made through hobbies or sports.

For some time I have been very wary about the meaning of the clusters found with such methods and particular about claims of one method being able to find “better” communities than another.  A recent paper prompted me to think about this again. In Community detection in networks: structural clusters versus ground truthHricDarst, and Fortunato from Aalto University in Finland (a big centre for networks research) asked if the network methods were finding different sorts of clusters from those found using other aspects of the data. Typically when testing a community detection method, one sets up artificial networks in which each node is assigned to one community. The edges between nodes are then assigned at random but with a preference for edges to be between nodes from the same community.  I can do all the tests I like on artificial data but I am always worried that this approach has introduced some hidden bias. Perhaps we end up choosing the methods that ‘work’ on artificial data but which are perhaps not so good on real messy data? It all comes down to the fact that we have mathematical ways to quantify the difference between community assignments but defining what we mean by “the best” clustering is impossible. Even with artificial networks, the “ground truth” is not generally an absolute truth.  Typically the “truth” are input parameters and the actual network generated is partly random. So while the resulting artificial network is correlated with the ground truth it is not designed to be a perfect match. So in this case the “actual truth” will, in almost most cases, be different from the ground truth.

I also worry about what we do when we run network community detection methods on large real data sets where there is no simple ground truth.  When I have done this, I can find a variety of possible answers for communities in the data.  Many look reasonable but none correlate perfectly with each other or with what I know from other sources. This leaves me wondering if the automatic methods are finding one truth and my other information gives another. Alternatively the automatic methods might be rubbish, good on artificial cases, not so good in reality. There is no simple way of telling.

In any case do real networks have a “ground truth”?  Quite often people have data from other sources about real networks and they use this to construct a “ground truth”.  The test is then to see if automatic methods can find this ground truth. However what if the other data is wrong? People don’t always tell the truth, they can deliberately mislead or they can misunderstand the problem. Children surveyed about their friendships may tell you who they’d like to be friends with (the most popular person in the class) and not who they actually spend time with.

Zachary Karate Club network clustered using clique graph methods

Take the famous Zachary karate club data set used by many (including myself) as a simple test. This is a network of members of a karate club that split in two during the sociologist’s study. Let us accept that the professionalism of Zachary has produced data that is a true reflection of the situation despite the difficulty of measuring associations in social science. If you look at the published paper it actually gives two truths. One is based on which of two factions the members actually joined, and one based on an automatic community detection method.  I suspect most people are using the latter as the ground truth (unwittingly) when testing their work.  Perhaps this is a further example supporting the claim that academics only read 20% of their references. Worse the data given in the published karate club paper is not consistent – the unweighted adjacency matrix is not symmetric.  So which truth was used for all those papers using the Karate club network?

American College Football network clustered using clique graph clustering methods

Another example comes from some work I did on overlapping community methods. Like many other people I downloaded a standard data set from Mark Newman’s web site, an extremely useful resource. The American College Football data was created by Girvan and Newman (in Community structure in social and biological networks) and represents the games played between American College Football teams in one season.  Also provided are the conference membership of each team.  Teams play more games against teams from the their own conference than from any one other conference. In fact this data is so well clustered that surely no method should get anything wrong beyond a few independent teams as my visualisations here illustrate (taken from my clique based clustering paper). So I looked at the “mistakes” made by my method. After about two afternoons of wading through interminable web sites of stats on American College football and Wikipedia pages on the College Conference system, I realised that in fact most of the “mistakes” were not from the automatic community detection but lay in “the ground truth”, that is in the conferences assigned to teams in the data file. It turns out that the assignments in the original football.gml file are for the 2001 season while the file records information about the games played for the 2000 season. For instance the Big West conference existed for football till 2000 while the Sun Belt conference was only started in 2001. There were 11 conferences and 5 independents in 2001 but 10 conferences and 8 independents in 2000.   Care is needed as American College athletic conferences cover many sports, with some sports joining or dropped from any one conference time to time. Teams can also switch conferences too. In fact around 10% of the college teams playing American football at the top level changed conferences around 2000-2001.

So often the “ground truth” is just another truth not some absolute truth! The errors in the Zachary Karate club and American College Football data do not matter in one sense as they still provide valid and valuable tests for methods.   The conclusions in the hundreds of papers using these data sets and which use these questionable ground truths would not change. Indeed it highlights one role for automatic methods.   You can see that where Girvan and Newman’s methods get the “wrong” answer in their original paper (Community structure in social and biological networks) they are in fact highlighting problems with their conference data. Validation of data is a very useful if boring job. A final question will always be if there is a single truth. For instance I am in the theoretical physics group of the physics department of the Faculty of Natural Sciences at Imperial College London.  That top-down hierarchical truth is important when allocating desks and teaching.  However another truth would emerge if you studied my research relationships.  Those are with staff and students based in other physics research groups and with colleagues from other departments and even other faculties.

So I was really pleased to see that Community detection in networks: structural clusters versus ground truth were questioning the meaning of truth in community detection from a quantitative point of view. Clustering of data, finding communities in data is of tremendous value commercially and for research, but there is still a lot more work to do before we understand these different truths.

References

M. Girvan, M.E.J. Newman, Community structure in social and biological networks, PNAS (2002) 99, 7821-782

W. Zachary, Information-Flow Model For Conflict And Fission In Small-Groups Journal Of Anthropological Research, (1977) 33  452–473

D. Hric, R.K. Darst,and S.Fortunato,  Community detection in networks: structural clusters versus ground truth,  arXiv:1406.0146

T.S. Evans, American College Football Network Files. figshare. (2012).  http://dx.doi.org/10.6084/m9.figshare.93179

T.S. Evans, and R. Lambiotte, Line Graphs, Link Partitions and Overlapping Communities Phys.Rev.E, 2009, 80, 016105 [arXiv:0903.2181].

T.S. Evans, Clique Graphs and Overlapping Communities J. Stat. Mech. (2010) P12037  http://dx.doi.org/10.1088/1742-5468/2010/12/P12037
[arXiv:1009.0638]

Why Google scholar is no worse than anything else

Just read an interesting couple of blogs by Stacy Konkiel from the ImpactStory team, one entitled “4 reasons why Google Scholar isn’t as great as you think it is“ nicely followed up by “7 ways to make your Google Scholar Profile better“ which keeps things constructive.  My immediate response to the first blog is that the problems are not unique to Google scholar and that you could highlight the same issues with most bibliometric sources.  Certainly the criticisms also apply to the two other commercial bibliometric data sources, Scopus and Web of Science. The four points were as follows.

1) Google Scholar Profiles include dirty data

What is “dirty data”? A site like Impactstory pulling in data from a wide range of non-traditional sources ought to be a little more careful about throwing this term about! One person’s dirty citation is another’s useful lead. It does seem Google scholar is more open to gaming but at least it is easy to spot this using Google scholar if you see some anomalous data. Scopus and Web of Science make their decisions behind closed doors about what to include and what not; how many ‘weak’ journals and obscure conference proceedings are included there, how many book citations are excluded? I’ve heard at least one story about the way bibliometric data was used as a pawn in a dispute between two companies over other commercial interests. I just have no idea how much manipulation of data goes on inside a commercial company. On the altmetrics side of the story, most departments still regard any social media counts as dirty.

2) Google Scholar Profiles may not last

Surely a problem with anything, commercial or not. Your institution may switch subscription and cut off your access even if it is still out there.  Google certainly has poor reputation on this front.  In so many ways, we always gamble when we invest time in a computer product – not sure my PL/1 programming knowledge is much use these days.

3) Google Scholar Profiles won’t allow itself to be improved upon

Scopus and Web of Science also carefully control what you can do with their data. In any case you need a subscription before you can start to do anything. So surely this is a criticism of all closed data systems.

4) Google Scholar Profiles only measure a narrow kind of scholarly impact

Again, I don’t see Scopus and Web of Science producing much more than bare citation counts and h-indices. The UK 2012 research assessment procedure (REF) only quoted bare citation counts from Scopus. This is a problem of education. Until more people understand how use bibliometric data nothing much will happen and I know h-indices still get thrown about during promotion discussions at my institution (again see an Impactstory blog about why people should stop using the h-index).

My Approach

I tend to think of all sources as data.  Your interpretation should vary as you take each into account.  Like all data and measurements, results derived from bibliometric information needs to be checked and validated using several independent sources and alternative methods.

For instance I have access to these three commercial sources, and they tend to give citations counts which differ.  Web of Science is generally the most conservative,  Scopus is in the middle and Google scholar leads the counts.  So I can use all three to give a balanced view and to weed out any problems. They also have different strengths and weaknesses.  Google is ahead of the curve and shows where the other two will go a year or two later.  My work on archaeology has a large component in books which  Google scholar  reflects but the other two fail to capture.  Scopus is very weak on my early Quantum Field Theory work, while both Web of Science and Google scholar are equally strong in this area and time period.

The tips discussed in “7 ways to make your Google Scholar Profile better” are very useful but many apply to all data sources. For instance Scopus just added two papers by another T.S.Evans working near London to my profile, even though its in a completely different research field, the address is completely different (not even in London) and there is basically zero overlap between these papers and my work.  Makes you worry about the quality of the automatic detection software used in commercial bibliometric firms. I can’t fix this myself, I have to email  Scopus while I can tidy up Google scholar myself whenever I want. Currently I also feel that the Google scholar recommendations are the most useful source of targeted information on papers I should look at but I am always looking for improvements.

Overall, I feel you need to keep a very balanced approached.  Never trust a statistic until you’ve found at least two other ways to back it up independently.

CitNetExplorer – Citation Network Analyser and Visualisation

I have just come across an interesting citation network analyser and visualiser – CitNetExplorer. Looks to be a very professional package that I will certainly be using.

One of the interesting things about citation networks is that their vertices have an order given by their publication date. This is a very strong constraint on the system so when you analyse or visualise such a network you should take the time ordering  into account. The simplest example is that you should not just look at the vertex degree in these networks, but at in-degree (citation count) and out-degree (length of bibliography). Perhaps the most obvious aspect of the constraint comes when you try to visualise the network. You can just put such networks into a standard network package and treat it as a directed network, which it is. However any standard visualisation will undoubtedly place the vertices all over the two-dimensional surface used for display. Standard visualisations pay no attention to the time-ordering of the vertices yet you almost certainly want to show that information when displaying a citation network as it is such a critical part of the definition. So many of the properties will depend on the age of the publication for instance. I have encountered this myself and played around with a few ad-hoc solutions but came to the conclusion I needed to write something myself, adapting a standard layout method to set one dimension of the vertex coordinates while the second dimensions is set by the vertice’s time. Since the same problem is encountered when making diagrams showing the critical paths in a set of tasks (such as Gantt charts) there are packages which will do this. However you will also want to do different types of analysis on a citation network plus they are likely to be much bigger than a normal Gantt chart.

This is where CitNetExplorer comes in. This comes from Nees Jan van Eck and Ludo Waltman at the CWTS (Centre for Science and Technology Studies) in Leiden, so comes from one of the leading institutes in bibliometric research. Its very early days and I have only had a short play but for me its good points are:

• Free for noncommercial and teaching purposes.
• Cross platform as written in java.
• Stable on my Windows 7 machines.
As it is written in java, it is likely to be stable on other platforms too.
• Well presented with a reassuring professional feel.
• Good graphical display.
The publications are laid out using their publication data for the vertical coordinate and a layout algorithm to place the publications horizontally
• Good default options.
I got an instantly readable figure every tine I tried it
• Good range of graphical output options.
Vector graphics, especially postscript (eps), is essential for me. Note these are all under the Screenshot menu option.
• Two basic network format output options.
A pajek .net and a simple text file format (see below)
• Various basic analysis tools.
This includes transitive reduction  which is something I have been very interested in and can throw up some new insights into the citation counts of papers (see arXiv:1310.8224).

The forty most highly cited papers in hep-th (1992-2003) after transitive reduction as an example of output from CitNetExplorer. (click on image for better version)

So this looks to be a really nice package. Of course, I am never satisfied so what would I like to see in future versions:

• Open source.
It would be nice to be able to learn from their computational work and to add to this myself. Maybe some type of plug-in could be added to solve the latter problem. I have a few more tricks for citation networks in the pipeline for instance.
• More input options.
There are only two and one is tied to Thomson-Reuter’s WoS (Web of Science) database. In the example given by the authors you perform a search on WoS and then save the results in a text file (saverecs.txt).  Note you must select the “Web of Science Core Collection” not the “All Databases” option which the example clearly shows but I didn’t read, otherwise the output file will not include the full citation information needed to construct the citation network.  This file is a simple text file so you should be able to combine them by hand if like me you are limited to 500 records per file.
The alternative is a pair of relatively simple text files.  These are not as yet explained in the documentation. Basically there are two files.  First is namepub.txt file lists the properties of the publications and the order in this file assigns each publication an index (the publication on line 2 is vertex 1, line 3 defines vertex 3 and so on). The second file is called namecite.txt and is an edge list written in terms of the vertex index. Look at the first few lines of the example data James Clough made from the open source KDD cup arXiv citation network data that we have been using in our recent work. Alternatively if you can produce a file from WoS open it in CitNetExplorer then save it in what is called CitNetExplorer format. These CitNetExplorer files are easy to look at, edit and prepare in a spreadsheet or a basic text editor and appear to be tab separated.
• Visualisation editing.
No layout is perfect so it is essential to be able to move the vertices by hand. One of my favourite visualisation packages, visone, shows what you can do in java, and even my own ariadne package built on the jung library gave that functionality automatically.

Rather less seriously, I am not sure about the name.  I would pronounce the “Cit” in “CitNetExplorer” as “sit” or perhaps “chit” so I would have kept the “e” in “cite”, CiteNetExplorer, but its not my product. As I’m getting bored typing it it, I’m sure it will become just CNE in any case.

CitNetExplorer http://www.citnetexplorer.nl/

Van Eck, N.J., & Waltman, L. (2014). CitNetExplorer: A new software tool for analyzing and visualizing citation networks. [arXiv:1404.5322]

Van Eck, N.J., & Waltman, L. (2014). Systematic retrieval of scientific literature based on citation relations: Introducing the CitNetExplorer tool. In Proceedings of the First Workshop on Bibliometric-enhanced Information Retrieval (BIR 2014), pages 13-20.

James R. Clough, Jamie Gollings, Tamar V. Loach, Tim S. Evans (2013).
Transitive Reduction of Citation Networks. [arXiv:1310.8224]

Clough, James; Evans, Tim; Loach, Tamar (2013). Transitive Reduction of Citation Networks. (data set) figshare
http://dx.doi.org/10.6084/m9.figshare.834935

Clough, James; Evans, Tim (2014). KDD cup arXiv data for CitNetExplorer. figshare fileset.
http://dx.doi.org/10.6084/m9.figshare.1021647

Sculplexity: sculptures of complexity using 3D printing

I have just had an unusual paper published by European Physics Letters (doi: 10.1209/0295-5075/104/48001). 3D printing (or additive manufacturing technologies to give the field its more formal name) is very much in vogue: the first 3D printed gun, Obama’s 2013 state of the Union address, and so forth. I like to know about new technological advances, even better if I can play with it. So how can a theoretical physicist get involved with 3D printing?

One of the ways I learn about a new topic is to set it up as a project for final year undergraduate students or as a masters level project. We have some of the best students in the UK here so all I have to do is come up with an outline and the students usually rise to the challenge.

What I needed was a connection between my work in complexity and 3D printing. This link came from one of those serendipitous moments. Another advantage of being at Imperial is that it is part of a Victorian complex of arts and science institutions so we are surrounded by national museums. One is the V&A (Victoria and Albert museum) which is dedicated to all aspects of design, from all ages and all locations. It also has some amazing tea rooms, covered in tiles designed by William Morris, great when I have a visitor and a little more time. It was on one of those trips that I just happened to walk past something that caught my eye. At one level it is just a table. However I saw this table as a branching process. To the designers, it was inspired by the tree-like structures of nature. The designers had embraced technology to do this, using Computer Aided Design (CAD) and 3D printing. For on further investigation this was the Fractal.MGX table designed by WertelOberfell and Matthias Bär, the first 3D printed object the V&A had acquired.

The Fractal.MGX table designed by WertelOberfell and Mathias Bär, photo credit Stephane Briolant (Image rights WertelOberfell).

Branching processes occur in many problems in complex systems and they have a long history of mathematical investigation. So here was the link I was looking for. The question I asked was what other physics models familiar to me could be turned into a 3D printed object? How would you actually do this conversion? Does the tool, the 3D printer, impose its own limitations on the type of mathematical model we can use? Are these new limitations interesting mathematically in their own right? Until now researchers had only seen these mathematical models visualised using two-dimensional representations, often not even using perspective to give the impression of a 3D object. Making a 3D printed object opens up uncharted territory. My project shows one can move from traditional visualisations to new “tactilisations”. So can we gain new insights by using touch rather than vision?

The approach might also be useful for outreach as well as research. The same things that got my students and I interested in the project might intrigue school children, a retired judge or whoever. These objects might be particularly useful when explaining science to those whose sense of touch is better than their sight. However we could also go back to where this project started and see if models of complexity can produce something of aesthetic value alone – hence Sculplexity: sculptures of complexity.

The basic idea is simple. A 3D printer builds up its object in layers. So the height of the object can be thought of as a time. Suppose I have a model which defines a flat (two dimensional) picture. Typically this will be a grid with some squares full and some empty. The model also has to describe how this picture evolves in time. For instance there is a famous example known as Conway’s Game of Life for which are there many 2D visualisations. What I do is use the model at each point in time to define what the printer should print at one height. The next time step in the model will then define what to print on top of the first layer, and so forth.

In fact while the basic idea is straightforward, the implementation turned out to be much much harder than I expected. It is to the real credit of the undergraduate students working with me on this project, Dominic Reiss and Joshua  Price, that we pushed this idea through and actually got a final 3D printed object representing our modified forest fire model. OK so our final result is a bit of a lump of black plastic compared to the inspiration for this project, the Fractal.MGX table in the V&A. But this is just the start.

Now that we have shown that this can be done, there is so much more to explore.  We are adding another dimension to representations of mathematical models but the possibilities for 3D printing are endless.  All we have done is made the first step in terms of 3d printing and mathematical models. We have highlighted the key problems and given at least one way to fix them. I can already see how to extend the existing approach, new solutions to some of the problems, different ways to create an object from a wider variety of theoretical models. Imagination and ingenuity are all that are required.

Top view of the output produced from the Sculplexity project. Yes, its on a bed of rice since rice was used in an experiment to simulate another classic model of complexity - the sandpile model.

I have since found some other work using 3D printing to visualise maths which is full of useful ideas.  So look for the work of Aboufadel, Krawczyk and Sherman-Bennettand as well as that by Knill and Slavkovsky listed below.

References

1. Reiss D.S., Price J.J. and Evans T.S., 2013. Sculplexity: Sculptures of Complexity using 3D printing, European Physics Letters 104 (2013) 48001,  doi 10.1209/0295-5075/104/48001.
Copy of Sculplexity: Sculptures of Complexity using 3D printing on personal web page.
Chosen to be part of IOPselect, a collection of papers chosen by the editors for their novelty, significance and potential impact on future research.
(altmetrics for paper).
2. Evans T.S., 2013. Images of 3D printing output for Sculptures of Complexity – Sculpexityhttp://dx.doi.org/10.6084/m9.figshare.868866
3. Reiss D.S. and Price J.J., 2013. Source-code for Complex Processes and 3D Printing, https://github.com/doreiss/3D_Print, doi 10.6084/m9.figshare.718155 .
4. Reiss D.S., 2013. Complex Processes and 3D Printing, project report, http://dx.doi.org/10.6084/m9.figshare.718146.
5. Price J.J., 2013. Complex Processes and 3D Printing, project report, http://dx.doi.org/10.6084/m9.figshare.718147.
6. 3D printing used as a tool to explain theoretical physics by Laura Gallagher, Imperial College News and Events, 9th December 2013
7. 3D-printed models of complex theoretical physics“ The IET Engineering and Technology Magazine, 9th December 2013.
8. Aboufadel E., Krawczyk S.V. and Sherman-Bennett, M. “3D Printing for Math Professors and Their Students“, arXiv:1308.3420, 2013.
9. Knill O. and Slavkovsky E., “Illustrating Mathematics using 3D Printers“, arXiv:1306.5599, 2013

Little LaTeX Lessons

I know most of the world uses Word and Microsoft Office products so this post is for the chosen few – the small minority do use LaTeX. LaTeX produces beautiful documents, with equations if needed which is big selling point for many. LaTeX has been around since the 1980′s and is based on TeX produced by iconic computer scientist Donald Knuth in 1978. Unlike most things in the ethereal world of information technology, its seems LaTeX is not going to die even in the age of tablets (see The revolution will be typeset, D.Steele, Physics World, Jan 2013, p35).
However LaTeX is not simple to use.  There is lots of help, many free guides which a search for LaTeX guide will turn up, or one of my favourites, Tobi Oetiker’s The not so short guide to LaTeX2e.
What is missing are some of the little things.  At least, these useful snippets may be out there but they are buried under the important things. So I thought I would post my top tiny tips, the little bits it took me ages to discover, the things I see again and again in the reports from my students.
1. Never leave an empty line after the end of an equation or eqnarray unless you really mean to start a new paragraph after the equation.
An empty line in regular text always indicates the start of a new paragraph and the next line of text will be indented. Usually equations are meant to be read as being in the middle of a paragraph.
2. Quotes in LaTeX are built from the two different types of single quotes, do not use the double quote symbol.
The right way to get quotes is to put one or two single backwards quote characters  (grave accent, ASCII 96, on a funny key to the left of the number 1 on my UK keyboard) at the start of a phrase, and match with the same number of normal single quotes  (apostrophe, ASCII code 39, with the @ symbol on my UK keyboard). Never use the single symbol for a double quote  (ASCII 34, on the key with the number 2 on my UK keyboard). LaTeX will interpret matched pairs of single quotes as a double quote and will produce a nice result.
3. For labels as subscripts, use the \mathrm{text} to get the text in roman not italic style usually used for maths.
Thus x_{\mathrm{max}} looks better than plain x_{max}. If you use this a few times, why not define a new command
e.g. \newcommand{\xmax}{x_{\mathrm{max}}} which is usually placed before the \begin{document}.
4. Likewise all the standard functions of mathmatics have their cown commands.  The function is then typeset in standard roman so that it stands out from the italic style usually used for maths.  That is use \ln not ln as the latter sometimes looks like it might be two variables l and n multiplied together.
5. For “much less than” and “much more than” symbols do not use double less than or double greater than signs.
There are special commands \ll and \gg which look much better than doing << and >>.
6. To see all the labels used in equations figures, sections etc. while you are writing a document, put a
\usepackage{showkeys}

command near the top of the LaTeX file, just after the documentclass command.

7. Dashes and hyphens:-
• one for a hyphenated-word,
• two for a number range 1–2,
• three for a punctation dash — like this (note spaces either side of the three dashes).
8. To get the name of the file used to start LaTeX use something like
\texttt{{\jobname}.tex}}

To get the names of all the constituent LaTeX files is harder.

9. I may want to create my own simple symbol by placing two on top of each other. LaTeX has some standard symbols for spaces and it is useful to know some of them for minor tweaks.
• \; a thick space
• \: a medium space
• \, a thin space
• \! a negative thin space

So for example I might write

        \begin{eqnarray}
A &=& B \, , \qquad B=C
\\
I &=& \int_{0}^{1} dx \; x \cos(2 \pi x)
\end{eqnarray}`

The answer appears to be yes, according to a recent paper entitled Manipulating Google Scholar Citations and Google Scholar Metrics: simple, easy and tempting  by Emilio Delgado López-CózarNicolás Robinson-García, and Daniel Torres-Salinas from the Universities of Granada and Nararra in Spain.  I thought their experiment was illuminating and, while it is an obvious one to try, the results seemed pretty clear to me. The rest of the paper is generally informative and useful too. For instance there is a list of other studies which have looked at how to manipulate bibliographic indices.

For the experiment, six false “papers” were created, with authorship assigned to imaginary author.  Each of the six documents cited the same set of 129 genuine papers.  The cited papers all had at least one coauthor from the same EC3 research group as the authors of the study.  This could generate 774 (=129 x 6) new but artificial citations to members of the EC3 group (more if some papers had more than  one EC3 group member but this is not noted) . These six fake documents were then placed on web pages in an academic domain, much as many academics can do freely. Twenty five days later, these were picked up by google scholar and large increases in citations to the papers of the authors of this study are shown.

The basic conclusion does seem clear.  As its stands it is easy for many academic authors to boost their google scholar counts using false documents.  In that sense, as things stand, it seems one should not use these google scholar counts for any serious analysis without at least some checks on the citations themselves.  Of course, google scholar makes that easy to do and free.

However I do not feel we should rush to dismiss Google Scholar too quickly.  Any system can be gamed.  Useful references are given in the paper to other examples and studies of bibliometric manipulation, in both human edited/refereed sources and in uncontrolled electronic cases.  A major point of the paper is to point out that it is possible in both cases, just that it is much easier to do for web pages and google scholar.  What is less clear from the paper is that the solutions may be similar to those employed by traditional indices of refereed sources.  As the authors point out, the manipulation of the refereed/edited literature can and is spotted – journals are excluded from traditional bibliographic databases if they are caught manipulating indices.  The easiest way to do it is to look for sudden and unexpected increases in statistics.  One should always treat statistics with care and there needs to be some sort of assurance that the numbers are sound.  Looking for unusual behaviour, studying outliers should always be done as a check whenever statistics are being used.  The authors themselves present the very data that should be able to flag a problem in their case.  As they point out, their indices under google scholar went up by amazing amounts in a short time.  Given this indicator of an issue, it would be trivial to discover the source of the problem as google makes it trivial to find the source of the new citations.  Then of course, if such manipulation was being used for an important process, e.g. promotion or getting another job,  it becomes fraud and the research community and society at large already has severe sanctions to deal with such situations.  It may be easy to do but the sanctions may be enough to limit the problem.

So to my mind the main message of this paper is not so much that google can be manipulated easily, but that currently there are no simple tools to spot such issues.  The timeline for the citations to a set of papers, be they for a person, research group or journal, can not be obtained easily.  One can get the raw citation lists themselves, but you would have to construct the time line yourself, not an easy job.

However the same is also true of traditional paper based citation counts.  It is harder to manipulate them perhaps, but it is also hard to check on a person’s performance over time.  I imagine that checks like this will be done and the information to perform such checks will be provided in future for all such alt-metric measures based on information where there is little if any editorial control.

However there is another approach to this problem.  The authors of this paper reflect the focus of google scholar and most other bibliometric sites on the crudest of indices, citation counts and h-index.  Indeed too many academics quote these.  The UK’s REF procedure, which is used to assign research funding, will produce raw citation counts for individual papers for many fields  (Panel criteria and working methods, January 2012, page 8, para 51). This will be based on Elsevier’s SCOPUS data (Process for gathering citation information for REF 2014, November 2011), except for Computer Science where interestingly they claim google scholar will be used in a “systematic way” (Panel criteria and working methods, January 2012, page 45, para 57 and 61).  Yet it is well known that raw citation counts and the h-index these are badly flawed measures, almost useless for any comparison (of people, institutes or subjects) which is inevitably what they are used for.  Indeed where the REF document says citation data will be used, it specifically lists many of the obvious problems in interpreting the data they provide (Panel criteria and working methods, January 2012, page 8, para 51) so I am sure I can hear the sounds of hands being washed at this point.

One solution to the weakness of google scholar citation counts, or indeed counts derived from other sources, is to look for better measures.  For example in this study the six dummy papers will never gain any citations.  An index based on a weighted citation count, such as PageRank, would assign little or no value to a citation from an uncited paper.

Of course any index can be gamed.  PageRank was the original basis of google’s web index and people have been gaming this for as long as it has existed: google bombs, where many false web pages all point to the page being boosted, is the equivalent for web pages of the google scholar experiment performed in this paper .  It is equally well known that google strives to detect this and will exclude pages from its lists if people are found to be cheating.  So google has developed mechanisms to detect and counter artificial boosting of a web page’s rank. There is no reason (except perhaps a commercial one) why similar techniques could not be used on academic indexes.

My google Scholar citation count for the second part of 2012

As few other points struck me as worth noting.  The authors waited for  25 days for google to index their false papers, yet only allowed 17 days for google to remove them.  Slightly odd as data was valid up to the date on the paper, 29th May 2012, yet arXiv submission was made 6 months later.  Pity this information was not updated. There is a much wider debate here on who owns data and if individuals can or should be able to delete personal data e.g. from Facebook.  What exactly does google do if documents disappear   Monitoring my own google scholar counts, there was a massive rise then fall in my counts over a period of about a month in September/October 2012, before the count settled down to pretty much the same trend as it had been earlier in 2012.  It does seem that google Scholar is monitoring and changing its inputs.

As with many experiments of this kind, the ethics are a little unclear.  Interesting to note that authors reported that other researchers, who were not part of the team performing this experiment, noted changes in their citation counts coming from the six fake papers. Would this have been allowed by an ethics committee?  Should it have been run past an ethics committee?  Am I allowed to say what kind of documents are allowed to cite my own papers?  My colleagues in the bibliometrics business suggest there is no legal bar to anyone citing a paper, even if there is no automatic right to use the content of that paper.

And finally, surely the increase in citation counts reported for the authors of this paper should be divisible by 6, as the authors imply the same set of 129 papers was used as the bibliography in each of the six fake papers. Yet the results reported in their Figure 2 are not all divisible by 6.

This paper seems to be telling us that google Scholar is still at an early stage of its development.  However given the resources and experience of google at indices derived from open sources like the web, I would not be surprised if it was soon much harder to manipulate these indices.

Note added: There is a lot of other work on google scholar including other studies of how it might be tricked.  A good source of papers on google scholar, with references to other studies, are the papers of Peter Jasco.

Emilio Delgado López-Cózar, Nicolás Robinson-García, & Daniel Torres-Salinas (2012). Manipulating Google Scholar Citations and Google Scholar Metrics:
simple, easy and tempting Delgado Lopez-Cozar, Emilio; Robinson-Garcia, Nicolas; Torres Salinas, Daniel (2012). Manipulating Google Scholar Citations and Google Scholar Metrics: simple, easy and tempting. EC3 Working Papers 6: 29 May, 2012 arXiv: 1212.0638v1


text:
# Vector spaces. When in the real world are we checking if it's a vector space or not?

When in the real world are we checking to see if sets are vector spaces or not? The examples above seem like really specific sets...

Are there any places where we redefined scalar multiplication like this?

• Here are a few examples of vector spaces: the null space and range of a linear transformation; the set of all solutions to a homogeneous linear differential equation; the set of all polynomials; the set of all continuous functions $f:[0,1] \to \mathbb R$; the set of all symmetric $n \times n$ matrices. In each case, we must check that the axioms of a vector space are satisfied (assuming addition and scalar multiplication are defined in the obvious ways). But it's usually pretty easy to check that. – littleO Sep 17 '18 at 3:52
• Here's a motivating question: Can the surface of the sphere be turned into a vector space? Suppose I pick an origin as a point on the surface, and some reasonable-looking definitions of addition and scalar multiplication of other surface points. Can I then start doing linear algebra instead of all that complicated spherical trigonometry stuff? – Rahul Sep 17 '18 at 4:22
• Is physics not "real world enough" for you? – gented Sep 17 '18 at 8:50
• The nice thing about having a theory already lying around is that the "hard work" of applying its theorems to an object is as simple as proving that that object meets the required axioms. Since we have already developed linear algebra, the only thing we need to do to apply it to arbitrary objects is show that those objects can be viewed in a way amenable to linear algebra, i.e., as members of a vector space. – BallpointBen Sep 18 '18 at 5:23
• @Ovi: All I meant was that the answer to the last question in my comment is no, you can't just pick some vector-like operations and expect linear algebra to work. You have to check that they satisfy the vector space axioms, and odds are that they won't. – Rahul Sep 18 '18 at 6:26

Vector spaces, and vector space-like sets, crop up in a lot of places. The specific example here is artificial, yes, but it is meant to show that we need to be careful when checking whether a set of vector-like objects, together with two operations (vector addition and scalar multiplication), actually is a vector space or not.

• Oh okay, so the examples given are artificial? Like we're often not checking vector spaces and vector space like sets that are this specific right? – Jwan622 Sep 17 '18 at 3:22
• They will be specific, but typically considerably more complicated (and harder to check the vector space axioms). – vadim123 Sep 17 '18 at 3:49
• @Jwan622: You will often be wanting to check that things are vector spaces. They’ll usually be more natural and less contrived than this example, but they can certainly be quite specific, and more complicated than this one. – Peter LeFanu Lumsdaine Sep 18 '18 at 7:02

You'll never have to prove something is a vector space in real life. You may want to prove something is a vector space, because vector spaces have a simply enormous amount of theory proven about them, and the non-trivial fact that you wish to establish about your specific object might boil down to a much more general, well-known result about vector spaces.

Here's my favourite example. It's still a little artificial, but I came by it through simple curiousity, rather than any course, or the search for an example.

Consider the logic puzzle here. It's a classic. You have a $5 \times 5$ grid of squares, coloured black or white. Every time you press a square, it changes the square and the (up to four) adjacent squares from black to white or white to black. Your job is to press squares in such a way that you end up with every square being white.

So, my question to you is, can you form any configuration of white and black squares by pressing these squares? Put another way, is any $5 \times 5$ grid of black and white squares a valid puzzle with a valid solution?

Well, it turns out that this can be easily answered using linear algebra. We form a vector space of $5 \times 5$ matrices whose entries are in the field $\mathbb{Z}_2 = \lbrace 0, 1 \rbrace$. We represent white squares with $0$ and black squares with $1$. Such a vector space is finite, and contains $2^{25}$ vectors. Note that every vector is its own additive inverse (as is the case for any vector space over $\mathbb{Z}_2$).

Also note that the usual standard basis, consisting of matrices with $0$ everywhere, except for a single $1$ in one entry, forms a basis for our vector space. Therefore, the dimension of the space is $25$.

Pressing each square corresponds to adding one of $25$ vectors to the current vector. For example, pressing the top left square will add the vector

$$\begin{pmatrix} 1 & 1 & 0 & 0 & 0 \\ 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \end{pmatrix}.$$

We are trying to find, therefore, a linear combination of these $25$ vectors that will sum to the current vector (remember $-v = v$ for all our vectors $v$).

So, my question that I posed to you, boils down to asking whether these $25$ vectors span the $25$-dimensional space. Due to standard results in finite-dimensional linear algebra, this is equivalent to asking whether the set of $25$ vectors is linearly independent.

The answer is, no, they are not linearly independent. In particular, if you press the buttons highlighted in the following picture, you'll obtain the white grid again, i.e. the additive identity.

Therefore, we have a non-trivial linear combination of the vectors, so they are linearly dependent, and hence not spanning. That is, there must exist certain configurations that cannot be attained, i.e. there are invalid puzzles with no solution.

The linear dependency I found while playing the game myself, and noticing some of the asymmetries of the automatically generated solutions, even when the problem itself was symmetric. Proving the linear dependence is as easy as showing the above picture. I still don't know of an elegant way to find an example of a puzzle that can't be solved though! So, my proof is somewhat non-constructive, and very easy if you know some linear algebra, and are willing to prove that a set is a vector space.

• If you want to read more about this, it's known more commonly as Lights Out. The Wikipedia page also describes the mathematical analysis of the game using, indeed, linear algebra on Z2. – Rahul Sep 17 '18 at 4:07
• @Rahul Thank you for the link! I've long suspected that there were only four solutions to any viable $5 \times 5$ problem, but I've never found an elegant way to prove it, so I haven't bothered. I've also shown that the $4 \times 5$ case is linearly independent/spanning. I've also wondered if there's a characterisation of linear independence of the general $n \times m$ system, but I haven't properly investigated it. – Theo Bendit Sep 17 '18 at 4:12
• Well, if you work from top to bottom it is obvious that to solve a given puzzle you only have to fix the first row and everything else will be also fixed. So to find a puzzle that cannot be solved, you just have to go through all possible first rows (32 of them; less if you mod the first row in your additive identity) and find out which last rows are impossible. Similar reasoning tells you that every impossible state is equal to some possible state plus one of those impossible last rows. – user21820 Sep 17 '18 at 6:44
• But there is a generalized variant that does not admit the analysis in my previous comment. – user21820 Sep 17 '18 at 6:57
• +1 Very cool! ${}$ – Ovi Sep 18 '18 at 5:23


text:
# ECM (error correction model): interpretation of a I(1) differentiated time serie as its “variation around its long-run trend”

I am reading Greene's "Econometric Analysis" book, and more specifically the chapter on cointegration. I do not understand his interpretation of the components of an error correction model (page 1003 from the 7th edition, chapter 21.3.2 "Error correction and VAR representations").

Here is the theoretical context: suppose the two variables $y_t$ and $z_t$ are I(1) and cointegrated and that the cointegrating vector is $[1,−θ]$. Then all three variables, $\Delta{y_t} = y_t − y_{t−1}$, $\Delta{z_t}$, and $(y_t − θz_t)$ are I(0) and the error correction model can be written as follows :

$${\Delta}y_t = \mathbf{x'}_tβ + γ ({\Delta}z_t) + λ(y_{t−1} − θz_{t−1}) + ε_t$$

Greene interprets this equation as the variation in $y_t$ around its long-run trend in terms of a set of I(0) exogenous factors $x_t$, the variation of $z_t$ around its long-run trend, and the error correction $(y_t−θz_t)$, which is the equilibrium error in the model of cointegration.

I bugged on the interpretation of ${\Delta}y_t$ being the "variation of $y_t$ around their long-term trend"(same goes for and ${\Delta}z_t$ and $z_t$). As I am trying to get a good intuition behind the error correction model and each of its components, can someone help me understand this phrase?

I had the idea of writing $y_t$ and $z_t$ as trend stationary series such as $y_t= \alpha + \beta t + ε_t$ so that $\Delta y_t=\beta + ε_t + ε_{t-1}$. Then $\Delta y_t$ would indeed represent a variation around $y_t$'s trend. However, if we write $y_t$ as $y_t= \alpha + \beta w_t + ε_t$ where $w_t$ is a I(1) serie (such as a random walk), then I do not understand why $\Delta y_t$ is the variation in $y_t$ around its long-run trend (in this example we would have $y_t=\beta \Delta w_t + ε_t + ε_{t-1}$).

• Perhaps Greene means "variation of $y_t$ around its stochastic trend", i.e. around a random walk. – Richard Hardy Mar 29 '18 at 14:39


text:
# Factors, Multiples and Prime Numbers

Go back to  'Maths'

## Factors, Multiples and Prime Numbers

We have so far seen how to recognize and conduct the basic operations of addition, subtraction, multiplication and division using numbers. These operations are merely the beginning. Mastery of these simply pave the way to more advanced, complicated and powerful operations along with one of the most interesting group of numbers. Factors and multiples represent an evolution in the application of basic operations. They help in carrying out more advanced calculations in an easier and more succinct manner.

### What are Factors?

Any number that divides another number leaving a remainder of zero is called its Factor.

### What are Multiples?

Any number that features in the times table of a particular number is called its Multiple.

## Topics closely related to Factors, multiples and Primes

The image given below shows how Factors, Multiples and Prime Numbers are connected to other topics. To understand Factors and Multiples one should be proficient at topics like multiplication, division and divisibility tests. Must have a good number sense, a good grasp on operations with numbers.

## Sub Topics

Topics in Math are interdependent. Studying them in a sequence will lead to a better understanding. A Cuemath student learns all about Factor, Multiples and Primes in the following sequence.

## Simple ways to learn Factors, Multiples and Prime Numbers

Like any other topic in arithmetic, the key to proper understanding is a strong grasp of the basics and practice. The most effective ways to ensure that your child excels with Factors, Multiples and Prime Numbers are:

Flash Cards: These are an excellent way of keeping concepts at your fingertips. Dedicate thirty minutes of your child’s study routine to make them go through the concepts of factors, multiples and prime numbers. This exercise not only strengthens core concepts but also build mental math abilities.

## FAQ

Q1. Can prime numbers be multiples?

No, prime numbers cannot be multiples. Multiples of a number are numbers found by multiplying the original number by a whole number whereas prime numbers are the numbers with only two distinct factors. For example, let’s take $$2$$ as the prime number as it is divisible by $$1$$ and itself but $$2$$ can have various infinite multiples when multiplied by the whole numbers.

Q2. What is the difference between prime factors & prime numbers?

Prime factors are any of the prime numbers that can be multiplied to give the number. Example: The prime factors of $$15$$ are $$3$$ and $$5$$ (because $$3 \times 5 = 15,$$ and $$3$$ and $$5$$ are prime numbers) whereas Prime numbers are numbers that have exactly two factors $$1$$ and itself.

Q3. What is the difference between multiple & factor?

A factor is a number that leaves no remainder behind after it divides the number. On the contrary, multiple is a number reached by multiplying a given number by another. While factors of a number are finite, multiples are infinite.

Q4. Is $$0$$ a prime number?

0 is not a prime number. Prime Numbers are numbers greater than $$1,$$ because Prime Numbers should have $$1$$ and the number itself, as its factor, which means, it must have only two positive factors. Also, zero has an infinite number of divisors (any nonzero whole number divides zero).

Q5. Why $$1$$ is not a prime number?

$$1$$ is NOT a prime number because it does not satisfy the definition of a prime number.

Q6. Prime numbers between $$1$$ & $$100?$$

$$2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89,$$ and $$97.$$

Factors, Multiples, and Primes


text:
# Distance function-inequality in unit sphere

Assume that $$d$$ is a distance function (i.e. Riemannian metric) on a unit sphere $$X$$ of Euclidean space $$\mathbb{E}^3$$ (That is, $$d$$ is an angle between two unit vectors). If $$e_i$$ is an orthonormal basis in $$\mathbb{E}^3$$, i.e. $$d(e_i,e_j)=\frac{\pi}{2}$$ for all $$i\neq j$$, then prove that

$$\sum_{i=1}^3 \ \bigg|\pi - d(e_i,u)-d(e_i,v) \bigg| \geq \pi - d(u,v)$$

Proof : When $$f(x)=\bigg|\pi - T(x)\bigg|$$ and $$T(x)=d(x,u)+d(x,v)$$, then $$T$$ is a 2-Lipschitz function. And $$f(x)=f(-x)$$.

• What's $S^2(1)$? – Alex R. Apr 17 '18 at 3:51
• It is a unit sphere in $\mathbb{R}^3$ and $d$ is intrinsic metric on it. – HK Lee Apr 17 '18 at 3:52
• Are u,v generic vectors of $\mathbb{R}^3$? – big-lion Apr 17 '18 at 3:59
• @big-lion : I edited. – HK Lee Apr 17 '18 at 4:03


text:
# Equation of Locus of a Moving point [closed]

Find the equation of the locus of a moving point which divides the line segment joining the points $(-a,0)$ and $(0,-b)$ in the ratio of $4:5$ and making $a+b=-18$.

## closed as off-topic by Alex Provost, SchrodingersCat, Davide Giraudo, Leucippus, PragabhavaDec 28 '15 at 18:36

This question appears to be off-topic. The users who voted to close gave this specific reason:

• "This question is missing context or other details: Please improve the question by providing additional context, which ideally includes your thoughts on the problem and any attempts you have made to solve it. This information helps others identify where you have difficulties and helps them write answers appropriate to your experience level." – Alex Provost, SchrodingersCat, Davide Giraudo, Leucippus, Pragabhava
If this question can be reworded to fit the rules in the help center, please edit the question.

• You should include your own thoughts and attempts so that you might receive constructive feedback and avoid having your question put on hold. – Em. Dec 28 '15 at 17:37

Let the coordinates of the moving point be $P(h, k)$ which divides the line segment joining the points $(x_1, y_1)\equiv(-a, 0)$ & $(x_2, y_2)\equiv(0, -b)$ in a ratio $m:n::4:5$ then using division formula,
$$(h, k)\equiv \left(\frac{mx_2+nx_1}{m+n}, \frac{my_2+ny_1}{m+n}\right)$$ $$(h, k)\equiv \left(-\frac{5a}{9}, -\frac{4b}{9}\right)$$ setting the corresponding values, one should get
$$(h, k)\equiv \left(\frac{4(0)+5(-a)}{4+5}, \frac{4(-b)+5(0)}{4+5}\right)$$ $$(h, k)\equiv \left(-\frac{5a}{9}, -\frac{4b}{9}\right)$$ comparing the corresponding coordinates, one should get $$h=-\frac{5a}{9}\implies a=-\frac{9h}{5}$$ & $$k=-\frac{4b}{9}\implies b=-\frac{9k}{4}$$ Now, setting the values of $a$ & $b$ in the given relation: $a+b=-18$, $$-\frac{9h}{5}-\frac{9k}{4}=-18$$ $$4h+5k=40$$ hence, replacing $h=x$ & $k=y$, the locus of the moving point $(h, k)$ is $$\color{red}{4x+5y=40}$$


text:
## Chemistry: The Central Science (13th Edition)

Published by Prentice Hall

# Chapter 13 - Properties of Solutions - Exercises: 13.50a

#### Answer

$X_{C_4H_4S}=0.0393$

#### Work Step by Step

Mole fraction is moles solute / total moles. First, calculate moles of thiophene (molar mass = 84.14 g/mol) and moles of toluene (molar mass = 92.14 g/mol) present. $\frac{8.10\;g\;C_4H_4S}{}(\frac{1\;mol}{84.14\;g})=0.09627\;mol\;C_4H_4S$ $\frac{250.0\;mL\;C_7H_8}{}(\frac{0.867\;g}{1\;mL})(\frac{1\;mol}{92.14\;g})=2.352\;mol\;C_7H_8$ Next, calculate the mole fraction. $X_{C_4H_4S}=\frac{moles\;C_4H_4S}{moles\;C_4H_4S+moles\;C_7H_8}=\frac{0.09627\;mol\;C_4H_4S}{0.09627\;mol\;C_4H_4S+2.352\;mol\;C_7H_8}=0.0393$

After you claim an answer you’ll have 24 hours to send in a draft. An editor will review the submission and either publish your submission or provide feedback.


text:
# Unity 5 - Error with code to make pitch changes based on distance

I really need help. It's 2:00 AM here and my brain is half dead so I can't, for the life of me, find out what's wrong with this code anymore. It's supposed to find the distance between the game object to which it's attached (the target), and another game object (the player). Then, depending on the that distance, it should change the pitch of an AudioSource inside a child (in the player). However, the pitch only changes when I'm practically over the gameobject. So, for about 9/10 of the way, nothing changes in the pitch, but when I'm right there the pitch suddenly changes (but not to maximum value of Clamp function).

What's going on? I want the pitch to, at first, stay at 0. But soon after you walk some steps in the right direction, the pitch must change gradually (and in a evenly manner), as (player) gets closer to (target). =|

ps.: The script is inside a instantiated prefab, that's why I used FindGameObjectWithTag and FindChild. Also, I'm using Unity 5.

<!-- language: lang-cs -->

[four blanks]using System.Windows.Controls;
[more indented code]

using UnityEngine;
using System.Collections;

public class ProximitySensor : MonoBehaviour {
public GameObject player;
private Transform playerTrans;
private Transform targetTrans;
public Transform beepTrans;
public AudioSource beepSound;
private float distanceCurrent;

void Start () {

targetTrans = transform;
player = GameObject.FindGameObjectWithTag("Player");
playerTrans = player.transform;
beepTrans = playerTrans.FindChild ("beepController");
beepSound = beepTrans.GetComponent<AudioSource>();

}

void Update () {

distanceCurrent = Vector3.Distance (playerTrans.position, targetTrans.position);
beepSound.pitch = Mathf.Clamp ((1 / distanceCurrent), 0.1f, 3.0f);

}
}

• You could Debug.Log(distanceCurrent) to get some idea of the value ranges you're seeing. If the distance never goes below one, the formula you're using will never create a high pitch. – rutter Apr 13 '15 at 19:38
• @rutter Distances are about 3400.774 (its a big map). 1 / 3400.774 gets 2,94. This value increases if distance decrease. Any ideas for a formula where I can get a high pitch while dealing with these kinds of distances? – Odival Quaresma Neto Apr 14 '15 at 2:01

beepSound.pitch = Mathf.Clamp ((1 / distanceCurrent), 0.1f, 3.0f);

Working backwards:

The maximum distance is (1 / 0.1f) = 10.0
The minimum distance is (1 / 3.0f) = 0.33

I suspect you have accidentally ignored the exponent on "2.94"

1 / 3400.774 = 2.94E-4 == 0.00029405 //clamped for a good, long while

Try:

float percent = Mathf.Clamp((distanceCurrent - distanceMinimum) /
(distanceMaximum - distanceMinimum), 0.0f, 1.0f); //Percentage between min and max
percent = 1.0f - percent; //invert so larger distances decrease pitch
//beepSound.pitch = beepMin + ((beepMax - beepMin) * percent);
//beepSound.pitch = 0.1f + ((3.0f - 0.1f) * percent);
beepSound.pitch = 0.1f + (2.9f * percent);

This lerps the pitch based on the inverse-lerp of distanceCurrent.

If you prefer a curved function rather than linear:

percent = 1.0f - percent;
percent *= percent; //squared; 1=1 and 0=0, but 0.5 (distance) now equals 0.25 (beep)

or:

percent = sqrt(percent); //square root; 1=1, 0=0, 0.25 = 0.5

• Thanks Jon, that solved the problem beautifully, quite a ingenious piece of code. =) – Odival Quaresma Neto Apr 15 '15 at 2:46


text:
0

# Scaling a Solid Oxide Fuel Cell Gas Turbine Hybrid System to Meet a Range of Power Demand

[+] Author and Article Information
John VanOsdol

National Energy Technology Laboratory, United States Department of Energy, 3610 Collins Ferry Road, Morgantown, WV 26507jvanos@netl.doe.gov

Eric Liese, David Tucker, Randall Gemmen, Robert James

National Energy Technology Laboratory, United States Department of Energy, 3610 Collins Ferry Road, Morgantown, WV 26507

J. Fuel Cell Sci. Technol 7(1), 015001 (Oct 05, 2009) (8 pages) doi:10.1115/1.3115623 History: Received June 17, 2007; Revised November 01, 2007; Published October 05, 2009

## Abstract

In recent years there has been significant interest in using the heat generated from the normal operation of a solid oxide fuel cell (SOFC) to supplant the normal combustion process of a gas turbine system. By doing this a gas turbine fuel cell hybrid power generation system is formed. Because the heat produced by a SOFC is utilized by the turbine to produce work, the hybrid system can have an overall system efficiency that greatly exceeds those of either the stand alone SOFC system, or the stand alone gas turbine system. One of the most critical problems that must be addressed in gas turbine fuel cell hybrid technology is temperature control. A hybrid system that is designed to operate efficiently for a given base load may not be easily extended to accommodate peek load. In this paper a simple hybrid system configuration using a standard SOFC and a single compressor-turbine pair is presented. This simple system is used to establish the effect that key configuration parameters have on system temperatures. The configuration model is then scaled over a range of fuel input and power output to show the limitations of the system. The system is modeled using the ASPEN PLUS ® simulation software with special modules to calculate fuel cell performance.

<>

## Figures

Figure 1

Baseline low pressure single turbine system

Figure 2

(a) Power split with FUF=0.8, (b) power split with FUF=0.9, (c) system temperatures with FUF=0.8, (d) system temperatures with FUF=0.9, (e) SOFC temperature change with FUF=0.8, and (f) SOFC temperature change with FUF=0.9

Figure 3

(a) SOFC fuel utilization, (b) component power output, (c) system operating temperatures, and (d) SOFC temperature, temperature change, and power split ratio

Figure 4

(a) Fuel input parameters for constant FSR, (b) output power for constant FSR, (c) system temperatures for constant FSR, and (d) SOFC temperature change and power split for constant FSR

Figure 5

(a) Fuel input parameters for unit step change in FSR, (b) output power for unit step change in FSR, (c) system temperatures for unit step change in FSR, and (d) SOFC temperature change and power split ratio for unit step change in FSR

Figure 6

(a) Fuel input parameters for continuous change in FSR, (b) output power for continuous change in FSR, (c) system temperatures for continuous change in FSR, and (d) SOFC temperature change and power split ratio for continuous change in FSR

## Discussions

Some tools below are only available to our subscribers or users with an online account.

### Related Content

Customize your page view by dragging and repositioning the boxes below.

Related Journal Articles
Related Proceedings Articles
Related eBook Content
Topic Collections


text:
# Tag Info

## New answers tagged arbitrage

3

Given no arbitrage, the price of the machine of vintage $\tau$ should be $q_{k t}(\tau)=p_{k t}(\tau)-\frac{p_{k t+1}(\tau)}{1+r_{t+1}}$... "No arbitrage" is a bit of a misnomer here. In this sentence, it really means "zero profit". The rental price must be equal to the price of owning a machine for one period. For example, if  q_{k t}(...

Top 50 recent answers are included