Graph search algorithm for finding cycle with largest end result Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)Does Dijkstra's algorithm work when I multiply weights of successive nodes?In search of a symmetric homogeneous graph with a pivotal originfinding graph that not have euler cycleWhat is the maximum number of cycles there can be in a graph with $x$ edgesOptimization Algorithm for Combining Nodes on a GraphFinding the maximum weighted path in a directed cyclic weighted graph with probabilities on edgesExercises about degrees and lengths of graphsFinding Largest Graph with $n$ Vertices and Diameter $neq$ 1Path Property of Directed Acyclic GraphsWeighted digraph with AND-OR vertices, search algorithm - independent solution from a vertex for which each involved vertex has same sub-solution?

Should I use a zero-interest credit card for a large one-time purchase?

Is the Standard Deduction better than Itemized when both are the same amount?

Why is my conclusion inconsistent with the van't Hoff equation?

51k Euros annually for a family of 4 in Berlin: Is it enough?

Generate an RGB colour grid

How to tell that you are a giant?

Single word antonym of "flightless"

What does an IRS interview request entail when called in to verify expenses for a sole proprietor small business?

Short Story with Cinderella as a Voo-doo Witch

Why are there no cargo aircraft with "flying wing" design?

How can I make names more distinctive without making them longer?

How widely used is the term Treppenwitz? Is it something that most Germans know?

What exactly is a "Meth" in Altered Carbon?

Apollo command module space walk?

Seeking colloquialism for “just because”

2001: A Space Odyssey's use of the song "Daisy Bell" (Bicycle Built for Two); life imitates art or vice-versa?

Is it true that "carbohydrates are of no use for the basal metabolic need"?

What is the meaning of the new sigil in Game of Thrones Season 8 intro?

Abandoning the Ordinary World

How to react to hostile behavior from a senior developer?

Identify plant with long narrow paired leaves and reddish stems

English words in a non-english sci-fi novel

List *all* the tuples!

What does this icon in iOS Stardew Valley mean?



Graph search algorithm for finding cycle with largest end result



Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)Does Dijkstra's algorithm work when I multiply weights of successive nodes?In search of a symmetric homogeneous graph with a pivotal originfinding graph that not have euler cycleWhat is the maximum number of cycles there can be in a graph with $x$ edgesOptimization Algorithm for Combining Nodes on a GraphFinding the maximum weighted path in a directed cyclic weighted graph with probabilities on edgesExercises about degrees and lengths of graphsFinding Largest Graph with $n$ Vertices and Diameter $neq$ 1Path Property of Directed Acyclic GraphsWeighted digraph with AND-OR vertices, search algorithm - independent solution from a vertex for which each involved vertex has same sub-solution?










0












$begingroup$


I have a directed graph where the vertices represent Forex currencies, and the edges represent the ratio of the projecting currency to the projected currency. For example:



$$E(USD, EUR) = 0.91$$
$$E(EUR, USD) = 1.13$$
$$E(EUR,YEN) = 126.69$$
$$E(YEN,USD) = 0.0091$$



If I wanted the value of $1.50 USD in EUR, I would calculate $1.50*0.91$, and if I wanted the value of €1.50 EUR in USD, I would calculate $1.50*1.13$.



Since most pairs of vertices will have two edges between them, with one going each way, the graph has cycles. What I want to be able to do is find all cycles in the graph that result in a value larger than the initial state. This process is known as arbitrage.



So, say I have $1 USD. I want to evaluate all possible paths in the graph that would start at $V(USD)$, end at $V(USD)$, and have the end value greater than or equal to the start value. For example:



$$$1 rightarrow €0.91 rightarrow ¥115.2879 rightarrow $1.049$$



This example starts and ends at the same vertex and has an end value of $1.049, which is greater than the starting value of $1. Thus, it is a valid path.



Is there an algorithm that achieves this type of search behavior? I am familiar with basic path search algorithms, but none of the ones I currently have knowledge of allow searching specifically for cycles, and they all prioritize reducing cost rather than increasing it (although I'm sure this can be solved with a few operator swaps).










share|cite|improve this question









$endgroup$







  • 1




    $begingroup$
    According to this answer the problem is NP-hard. You can easily reduce your problem to the sum-of-weights problem by taking logarithms.
    $endgroup$
    – saulspatz
    Mar 26 at 17:13















0












$begingroup$


I have a directed graph where the vertices represent Forex currencies, and the edges represent the ratio of the projecting currency to the projected currency. For example:



$$E(USD, EUR) = 0.91$$
$$E(EUR, USD) = 1.13$$
$$E(EUR,YEN) = 126.69$$
$$E(YEN,USD) = 0.0091$$



If I wanted the value of $1.50 USD in EUR, I would calculate $1.50*0.91$, and if I wanted the value of €1.50 EUR in USD, I would calculate $1.50*1.13$.



Since most pairs of vertices will have two edges between them, with one going each way, the graph has cycles. What I want to be able to do is find all cycles in the graph that result in a value larger than the initial state. This process is known as arbitrage.



So, say I have $1 USD. I want to evaluate all possible paths in the graph that would start at $V(USD)$, end at $V(USD)$, and have the end value greater than or equal to the start value. For example:



$$$1 rightarrow €0.91 rightarrow ¥115.2879 rightarrow $1.049$$



This example starts and ends at the same vertex and has an end value of $1.049, which is greater than the starting value of $1. Thus, it is a valid path.



Is there an algorithm that achieves this type of search behavior? I am familiar with basic path search algorithms, but none of the ones I currently have knowledge of allow searching specifically for cycles, and they all prioritize reducing cost rather than increasing it (although I'm sure this can be solved with a few operator swaps).










share|cite|improve this question









$endgroup$







  • 1




    $begingroup$
    According to this answer the problem is NP-hard. You can easily reduce your problem to the sum-of-weights problem by taking logarithms.
    $endgroup$
    – saulspatz
    Mar 26 at 17:13













0












0








0





$begingroup$


I have a directed graph where the vertices represent Forex currencies, and the edges represent the ratio of the projecting currency to the projected currency. For example:



$$E(USD, EUR) = 0.91$$
$$E(EUR, USD) = 1.13$$
$$E(EUR,YEN) = 126.69$$
$$E(YEN,USD) = 0.0091$$



If I wanted the value of $1.50 USD in EUR, I would calculate $1.50*0.91$, and if I wanted the value of €1.50 EUR in USD, I would calculate $1.50*1.13$.



Since most pairs of vertices will have two edges between them, with one going each way, the graph has cycles. What I want to be able to do is find all cycles in the graph that result in a value larger than the initial state. This process is known as arbitrage.



So, say I have $1 USD. I want to evaluate all possible paths in the graph that would start at $V(USD)$, end at $V(USD)$, and have the end value greater than or equal to the start value. For example:



$$$1 rightarrow €0.91 rightarrow ¥115.2879 rightarrow $1.049$$



This example starts and ends at the same vertex and has an end value of $1.049, which is greater than the starting value of $1. Thus, it is a valid path.



Is there an algorithm that achieves this type of search behavior? I am familiar with basic path search algorithms, but none of the ones I currently have knowledge of allow searching specifically for cycles, and they all prioritize reducing cost rather than increasing it (although I'm sure this can be solved with a few operator swaps).










share|cite|improve this question









$endgroup$




I have a directed graph where the vertices represent Forex currencies, and the edges represent the ratio of the projecting currency to the projected currency. For example:



$$E(USD, EUR) = 0.91$$
$$E(EUR, USD) = 1.13$$
$$E(EUR,YEN) = 126.69$$
$$E(YEN,USD) = 0.0091$$



If I wanted the value of $1.50 USD in EUR, I would calculate $1.50*0.91$, and if I wanted the value of €1.50 EUR in USD, I would calculate $1.50*1.13$.



Since most pairs of vertices will have two edges between them, with one going each way, the graph has cycles. What I want to be able to do is find all cycles in the graph that result in a value larger than the initial state. This process is known as arbitrage.



So, say I have $1 USD. I want to evaluate all possible paths in the graph that would start at $V(USD)$, end at $V(USD)$, and have the end value greater than or equal to the start value. For example:



$$$1 rightarrow €0.91 rightarrow ¥115.2879 rightarrow $1.049$$



This example starts and ends at the same vertex and has an end value of $1.049, which is greater than the starting value of $1. Thus, it is a valid path.



Is there an algorithm that achieves this type of search behavior? I am familiar with basic path search algorithms, but none of the ones I currently have knowledge of allow searching specifically for cycles, and they all prioritize reducing cost rather than increasing it (although I'm sure this can be solved with a few operator swaps).







discrete-mathematics graph-theory directed-graphs






share|cite|improve this question













share|cite|improve this question











share|cite|improve this question




share|cite|improve this question










asked Mar 26 at 17:06









HausHaus

1114




1114







  • 1




    $begingroup$
    According to this answer the problem is NP-hard. You can easily reduce your problem to the sum-of-weights problem by taking logarithms.
    $endgroup$
    – saulspatz
    Mar 26 at 17:13












  • 1




    $begingroup$
    According to this answer the problem is NP-hard. You can easily reduce your problem to the sum-of-weights problem by taking logarithms.
    $endgroup$
    – saulspatz
    Mar 26 at 17:13







1




1




$begingroup$
According to this answer the problem is NP-hard. You can easily reduce your problem to the sum-of-weights problem by taking logarithms.
$endgroup$
– saulspatz
Mar 26 at 17:13




$begingroup$
According to this answer the problem is NP-hard. You can easily reduce your problem to the sum-of-weights problem by taking logarithms.
$endgroup$
– saulspatz
Mar 26 at 17:13










0






active

oldest

votes












Your Answer








StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "69"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3163481%2fgraph-search-algorithm-for-finding-cycle-with-largest-end-result%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes















draft saved

draft discarded
















































Thanks for contributing an answer to Mathematics Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

Use MathJax to format equations. MathJax reference.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3163481%2fgraph-search-algorithm-for-finding-cycle-with-largest-end-result%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Moe incest case Sentencing See also References Navigation menu"'Australian Josef Fritzl' fathered four children by daughter""Small town recoils in horror at 'Australian Fritzl' incest case""Victorian rape allegations echo Fritzl case - Just In (Australian Broadcasting Corporation)""Incest father jailed for 22 years""'Australian Fritzl' sentenced to 22 years in prison for abusing daughter for three decades""RSJ v The Queen"

John Burke, 9th Earl of Clanricarde References Navigation menuA General and heraldic dictionary of the peerage and baronetage of the British EmpireLeigh Rayment's Peerage Pages

Football at the 1986 Brunei Merdeka Games Contents Teams Group stage Knockout stage References Navigation menu"Brunei Merdeka Games 1986".