From f307ac4b7c0264db6e0d4b1b6ba92d91640c549a Mon Sep 17 00:00:00 2001 From: Kai Ni Date: Sat, 12 Dec 2009 22:40:27 +0000 Subject: [PATCH] find a bottom to up ordering given the tree structure {pred} returned by matlab's graphminspantree --- matlab/bottom_up_ordering.m | 23 ++++++++++++++++++++++- matlab/kai02_bottomUp.m | 25 ++----------------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/matlab/bottom_up_ordering.m b/matlab/bottom_up_ordering.m index 82c0101bc..b2740ccda 100644 --- a/matlab/bottom_up_ordering.m +++ b/matlab/bottom_up_ordering.m @@ -1 +1,22 @@ -% put function here \ No newline at end of file +% find a bottom to up ordering given the tree structure {pred} returned by matlab's graphminspantree +function [ordering] = bottom_up_ordering(pred) + +%% compute the levels of the nodes +parents = [0]; +node_levels = zeros(length(pred), 1); +current_level = 1; +while ~isempty(parents) + parents = find(ismember(pred, parents)); + node_levels(parents) = current_level; + current_level = current_level + 1; +end +max_level = current_level - 1; + +ordering = Ordering(); +for level = max_level:-1:1 + ids = find(node_levels==level); + for i = 1:length(ids) + ordering.push_back(sprintf('x%d', ids(i))); + end +end +end \ No newline at end of file diff --git a/matlab/kai02_bottomUp.m b/matlab/kai02_bottomUp.m index 7d14360cb..e3249a105 100644 --- a/matlab/kai02_bottomUp.m +++ b/matlab/kai02_bottomUp.m @@ -1,25 +1,4 @@ -% find a bottom to up ordering given the tree structure {pred} returned by matlab's graphminspantree -function [ordering] = kai02_bottomUp(pred) - -%% compute the levels of the nodes -parents = [0]; -node_levels = zeros(length(pred), 1); -current_level = 1; -while ~isempty(parents) - parents = find(ismember(pred, parents)); - node_levels(parents) = current_level; - current_level = current_level + 1; -end -max_level = current_level - 1; - -ordering = Ordering(); -for level = max_level:-1:1 - ids = find(node_levels==level); - for i = 1:length(ids) - ordering.push_back(sprintf('x%d', ids(i))); - end -end +load beijing_graph.mat; +ordering = bottom_up_ordering(pred); ordering.print('ordering') - -end \ No newline at end of file