Sunday, February 24, 2008

GeoScene 2D Fractal Generator

GeoScene Fractal Generator, is a program I made in 2006 using Julia Set generation algorithm, as a part of my thesis for my bachelor degree. I used it at that time to generate some kind of geographical irregularities, as part of the input used by my seawave simulation program.

Later, I also used the program to make different kinds of mathematical arts. Which you can see in my deviant art gallery. The icons I used as part of my banner in my Mathematical Programming Tutorial Website is also generated using this program.

How to Use GeoScene Fractal Generator ?

Before you can use the program, you have to download the program here. Then you can activate the program and see the following screen.



If you set the Multiplier in Limit section by 20, and click ADD Generate button in Coloring section, you will see a fractal generated using the equation : green(z)=1-z^2, where z is a complex number.



The Polynomial and Coloring Section

Now, clear the screen by clicking Clear Color button in Coloring section.

Then lets try to make a Fractal by using the following polynomial :
f(z)=(0.3 + 0.2 I) z2 + (4.2 - 0.9 I) z + (-2.3 + 0.2 I)

These are the thing you should do :
- Set the C(n) value in the Polynomial Section, just like the function described above.
- Set the Coloring to Red
- Set the Multiplier value in Limit section to 60
- Click ADD Generate Button



Then :
- Set the Coloring to Green
- Set the Multiplier value in Limit section to 40
- Click ADD Generate Button



At last :
- Set the Coloring to Blue
- Set the Multiplier value in Limit section to 30
- Click ADD Generate Button



And the picture above is what you would get, after doing the procedures stated above.

How to Clear the Screen ?

Set the coloring to RGB and click Clear Color.



Random function

The purpose of Random button in Polynomial Section, is for generating a random polynomial function. After clicking the Random button and clicking the ADD Generate button, you can get a picture like below.



Matrix Size

Matrix Size is the actual height and width of the generated fractal. By Enlarging the size of the matrix, we can see more detail in the generated fractal.



Polynomial with Higher Order

The Add button in Polynomial section, is used to increase the order of the polynomial function, used to make the fractal. Higher order fractals usually are more complex than lower order fractals.



If you click the Save Julia Set Image button, below the image, you can save the currently shown picture as a bitmap image. The example below have been saved in PNG format.



* Download Geoscene Fractal Generator here
* See some generated fractals in my Deviant Art gallery

Saturday, February 23, 2008

Image Transformer

Image Transformer is an application capable of doing Computer Vision related image transformations. The primary feature of the program is edge detection and color separation.

As Image Transformer is designed for research, the interface is constructed so the user can change the matrix value and greyscale definition of each transformation operator. The user can also put wieght on the result of different transformation, in a TransColor matrix, to create a custom transformed image.

Download Image Transformer here

Edge Detection

Edge detection is one of the basic operations in computer vision. By detecting the edges from a bitmap file, we can differentiate between different regions that exist inside an image. By knowing the position of some regions in an image, an image recognition application can work faster, because it only need to consider the pixels value inside a certain region, instead of considering all pixels value in the whole image.

In order to detect the edges in an image, several transformation operators can be used. The following example uses Laplace operator.



And the example below is drawn using Robert's operator.



We can assign a different transformation operator by entering the matrix values and grayscale definition in the Transformation page. Then we can associate weights on the results of different operators, on the Transcolor List page. The resulting transformed image in the Picture page will be the result of the weighted addition of different operator results from the Original Image.



Color Separation

By manipulating the matrix values and grayscale definition of an transformation operator, it is possible to separate different colors of an image. The Original Image used in this example is an Orphys Fractal, which is separated into its Red and Green parts.



This is done by using the "Take Red" and "Take Green" transformation operators, which are available by default in the Image Transformer.

Download Image Transformer here

Wednesday, February 20, 2008

Animals Equations

This is a list of mathematical animals, I made several years ago using a software called Maple. The animals are usually drawn by assembling several abzoloid class of equations. The command used is implicitplot3d from plots package. See my website for more detail.

The Elephant

Big, strong and mighty, yet gentle and peaceful animal. Elephant is my favourite animal since I was 7 years old. In fact this is the first animal equation, by which I earned my reputation as mathematical artist in my university, back in 2002. In fact most people recognize me by the elephant I drew, along with the equation I place around the elephant.
 



The cat

I draw the cat in 2003, when I watch a Japanese anime titled Ultra Maniac. In that anime, there is a cat called Rio, and I think he is kinda cute. Moreover, I am a fan of Yoshizumi Ayumu-sensei, and have enjoyed several manga and anime based on her work. I hope I can meet her one day.



The Lion

Lion is often depicted as the king of jungle. I ever see one when I visit South Africa with my family. It is one of the famous big five there. The mane, which is part of its body, differentiating it from the rest of the cats family, is the tricky part, which require more than assembling abzoloid class of equation.



The Girrafe

Girrafe's long neck, have earned the species its famous reputation. In fact it is one of the animals, most children can easily recognize if they meet one. I often saw them in the local zoo, when I was small.



The antelope

Antelope is famous for its male's horn, which they use to fight other males in the mating season. I draw this one in 2007 along with the lion and the girrafe.



Repeating same animals for infinity

By using the nature of function based on arccos(cos(x)), it is possible to plot the same animals for infinity, along the x axis. The same can also be done for other axes. Showed in the picture below, are the basic animal equation and two types of iteration.



Conclusion

I often hear from my classmates back in high-school, that the part of brain used for arts and mathematic are different. Most of them also suggest that it is impossible to be good at both of field. I believed that at that time, but after I enter university and learned that even a software which purpose are for mathematic, can be used for the sake of art, I don't think that belief is entirely true.

There advancement in science have made it possible for new kinds of arts to spring out. There are even some kind of arts which require computers to make, for example fractals and animal equations. This has led me to believe that, two or more different subjects may have a meeting point, where a lot of possibility can be studied. It turn out that I was right.

It is always interesting for me to find more and more knowledge, as I understand why elderly always say that learning is a way to know what you don't know, if you never learn, you never know what you don't know. There is a lot of things that can come out from the understanding of this sentence alone.

Wednesday, February 13, 2008

Japanese Writer Application

Introduction

Since the first time I studied Japanese, I had have a hard time looking for application programs, which can be used to write in Japanese. It seems that there aren't many people learning Japanese in my country, or they who currently learning, never bother wanting to write anything in Japanese in a computer.

The problem is, I have some Japanese friends, and sometimes when we exchange mail over the internet, some transliteration mistake happened many times, rendering our mail unreadable. We have tried to overcome this problem by exchanging romaji email or sending kanji as picture, but each of those solutions have their own drawbacks.


Exchanging romaji email will do little to improve my Japanese literation. Unlike most people who just want to be able to speak in Japanese, I want to be Japanese literate. I want to read many kinds of book written in Japanese, in their original language. Everyone with more than single language capability know, how many meaning are lost in translation process. Not to mention there are some knowledge that can only be obtained if you understand a language, because that knowledge are never translated to other language, or simply can't be translated to other language without losing their meanings.



Exchanging picture, while can be one of the good solution, also has its own drawbacks. The size of a picture file is far greater than a text file is a no brainer for every computer literate individual.

Therefore when I found out that making a Japanese Writer program is quite easy, I jump on the chance to make one. Now, the program can be downloaded for free in the link below.

Download Japanese Writer

By using this program, different users just have to exchange their Japanese Writer File (*.jwf) between their net friends.

I hope this program can help anybody to conversate with their Japanese speaking friends, or with their friends who want to improve their Japanese literation as well. For myself, I hope that I can have more Japanese friends, as the very reason for me to study language is to make more friends, and to understand the relationship between different culture in our blue planet.

Additional Note

For Japanese Writer to work, set you windows non-Unicode language to Japanese by following these easy steps :
  1. Go to Control Panel.
  2. Choose "Regional and Language Settings".
  3. Choose "Advance".
  4. Choose "Japanese" in "Language for non-Unicode programs".
  5. Japanese Writer is ready to be used.

Saturday, February 9, 2008

An Example of Orphys Fractal

It is suggested to read Introduction to Orphys Production Line and Shipping Schedule Optimation, before reading this entry.

Heuristic Constants in Optimation Program

The effectiveness of the optimation algorithm used in Orphys Production Line and Shipping Schedule Optimation (OPLSSO) , is affected by a set of heuristics. These measure of effectiveness, is often called fitness in Genetic Algorithm terms. By plotting the value of several objective functions into a two dimensional map, given a set of heuristic values, it is possible to compare the effectiveness of each set of heuristics.

As the number of heuristic values in Orphys PLSSO is more than two, the actual map is multidimensional. Since the computation resources I have is limited, I can only plot some two dimensional manifold inside the multidimensional map. The mathematic detail of what is plotted is given below.

For example an optimation algorithm have a set of objective values : Z1, Z2, Z3, ...... , Zk
The values of these objective values depend on a set of heuristics : h1, h2, h3, ...... , hn
A function F, will map a set of heuristics to the set of objective values as follow : [ Z1..k ] = F( h1..n );

Where k is the number of objective values and n is the number of heuristics used.

Since we have to plot a two dimensional map with two axis x and y, we have to make the value of the set of heuristics to depend on the value of x and y in linear manner :
h1 = a1 x + b1 y + c1
h2 = a2 x + b2 y + c2
h3 = a3 x + b3 y + c3
.
.
.
hn = an x + bn y + cn

Now the function F will map the value of x and y to the value of [ Z1..n ], like below :
[ Z1..k ] = F( a1..n x + b1..n y + c1..n );

The Objective Values of Orphys Production Line and Shipping Schedule Optimation

In case of Orphys PLSSO, the set of objective values are :

1. Total Production Line Time Used

How many Production Line Hour are used if a set of heuristics is used to control the algorithm used in Orphys PLSSO, according to the schedule produced by a set of heuristics ?

The coloring used in the map below is HSV, with red denoting an area where the sets of heuristics produce a schedule with lowest amount of Production Line Hour used, and purple denoting an area where the sets of heuristics produce a schedule with highest amount of Production Line Hour Used. The less Total Production Line Hour used, the more favourable the schedule produced is.




2. Total Overtime Hour Used

How many hours must the Production Lines in the case must works outside normal workhour, so customer's demand can be fulfilled on time, according to the schedule produced by a set of heuristics ?

The coloring used in the map below is HSV, with red denoting an area where the sets of heuristics produce a schedule with lowest amount of Total Overtime Hour Used, and purple denoting an area where the sets of heuristics produce a schedule with highest amount of Total Overtime Hour Used. The less Total Overtime Hour used, the more favourable the schedule produced is.




3. Total Production Line Salary

How much money must be spended to pay the salary, according to the schedule produced by a set of heuristics ? This value include the normal workhour salary and overtime payment.

The coloring used in the map below is HSV, with red denoting an area where the sets of heuristics produce a schedule with lowest Total Production Line Salary, and purple denoting an area where the sets of heuristics produce a schedule with highest Total Production Line Salary. The less Total Production Line Salary is required, the more favourable the schedule produced is.




4. Total Inter-Warehouse Shipping Cost

How much money must be spended to move the products from factories to warehouses or between warehouses, according to the schedule produced by a set of heuristics ?

The coloring used in the map below is HSV, with red denoting an area where the sets of heuristics produce a schedule with lowest Total Inter-Warehouse Shipping Cost, and purple denoting an area where the sets of heuristics produce a schedule with highest Total Inter-Warehouse Shipping Cost. The less Total Inter-Warehouse Shipping Cost is required, the more favourable the schedule produced is.




5. Total To-Customer Shipping Cost

How much money must be spended to send finished products from company's warehouses to customers on time, according to the schedule produced by a set of heuristics ? This value is affected by the amount of time left ( relative to deadline ) when the products that customers ordered is finished, the cost of the shipping means required to deliver the products on time, and the amount of products delivered.

The coloring used in the map below is HSV, with red denoting an area where the sets of heuristics produce a schedule with lowest Total To-Customer Shipping Cost, and purple denoting an area where the sets of heuristics produce a schedule with highest Total To-Customer Shipping Cost. The less Total To-Customer Shipping Cost is required, the more favourable the schedule produced is.



6. Order Fulfillment Cost Grand Total

Order Fulfillment Cost Grand Total is the predicted sum of all money used in all activity required to fulfill customer's demand. This cost is the sum of production line salary, inter-warehouse shipping cost, and to-customer shipping cost. So this value is the ultimate objective value of Orphys PLSSO.

The coloring used in the map below is HSV, with red denoting an area where the sets of heuristics produce a schedule with lowest Order Fulfillment Cost Grand Total, and purple denoting an area where the sets of heuristics produce a schedule with highest Order Fulfillment Cost Grand Total. The less Order Fulfillment Cost Grand Total is required, the more favourable the schedule produced is.



By comparing the maps of different objective values to Order Fulfillment Cost Grand Total map, we can understand which cost is dominant in a company. By understanding which cost is dominant in a company, the management team of a company can reduce the total cost by focusing on how to reduce the dominant cost. For example, since the map for Order Fulfillment Cost Grand Total is roughly the same with Total To-Customer Shipping Cost map ( in this example ) , we can infer that To-Customer Shipping Cost is the dominant one, and company's management team can focus their cost cutting efforts, by finding new means for shipping their finished products to customer.

Download an Example of Orphys PLSSO Schedule. ( HTML )

Friday, February 1, 2008

Orphys Production Line and Shipping Schedule Optimator

Introduction

Orphys Production Line and Shipping Schedule Optimator (Orphys PLSSO) is a program cluster made to help management team in a company to manage, how customer's demand is fulfilled, using any available company's resources, in the least costly way.

Orphys PLSSO is capable to automate and optimalize the production and shipping schedule for manufacturing companies with multiple factory and multiple warehouse. As the program cluster it is capable of trying different possible schedule based on some heuristic value in a short time, and tell the production management team the least costly schedule found.

Assumption

In order to do its task, the program make several assumption about the company :

  • the company have one or more factories.
  • the company have one or more warehouses.
  • the company may have one or more production lines in a factory.
  • the company have more than one means to transport their product to customer.
  • each factory have a storage area for finished product, which are warehouse in their own sense.
Several assumption about the production lines :
  • raw materials inputed into a production line, will yield finished products.
  • a production line may consist of several machine and tools.
  • a production line can't use other production line's resources (machine or tools).
  • production lines will have some lag time, if asked to produce a product it is not currently producing (setting time).
And several other assumption about the company's customer :
  • customers want to get their ordered product on time.
  • customers will give the company a deadline, to produce and ship their product.
  • customers may be located in different geographic area (cities, state, country).

What Schedule and Report can Orphys PLSSO make and optimize ?

Basically Orphys PLSSO can be used to produce several kind of schedule and report :

Download an Example of Orphys PLSSO Schedule. ( HTML )

Production Schedule, tells company management teams, at what time a production line must :
  • start producing product A. ( production )
  • change the production line's setting to produce product B. ( setting )
  • start producing product B. ( production )
  • change the production line's setting to produce product C. ( setting )
  • and so on.

Overtime Schedule, tells company management teams, in which day and how long a production line must work outside normal workhour (overtime). This feature can be disabled if the company policy don't allow overtime.


Inter-Warehouse Shipping Schedule, tells company management teams, when a finished product must be moved from a factory to a warehouse, or must be moved between warehouses.

To-Customer Shipping Schedule, tells company management teams :
  • when a finished product must be shipped to customer.
  • which shipping or transportation method must be used ( truck, ship or airplane, for example).
  • how much shipping days is needed.
  • when customer will recieve the shipped product.

Transport Cost Detail, is a detailed report about how demand on a set of product, is fulfilled by the production and shipping schedule generated by Orphys PLSSO. The report also tells the cost required to ship a customer's set of ordered product.


Estimated Cost, is a short report about the estimated cost involved, if the current plan is executed. The calculated costs are :
  • Inter-warehouse Shipping Cost ( Per Warehouse ).
  • To-Customer Shipping Cost ( Per Warehouse ).
  • Production Lines Salaries ( Per Factory ).

Download an Example of Orphys PLSSO Schedule. ( HTML )
Learn More about Orphys :

Orphys PLSSO Program Cluster

Orphys Production Line and Shipping Schedule Optimator (Orphys PLSSO) is a program cluster made to help management team in a company to manage, how customer's demand is fulfilled, using any available company's resources, in the least costly way.

Orphys PLSSO is capable to automate and optimalize the production and shipping schedule for manufacturing companies with multiple factory and multiple warehouse. As the program cluster it is capable of trying different possible schedule based on some heuristic value in a short time, and tell the production management team the least costly schedule found.

Orphys PLSSO is not a single program, it is a system consisting of several programs, They are :
  • Orphys Optimalization and Learning Server (OOLS)
  • Orphys Input Module
  • Orphys Web-based Interface
Orphys Optimalization and Learning Server (OOLS), is the brain of Oprhys PLSSO system. For Orphys PLSSO System to work, this OOLS program must simply be activated. When a company want to use Oprhys PLSSO system to optimize their production and shipping schedule, Orphys Web-based Interface will tell OOLS to make a schedule. When there is no request for any optimation, OOLS will learn from previous cases, about how to optimally optimize the company's production and shipping schedule.


Orphys Input Module, is one of two interface by which end-user can request OOLS to make and optimize a company's schedule. Orphys Input Module will ask end-users some information about the company, and turn the information into five files ( *.fac ; *.nmf ; *.fwhc ; *.ord ; *.nona ), which must be inputted later into Orphys Web-based Interface to make a schedule.


Orphys Web-based Interface, is the other interface by which end-user can request OOLS to make and optimize a company's schedule, by inputting the five files ( *.fac ; *.nmf ; *.fwhc ; *.ord ; *.nona ) generated by Orphys Input Module. This Web-based Interface is also useful for viewing the created schedule and report.


Download an Example of Orphys PLSSO Schedule. ( HTML )
Learn More about Orphys :

Orphys Input Module

Orphys Input Module is a program, created as an interface for an end-user, to enter the information about company's resources and customer's order, that must be scheduled properly to avoid high fulfillment cost.

There are several information that must be provided for Orphys PLSSO to make a optimized schedule, they are :

Environment Configuration
  • Number of City and names of the Cities
  • Number of Shipping Service available, and their names
  • Shipping Service Cost and Time Matrix

Product Configuration
  • Machinery and Tools required to make a product
  • Data of Product and the Production Line Setting required to make a product

Customer and Ordering
  • Customer Data
  • Port To Customer Cost Matrix
  • Nota and Nota Detail Information

Factory Configuration
  • Number of Factories and Basic Factory Data
  • Initial Production Line Configuration

Warehouse Configuration
  • Current Warehouse Configuration Data
  • Warehouse To Shipper Cost Matrix
  • Warehouse's Finished Product Stock Matrix

Notice, that most page have a save and load buttons. These buttons are used to save or load some parts of the company information for later use. After saving some parts of company information, end-users can load the saved information by using load buttons, without the need of rewriting the information from scratch.

To convert the information into five files ( *.fac ; *.nmf ; *.fwhc ; *.ord ; *.nona ), which is required for OOLS to make and optimize a schedule, open the conversion page, and click write button. Conversely you can also read company's information from five file format, by clicking read button in conversion page.



Download an Example of Orphys PLSSO Schedule. ( HTML )
Learn More about Orphys :
About Orphys

Orphys Production Line and Shipping Schedule Optimation, is a program I made to help manufacturing companies schedule their production and product shipping. The assumption had already been listed above.

If any reader here is interested to implement Orphys PLSSO in their company, just contact me by email.