OK, I just wish I knew how to acces the data from the game files the way you did. As it is, I don't know how it could be done, so no idea that it would be harder.
Getting the data is easy. The sots.gob and sots_local_en.gob files are just zip files. The MasterTechList.tech file contains all of the tech link probability information and the localization gob file has the strings.csv which has the names and descriptions of everything.
I was thinking of writing my own tree generation simulation using the data from the game and then running it a large number of times to get experimental data. I can't be sure it will run the same way the game does it because I don't know how the game does it. It's also not going to be easy... but at this point I want to try to so I can use it to verify any calculation methods I come up with.
Just saying that when calculating the probability of having projectors when coming from Meson beam and of having Meson beam without a direct link is more complex - it reduces probabilities along the way, doesn't factor the plain original probabilities for those techs.
I don't understand what you mean here.
Imagine there was a 100% leading from fusion cannon to fusion projector and you didn't get fusion projector. That would cut the cannon line leading to Antimatter projector, clearly reducing its probability. What might be less obvious is that, as it is, it still reduces that probability, to a lesser degree (and I would have to improvise a formula for that, don't know for sure what it is).
I understand what you're saying. If you don't have fusion projector, then the chances of getting AM projector are reduced by more than just the fact that one of its parents is missing. The fact that fusion projector is not there increases the chance that fusion cannon isn't there (as that is one of the possible reasons fusion projector is missing) and if that is the case, AM projectors are unattainable.
I'm thining of creating a proportional relation that increases or decreases the likelyhood of a tech not being there based on the probability of another tech coming out of it, that you don't get.
Well if you want to do that, that's fine, but it's not relevant to my application. I only intend to provide an overall percentage of a particular tech being available to each race per game. What you're doing is trying to modify these percentages based on having or not having certain techs. That's beyond the scope of what I'm trying to do.
For example, if Fusion cannon is overall 80% and Fusion Projector came from it at 50% (it's actually 45), not getting Fusion Projector would halve the chance you get Fusion Cannon, reducing its likelyhood to 40% (this is based on the idea that at 100%, it cuts the likelyhood alltogether).
Your math is wrong here. Indeed, if fusion projector was 100% coming from fusion cannon (and had no other unmet requirements), and you don't have fusion projector, then you know you don't have fusion cannon. But, the numbers you calculated are wrong. Let's go with the 50% value for the link in your scenario. There 3 possibilities:
[*]You have both fusion cannon (80%) and fusion projector (50%) -> 40% overall
[*]You have fusion cannon (80%) and not fusion projector (50%) -> Another 40% overall
[*]You have neither of these -> 20%
Those percentages add up to 100% as they should. Now, if it is given that you do not have fusion projector, then you're talking about 40+20 = 60% of the scenario. In 20% of the overall scenario, you also don't have fusion cannon, so if it is given that you don't have the projector, there is a 20%/60% = 33% chance that fusion cannon is also missing, meaning that, given a lack of the projector, you have a 67% of having fusion cannon, not 40% as you mentioned above.
Anyway, I took a shot at writing a new probability calculation method last night and it turned out to be way wrong. It's all rather frustrating trying to figure out the best way to do this. Trying to algorithmically understand dependencies with this complex tree is really difficult, especially considering I'm not even sure how to do it manually. I just wonder how wrong my current method actually is... the AI Virus situation was the only place I've seen so far that was obviously wrong by just looking at the numbers. I think I'll have to write this simulation system to give myself a baseline for comparison... of course I have to be sure the simulation is itself accurate too. So much complexity...