NATION

PASSWORD

Card Inflation: Trade Cycles

Bug reports, general help, ideas for improvements, and questions about how things are meant to work.
User avatar
Galiantus III
Ambassador
 
Posts: 1453
Founded: Jan 23, 2013
Ex-Nation

Card Inflation: Trade Cycles

Postby Galiantus III » Wed Jan 26, 2022 6:21 am

This started as a response to Riemstagrad's topic about inflation but evolved into something else as my thoughts progressed. So I'm posting a new topic to avoid a threadjack. Here I consider some approaches to the problem of artificial inflation, and settle on a new solution I haven't seen previous discussion of.




Artificial inflation is possible because the way market value is calculated does not account for self-trading: since a player can trade between their puppets, anyone can create many instances of trades, the values of which are only limited by their available bank. The naïve solution to this would be to limit players to a single nation that can buy and sell cards (while allowing gifting to happen). This would compel individual players to make "real" trades - trades that always involve another player.

Of course, limiting trades to single nations would itself cause serious problems. It would be difficult to implement, and would severely disrupt other legitimate operations. It is also questionable whether this would even have the intended effect: what is to keep existing card inflators from forming small inflation clans, to counter the system? While this would certainly create a more interesting multiplayer environment, it would not solve the problem of inflation.

This brings us to various proposals which attempt to decay the value of cards which are not traded for long periods of time. Such solutions fall flat when we consider that all this essentially does is transform the practice of artificial inflation into a treadmill. Players engaging in artificial inflation can continue to do so and reap the same benefits - the only difference is they have to work to maintain it.

I think the key to solving artificial inflation is realizing a property inherent to all card inflation: trade cycles. Attempts to inflate cards are obvious when you look at their trade history. The distinguishing characteristic here is that trading took the card along a path that caused it to return to the same nation, most commonly like this:

  • Nation A -> Nation B
  • Nation B -> Nation A

Or more generally:
  • Nation A -> Nation B
  • Nation B -> Nation C
  • Nation C -> Nation D
  • [...]
  • Nation Z -> Nation A

Therefore, I propose that trades which are part of a trade cycle are ignored when calculating a card's value. If implemented, this change would have an immediate effect on the market value of inflated cards, but would have virtually no effect on the value of other cards. The only potential issue I could see is with legendary cards that have racked up hundreds of trades, which would both make detecting cycles a bit more computationally difficult, and increases the odds of some kind of fragmented cycle being constructed from legitimate trades. But these problems could be addressed by limiting the scope of trades that are considered when searching for cycles - for example, trades that are both over a month old, and are not among the last 100 trades on the card, could be ignored.
The goal of Socialism is Fascism.
#JKRowling #realfeminism #libertarian #conservative #christian #nomandates

Frisbeeteria wrote:
For some reason I have a mental image of a dolphin, trying to organize a new pod of his fellow dolphins to change the course of a nuclear sub. It's entertaining, I'll give ya that.
Ballotonia wrote:
Testing is for sissies. The actual test is to see how many people complain when any change is made ;)

User avatar
Barlyy
Envoy
 
Posts: 247
Founded: Jun 25, 2020
Psychotic Dictatorship

Postby Barlyy » Wed Jan 26, 2022 6:37 am

First impressions: You talked about how "inflation clans" could form if one was to simply limit players to only being able to use one nation. Why can it not happen in this scenario as well?

Let's say that this goes through. In such a scenario, inflation clans could form and they could operate like this:
  • A nation (let's call it Nation A) that is funded by multiple nations is created.
  • This nation starts having a monopoly over a certain card.
  • After a while, the clan members (via their own nations) start buying the card for high prices from this nation. This means that these trades are not "trade cycles" since they are simply from Nation A---->{Nation B, Nation C, Nation D,...} without there ever being trades from Nation B, C, D, etc. back to Nation A on the same card.
  • Nation A continues to monopolize the card.
  • Nations B, C, D,... buy from it again and repeat
Eternal Leclerc fan

User avatar
Galiantus III
Ambassador
 
Posts: 1453
Founded: Jan 23, 2013
Ex-Nation

Postby Galiantus III » Wed Jan 26, 2022 7:12 am

That isn't really the same thing as a clan - a single player could be the owner of all the nations involved. Second, for nation A to monopolize a card, that means they are buying up the card for tons of bank. It isn't a closed system. So this player (or clan) is actually paying the required bank to obtain copies of the card, and that bank is going to the players who previously owned a copy of the card. Therefore the inflated value of the card is actually backed by legitimate player-to-player trades. Lastly, any nations in addition to nation A are actually a drain on the system. It makes more sense to just have nation A consolidate a ton of copies of one card and benefit from the increased deck value, instead of dividing the value among multiple other nations. We can debate the issues this kind of control might create, but it is a far cry better than the current system, which allows players to benefit from putting cards through a closed loop.
The goal of Socialism is Fascism.
#JKRowling #realfeminism #libertarian #conservative #christian #nomandates

Frisbeeteria wrote:
For some reason I have a mental image of a dolphin, trying to organize a new pod of his fellow dolphins to change the course of a nuclear sub. It's entertaining, I'll give ya that.
Ballotonia wrote:
Testing is for sissies. The actual test is to see how many people complain when any change is made ;)

User avatar
Barlyy
Envoy
 
Posts: 247
Founded: Jun 25, 2020
Psychotic Dictatorship

Postby Barlyy » Wed Jan 26, 2022 7:19 am

It doesn't really need to be bought for "tons of bank" - one could simply find a dirt-cheap card and start buying those up and then make the market value skyrocket. That's what I used to do - buy an ultra-rare card for around 0.20 bank and then start that closed-loop inflation after gaining enough copies. If you are trying to stop that closed-loop inflation and allow the open system inflations to happen, I don't see that much of a problem with this (even though I do not believe inflation's a problem since I am an ex-inflator after all).
Eternal Leclerc fan

User avatar
Galiantus III
Ambassador
 
Posts: 1453
Founded: Jan 23, 2013
Ex-Nation

Postby Galiantus III » Wed Jan 26, 2022 7:41 am

I don't really see a problem with open system inflation. It's less of an exploit. Closed system inflation is like exploiting a bug that allows you to drink a potion an infinite number of times. Open system inflation is maximizing the potion's use while still actually consuming it - you can't reverse what you just did and still retain the same benefit.
The goal of Socialism is Fascism.
#JKRowling #realfeminism #libertarian #conservative #christian #nomandates

Frisbeeteria wrote:
For some reason I have a mental image of a dolphin, trying to organize a new pod of his fellow dolphins to change the course of a nuclear sub. It's entertaining, I'll give ya that.
Ballotonia wrote:
Testing is for sissies. The actual test is to see how many people complain when any change is made ;)

User avatar
Barlyy
Envoy
 
Posts: 247
Founded: Jun 25, 2020
Psychotic Dictatorship

Postby Barlyy » Wed Jan 26, 2022 7:48 am

How would this translate into deflation? Most deflation operations are done buy purchasing an inflated card for a somewhat high price and then selling it for dirt-cheap (back in the TCALS days all you had to do was pull the card but that's no longer possible). So Nation A sells it to Nation B, and then Nation B attempts to sell the card for a low price (whether that'd be their own puppet or someone else). This basically means that open-system inflation becomes much stronger since it's basically impossible for deflators to artificially lower the price of inflated cards.
Eternal Leclerc fan

User avatar
Riemstagrad
Ambassador
 
Posts: 1082
Founded: Antiquity
Left-Leaning College State

Postby Riemstagrad » Wed Jan 26, 2022 8:37 am

Barlyy wrote:How would this translate into deflation? Most deflation operations are done buy purchasing an inflated card for a somewhat high price and then selling it for dirt-cheap (back in the TCALS days all you had to do was pull the card but that's no longer possible). So Nation A sells it to Nation B, and then Nation B attempts to sell the card for a low price (whether that'd be their own puppet or someone else). This basically means that open-system inflation becomes much stronger since it's basically impossible for deflators to artificially lower the price of inflated cards.


Deflating cards was never really feasible anyway. Or you put your ask too low and the inflater gets a cheap extra copy to worsen to problem, or you put your ask too high and risk getting undercut and loose a significant sum yourself.
I still have to make up my mind about Galiantus' idea, but i'm pretty certain that it doesn't make deflation harder because deflation never was a thing.

User avatar
SherpDaWerp
Technical Moderator
 
Posts: 1895
Founded: Mar 02, 2016
Benevolent Dictatorship

Postby SherpDaWerp » Wed Jan 26, 2022 5:43 pm

This is a pretty computationally expensive thing to work out. At best, it requires you to check every nation and every trade, and this would have to include CTE'd nations and their trades too. You'd also have to update it every time any trade resolved, which I think requires you to run the whole check again. If you limit the depth of the search to try and save time & space, then people will just inflate in a circle with one more trade than the limit.

Plus, you can inflate without cycles if you accumulate money on a side-puppet, which you can transfer around using a garden-variety non-inflated transfer card:
$puppet_1 has 5 copies of $card_1
$main buys all 5 copies of $card_1 for 1000 each
$puppet_1 transfers that money back using $card_2
$card_1 now has no cycles as it's only moved from a farm to $puppet_1 to $main, so it has an inflated MV of 1000 bank.
Became an editor on 18/01/23 techie on 29/01/24

Rampant statistical speculation from before then is entirely unofficial

User avatar
Fauzjhia
Ambassador
 
Posts: 1956
Founded: Jul 29, 2014
Left-wing Utopia

Postby Fauzjhia » Wed Jan 26, 2022 9:12 pm

and we're back to the puppet registry solution
because seriously, that's what you are talking about.
not everyone always report their own puppets... so I doubt this has any future, considering Fris said there would be an automated solution or none, and this cannot work as an automated solution.
Warning Political position : Far-Left, self-identify as liberal-communist. also as Feminist, atheist, ecologist and nationalist.
Support : non-corrupt state, human rights, women rights, wild life protection, banning fossil fuel, cooperatives, journalists, Radio-Canada, Télé-Quebec, public media, public service, nationalization, freedom and right to be informed, Quebec's Independence, Protection of the French Language, Immigration right and integration.
really dislike conservatism

User avatar
Galiantus III
Ambassador
 
Posts: 1453
Founded: Jan 23, 2013
Ex-Nation

Postby Galiantus III » Wed Jan 26, 2022 10:02 pm

SherpDaWerp wrote:This is a pretty computationally expensive thing to work out. At best, it requires you to check every nation and every trade, and this would have to include CTE'd nations and their trades too. You'd also have to update it every time any trade resolved, which I think requires you to run the whole check again. If you limit the depth of the search to try and save time & space, then people will just inflate in a circle with one more trade than the limit.


You can do it in O(n) time pretty easily. Here's some extremely simple pseudo-code:

1. Start at the top of the trades list and move down.

2. You'll use several stacks to find cycles. Push trades onto a stack based on the following criteria:
  1. If the buying nation matches the selling nation on the top of the stack, push that trade onto that stack.
  2. If the buying nation does not match the selling nation on any stack, create a new stack with that trade.
  3. After pushing a trade onto a stack, check if the seller at the top matches the buyer at the bottom. If it does, you have found a cycle. Pop all the trades off the stack and mark them as members of a cycle.

3. When you reach the end of the list or meet some other stopping criteria (time, number of trades checked) you are done. Calculate the card's market value using the last 10 trades that are not members of a cycle.


Plus, you can inflate without cycles if you accumulate money on a side-puppet, which you can transfer around using a garden-variety non-inflated transfer card:
$puppet_1 has 5 copies of $card_1
$main buys all 5 copies of $card_1 for 1000 each
$puppet_1 transfers that money back using $card_2
$card_1 now has no cycles as it's only moved from a farm to $puppet_1 to $main, so it has an inflated MV of 1000 bank.

Yes, inflation is still possible. The most effective workaround involves getting a lot of copies of the same card, but keeping a few that you pass down a chain of puppets to inflate, while the bulk of them are on your main. But this becomes really inefficient for cards with very few copies.

Fauzjhia wrote:and we're back to the puppet registry solution
because seriously, that's what you are talking about.
not everyone always report their own puppets... so I doubt this has any future, considering Fris said there would be an automated solution or none, and this cannot work as an automated solution.

Try reading what I actually wrote. This is not a puppet registry and it would be automated.
The goal of Socialism is Fascism.
#JKRowling #realfeminism #libertarian #conservative #christian #nomandates

Frisbeeteria wrote:
For some reason I have a mental image of a dolphin, trying to organize a new pod of his fellow dolphins to change the course of a nuclear sub. It's entertaining, I'll give ya that.
Ballotonia wrote:
Testing is for sissies. The actual test is to see how many people complain when any change is made ;)

User avatar
SherpDaWerp
Technical Moderator
 
Posts: 1895
Founded: Mar 02, 2016
Benevolent Dictatorship

Postby SherpDaWerp » Wed Jan 26, 2022 10:41 pm

Galiantus III wrote:
SherpDaWerp wrote:This is a pretty computationally expensive thing to work out. At best, it requires you to check every nation and every trade, and this would have to include CTE'd nations and their trades too. You'd also have to update it every time any trade resolved, which I think requires you to run the whole check again. If you limit the depth of the search to try and save time & space, then people will just inflate in a circle with one more trade than the limit.

You can do it in O(n) time pretty easily. Here's some extremely simple pseudo-code:

Yes, it's linear, but we're talking hundreds of thousands if not millions of trades. It's not a cheap thing to compute. And you still have to either store the intermediate result (which is a huge pile of "stacks", theoretically maxing out at one per trade) or re-calculate all of them every single time someone does a trade. It's also based on the number of trades, which increases very quickly - there's been 250 trades in the last 90 minutes - and you have to consider every trade ever, because introducing an age cut-off means people will just play the long-game.

I would have thought DFS would be a better implementation (still linear); what happens if you find a buy from midway up a stack? You'd have to duplicate the stack up until that sale, which would very very quickly become an unmanageably large amount of memory as well as forcing you to search all the stacks for a potential place to put the current trade.

Galiantus III wrote:
SherpDaWerp wrote:Plus, you can inflate without cycles if you accumulate money on a side-puppet, which you can transfer around using a garden-variety non-inflated transfer card:
$puppet_1 has 5 copies of $card_1
$main buys all 5 copies of $card_1 for 1000 each
$puppet_1 transfers that money back using $card_2
$card_1 now has no cycles as it's only moved from a farm to $puppet_1 to $main, so it has an inflated MV of 1000 bank.

Yes, inflation is still possible. The most effective workaround involves getting a lot of copies of the same card, but keeping a few that you pass down a chain of puppets to inflate, while the bulk of them are on your main. But this becomes really inefficient for cards with very few copies.

I don't think it's inefficient for few copies - it's the same as "modern" inflation except you can't transfer the money back to your main nation using the same card.

To be clear, I think this is a really cool idea; I'm a sucker for a good graph theory solution. But I don't really think it's going to be possible to compute in a reasonable amount of time.
Became an editor on 18/01/23 techie on 29/01/24

Rampant statistical speculation from before then is entirely unofficial

User avatar
Galiantus III
Ambassador
 
Posts: 1453
Founded: Jan 23, 2013
Ex-Nation

Postby Galiantus III » Thu Jan 27, 2022 2:09 pm

SherpDaWerp wrote:
Galiantus III wrote:You can do it in O(n) time pretty easily. Here's some extremely simple pseudo-code:

Yes, it's linear, but we're talking hundreds of thousands if not millions of trades. It's not a cheap thing to compute. And you still have to either store the intermediate result (which is a huge pile of "stacks", theoretically maxing out at one per trade) or re-calculate all of them every single time someone does a trade. It's also based on the number of trades, which increases very quickly - there's been 250 trades in the last 90 minutes - and you have to consider every trade ever, because introducing an age cut-off means people will just play the long-game.

I would have thought DFS would be a better implementation (still linear); what happens if you find a buy from midway up a stack? You'd have to duplicate the stack up until that sale, which would very very quickly become an unmanageably large amount of memory as well as forcing you to search all the stacks for a potential place to put the current trade.
To be clear, I think this is a really cool idea; I'm a sucker for a good graph theory solution. But I don't really think it's going to be possible to compute in a reasonable amount of time.

Why would you have to consider every trade that happened? For an individual card all you're looking at is instances where that specific card was traded, which can be anywhere between zero and... probably a couple thousand, in the most extreme case, depending on the card in question; but on average we're probably looking at like 50 trades, and you only run the update when a trade of some kind takes place (though we might also want an initial pass upon implementation).

DFS could be viable, but I have an issue with it: it doesn't respect the sequence of events. It considers a card's trades all instantaneously. So it will find cycles where no cycle exists. Consider this trade history:

  1. Nation A -> Nation B
  2. Nation B -> Nation C
  3. Nation C -> Nation D
  4. Nation E -> Nation C
  5. Nation C -> Nation B
  6. Nation B -> Nation F

In this example, two cards take two different paths which take them through B and C in opposite directions, but neither card completes a cycle. The first card followed the path A -> B -> C -> D; the second card followed the path E -> C -> B -> F. Under my sequential algorithm, the paths of the two cards are considered separately, so trade #2 (B -> C) does not cancel out trade #5 (C -> B). Meanwhile, DFS incorrectly identifies a cycle with B and C.

That said, there are some issues with the linear method, mainly that it doesn't correctly handle instances where one nation simultaneously owned multiple copies of a card, because at that point it is arbitrary which path to follow.

Galiantus III wrote:Yes, inflation is still possible. The most effective workaround involves getting a lot of copies of the same card, but keeping a few that you pass down a chain of puppets to inflate, while the bulk of them are on your main. But this becomes really inefficient for cards with very few copies.

I don't think it's inefficient for few copies - it's the same as "modern" inflation except you can't transfer the money back to your main nation using the same card.


I concede you're right on this. Ultimately, people can adapt to this change, and would continue inflating cards. While this would easily erase previous inflation, it would not prevent future inflation. The new method if inflation would just be more sophisticated. My initial thought is to also look for bank transfer cycles, but that would be completely ridiculous and messy.
Last edited by Galiantus III on Thu Jan 27, 2022 2:16 pm, edited 1 time in total.
The goal of Socialism is Fascism.
#JKRowling #realfeminism #libertarian #conservative #christian #nomandates

Frisbeeteria wrote:
For some reason I have a mental image of a dolphin, trying to organize a new pod of his fellow dolphins to change the course of a nuclear sub. It's entertaining, I'll give ya that.
Ballotonia wrote:
Testing is for sissies. The actual test is to see how many people complain when any change is made ;)

User avatar
Giraffeton
Spokesperson
 
Posts: 181
Founded: Oct 20, 2021
Liberal Democratic Socialists

Postby Giraffeton » Mon Feb 21, 2022 4:08 pm

i have thought about this system myself and came to the conclusion that it would not work as a player would just but a card from a puppet at a huge price and then never move it.
Contrary to the belief of Coffin-Breathe, I am not a puppet. But instead a puppet master.


Advertisement

Remove ads

Return to Technical

Who is online

Users browsing this forum: Arachnophobia, Armenti, Battadia, Cheblonsk, Corroboree, Dazchan, Devonithia, Gre Milotramia, IC-Water, Jyosia, North-West Commland, Norwegian FOREST Cat, Roxium, Sarduri, Shirahime

Advertisement

Remove ads