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

How should I support this large drywall patch? Planned maintenance scheduled April 23, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?How do I cover large gaps in drywall?How do I keep drywall around a patch from crumbling?Can I glue a second layer of drywall?How to patch long strip on drywall?Large drywall patch: how to avoid bulging seams?Drywall Mesh Patch vs. Bulge? To remove or not to remove?How to fix this drywall job?Prep drywall before backsplashWhat's the best way to fix this horrible drywall patch job?Drywall patching using 3M Patch Plus Primer

random experiment with two different functions on unit interval Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 00:00UTC (8:00pm US/Eastern)Random variable and probability space notionsRandom Walk with EdgesFinding functions where the increase over a random interval is Poisson distributedNumber of days until dayCan an observed event in fact be of zero probability?Unit random processmodels of coins and uniform distributionHow to get the number of successes given $n$ trials , probability $P$ and a random variable $X$Absorbing Markov chain in a computer. Is “almost every” turned into always convergence in computer executions?Stopped random walk is not uniformly integrable

Lowndes Grove History Architecture References Navigation menu32°48′6″N 79°57′58″W / 32.80167°N 79.96611°W / 32.80167; -79.9661132°48′6″N 79°57′58″W / 32.80167°N 79.96611°W / 32.80167; -79.9661178002500"National Register Information System"Historic houses of South Carolina"Lowndes Grove""+32° 48' 6.00", −79° 57' 58.00""Lowndes Grove, Charleston County (260 St. Margaret St., Charleston)""Lowndes Grove"The Charleston ExpositionIt Happened in South Carolina"Lowndes Grove (House), Saint Margaret Street & Sixth Avenue, Charleston, Charleston County, SC(Photographs)"Plantations of the Carolina Low Countrye