This article is an attempt to improve the efficiency
of procedures for compositional synthesis of design solutions
using building blocks. These procedures have found use
in a wide range of applications, and are one of the most
substantial outcomes of research into automated synthesis
of design solutions. Due to their combinatorial nature,
these procedures are highly inefficient in solving problems,
especially when the database of building blocks for synthesis
or the problem size is large. Previous literature often
focuses on improving only the algorithm part of a procedure,
although it is both its algorithm and database which together
determine the overall efficiency of the procedure. This
article reports the construction and analysis of an improved
algorithm, based on bidirectional search, for efficient
compositional synthesis of design solutions using a set
of building blocks.