Growth of Functions - What is "Log Star" (O(log*n))?

  • Context: Undergrad 
  • Thread starter Thread starter gnome
  • Start date Start date
  • Tags Tags
    Functions Growth
Click For Summary

Discussion Overview

The discussion centers around the concept of "log star" or O(log*n), a function related to algorithmic complexity. Participants explore its definition, implications for algorithm efficiency, and methods for calculating it, particularly in the context of an Analysis of Algorithms class. The scope includes theoretical understanding and practical calculation methods.

Discussion Character

  • Exploratory
  • Technical explanation
  • Conceptual clarification
  • Homework-related

Main Points Raised

  • One participant expresses confusion about the term "log star" and its position in a hierarchy of functions, noting it is better than O(log log n).
  • Another participant provides a definition of log star as the minimum number of times the base-2 logarithm must be applied to a number until the result is less than 2.
  • A request for an example of log*n for n = 10000 is made, highlighting a desire for practical understanding.
  • A calculation example is provided, showing that log*10000 = 3, with an explanation of the iterative logarithm application process.
  • One participant inquires about easier methods to calculate log star on a calculator, sharing a complex logarithmic expression they currently use.
  • Another participant suggests that for certain values, log star can be estimated mentally, providing specific examples for small powers of 2.
  • A mention of a variant of log star that yields real numbers instead of integers is introduced, though the participant admits uncertainty about its calculation.

Areas of Agreement / Disagreement

Participants express varying levels of understanding regarding log star, with some providing definitions and examples while others seek clarification. No consensus is reached on the easiest calculation method or the broader implications of the function.

Contextual Notes

Some participants note that the definitions and calculations depend on specific logarithmic bases and that the understanding of log star may vary based on context.

Who May Find This Useful

Students and professionals interested in algorithm analysis, particularly those seeking to understand advanced complexity classes and their implications in computational theory.

gnome
Messages
1,031
Reaction score
1
I'm not sure this belongs here, but I don't know where else to post it:

On a handout from my Analysis of Algorithms class there's a "Hierarchy of Functions" chart which includes familiar orders such as
log n, linear, n log n, quadratic, cubic, exponential, etc.

There is one that I've never seen before, I don't know what it means & I can't find anything written about it.

He calls it "log star", also written as log*n.
It's the second-lowest listed in the hierarchy, between "constant" and "log log"; that is, an algorithm that is O(log*n) is a very good one, better than O(log-log n).

Any ideas what it means?
 
Physics news on Phys.org
As far as I know:

[tex]\log^*n=\min\lbrace x\in\mathbb{N}\vert \log_2^xn<2\rbrace[/tex]

In other words, the log-star of a number is the minimum number of times you would have to apply the base-2 log to a number to get a results that is less than 2. An algorithm which is [itex]O(\log^*n)[/itex] is considered to have an almost-constant running time. While the algorithm is not strictly speaking constant-time, you could increase the amount of input by a factor of [itex]10^{15}[/itex] and only increase the running time by a factor of 5.
 
Last edited:
Who thinks of these things?

Sorry, I still don't get it. What's inf{...

Can you give me an example of what would be log*n if n is say, 10000?
 
Originally posted by gnome
Who thinks of these things?

Sorry, I still don't get it. What's inf{...

Can you give me an example of what would be log*n if n is say, 10000?

I replaced inf with min when I realized using it here was both unnecessary and confusing. There's a slightly stronger definition where you need to use inf.

log*10000 = 3 because log(log(log 10000)) < 2 and log(log 10000) >= 2. Note that this is using log base 2.

To find the log-star of a number, just count the number of times you have to apply log (base 2) to it to get a result less than 2.
 
Last edited:
Thank you.

Now, is there an easier way to get that on a calculator than doing this:

ln (ln (ln 10000/ln2) /ln2) /ln2 = 1.899...

?
 
Originally posted by gnome
Thank you.

Now, is there an easier way to get that on a calculator than doing this:

ln (ln (ln 10000/ln2) /ln2) /ln2 = 1.899...

?

I can't think of one. But:

log*2 = 1
log*4 = 2
log*16 = 3
log*65536 = 4

Unless you're working with numbers >= 2^65536 then you should be able to use those values to figure out the values in your head (they'll always be between 0 and 5).

But someone else here may be more clever than me. And there is also another version of this function that gives real numbers instead of integers (for example, log*15 would not be 2 but rather a number between 2 and 3). However I definitely don't know how to calculate that version.

If you can wait 3 months, I can find out in my Algorithms class next term.
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 12 ·
Replies
12
Views
2K
  • · Replies 15 ·
Replies
15
Views
4K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 9 ·
Replies
9
Views
2K
Replies
2
Views
3K
  • · Replies 15 ·
Replies
15
Views
2K
  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 5 ·
Replies
5
Views
2K