-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Combinatorics navigation #7
base: master
Are you sure you want to change the base?
Conversation
By 97chadol
The following is the example of the Hierarchy list in the Simple example case. Simple exampleHierarchy = [{}, The following is the example of the Hierarchy list in the Birthday Case study. Birthday Case studyHierarchy = [{'yes,DayOfWeekWeights:weighted':['no'],'yes,DayOfWeekWeights:uniform':['no']}, |
Assumption:
A possible hierarchy format might be (for Birthday) 1@Dashadower, From 2-4 @97chadol 1. Form hierarchylen(H[1]) = 5 Hier_dict[k, v] : k > v (implement) 2. maximal_i (terminal implementation)terminal_imp := Union (Hier_dict'key) (Hier_dict'value) 3. maximal_m (model)the most complex model is generated by cartesian product, maximal_m[:=product of maximal_i] inspecting the values of the dictionary list
4. Decompose Network to chainWhile(1)
|
FYI, 8.8. flow decomposition from Korte, Combinatorics Optimization (5e) and its proof (induction with separating maximal at each step) shows sequential decomposition via maximal @97chadol. |
Added new feature to find the models of the highest hierarchy in each subtree. Uses a very simple rule which omits implementations with "no', and includes others. Assumes max signature count of 2 per branch for branches below the top-level branch. Run with:
simple example output:
birthday model output:
|
@rybern I've tried to mess around with the Haskell code a bit and added the feature that we mentioned in the email about finding the max complexity model. It's probably gonna break with the blow of the wind and I'm super duper new with Haskell so it's gonna be eye-gouging to read but if you have time, can you do a quick review? |
I completely forgot about the golf model and to my surprise when I ran it, looks like it works!!
|
@Dashadower Hi Shin - I'm impressed you were able to dive into the Haskell! Haskell is pretty unique, I hope you're enjoying it. I have some initial questions:
I'm not sure that naming models "no" is a good way for users to annotate nested modules. For example, when there are more than two possible implementations, what do you call the second nested module? |
@rybern Thanks! So far I'd say the Haskell experience was neither great nor terrible. The goal was to identify the "most complicated" models for each signature subtree. Right now it just prints the portions separately but it's not hard to compose them together to create sound models(Just another combinations of nodes). I think the way you mentioned would be way more effective; removing "no" implementations when building Right now, there honestly is no way for us to determine "which model is more complex" other then whether module A is included or not, at least from the current tree point of view. Which is why it's very restrictive - and another reason I'm paying very close attention to Yuling's original email to figure out other ways that might not be too hard to add in. |
When building
Right, the goal as I understand it would be to let users annotate which implementations are superseded by others; I just think that using the name "no" as the annotation won't generalize very well. But, I don't want to get in the way of your experiments, so maybe "no" is a good place to start. Maybe filtering out model IDs with ":no" in them from the outside program (like graph_search.py) would also make more sense for experimenting, so that different experiments can have different conventions for specifying nested models. |
Wow that's way better! I'll definitely change to your code. Thanks for the suggestion.
Yeah I agree with your points. And changing model representation conventions is something I haven't thought about, but it seems like there's opportunity for exploration here. Again, thanks a lot for the feedback, this is all valuable food for thought for me. |
apex predator search result:
|
Starting chain:
K = 3 result:
|
…ity update algorithm
It looks like there's some exciting stuff happening in here! Just a heads up, you might want to merge with the master branch. I've found and fixed some edge case bugs in the network-of-models code. |
Thanks for the heads up, will do. I've been writing an example model here but am confused on when to use or omit |
Yeah, the short answer is that you should use A note from your example: since you use |
No description provided.