Application that can optimize a look-up table by identifying don't cares?
-
Let's assume I have a simple look-up table with columns 1, 2, and 3. The valid values for column 1 are A and B and the valid values for column 2 are C and D. Let's assume the look-up table looks like this: Column 1 Column 2 Column 3 A C Look-up table result E A D Look-up table result E B C Look-up table result F B D Look-up table result G In the table above it is easy to see that if column 1 is A then column 2 is don't care and the top 2 rows could be combined into 1 that says "Don't care" in column 2. Is there a ready-made application available that could do this for me (of course, with bigger and more complex tables)?
-
Let's assume I have a simple look-up table with columns 1, 2, and 3. The valid values for column 1 are A and B and the valid values for column 2 are C and D. Let's assume the look-up table looks like this: Column 1 Column 2 Column 3 A C Look-up table result E A D Look-up table result E B C Look-up table result F B D Look-up table result G In the table above it is easy to see that if column 1 is A then column 2 is don't care and the top 2 rows could be combined into 1 that says "Don't care" in column 2. Is there a ready-made application available that could do this for me (of course, with bigger and more complex tables)?
There is an algorithms forum here where this could be posted, or you could ask this question on the C# language forum, or the C# QA Forum. This is an interesting problem.
«A man will be imprisoned in a room with a door that's unlocked and opens inwards ... as long as it does not occur to him to pull rather than push» Wittgenstein
-
Let's assume I have a simple look-up table with columns 1, 2, and 3. The valid values for column 1 are A and B and the valid values for column 2 are C and D. Let's assume the look-up table looks like this: Column 1 Column 2 Column 3 A C Look-up table result E A D Look-up table result E B C Look-up table result F B D Look-up table result G In the table above it is easy to see that if column 1 is A then column 2 is don't care and the top 2 rows could be combined into 1 that says "Don't care" in column 2. Is there a ready-made application available that could do this for me (of course, with bigger and more complex tables)?
This looks like a standard use of an AI technique for building decision trees. Normally, in an AI context, the data would be noisy, so we would be looking for rules that apply over a certain threshold. From your description, it sounds like your data will be clean, and your rules perfect. Look at a tool called WEKA, it can generate these types of rules, or an algorithm called ID3.
-
Let's assume I have a simple look-up table with columns 1, 2, and 3. The valid values for column 1 are A and B and the valid values for column 2 are C and D. Let's assume the look-up table looks like this: Column 1 Column 2 Column 3 A C Look-up table result E A D Look-up table result E B C Look-up table result F B D Look-up table result G In the table above it is easy to see that if column 1 is A then column 2 is don't care and the top 2 rows could be combined into 1 that says "Don't care" in column 2. Is there a ready-made application available that could do this for me (of course, with bigger and more complex tables)?
Run-time or compile-time? If compile-time, gperf (GNU perfect hash) could probably help.
-
This looks like a standard use of an AI technique for building decision trees. Normally, in an AI context, the data would be noisy, so we would be looking for rules that apply over a certain threshold. From your description, it sounds like your data will be clean, and your rules perfect. Look at a tool called WEKA, it can generate these types of rules, or an algorithm called ID3.
So I had a look at some tutorials on WEKA and it seems it can take my data in table format and create a decision tree out of it. But is it possible to get a reduced table (with don't cares inserted where applicable) from the decision tree? I want the end result to be a condensed table, not a decision tree.