Skip to content
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

Joe work 2024 6 1 #1784

Merged
merged 29 commits into from
Jun 13, 2024
Merged

Joe work 2024 6 1 #1784

merged 29 commits into from
Jun 13, 2024

Conversation

jdramsey
Copy link
Collaborator

Work on GridSearch.

jdramsey added 29 commits June 1, 2024 05:29
The commit corrects a spelling mistake in a error message in the PoissonPriorScore class and streamlines the import statements in the NodeType class within the graph package. Removed unused imports to enhance code cleanliness.
The LvLite search algorithm was refactored for optimization and clarity. A new class, 'LvLiteDsepFriendly', was also added. The 'GraphEditor' now has a shortcut for creating a random graph.
In this commit, the triangle reasoning logic was refactored into a separate method for both LvLite and LvLiteDsepFriendly. Additionally, the extra conditional statements were removed, and readable variables were introduced for ease of understanding. Unnecessary codes were successfully cleaned up.
The code updates improve the efficiency of the GFci-R0 algorithm. These improvements involve better handling of nodes within graphs, including refinements in recognizing unshielded triples and allowing colliders. Enhancements also include additional condition checks to avoid redundant operations and incorrect orientations.
The description of the LvDumb class has been updated to more accurately reflect its functionality. Specifically, it has been clarified that the LV-Dumb algorithm is used to find the BOSS DAG for the dataset, which is then reported as a PAG (Partially Ancestral Graph) structure.
The documentation for the LvDumb class has been updated to better describe how it handles latent variable reasoning. More specifically, the doc now mentions that the class reports the PAG structure of the BOSS DAG without performing any further latent variable reasoning.
The commit includes changes across multiple classes where the generic 'discriminating path rule' is divided into two specific rules: 'discriminating path tail rule' and 'discriminating path collider rule'. This update increases the clarity and specificity of the rule application during the search operation in these classes.
In this commit, an option has been added to allow for internal randomness in the search algorithm. This feature is toggleable through setAllowInternalRandomness(). Other changes include removing the Bes algorithm related code, adjusting max path length for various orientation heuristics, and cleaning up/resetting several default configurations. Documentation for class variables has also been improved.
In this commit, an option has been added to allow for internal randomness in the search algorithm. This feature is toggleable through setAllowInternalRandomness(). Other changes include removing the Bes algorithm related code, adjusting max path length for various orientation heuristics, and cleaning up/resetting several default configurations. Documentation for class variables has also been improved.
The method across multiple classes has been refactored to set the maximum length of any discriminating path. The parameters have been updated to allow for unlimited length using -1. The change also includes adding validation checks to ensure the length is either -1 or a non-negative integer.
The method across multiple classes has been refactored to set the maximum length of any discriminating path. The parameters have been updated to allow for unlimited length using -1. The change also includes adding validation checks to ensure the length is either -1 or a non-negative integer.
The LvLite and LvLiteDsepFriendly classes have been streamlined and cleaned up for clarity and performance. This includes removing unnecessary conditionals and repetitions, consolidating duplicate code into a helper function, and optimizing how common adjacents are processed.
Refactored LvLite and LvLiteDsepFriendly classes to improve code readability and maintainability. The code was restructured by extracting methods and better organizing code logic. In addition, adjustments were made to enhance efficiency during traversal and manipulation of graph elements.
Primarily, refactored the 'reorientWithCircles', 'search', 'setKnowledge', 'setCompleteRuleSetUsed', 'setVerbose', 'setNumStarts', 'setDoDiscriminatingPathTailRule', 'setDoDiscriminatingPathColliderRule', and 'setUseBes' methods, and made them more efficient. Also, removed the unused 'score' and 'start' variables and unnecessary methods in LvLiteDsepFriendly. Also, optimized the 'search' method and updated the verbose logs for better clarity.
The collider orientation logic in the LvLite.java and LvLiteDsepFriendly.java files is refactored and made more concise. Unnecessary parameters and methods related to depth settings for search algorithms in these files are also removed. The default value for 'doDiscriminatingPathColliderRule' is now set to true in the manual index.html file.
Revamped the recallUnshieldedTriples method in LvLite to clean up its operations, improving its efficiency. Enhanced LvLiteDsepFriendly by altering various parameters for better performance. The DagToPag has been revised with more extensive inline documentation and notes. The FciOrient class was updated to ensure that every endpoint and edge changing operation correctly sets the change flag for better responsiveness to alterations.
The code has been refactored to include type checking before doing a type conversion, improving error handling. Unnecessary import statements have been removed. Additionally, white spaces and line alignment have been corrected for better readability. The readResolve method in the NodeType class, which was not being used, has also been removed.
In the LV-Lite algorithm, the equalityThreshold variable has been added to control the score drop after the tucking process. Also, the algorithm computation process has been optimized to reduce unnecessary thread creation. In PermutationSearch, a new method of managing the Knowledge object's tiers and variables has been implemented. Minor adjustments have also been made in miscellaneous parts of the code to improve overall algorithm performance and functionality.
… from LvLiteDsepFriendly

In the MarkovCheckEditor class, a new selection box is added to allow the user to select specific nodes from the table view. Additionally, the code has been modified to sort the names of nodes in a specific order. In the LvLiteDsepFriendly.java, some parameters related to GRaSP have been removed to simplify the structure. These parameters seemed to no longer be in use.
Updated the regex filter in the MarkovCheckEditor for better node selection handling. Also uncommented the code in GraphCard to enable the addition of graph manipulation items to the graph context menu. This provides users more controls to manipulate the graph.
The MarkovCheckEditor's preferred size has been adjusted for better usability. Also, the observer list in the MarkovCheck class has been updated to allow for more efficient model change notifications. Additionally, several methods in the MarkovCheck class have been refactored for improved readability and flexibility.
…emove unused methods

The LvLite.java class has been updated to include an option to choose the initial CPDAG algorithm. The options are now BOSS and GRASP. Methods that were previously unused or duplicated in this file have been removed for improved code clarity and efficiency. The reorientation of edges and determination of the final orientation of the graph have been restructured and moved to improve readability. Other minor code restructuring and reordering have also been done for better organization of the class functions.
Replaced calls to Thread.interrupted() with Thread.currentThread().isInterrupted() to correctly check the interruption status of the current thread. This change has been applied across multiple files and methods, improving thread safety and termination.
Removed setting knowledge in LvLite's BOSS initialization. This change simplifies the code and avoids redundancy. Additionally, the description in TrueDagRecallArrows class was updated for better clarity. The new description provides clearer information on the graph's directional relationship between X and Y.
This commit renames LvDumb to BossPag throughout the algorithm and search classes. The change includes the renaming of class file, class constructors, and class name references used within these classes. This update reflects the new name of the algorithm being used in the code.
Revised error handling code for file selection in multiple modules to provide user friendly messages instead of console print statements. Additionally, numerous unused code blocks across several modules, mostly involving showAlgorithmIndices and showSimulationIndices, were removed to clean up the code base. The output directory creation process was also streamlined.
The IndTestConditionalGaussianLrt and IndTestDegenerateGaussianLrt classes have been updated to implement the RowsSettable interface. This change allows users to set which rows are used in the test. Also, redundant spaces were removed from IndTestFisherZ, and parameter changes were made in DegenerateGaussianBic class.
A new field, resultsPath, has been added to the GridSearchModel class, along with its setter and getter methods. This field represents the path to the result folder. This is set after a comparison has been run, and used to add additional contents like simulation, algorithm, table columns, and verbose output to the comparison results.
The serialization methods writeObject and readObject have been added to several classes for enhanced data persistence and transport. These methods handle the writing and reading of objects to and from an ObjectOutputStream and an ObjectInputStream, respectively. As a result, serialized objects can be stored and retrieved across different instantiations of the application.
@jdramsey jdramsey merged commit 6aa0340 into development Jun 13, 2024
@jdramsey jdramsey deleted the joe_work_2024_6_1 branch June 13, 2024 03:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant